#define\s_CRT_SECURE_NO_WARNINGS\n#include\s<stdio.h>\n#include\s<stdlib.h>\n#include\s<string.h>\n\n#define\sMAX_DEVICES\s100\s//\s最大设备数量\n#define\sMAX_USERS\s100\s//\s最大用户数量\n\n//\s设备信息结构体\ntypedef\sstruct\s{\n\schar\sname[50];\n\schar\smodel[50];\n\schar\spurchase_date[20];\n\schar\slocation[100];\n\schar\sowner[50];\n\schar\sborrower[50];\n\schar\sborrow_date[20];\n\schar\sreturn_date[20];\n}Device;\n\n//\s用户信息结构体\ntypedef\sstruct\s{\n\schar\susername[50];\n\schar\spassword[50];\n}User;\n\nDevice\sdevices[MAX_DEVICES];\s//\s设备数组\nint\snumDevices\s=\s0;\s//\s当前设备数量\n\nUser\susers[MAX_USERS];\s//\s用户数组\nint\snumUsers\s=\s0;\s//\s当前用户数量\n\n//\s添加设备\nvoid\saddDevice()\s{\n\sif\s(numDevices\s>=\sMAX_DEVICES)\s{\n\s\sprointf('设备数量已达到上限,无法添加新设备。\n');\n\s\sreturn;\n}\n\n\sDevice\snewDevice;\n\n\s\sprointf('请输入设备名称:');\n\s\sscanf('%s',\snewDevice.name);\n\s\sprointf('请输入设备型号:');\n\s\sscanf('%s',\snewDevice.model);\n\s\sprointf('请输入设备采购时间:');\n\s\sscanf('%s',\snewDevice.purchase_date);\n\s\sprointf('请输入设备存放位置:');\n\s\sscanf('%s',\snewDevice.location);\n\s\sprointf('请输入设备负责人:');\n\s\sscanf('%s',\snewDevice.owner);\n\n\sdevices[numDevices++]\s=\snewDevice;\n\n\s\sprointf('设备添加成功。\n');\n}\n\n//\s修改设备\nvoid\smodifyDevice()\s\n{\n\schar\sname[50];\n\s\sprointf('请输入要修改的设备名称:');\n\s\sscanf('%s',\sname);\n\n\sint\si;\n\sfor\s(i\s=\s0;\si\s<\snumDevices;\si++)\s{\n\s\sif\s(strcmp(devices[i].name,\sname)\s==\s0)\s{\n\s\s\sprointf('请输入新的设备名称:');\n\s\s\sscanf('%s',\sdevices[i].name);\n\s\s\sprointf('请输入新的设备型号:');\n\s\s\sscanf('%s',\sdevices[i].model);\n\s\s\sprointf('请输入新的设备采购时间:');\n\s\s\sscanf('%s',\sdevices[i].purchase_date);\n\s\s\sprointf('请输入新的设备存放位置:');\n\s\s\sscanf('%s',\sdevices[i].location);\n\s\s\sprointf('请输入新的设备负责人:');\n\s\s\sscanf('%s',\sdevices[i].owner);\n\n\s\s\sprointf('设备信息修改成功。\n');\n\s\s\sreturn;\n\s\s}\n\s}\n\n\s\sprointf('未找到要修改的设备。\n');\n}\n\n//\s删除设备\nvoid\sdeleteDevice()\s{\n\schar\sname[50];\n\s\sprointf('请输入要删除的设备名称:');\n\s\sscanf('%s',\sname);\n\n\sint\si;\n\sfor\s(i\s=\s0;\si\s<\snumDevices;\si++)\s{\n\s\sif\s(strcmp(devices[i].name,\sname)\s==\s0)\s{\n\s\s\sint\sj;\n\s\s\sfor\s(j\s=\si;\sj\s<\snumDevices\s-\s1;\sj++)\s{\n\s\s\s\sdevices[j]\s=\sdevices[j\s+\s1];\n\s\s\s}\n\s\s\snumDevices--;\n\n\s\s\sprointf('设备删除成功。\n');\n\s\s\sreturn;\n\s\s}\n\s}\n\n\s\sprointf('未找到要删除的设备。\n');\n}\n\n//\s添加用户\nvoid\saddUser()\s\n{\n\sif\s(numUsers\s>=\sMAX_USERS)\s{\n\s\sprointf('用户数量已达到上限,无法添加新用户。\n');\n\s\sreturn;\n}\n\n\sUser\snewUser;\n\n\s\sprointf('请输入用户名:');\n\s\sscanf('%s',\snewUser.username);\n\s\sprointf('请输入密码:');\n\s\sscanf('%s',\snewUser.password);\n\n\susers[numUsers++]\s=\snewUser;\n\n\s\sprointf('用户添加成功。\n');\n}\n\n//\s删除用户\nvoid\sdeleteUser()\s{\n\schar\susername[50];\n\s\sprointf('请输入要删除的用户名:');\n\s\sscanf('%s',\susername);\n\n\sint\si;\n\sfor\s(i\s=\s0;\si\s<\snumUsers;\si++)\s{\n\s\sif\s(strcmp(users[i].username,\susername)\s==\s0)\s{\n\s\s\sint\sj;\n\s\s\sfor\s(j\s=\si;\sj\s<\snumUsers\s-\s1;\sj++)\s{\n\s\s\s\susers[j]\s=\susers[j\s+\s1];\n\s\s\s}\n\s\s\snumUsers--;\n\n\s\s\sprointf('用户删除成功。\n');\n\s\s\sreturn;\n\s\s}\n\s}\n\n\s\sprointf('未找到要删除的用户。\n');\n}\n\n//\s查询设备\nvoid\ssearchDevice()\s{\n\schar\sname[50];\n\s\sprointf('请输入要查询的设备名称:');\n\s\sscanf('%s',\sname);\n\n\sint\si;\n\sfor\s(i\s=\s0;\si\s<\snumDevices;\si++)\s{\n\s\sif\s(strcmp(devices[i].name,\sname)\s==\s0)\s{\n\s\s\sprointf('设备名称:%s\n',\sdevices[i].name);\n\s\s\sprointf('设备型号:%s\n',\sdevices[i].model);\n\s\s\sprointf('设备采购时间:%s\n',\sdevices[i].purchase_date);\n\s\s\sprointf('设备存放位置:%s\n',\sdevices[i].location);\n\s\s\sprointf('设备负责人:%s\n',\sdevices[i].owner);\n\s\sif\s(strlen(devices[i].borrower)\s>\s0)\s{\n\s\s\sprointf('设备借用人:%s\n',\sdevices[i].borrower);\n\s\s\sprointf('设备借用时间:%s\n',\sdevices[i].borrow_date);\n\s\s\sprointf('设备归还时间:%s\n',\sdevices[i].return_date);\n\s\s}\n\s\s\sreturn;\n\s\s}\n\s}\n\n\s\sprointf('未找到该设备。\n');\n}\n\n//\s申请借用设备\nvoid\sborrowDevice()\s{\n\schar\sname[50];\n\s\sprointf('请输入要借用的设备名称:');\n\s\sscanf('%s',\sname);\n\n\sint\si;\n\sfor\s(i\s=\s0;\si\s<\snumDevices;\si++)\s{\n\s\sif\s(strcmp(devices[i].name,\sname)\s==\s0)\s{\n\s\s\sif\s(strlen(devices[i].borrower)\s>\s0)\s{\n\s\s\sprointf('该设备已被借用。\n');\n\s\s\sreturn;\n\s\s}\n\n\s\s\sprointf('请输入借用人姓名:');\n\s\s\sscanf('%s',\sdevices[i].borrower);\n\s\s\sprointf('请输入借用日期:');\n\s\s\sscanf('%s',\sdevices[i].borrow_date);\n\n\s\s\sprointf('设备借用成功。\n');\n\s\s\sreturn;\n\s\s}\n\s}\n\n\s\sprointf('未找到该设备。\n');\n}\n\n//\s显示所有设备\nvoid\sdisplayDevices()\s{\n\sint\si;\n\sfor\s(i\s=\s0;\si\s<\snumDevices;\si++)\s{\n\s\sprointf('设备名称:%s\n',\sdevices[i].name);\n\s\sprointf('设备型号:%s\n',\sdevices[i].model);\n\s\sprointf('设备采购时间:%s\n',\sdevices[i].purchase_date);\n\s\sprointf('设备存放位置:%s\n',\sdevices[i].location);\n\s\sprointf('设备负责人:%s\n',\sdevices[i].owner);\n\s\sif\s(strlen(devices[i].borrower)\s>\s0)\s{\n\s\s\sprointf('设备借用人:%s\n',\sdevices[i].borrower);\n\s\s\sprointf('设备借用时间:%s\n',\sdevices[i].borrow_date);\n\s\s\sprointf('设备归还时间:%s\n',\sdevices[i].return_date);\n\s\s}\n\s\sprointf('\n');\n\s}\n}\n\n//\s保存用户信息和设备信息到文件\nvoid\ssaveToFile()\s{\n{\sFILE*\sfile\s=\sfopen('C:\Users\额额\Desktop\cvb\789',\s'w');\n\sif\s(file\s==\sNULL)\s\n{\n\s\sprointf('无法打开文件。\n');\n\s\sreturn;\n}\n\n\s//\s保存用户信息\n\sint\si;\n\sfor\s(i\s=\s0;\si\s<\snumUsers;\si++)\s\n{\n\s\sfprintf(file,\s'%s\s%s\n',\susers[i].username,\susers[i].password);\n\s}\n\n\s//\s保存设备信息\n\sfor\s(i\s=\s0;\si\s<\snumDevices;\si++)\s{\n\s\sfprintf(file,\s'%s\s%s\s%s\s%s\s%s\s%s\s%s\s%s\n',\sdevices[i].name,\sdevices[i].model,\sdevices[i].purchase_date,devices[i].location,\sdevices[i].owner,\sdevices[i].borrower,\sdevices[i].borrow_date,\sdevices[i].return_date);\n\s}\n\n\sfclose(file);\n}\n}\n//\s从文件中加载用户信息和设备信息\nvoid\sloadFromFile()\s\n{\n\sFILE*\sfile\s=\sfopen('C:\Users\额额\Desktop\cvb\789',\s'r');\n\sif\s(file\s==\sNULL)\s\n{\n\s\sprointf('无法打开文件。\n');\n\s\sreturn;\n}\n\n\s//\s加载用户信息\n\swhile\s(!feof(file))\s{\n\s\sfscanf(file,\s'%s\s%s',\susers[numUsers].username,\susers[numUsers].password);\n\s\snumUsers++;\n\s}\n\n\s//\s加载设备信息\n\swhile\s(!feof(file))\s{\n\s\sfscanf(file,\s'%s\s%s\s%s\s%s\s%s\s%s\s%s\s%s',\sdevices[numDevices].name,\sdevices[numDevices].model,\n\s\s\sdevices[numDevices].purchase_date,\sdevices[numDevices].location,\sdevices[numDevices].owner,\n\s\s\sdevices[numDevices].borrower,\sdevices[numDevices].borrow_date,\sdevices[numDevices].return_date);\n\s\snumDevices++;\n\s}\n\n\sfclose(file);\n}\n\nint\smain()\s\n{\n\sloadFromFile();\n\n\sint\schoice;\n\sdo\s{\n\s\sprointf('欢迎使用设备管理系统,请选择操作:\n');\n\s\sprointf('1. 添加设备\n');\n\s\sprointf('2. 修改设备\n');\n\s\sprointf('3. 删除设备\n');\n\s\sprointf('4. 添加用户\n');\n\s\sprointf('5. 删除用户\n');\n\s\sprointf('6. 查询设备\n');\n\s\sprointf('7. 申请借用设备\n');\n\s\sprointf('8. 显示所有设备\n');\n\s\sprointf('0. 退出\n');\n\n\s\sscanf('%d',\s&choice);\n\n\s\sswitch\s(choice)\s{\n\s\scase\s1:\n\s\s\saddDevice();\n\s\s\sbreak;\n\s\scase\s2:\n\s\s\smodifyDevice();\n\s\s\sbreak;\n\s\scase\s3:\n\s\s\sdeleteDevice();\n\s\s\sbreak;\n\s\scase\s4:\n\s\s\saddUser();\n\s\s\sbreak;\n\s\scase\s5:\n\s\s\sdeleteUser();\n\s\s\sbreak;\n\s\scase\s6:\n\s\s\ssearchDevice();\n\s\s\sbreak;\n\s\scase\s7:\n\s\s\sborrowDevice();\n\s\s\sbreak;\n\s\scase\s8:\n\s\s\sdisplayDevices();\n\s\s\sbreak;\n\s\scase\s0:\n\s\s\sbreak;\n\s\sdefault:\n\s\s\sprointf('无效的选择。\n');\n\s\s}\n\s} while\s(choice\s!=\s0);\n\n\ssaveToFile();\n\n\sreturn\s0;\n}\n'}

