当前位置: 首页 > news >正文

晋城网站设计人哪些网站可以做公司制度

晋城网站设计人,哪些网站可以做公司制度,如何创建一个网站链接,wordpress数据连接失败1223注意#xff1a;需要提前创建对应的.dat文件 本项目实现了数据的永久存储#xff0c;有用户的注册、登录。 管理员对卡丁车的管理、查看预约用户、修改帐户权限。 用户对个人信息的管理、查看并预约卡丁车、卡丁车维修上报。 维修员对卡丁车的维修状态上报、个人信息管理。 …注意需要提前创建对应的.dat文件 本项目实现了数据的永久存储有用户的注册、登录。 管理员对卡丁车的管理、查看预约用户、修改帐户权限。 用户对个人信息的管理、查看并预约卡丁车、卡丁车维修上报。 维修员对卡丁车的维修状态上报、个人信息管理。 登录信息页面 login.h // // Created by SGCNB666 on 2024/12/27. //#ifndef GO_KARTS_LOGIN_H #define GO_KARTS_LOGIN_H#include stdio.h #include stdlib.h #include string.h// 账户机构提 typedef struct User {char username[20]; // 用户名char password[20]; // 密码char permission; // 权限 }User;// 用户个人信息 typedef struct UserPerson {char name[20]; //用户名char phone[15]; //电话int kart_booknot; //预约卡丁车编号 }UserPerson;// 用户链表 typedef struct UserList {User data; // 用户信息struct UserList *next; // 指向下一个用户 }UserList;// 用户个人信息链表 typedef struct UserPersonList {UserPerson data; //用户个人信息struct UserPersonList *next; //指向下一个用户个信息 }UserPersonList;/*** 登录验证* */ UserList* user(UserList *head);/*** 注册* */ int enroll_user(UserList **head);/*** 插入用户* */ int init_user_list(UserList **head, User user);/*** 用户信息的添加* */ void add_user_person(UserPersonList **head, UserList *user);/*** 创建用户个人信息* */ int init_user_Person_list(UserPersonList **head, UserPerson *userPerson);/*** 销毁用户列表* */ void destroy_user_list(UserList *head);/*** 销毁用户个人信息列表* */ void destroy_user_person_list(UserPersonList *head);/*** 保存用户列表到文件* */ void save_user_file(UserList *head);/*** 保存用户个人信息列表到文件* */ void save_user_person_file(UserPersonList *head);/*** 从文件加载用户列表* */ void load_user_file(UserList **head);/*** 从文件加载用户个人信息列表* */ void load_user_person_file(UserPersonList **head);/*** 程序欢迎界面* */ void login_welcome();/*** 登录主界面* */ UserList* login(UserList **head);/*** 输出用户列表* */ void print_user_list(UserList *head);#endif //GO_KARTS_LOGIN_H login.c #include login.h/*** 登录验证* */ UserList* user(UserList *head) {UserList *p head; // p指向头节点User user; // 用户信息printf(请输入用户名);scanf(%s, user.username); // 输入用户名printf(请输入密码);scanf(%s, user.password); // 输入密码while(p) // 遍历链表{if(!strcmp(p-data.username, user.username) !strcmp(p-data.password, user.password)) // 用户名和密码都正确{return p;}p p-next; // p指向下一个节点}return NULL; }/*** 注册* */ int enroll_user(UserList **head) {User user; // 用户信息UserList *p *head; // p指向头节点int flag 1; // 标志位while(flag) // 循环输入用户名{printf(请输入用户名);scanf(%s, user.username); // 输入用户名while (p){if(!strcmp(p-data.username, user.username)) // 用户名已存在{printf(用户名已存在请重新输入\n);flag 1;break;}flag 0; // 没有找到相同的用户名更改标志位p p-next; // p指向下一个节点}p *head; // p重新指向头节点}printf(请输入密码);scanf(%s, user.password); // 输入密码if(strcmp(user.username, admin)) // 如果是管理员管理员有且仅有admin一个{user.permission A; // 管理员权限}else{user.permission U; // 否则是用户权限}if( init_user_list(head, user) ) // 插入用户{return -1;}return 0; }/*** 插入用户* */ int init_user_list(UserList **head, User user) {UserList *pNew (UserList *)malloc(sizeof (UserList)); // 分配内存UserList *p *head; // p指向头节点if(!pNew) // 分配内存失败{perror(内存分配失败);return -1;}if(*head ! NULL) // 链表不为空{while(p-next) // 遍历链表{p p-next; // p指向下一个节点}p-next pNew; // p指向新节点pNew-data user; // 插入用户信息pNew-next NULL; // 新节点的next指向NULLreturn 0;}pNew-next NULL; // 新节点的next指向NULLpNew-data user; // 插入用户信息*head pNew; // 头节点指向新节点return 0; }/*** 用户信息的添加* */ void add_user_person(UserPersonList **head, UserList *user) {UserPersonList *p *head; // p指向头节点while(p) // 遍历链表{if(!strcmp(p-data.name, user-data.username)) // 找到相同的用户名{return;}p p-next; // p指向下一个节点}UserPerson userPerson; // 用户个人信息printf(您是第一次登录请完善个人信息\n);strcpy(userPerson.name ,user-data.username); // 用户名userPerson.kart_booknot 0; // 默认没有预约默认为01表示已经被预约printf(请输入您的手机号);scanf(%s, userPerson.phone); // 手机号while (getchar()! \n);init_user_Person_list(head, userPerson); // 插入用户个人信息return; }/*** 创建用户个人信息* */ int init_user_Person_list(UserPersonList **head, UserPerson *userPerson) {UserPersonList *pNew (UserPersonList *)malloc(sizeof (UserPersonList)); // 分配内存UserPersonList *p *head; // p指向头节点if(!pNew) // 分配内存失败{perror(内存分配失败);return -1;}if(*head ! NULL) // 链表不为空{while(p-next) // 遍历链表{p p-next; // p指向下一个节点}p-next pNew; // p指向新节点pNew-data *userPerson; // 插入用户个人信息pNew-next NULL; // 新节点的next指向NULLreturn 0;}pNew-next NULL; // 新节点的next指向NULLpNew-data *userPerson; // 插入用户个人信息*head pNew; // 头节点指向新节点return 0; }/*** 销毁用户列表* */ void destroy_user_list(UserList *head) {UserList *p head, *q NULL; // p指向头节点q指向p的前一个节点while(p) // 遍历链表指针尾随{q p; // q指向pp p-next; // p指向下一个节点free(q); // 释放q} }/*** 销毁用户个人信息列表* */ void destroy_user_person_list(UserPersonList *head) {UserPersonList *p head, *q NULL; // p指向头节点q指向p的前一个节点while(p) // 遍历链表指针尾随{q p; // q指向pp p-next; // p指向下一个节点free(q); // 释放q} }/*** 保存用户列表到文件* */ void save_user_file(UserList *head) {FILE *fp; // 文件指针fp fopen(login_user.dat, wb); // 以二进制方式打开文件if(!fp) // 文件打开失败{perror(文件打开失败);return;}UserList *p head; // p指向头节点while(p) // 遍历链表{fwrite((p-data), sizeof(User), 1, fp); // 写入文件每次写入一个用户信息p p-next; // p指向下一个节点}printf(保存成功\n);fclose(fp); // 关闭文件 }/*** 保存用户个人信息列表到文件* */ void save_user_person_file(UserPersonList *head) {FILE *fp; // 文件指针fp fopen(person_info.dat, wb); // 以二进制方式打开文件if(!fp) // 文件打开失败{perror(文件打开失败);return;}UserPersonList *p head; // p指向头节点while(p) // 遍历链表{fwrite((p-data), sizeof(UserPerson), 1, fp); // 写入文件每次写入一个用户信息p p-next; // p指向下一个节点}printf(保存成功\n);fclose(fp); // 关闭文件 }/*** 从文件加载用户列表* */ void load_user_file(UserList **head) {FILE *fp; // 文件指针fp fopen(login_user.dat, rb); // 以二进制方式打开文件if(!fp) // 文件打开失败{perror(文件打开失败);return;}User user; // 用户信息while(fread(user, sizeof (User), 1, fp) 1 ) // 读取文件每次读取一个用户信息{init_user_list(head, user); // 读取用户列表}fclose(fp); // 关闭文件 }/*** 从文件加载用户个人信息列表* */ void load_user_person_file(UserPersonList **head) {FILE *fp; // 文件指针fp fopen(person_info.dat, rb); // 以二进制方式打开文件if(!fp){perror(文件打开失败);return;}UserPerson userPerson1; // 用户信息while(fread(userPerson1, sizeof (UserPerson), 1, fp) 1 ) // 读取文件每次读取一个用户信息{init_user_Person_list( head,userPerson1); // 读取用户列表}fclose(fp); // 关闭文件 }/*** 程序欢迎界面* */ void login_welcome() {system(clear); // 清屏printf(┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓\n);printf(┃ ┃\n);printf(┃ 欢迎进入卡丁车管理系统有系统 ┃\n);printf(┃ ┃\n);printf(┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛\n);printf(按任意键继续...\n);getchar(); }/*** 登录主界面* */ UserList* login(UserList **head) {printf(登录页面\n);UserList* p NULL; // p指向头节点char ch;while(1){system(clear); // 清屏printf(┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓\n);printf(┃ 1.登录 2.注册 3.退出 ┃\n);printf(┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛\n);printf(请选择);scanf(%c, ch);switch (ch){case 1:p user(*head);if( p ){printf(登录成功!\n);return p;}else{printf(密码错误登录失败!\n);}break;case 2:enroll_user(head);break;case 3:{return NULL;}break;case 4:print_user_list(*head);break;default:printf(输入错误请重新输入\n);break;}while (getchar() ! \n);printf(按任意键继续...\n);getchar();} }/*** 打印用户列表* */ void print_user_list(UserList *head) {UserList *p head;while(p){printf(用户名%s\n, p-data.username);printf(密码%s\n, p-data.password);printf(权限%c\n, p-data.permission);p p-next;} } 登录后页面 home_face.h // // Created by SGCNB666 on 2024/12/31. //#ifndef GO_KARTS_HOME_FACE_H #define GO_KARTS_HOME_FACE_H#include stdio.h #include login.h #include user.h #include admin.h #include repair.h/*** 显示管理员主页面*/ void admin_home(UserPersonList* head_person,KartNode** head, UserList* head_user);/*** 显示用户主页面*/ void user_home(UserPersonList* head_person,KartNode* head_kart,UserList *user_List);/*** 显示维修员主页面*/ void repair_home(UserPersonList* head_person,KartNode* head_kart,UserList *user_List);/*** 卡丁车信息界面* */ void karts_info(KartNode** head);/*** 权限管理页面* */ void user_info(UserList* head);/*** 卡丁车预约界面* */ void katrs_book(UserPerson* head_person,KartNode* head_kart);/*** 个人信息管理界面* */ void user_person(UserPerson* userPerson, UserList* user_List);/*** 卡丁车报修界面* */ void karts_repair(KartNode* head_kart);/*** 修改密码* */ void change_password(UserList* user);#endif //GO_KARTS_HOME_FACE_H home_face.c // // Created by SGCNB666 on 2024/12/31. //#include home_face.h/*** 显示管理员主界面* */ void admin_home(UserPersonList* head_person,KartNode** head_kart, UserList* head_user) {while(1){system(clear); // 清屏char ch;while (getchar() ! \n);printf(管理员主页面\n);printf(┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓\n);printf(┃ 1.退出 2.卡丁车信息管理 3.权限管理 4.删除用户 ┃\n);printf(┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛\n);printf(请选择);scanf(%c, ch);switch (ch){case 1:save_user_person_file(head_person);save_user_file(head_user);return;break;case 2:karts_info( head_kart);break;case 3:user_info(head_user);break;case 4:delete_User(head_user, head_person);break;default:printf(输入错误请重新输入\n);break;}while (getchar() ! \n);printf(按任意键继续...\n);getchar();}}/*** 显示用户主页面*/ void user_home(UserPersonList* head_person,KartNode* head_kart,UserList *user_List) {while (getchar() ! \n);UserPersonList *p head_person;KartNode *p_kart head_kart;while(p){if(strcmp(p-data.name,user_List-data.username)0){break;}p p-next;}UserPerson *userPerson (p-data);while(1){system(clear); // 清屏char ch;while (getchar()! \n);printf(用户主页面\n);printf(┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓\n);printf(┃ 1.退出 2.卡丁车预约管理 3.个人信息管理 ┃\n);printf(┃ 4.卡丁车报修 5.卡丁车信息查询 ┃\n);printf(┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛\n);printf(请选择);scanf(%c, ch);switch (ch){case 1:user_kart_booknot_save(head_person,head_kart);return;break;case 2:katrs_book(p-data,p_kart);break;case 3:user_person(p-data,user_List);break;case 4:user_kart_repair(p-data,p_kart);break;case 5:print_Kart_list(p_kart);break;default:printf(输入错误请重新输入\n);break;}printf(按任意键继续...\n);while (getchar()! \n);getchar();}}/*** 显示维修员主页面*/ void repair_home(UserPersonList* head_person,KartNode* head_kart,UserList *user_List) {while (getchar() ! \n);UserPersonList *p head_person;KartNode *p_kart head_kart;while(p){if(strcmp(p-data.name,user_List-data.username)0){break;}p p-next;}UserPerson *userPerson (p-data);while (1){system(clear); // 清屏char ch;printf(维修员主页面\n);printf(┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓\n);printf(┃ 1.退出 2.卡丁车报修管理 3.个人信息管理 ┃\n);printf(┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛\n);printf(请选择);scanf(%c, ch);switch (ch){case 1:user_kart_booknot_save(head_person,head_kart);return;break;case 2:karts_repair(head_kart);break;case 3:user_person(p-data,user_List);break;default:printf(输入错误请重新输入\n);break;}}} /*** 卡丁车信息界面* */ void karts_info(KartNode** head) {load_Kart_file(head);while(1){system(clear); // 清屏char ch;while (getchar() ! \n);printf(卡丁车信息管理页面\n);printf(┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓\n);printf(┃ 1.保存退出 2.增加卡丁车信息 3.删除卡丁车信息 ┃\n);printf(┃ 4.修改卡丁车信息 5.查询卡丁车信息 ┃\n);printf(┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛\n);printf(请选择);scanf(%c, ch);switch (ch){case 1:save_Kart_file(*head);return;break;case 2:enroll_Kart(head);break;case 3:delete_Kart(head);break;case 4:modify_Kart(*head);break;case 5:print_Kart_list(*head);break;default:printf(输入错误请重新输入\n);break;}printf(按任意键继续...\n);while (getchar() ! \n);getchar();} }/*** 权限管理页面* */ void user_info(UserList* head) {while(1){system(clear); // 清屏char ch;while (getchar() ! \n);printf(权限身份管理页面\n);printf(┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓\n);printf(┃ 1.保存退出 2.修改用户权限身份标识 ┃\n);printf(┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛\n);printf(请选择);scanf(%c, ch);while (getchar() ! \n);switch (ch){case 1:save_user_file(head);return;break;case 2:revise_User_perm(head);break;default:printf(输入错误请重新输入\n);break;}printf(按任意键继续...\n);while (getchar() ! \n);} }/*** 卡丁车预约界面* */ void katrs_book(UserPerson* userPerson,KartNode* head_kart) {while(1){system(clear); // 清屏char ch;while (getchar() ! \n);printf(预约管理页面\n);printf(┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓\n);printf(┃ 1.退出 2.卡丁车预约 3.卡丁车预约取消 ┃\n);printf(┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛\n);printf(请选择);scanf(%c, ch);while (getchar() ! \n);switch (ch){case 1:return;break;case 2:user_kart_booknot(userPerson,head_kart);break;case 3:user_kart_booknot_cancel(userPerson,head_kart);break;default:printf(输入错误请重新输入\n);break;}printf(按任意键继续...\n);while (getchar() ! \n);} }/*** 个人信息管理界面* */ void user_person(UserPerson* userPerson, UserList* user_List) {while(1){system(clear); // 清屏char ch;while (getchar() ! \n);printf(个人信管理页面\n);printf(┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓\n);printf(┃ 1.退出 2.查看个人信息 3.修改个人信息 4.修改密码 ┃\n);printf(┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛\n);printf(请选择);scanf(%c, ch);while (getchar() ! \n);switch (ch){case 1:save_user_file(user_List);return;break;case 2:if(user_List-data.permission R){print_repair_info(userPerson);}else{print_user_info(userPerson);}break;case 3:revise_user_info(userPerson);break;case 4:change_password(user_List);break;default:printf(输入错误请重新输入\n);break;}printf(按任意键继续...\n);while (getchar() ! \n);} }/*** 卡丁车报修界面* */ void karts_repair(KartNode* head_kart) {while(1){system(clear); // 清屏char ch;while (getchar() ! \n);printf(卡丁车报修管理页面\n);printf(┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓\n);printf(┃ 1.退出 2.查看待报修卡丁车 3.上报维修完成或无法维修进行报废处理 ┃\n);printf(┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛\n);printf(请选择);scanf(%c, ch);while (getchar() ! \n);switch (ch){case 1:save_Kart_file(head_kart);return;break;case 2:repair_karts_info(head_kart);break;case 3:report_repair_info(head_kart);break;default:printf(输入错误请重新输入\n);break;}printf(按任意键继续...\n);while (getchar() ! \n);} }/*** 修改密码* */ void change_password(UserList* user) {printf(请输入新密码);scanf(%s,user-data.password);return; }管理员功能页面 admin.h // // Created by SGCNB666 on 2024/12/31. //#ifndef GO_KARTS_ADMIN_H #define GO_KARTS_ADMIN_H #include stdio.h #include stdlib.h #include login.h// 赛车结构体 typedef struct Kart {int kart_id; // 赛车编号char repair_not; // 是否需要维修char kart_name[20]; // 赛车名称char kart_type[20]; // 赛车类型char kart_color[20]; // 赛车颜色char book_not; // 是否被预定char user_name[20]; // 预定用户 }Kart;// 卡丁车链表 typedef struct KartNode {Kart data;struct KartNode *next; }KartNode;/*** 添加卡丁车信息* */ void enroll_Kart(KartNode **head); /*** 添加卡丁车节点* */ void init_Kart_List(KartNode **head, Kart data);/*** 销毁卡丁车列表* */ void destroy_Kart_list(KartNode *head);/*** 保存卡丁车列表到文件* */ void save_Kart_file(KartNode *head);/*** 从文件加载卡丁车列表* */ void load_Kart_file(KartNode **head);/*** 查询卡丁车列表* */ void print_Kart_list(KartNode *head);/*** 删除卡丁车* */ void delete_Kart(KartNode **head);/*** 修改卡丁车信息* */ void modify_Kart(KartNode *head);/*** 修改用户权限身份* */ void revise_User_perm(UserList *head);/*** 删除用户* */ void delete_User(UserList **head, UserPersonList **head_person);/*** 删除用户信息* */ void delete_User_Person(UserList *head, UserPersonList **head_person);#endif //GO_KARTS_ADMIN_H admin.c // // Created by SGCNB666 on 2024/12/31. //#include admin.h/*** 添加卡丁车信息* */ void enroll_Kart(KartNode **head) {int id; // 生成卡丁车编号KartNode *p *head; // p指向头节点if(!p) // 链表为空{id 1001;}else{while(p){id p-data.kart_id 1; // 生成卡丁车编号p p-next; // p指向下一个节点}}Kart new_kart;new_kart.kart_id id; // 生成卡丁车编号new_kart.repair_not 0; // 初始化是否维修默认不需要维修new_kart.book_not 0; // 初始化是否预约默认不需要预约new_kart.user_name[0] \0; // 初始化预约人为空printf(添加编号为%d的车辆信息\n, id);printf(请输入卡丁车名称);scanf(%s, new_kart.kart_name); // 输入卡丁车名称printf(请输入卡丁车类型);scanf(%s, new_kart.kart_type); // 输入卡丁车类型printf(请输入卡丁车颜色);scanf(%s, new_kart.kart_color); // 输入卡丁车颜色init_Kart_List(head, new_kart); }/*** 添加卡丁车节点* */ void init_Kart_List(KartNode **head, Kart data) {KartNode *pNew (KartNode *)malloc(sizeof(KartNode)); // 分配内存if(!pNew) // 分配内存失败{perror(内存分配失败\n);return;}KartNode *p *head; // p指向头节点if(*head ! NULL) // 链表不为空{while(p-next) // 找到链表的尾节点{p p-next; // p指向下一个节点}p-next pNew; // 尾节点指向新节点pNew-data data; // 新节点数据赋值pNew-next NULL; // 新节点指向空return;}pNew-next NULL; // 新节点指向空pNew-data data; // 新节点数据赋值*head pNew; // 头节点指向新节点return; }/*** 销毁卡丁车列表* */ void destroy_Kart_list(KartNode *head) {KartNode *p head, *q NULL; // p指向头节点q指向尾节点while(p) // 遍历链表{q p; // q指向pp p-next; // p指向下一个节点free(q); // 释放内存} }/*** 保存卡丁车列表到文件* */ void save_Kart_file(KartNode *head) {FILE *fp fopen(karts_info.dat, wb); // 以二进制方式打开文件if(!fp) // 打开文件失败{perror(文件打开失败);return;}KartNode *p head; // p指向头节点while(p) // 遍历链表{fwrite( p-data, sizeof (Kart), 1, fp); // 写入文件p p-next;}printf(保存成功\n);fclose(fp); // 关闭文件return; }/*** 从文件加载卡丁车列表* */ void load_Kart_file(KartNode **head) {FILE *fp fopen(karts_info.dat, rb); // 以二进制方式打开文件if(!fp) // 打开文件失败{perror(文件打开失败);return;}Kart data; // 卡丁车信息while(fread(data, sizeof (Kart), 1, fp)) // 读取文件{init_Kart_List(head, data); // 添加卡丁车节点}fclose(fp); // 关闭文件 }/*** 查询卡丁车列表* */ void print_Kart_list(KartNode *head) {KartNode *p head; // p指向头节点if(!p){printf(卡丁车列表为空\n);return;}printf(卡丁车编号\t卡丁车名称\t卡丁车类型\t卡丁车颜色\t是否维修或报废\t是否预约\t预约人\n);while(p) // 遍历链表{printf(%d\t\t, p-data.kart_id);printf(%s\t\t, p-data.kart_name);printf(%s\t\t, p-data.kart_type);printf(%s\t\t, p-data.kart_color);if(p-data.repair_not 0){printf(%c(无损坏)\t, p-data.repair_not);}else if(p-data.repair_not 1){printf(%c(报修中)\t, p-data.repair_not);}else{printf(%c(已报废)\t, p-data.repair_not);}printf(%c\t\t, p-data.book_not);printf(%s\t\t\n, p-data.user_name);p p-next; // p指向下一个节点} }/*** 删除卡丁车* */ void delete_Kart(KartNode **head) {KartNode *p *head; // p指向头节点if(!p) // 链表为空{printf(卡丁车列表为空\n);}int id;printf(请输入要删除的卡丁车编号);scanf(%d, id); // 输入卡丁车编号KartNode *q NULL; // q置空while(p) // 遍历链表指针尾随{ if(id p-data.kart_id){if(p *head) // 要删除的是头节点{*head p-next; // 头节点后移free(p); // 释放内存return;}else{q-next p-next; // 前一个节点指向后一个节点free(p); // 释放内存return;}}q p; // q指向pp p-next; // p指向下一个节点}printf(卡丁车编号不存在\n);return; }/*** 修改卡丁车信息* */ void modify_Kart(KartNode *head) {KartNode *p head, *q NULL; // p指向头节点q指向尾节点if(!p) // 链表为空{printf(卡丁车列表为空\n);}int id; // 卡丁车编号printf(请输入要修改的卡丁车编号);scanf(%d, id); // 输入卡丁车编号while(p) // 遍历链表{if(id p-data.kart_id) // 找到了要修改的卡丁车{while(1) // 循环修改卡丁车信息{printf(┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓\n);printf(┃ 1.全部修改 2.是否维修 3.卡丁车名称 ┃\n);printf(┃ 4.卡丁车类型 5.卡丁车颜色 6.预约用户名 ┃\n);printf(┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛\n);while(getchar() ! \n); // 清空缓冲区printf(请选择\n);char ch;scanf(%c, ch); // 输入选择while(getchar() ! \n); // 清空缓冲区switch(ch){case 1:printf(请输入卡丁车名称);scanf(%s, p-data.kart_name);printf(请输入卡丁车类型);scanf(%s, p-data.kart_type);printf(请输入卡丁车颜色);scanf(%s, p-data.kart_color);while(getchar() ! \n);printf(请输入是否维修);scanf(%c, p-data.repair_not);while(getchar() ! \n);printf(请输入预约用户名);scanf(%s, p-data.user_name);p-data.book_not 1;while(getchar() ! \n);return;break;case 2:printf(请输入是否维修);scanf(%c, p-data.repair_not);while(getchar() ! \n);return;break;case 3:printf(请输入卡丁车名称);scanf(%s, p-data.kart_name);while(getchar() ! \n);return;break;case 4:printf(请输入卡丁车类型);scanf(%s, p-data.kart_type);while(getchar() ! \n);return;break;case 5:printf(请输入卡丁车颜色);scanf(%s, p-data.kart_color);while(getchar() ! \n);return;break;case 6:printf(请输入预约用户名);scanf(%s, p-data.user_name);p-data.book_not 1;while(getchar() ! \n);return;break;default:printf(不存在该选项请重新输入\n);}printf(按回车健继续...);getchar();}}q p; // q指向pp p-next; // p指向下一个节点}printf(卡丁车编号不存在\n);return; }/*** 修改用户权限身份* */ void revise_User_perm(UserList *head) {UserList *p head; // p指向头节点if(!p) // 链表为空{printf(用户列表为空\n);return;}char username[20]; // 用户名printf(请输入要修改权限的用户名);scanf(%s, username); // 输入用户名while(getchar() ! \n);if(strcmp(username, admin) 0) // 要修改的是admin用户{printf(admin用户是管理员不能修改权限\n);return;}while(p) // 遍历链表{if(strcmp(username, p-data.username) 0) // 找到了要修改的用户{printf(开始修改用户权限(A是普通用户,R是维修员)\n);scanf(%c, p-data.permission);printf(修改成功\n);printf(%s, %s, %c\n, p-data.username, p-data.password, p-data.permission);return;}p p-next; // p指向下一个节点}printf(用户不存在\n);return; }/*** 删除用户* */ void delete_User(UserList **head, UserPersonList **head_person) {printf(请输入想要删除的用户名\n);char username[20];scanf(%s, username);while(getchar()! \n);UserList *p *head;if(strcmp(username, admin) 0) // 要删除的是admin用户{printf(admin用户是管理员不能删除\n);return;}if(!p) // 链表为空{printf(用户列表为空\n);return;}if(strcmp(username, p-data.username) 0) // 要删除的是头节点{delete_User_Person(*head, head_person); // 删除用户信息*head p-next; // 头节点后移free(p); // 释放内存return;}UserList *q NULL;while(p) // 遍历链表{if(strcmp(username, p-data.username) 0) // 找到了要删除的用户{ delete_User_Person(*head, head_person); // 删除用户信息q-next p-next; // 前一个节点指向后一个节点free(p); // 释放内存return;}q p; // q指向pp p-next; // p指向下一个节点}printf(该用户不存在\n);return; }/*** 删除用户信息* */ void delete_User_Person(UserList *user, UserPersonList **head_person) {UserList *p_user user; // p_user指向头节点UserPersonList *p_person *head_person; // p_person指向头节点if(strcmp(p_user-data.username,p_person-data.name) 0) // 要删除的是头节点{*head_person p_person-next; // 头节点后移free(p_person); // 释放内存return;}UserPersonList *q_person NULL; // q_person指向尾节点while(p_person) // 遍历链表{if(strcmp(p_user-data.username,p_person-data.name) 0) // 找到了要删除的用户{q_person-next p_person-next; // 前一个节点指向后一个节点free(p_person); // 释放内存return;}q_person p_person; // q_person指向p_personp_person p_person-next; // p_person指向下一个节点}printf(该用户不存在\n);return; }用户功能页面 user.h // // Created by SGCNB666 on 2024/12/31. //#ifndef GO_KARTS_USER_H #define GO_KARTS_USER_H#include admin.h #include login.h/*** 卡丁车预约* */ void user_kart_booknot(UserPerson *userPerson,KartNode *kart);/*** 卡丁车查询* */ void user_kart_booknot_query(KartNode *kart);/*** 卡丁车预约取消* */ void user_kart_booknot_cancel(UserPerson *userPerson,KartNode *kart);/*** 卡丁车预约信息保存* */ void user_kart_booknot_save(UserPersonList *head,KartNode *kart);/*** 卡丁车预约信息加载* */ void user_kart_booknot_load(UserPersonList **head);/*** 卡丁车报修* */ void user_kart_repair(UserPerson *userPerson,KartNode *kart);/*** 个人信息查询* */ void print_user_info(UserPerson *userPerson);/*** 个人信息修改* */ void revise_user_info(UserPerson *userPerson);#endif //GO_KARTS_USER_H user.c // // Created by SGCNB666 on 2024/12/31. //#include user.h/*** 卡丁车预约* */ void user_kart_booknot(UserPerson *userPerson,KartNode *kart) {KartNode *p kart; // p指向头节点while(p) // 遍历链表{if(!strcmp(userPerson-name,p-data.user_name)) // 判断是否预约过{printf(您已经预约了卡丁车\n);return;}p p-next; // p指向下一个节点}p kart; // p重新指向头节点print_Kart_list(p); // 打印卡丁车列表printf(请输入要预约的卡丁车编号);int num; // 输入的编号scanf(%d, num); // 输入编号while(getchar() ! \n);while(p) // 遍历链表{if(p-data.kart_id num) // 找到了{p-data.book_not 1; // 预约成功userPerson-kart_booknot num; // 修改用户个人信息strcpy(p-data.user_name ,userPerson-name); // 修改车辆信息printf(预约成功\n);return;}p p-next;}printf(查询不到该编号的卡丁车\n);return; }/*** 卡丁车预约查询* */ void user_kart_booknot_query(KartNode *kart) {KartNode *p kart; // p指向头节点print_Kart_list(kart); // 打印卡丁车列表 }/*** 卡丁车预约取消* */ void user_kart_booknot_cancel(UserPerson *userPerson,KartNode *kart) {KartNode *p kart; // p指向头节点print_Kart_list(p); // 打印卡丁车列表printf(请输取消预约的卡丁车编号);int num; // 输入的编号scanf(%d, num);while(getchar() ! \n); // 清空缓冲区while(p) // 遍历链表{ if(p-data.kart_id num) // 找到了{p-data.book_not 0; // 取消预约成功userPerson-kart_booknot 0; // 修改用户个人信息strcpy(p-data.user_name ,); // 修改车辆信息printf(取消预约成功\n); return;}p p-next; // p指向下一个节点}printf(查询不到该编号的卡丁车\n);return; }/*** 卡丁车预约信息保存* */ void user_kart_booknot_save(UserPersonList *head,KartNode *kart) {save_user_person_file(head); // 保存用户个人信息列表到文件save_Kart_file(kart); // 保存卡丁车列表到文件 }/*** 卡丁车预约信息加载* */ void user_kart_booknot_load(UserPersonList **head) {load_user_person_file(head); // 加载用户个人信息列表 }/*** 卡丁车报修* */ void user_kart_repair(UserPerson *userPerson,KartNode *kart) {KartNode *p kart; // p指向头节点print_Kart_list(p); // 打印卡丁车列表printf(请输入要报修的卡丁车编号);int num; // 输入的编号scanf(%d, num); // 输入编号while(getchar() ! \n);while(p) // 遍历链表{if(p-data.kart_id num) // 找到了{p-data.repair_not 1; // 报修成功printf(报修成功\n);return;}p p-next; // p指向下一个节点}printf(查询不到该编号的卡丁车\n);return; }/*** 个人信息查询* */ void print_user_info(UserPerson *userPerson) {printf(个人信息如下\n);printf(用户名%s\n, userPerson-name);printf(手机号%s\n, userPerson-phone);printf(预约卡丁车编号%d\n, userPerson-kart_booknot);return; }/*** 个人信息修改* */ void revise_user_info(UserPerson *userPerson) {printf(请输入新的手机号);scanf(%s, userPerson-phone); // 输入新的手机号while(getchar()! \n);return; } 维修员功能实现 repair.h // // Created by SGCNB666 on 2024/12/31. //#ifndef GO_KARTS_REPAIR_H #define GO_KARTS_REPAIR_H#include admin.h #include user.h #include login.h/*** 显示维修员信息* */ void print_repair_info(UserPerson *userPerson);/*** 显示待维修的车辆信息* */ void repair_karts_info(KartNode *head);/*** 上报维修情况* */ void report_repair_info(KartNode *head);#endif //GO_KARTS_REPAIR_H repair.c // // Created by SGCNB666 on 2024/12/31. //#include repair.h/*** 显示维修员信息* */ void print_repair_info(UserPerson *userPerson) {printf(个人信息如下\n);printf(用户名%s\n, userPerson-name);printf(手机号%s\n, userPerson-phone);return; }/*** 显示待维修的车辆信息* */ void repair_karts_info(KartNode *head) {KartNode *p head; // p指向头节点if(!p) // 如果链表为空{printf(卡丁车列表为空\n);return;}while(p) // 遍历链表{if (p-data.repair_not 1) // 如果需要维修{printf(编号%d\t\t, p-data.kart_id);printf(名称%s\t\t, p-data.kart_name);printf(类型%s\t\t, p-data.kart_type);printf(颜色%s\t\n, p-data.kart_color);}p p-next; // p指向下一个节点} }/*** 上报维修情况* */ void report_repair_info(KartNode *head) {KartNode *p head; // p指向头节点if(!p) // 如果链表为空{printf(卡丁车列表为空\n);return;}printf(请输入你想上报的卡丁车编号);int id; // 输入的编号scanf(%d, id); // 输入编号while(getchar() ! \n);while(p) // 遍历链表{if(id p-data.kart_id) // 找到了{while(getchar()! \n);printf(请输入维修情况(1报废无法维修2维修完成));char ch;scanf(%c, ch); // 输入维修情况if(ch 1){p-data.repair_not 3;printf(维修完成\n);}else if(ch 2){p-data.repair_not 0;printf(维修完成\n);}else{printf(不存在该选项\n);}return;}p p-next; // p指向下一个节点}printf(卡丁车编号不存在\n);return; }主函数main.c /************************************************************************* File Name: main.c Author: sgc Description: 卡丁车管理系统 Created Time: 2024年12月30日 星期一 17时53分14秒************************************************************************/#include stdio.h #include login.h #include home_face.h #include admin.hint main(int argc,char *argv[]) {UserList *head_user NULL;KartNode *head_kart NULL;UserPersonList *head_person NULL;load_user_file(head_user); // 加载用户列表login_welcome(); // 显示欢迎界面UserList *p NULL;p login(head_user); // 登录主界面if(!p) // 判断是否是正常登录{save_user_file(head_user);return 0;}save_user_file(head_user); // 保存用户列表到文件// 显示管理员主界面if(p-data.permission U) // 管理员{load_user_person_file(head_person); // 加载用户个人信息列表save_user_person_file(head_person); // 保存用户个人信息列表到文件admin_home( head_person,head_kart,head_user); // 管理员主界面}else if(p-data.permission A) // 普通用户{load_user_person_file(head_person); // 加载用户个人信息列表add_user_person(head_person, p); // 添加用户个人信息save_user_person_file(head_person); // 保存用户个人信息列表到文件load_Kart_file(head_kart); // 加载卡丁车列表user_home(head_person,head_kart,p); // 用户主界面}else if(p-data.permission R) // 维修员{load_user_person_file(head_person); // 加载用户个人信息列表add_user_person(head_person, p); // 添加用户个人信息save_user_person_file(head_person); // 保存用户个人信息列表到文件load_Kart_file(head_kart); // 加载卡丁车列表repair_home(head_person,head_kart,p); // 维修员主界面}else // 其他{printf(权限错误请联系管理员进行修改\n);}destroy_user_list(head_user); // 销毁用户列表destroy_user_person_list(head_person); // 销毁用户个人信息列表destroy_Kart_list(head_kart); // 销毁卡丁车列表return 0; }
http://www.hkea.cn/news/14460454/

