#define_CRT_SECURE_NO_WARNINGS\n#include<stdio.h>\n#include<stdlib.h>\n#include<string.h>\n\n#define\ MAX_DEVICES\ 100\ // 最大设备数量\n#define\ MAX_USERS\ 100\ // 最大用户数量\n\n// 设备信息结构体\n\ typedef\ struct\ {\n\ char\ name[50];\n\ char\ model[50];\n\ char\ purchase_date[20];\n\ char\ location[100];\n\ char\ owner[50];\n\ char\ borrower[50];\n\ char\ borrow_date[20];\n\ char\ return_date[20];\n\ }\ Device;\n\n// 用户信息结构体\n\ typedef\ struct\ {\n\ char\ username[50];\n\ char\ password[50];\n\ }\ User;\n\nDevice\ devices[MAX_DEVICES];\ // 设备数组\n\ int\ numDevices\ =\ 0;\ // 当前设备数量\n\nUser\ users[MAX_USERS];\ // 用户数组\n\ int\ numUsers\ =\ 0;\ // 当前用户数量\n\n// 添加设备\n\ void\ addDevice()\ {\n\ if\ (numDevices\ >=\ MAX_DEVICES)\ {\n\ printf("设备数量已达到上限,无法添加新设备。\n");\n\ return;\n\ }\n\n\ Device\ newDevice;\n\n\ printf("请输入设备名称:");\n\ scanf("%s",\ newDevice.name);\n\ printf("请输入设备型号:");\n\ scanf("%s",\ newDevice.model);\n\ printf("请输入设备采购时间:");\n\ scanf("%s",\ newDevice.purchase_date);\n\ printf("请输入设备存放位置:");\n\ scanf("%s",\ newDevice.location);\n\ printf("请输入设备负责人:");\n\ scanf("%s",\ newDevice.owner);\n\n\ devices[numDevices++]\ =\ newDevice;\n\n\ printf("设备添加成功。\n");\n\ }\n\n// 修改设备\n\ void\ modifyDevice()\ \n\ {\n\ char\ name[50];\n\ printf("请输入要修改的设备名称:");\n\ scanf("%s",\ name);\n\n\ int\ i;\n\ for\ (i\ =\ 0;\ i\ <\ numDevices;\ i++)\ {\n\ if\ (strcmp(devices[i].name,\ name)\ ==\ 0)\ {\n\ printf("请输入新的设备名称:");\n\ scanf("%s",\ devices[i].name);\n\ printf("请输入新的设备型号:");\n\ scanf("%s",\ devices[i].model);\n\ printf("请输入新的设备采购时间:");\n\ scanf("%s",\ devices[i].purchase_date);\n\ printf("请输入新的设备存放位置:");\n\ scanf("%s",\ devices[i].location);\n\ printf("请输入新的设备负责人:");\n\ scanf("%s",\ devices[i].owner);\n\n\ printf("设备信息修改成功。\n");\n\ return;\n\ }\n\ }\n\n\ printf("未找到要修改的设备。\n");\n\ }\n\n// 删除设备\n\ void\ deleteDevice()\ {\n\ char\ name[50];\n\ printf("请输入要删除的设备名称:");\n\ scanf("%s",\ name);\n\n\ int\ i;\n\ for\ (i\ =\ 0;\ i\ <\ numDevices;\ i++)\ {\n\ if\ (strcmp(devices[i].name,\ name)\ ==\ 0)\ {\n\ int\ j;\n\ for\ (j\ =\ i;\ j\ <\ numDevices\ -\ 1;\ j++)\ {\n\ devices[j]\ =\ devices[j\ +\ 1];\n\ }\n\ numDevices--;\n\n\ printf("设备删除成功。\n");\n\ return;\n\ }\n\ }\n\n\ printf("未找到要删除的设备。\n");\n\ }\n\n// 添加用户\n\ void\ addUser()\ \n\ {\n\ if\ (numUsers\ >=\ MAX_USERS)\ {\n\ printf("用户数量已达到上限,无法添加新用户。\n");\n\ return;\n\ }\n\n\ User\ newUser;\n\n\ printf("请输入用户名:");\n\ scanf("%s",\ newUser.username);\n\ printf("请输入密码:");\n\ scanf("%s",\ newUser.password);\n\n\ users[numUsers++]\ =\ newUser;\n\n\ printf("用户添加成功。\n");\n\ }\n\n// 删除用户\n\ void\ deleteUser()\ {\n\ char\ username[50];\n\ printf("请输入要删除的用户名:");\n\ scanf("%s",\ username);\n\n\ int\ i;\n\ for\ (i\ =\ 0;\ i\ <\ numUsers;\ i++)\ {\n\ if\ (strcmp(users[i].username,\ username)\ ==\ 0)\ {\n\ int\ j;\n\ for\ (j\ =\ i;\ j\ <\ numUsers\ -\ 1;\ j++)\ {\n\ users[j]\ =\ users[j\ +\ 1];\n\ }\n\ numUsers--;\n\n\ printf("用户删除成功。\n");\n\ return;\n\ }\n\ }\n\n\ printf("未找到要删除的用户。\n");\n\ }\n\n// 查询设备\n\ void\ searchDevice()\ {\n\ char\ name[50];\n\ printf("请输入要查询的设备名称:");\n\ scanf("%s",\ name);\n\n\ int\ i;\n\ for\ (i\ =\ 0;\ i\ <\ numDevices;\ i++)\ {\n\ if\ (strcmp(devices[i].name,\ name)\ ==\ 0)\ {\n\ printf("设备名称:%s\n",\ devices[i].name);\n\ printf("设备型号:%s\n",\ devices[i].model);\n\ printf("设备采购时间:%s\n",\ devices[i].purchase_date);\n\ printf("设备存放位置:%s\n",\ devices[i].location);\n\ printf("设备负责人:%s\n",\ devices[i].owner);\n\ if\ (strlen(devices[i].borrower)\ >\ 0)\ {\n\ printf("设备借用人:%s\n",\ devices[i].borrower);\n\ printf("设备借用时间:%s\n",\ devices[i].borrow_date);\n\ printf("设备归还时间:%s\n",\ devices[i].return_date);\n\ }\n\ return;\n\ }\n\ }\n\n\ printf("未找到该设备。\n");\n\ }\n\n// 申请借用设备\n\ void\ borrowDevice()\ {\n\ char\ name[50];\n\ printf("请输入要借用的设备名称:");\n\ scanf("%s",\ name);\n\n\ int\ i;\n\ for\ (i\ =\ 0;\ i\ <\ numDevices;\ i++)\ {\n\ if\ (strcmp(devices[i].name,\ name)\ ==\ 0)\n\ {\n\ if\ (strlen(devices[i].borrower)\ >\ 0)\n\ {\n\ printf("该设备已被借用。\n");\n\ return;\n\ }\n\n\ printf("请输入借用人姓名:");\n\ scanf("%s",\ devices[i].borrower);\n\ printf("请输入借用日期:");\n\ scanf("%s",\ devices[i].borrow_date);\n\n\ printf("设备借用成功。\n");\n\ return;\n\ }\n\ }\n\n\ printf("未找到该设备。\n");\n\ }\n\n// 显示所有设备\n\ void\ displayDevices()\ {\n\ int\ i;\n\ for\ (i\ =\ 0;\ i\ <\ numDevices;\ i++)\n\ {\n\ printf("设备名称:%s\n",\ devices[i].name);\n\ printf("设备型号:%s\n",\ devices[i].model);\n\ printf("设备采购时间:%s\n",\ devices[i].purchase_date);\n\ printf("设备存放位置:%s\n",\ devices[i].location);\n\ printf("设备负责人:%s\n",\ devices[i].owner);\n\ if\ (strlen(devices[i].borrower)\ >\ 0)\ {\n\ printf("设备借用人:%s\n",\ devices[i].borrower);\n\ printf("设备借用时间:%s\n",\ devices[i].borrow_date);\n\ printf("设备归还时间:%s\n",\ devices[i].return_date);\n\ }\n\ printf("\n");\n\ }\n\ }\n\n// 保存用户信息和设备信息到文件\n\ void\ saveToFile()\ {\n\ {\n\ FILE*\ file\ =\ fopen("C:\Users\额额\Desktop\cvb\789",\ "w");\n\ if\ (file\ ==\ NULL)\ \n\ {\n\ printf("无法打开文件。\n");\n\ return;\n\ }\n\n\ // 保存用户信息\n\ int\ i;\n\ for\ (i\ =\ 0;\ i\ <\ numUsers;\ i++)\ \n\ {\n\ fprintf(file,\ "%s %s\n",\ users[i].username,\ users[i].password);\n\ }\n\n\ // 保存设备信息\n\ for\ (i\ =\ 0;\ i\ <\ numDevices;\ i++)\ {\n\ fprintf(file,\ "%s %s %s %s %s %s %s %s\n",\ devices[i].name,\ devices[i].model,\ devices[i].purchase_date,devices[i].location,\ devices[i].owner,\ devices[i].borrower,\ devices[i].borrow_date,\ devices[i].return_date);\n\ }\n\n\ fclose(file);\n\ }\n\ }\n\ // 从文件中加载用户信息和设备信息\n\ void\ loadFromFile()\ \n\ {\n\ FILE*\ file\ =\ fopen("C:\Users\额额\Desktop\cvb\789",\ "r");\n\ if\ (file\ ==\ NULL)\ \n\ {\n\ printf("无法打开文件。\n");\n\ return;\n\ }\n\n\ // 加载用户信息\n\ char\ line[100];\n\ while\ (fgets(line,\ sizeof(line),\ file)\ !=\ NULL)\ \n\ {\n\ sscanf(line,\ "%s %s",\ users[numUsers].username,\ users[numUsers].password);\n\ numUsers++;\n\ }\n\n\ // 加载设备信息\n\ while\ (fgets(line,\ sizeof(line),\ file)\ !=\ NULL)\ \n\ {\n\ sscanf(line,\ "%s %s %s %s %s %s %s %s",\ devices[numDevices].name,\ devices[numDevices].model,\n\ devices[numDevices].purchase_date,\ devices[numDevices].location,\ devices[numDevices].owner,\n\ devices[numDevices].borrower,\ devices[numDevices].borrow_date,\ devices[numDevices].return_date);\n\ numDevices++;\n\ }\n\n\ fclose(file);\n\ }\n\n\ int\ main()\ \n\ {\n\ int\ memanu();\n\ int\ admanu();\n\ loadFromFile();\n\ int\ a;\n\ printf("请输入:\n1.管理者系统\n2.用户系统\n");\n\ scanf("%d",&a);\n\ if(a==1)\n\ admanu();\n\ else\n\ memanu();\n\ return\ 0;\n\ }\n\ \n\ \n\ int\ admanu()\n\ {\n\ int\ choice;\n\ do\ {\n\ printf("欢迎使用实验室设备管理系统,请选择操作:\n");\n\ printf("1. 添加设备\n");\n\ printf("2. 修改设备\n");\n\ printf("3. 删除设备\n");\n\ printf("4. 添加用户\n");\n\ printf("5. 删除用户\n");\n\ printf("6. 查询设备\n");\n\ printf("7. 申请借用设备\n");\n\ printf("8. 显示所有设备\n");\n\ printf("0. 退出\n");\n\n\ scanf("%d",\ &choice);\n\n\ switch\ (choice)\ {\n\ case\ 1:\n\ addDevice();\n\ break;\n\ case\ 2:\n\ modifyDevice();\n\ break;\n\ case\ 3:\n\ deleteDevice();\n\ break;\n\ case\ 4:\n\ addUser();\n\ break;\n\ case\ 5:\n\ deleteUser();\n\ break;\n\ case\ 6:\n\ searchDevice();\n\ break;\n\ case\ 7:\n\ borrowDevice();\n\ break;\n\ case\ 8:\n\ displayDevices();\n\ break;\n\ case\ 0:\n\ break;\n\ default:\n\ printf("无效的选择。\n");\n\ }\n\ } while\ (choice\ !=\ 0);\n\ saveToFile();\n\ return\ 0;\n\ }\n\n\ int\ memanu()\n\ {\n\ int\ choice;\n\ do\ {\n\ printf("欢迎使用实验室设备管理系统,请选择操作:\n");\n\ printf("1. 查询设备\n");\n\ printf("2. 申请借用设备\n");\n\ printf("3. 显示所有设备\n");\n\ printf("0. 退出\n");\n\n\ scanf("%d",\ &choice);\n\n\ switch\ (choice)\ \n\ {\n\ case\ 1:\n\ searchDevice();\n\ break;\n\ case\ 2:\n\ borrowDevice();\n\ break;\n\ case\ 3:\n\ displayDevices();\n\ break;\n\ case\ 0:\n\ break;\n\ default:\n\ printf("无效的选择。\n");\n\ }\n\ }\n\ while\ (choice\ !=\ 0);\n\ saveToFile();\n\ return\ 0;\n\ }\n\ 程序优化代码\n\ \n\ 内容:

实验室设备管理系统 - 设备借用与管理

原文地址: https://www.cveoy.top/t/topic/ptNV 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录