**修改后的代码:**c#define _CRT_SECURE_NO_WARNINGS#include <stdio.h>#include <stdlib.h>#include <string.h>

#define MAX_DEVICES 100 // 最大设备数量#define MAX_USERS 100 // 最大用户数量

// 设备信息结构体typedef struct { char name[50]; char model[50]; char purchase_date[20]; char location[100]; char owner[50]; char borrower[50]; char borrow_date[20]; char return_date[20];} Device;

// 用户信息结构体typedef struct { char username[50]; char password[50];} User;

Device devices[MAX_DEVICES]; // 设备数组int numDevices = 0; // 当前设备数量

User users[MAX_USERS]; // 用户数组int numUsers = 0; // 当前用户数量

// 添加设备void addDevice() { if (numDevices >= MAX_DEVICES) { printf('设备数量已达到上限,无法添加新设备。 '); return; }

Device newDevice;

printf('请输入设备名称:');    scanf('%s', newDevice.name);    printf('请输入设备型号:');    scanf('%s', newDevice.model);    printf('请输入设备采购时间:');    scanf('%s', newDevice.purchase_date);    printf('请输入设备存放位置:');    scanf('%s', newDevice.location);    printf('请输入设备负责人:');    scanf('%s', newDevice.owner);

devices[numDevices++] = newDevice;