相关文章:

  • 建站技术论坛wordpress 收邮件发布
  • 海兴县做网站价格太平保险网站
  • 广州做网站平台做图素材网站哪个好
  • 网站开发都需要什么工具wordpress用户中心插件破解
  • 网站的seo如何设计个人自助网站
  • 食品加工设备建站方案北京值得去的商场
  • 南京网站制作学校wordpress 当前页码
  • 网址导航网站怎样做网站建设经费预算表
  • 陕西四通建设工程有限责任公司网站大连开发区邮编
  • 商业网站建设目标joomla网站模板
  • 时彩网站开发中职网络营销专业
  • 个人网站推荐免费洛阳制作网站公司
  • 哪个网站做恒生指数最安全mdx wordpress
  • 做百度推广设置网站统计企业网站建设的类型有哪些
  • 交通设施东莞网站建设wordpress迁hexo
  • 天津市城乡和住房建设厅网站猎头公司怎么找
  • 上海商城网站建设公司网站内链工作做足
  • 网站购买空间厦门专业网站设计公
  • 外包公司做的网站怎么改密码域名申请
  • 做地铁系统集成的公司网站企业网站的建设与应用开题报告
  • 许昌建设网站哪家好wordpress速度没织梦快
  • wdcp 修改默认网站中国建筑网官网首页
  • 福州建设企业网站成都网站建设公司司
  • 商机网网站源码什么网站可以做卡首屏淘口令
  • 商城网站建设企业郑州制作个人网站
  • 哈市哪里网站做的好手机膜+东莞网站建设
  • html5快速建站广东app开发公司
  • 苏州专业做网站的公司有哪些建设工程质量协会网站
  • 加氢站个公司好青岛ui设计公司
  • seo网站关键词排名优化公司个人主页源码