printf('设备添加成功。

');}

// 修改设备void modifyDevice() { char name[50]; printf('请输入要修改的设备名称:'); scanf('%s', name);

int i;    for (i = 0; i < numDevices; i++) {        if (strcmp(devices[i].name, name) == 0) {            printf('请输入新的设备名称:');            scanf('%s', devices[i].name);            printf('请输入新的设备型号:');            scanf('%s', devices[i].model);            printf('请输入新的设备采购时间:');            scanf('%s', devices[i].purchase_date);            printf('请输入新的设备存放位置:');            scanf('%s', devices[i].location);            printf('请输入新的设备负责人:');            scanf('%s', devices[i].owner);

        printf('设备信息修改成功。

'); return; } }

printf('未找到要修改的设备。

');}

// 删除设备void deleteDevice() { char name[50]; printf('请输入要删除的设备名称:'); scanf('%s', name);

int i;    for (i = 0; i < numDevices; i++) {        if (strcmp(devices[i].name, name) == 0) {            int j;            for (j = i; j < numDevices - 1; j++) {                devices[j] = devices[j + 1];            }            numDevices--;

        printf('设备删除成功。

'); return; } }

printf('未找到要删除的设备。

');}

// 添加用户void addUser() { if (numUsers >= MAX_USERS) { printf('用户数量已达到上限,无法添加新用户。 '); return; }

User newUser;

printf('请输入用户名:');    scanf('%s', newUser.username);    printf('请输入密码:');    scanf('%s', newUser.password);

users[numUsers++] = newUser;

printf('用户添加成功。

');}

// 删除用户void deleteUser() { char username[50]; printf('请输入要删除的用户名:'); scanf('%s', username);

int i;    for (i = 0; i < numUsers; i++) {        if (strcmp(users[i].username, username) == 0) {            int j;            for (j = i; j < numUsers - 1; j++) {                users[j] = users[j + 1];            }            numUsers--;

        printf('用户删除成功。

'); return; } }

printf('未找到要删除的用户。

');}

// 查询设备void searchDevice() { char name[50]; printf('请输入要查询的设备名称:'); scanf('%s', name);

int i;    for (i = 0; i < numDevices; i++) {        if (strcmp(devices[i].name, name) == 0) {            printf('设备名称:%s

', devices[i].name); printf('设备型号:%s ', devices[i].model); printf('设备采购时间:%s ', devices[i].purchase_date); printf('设备存放位置:%s ', devices[i].location); printf('设备负责人:%s ', devices[i].owner); if (strlen(devices[i].borrower) > 0) { printf('设备借用人:%s ', devices[i].borrower); printf('设备借用时间:%s ', devices[i].borrow_date); printf('设备归还时间:%s ', devices[i].return_date); } return; } }

printf('未找到该设备。

');}

// 申请借用设备void borrowDevice() { char name[50]; printf('请输入要借用的设备名称:'); scanf('%s', name);

int i;    for (i = 0; i < numDevices; i++) {        if (strcmp(devices[i].name, name) == 0) {            if (strlen(devices[i].borrower) > 0) {                printf('该设备已被借用。

'); return; }

        printf('请输入借用人姓名:');            scanf('%s', devices[i].borrower);            printf('请输入借用日期:');            scanf('%s', devices[i].borrow_date);

        printf('设备借用成功。

'); return; } }

printf('未找到该设备。

');}

// 显示所有设备void displayDevices() { int i; for (i = 0; i < numDevices; i++) { printf('设备名称:%s ', devices[i].name); printf('设备型号:%s ', devices[i].model); printf('设备采购时间:%s ', devices[i].purchase_date); printf('设备存放位置:%s ', devices[i].location); printf('设备负责人:%s ', devices[i].owner); if (strlen(devices[i].borrower) > 0) { printf('设备借用人:%s ', devices[i].borrower); printf('设备借用时间:%s ', devices[i].borrow_date); printf('设备归还时间:%s ', devices[i].return_date); } printf(' '); }}

// 保存用户信息和设备信息到文件void saveToFile() { FILE* file = fopen('C:\Users\额额\Desktop\cvb\789', 'w'); if (file == NULL) { printf('无法打开文件。 '); return; }

// 保存用户信息    int i;    for (i = 0; i < numUsers; i++)     {        fprintf(file, '%s %s

', users[i].username, users[i].password); }

// 保存设备信息    for (i = 0; i < numDevices; i++) {        fprintf(file, '%s %s %s %s %s %s %s %s

', 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); }

fclose(file);}

// 从文件中加载用户信息和设备信息void loadFromFile() { FILE* file = fopen('C:\Users\额额\Desktop\cvb\789', 'r'); if (file == NULL) { printf('无法打开文件。 '); return; }

// 加载用户信息    char buffer[256];    while (fgets(buffer, sizeof(buffer), file) != NULL) {        sscanf(buffer, '%s %s', users[numUsers].username, users[numUsers].password);        numUsers++;    }

// 重置文件指针到文件开头    rewind(file);

// 加载设备信息    while (fgets(buffer, sizeof(buffer), file) != NULL) {        sscanf(buffer, '%s %s %s %s %s %s %s %s', devices[numDevices].name, devices[numDevices].model,            devices[numDevices].purchase_date, devices[numDevices].location, devices[numDevices].owner,            devices[numDevices].borrower, devices[numDevices].borrow_date, devices[numDevices].return_date);        numDevices++;    }

fclose(file);}

int main() { loadFromFile();

int choice;    do {        printf('欢迎使用设备管理系统,请选择操作:

'); printf('1. 添加设备 '); printf('2. 修改设备 '); printf('3. 删除设备 '); printf('4. 添加用户 '); printf('5. 删除用户 '); printf('6. 查询设备 '); printf('7. 申请借用设备 '); printf('8. 显示所有设备 '); printf('0. 退出 ');

    scanf('%d', &choice);

    switch (choice) {        case 1:            addDevice();            break;        case 2:            modifyDevice();            break;        case 3:            deleteDevice();            break;        case 4:            addUser();            break;        case 5:            deleteUser();            break;        case 6:            searchDevice();            break;        case 7:            borrowDevice();            break;        case 8:            displayDevices();            break;        case 0:            break;        default:            printf('无效的选择。

'); } } while (choice != 0);

saveToFile();

return 0
设备管理系统:C语言实现设备信息管理及用户管理

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

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