博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
应用程序设计:图书管理系统模板(链表+文件)
阅读量:4608 次
发布时间:2019-06-09

本文共 21625 字,大约阅读时间需要 72 分钟。

概述

        主要包括图书的库存信息,每一本书的借阅信息以及每一个人的借书信息。
系统功能:
    (1)借阅资料管理(对相关资料进行添加,删除,修改,查询等操作)
    (2)借阅管理(包括借出操作,还书操作)
    (3)读者管理(读者等级:可分为教师,学生。并定义每类读者可借书数量)
    (4)统计分析(当前借阅和相关资料状态。统计分析借阅排行榜,资料状态统计,借阅统计,显示所有至当日到期未还书信息等功能分析)

如果觉得链表麻烦的话可以使用(数组+文件):

管理员用户名和密码都是admin

#include 
#include
#include
#include
#include
#include
#include
#include
#include
using namespace std;typedef struct books //书籍编号————(作者,名称,出版时间,价格)与书籍编号一一对应,否则为新一类书{ //数量 int book_id; char author[50], book_name[50]; int time, count; double price; struct books *next;} BOOK, *Pbook;typedef struct have_been_borrowed //已借出的图书信息,书籍编号,借书编号,借书数量,书名,所借人的账号名{ int book_id; int borrowed_book_id; int count; char book_name[50]; char student_id[50]; struct have_been_borrowed *next;} BORROW, *Pborrow;typedef struct users //用户信息:用户id,账户名,密码,所借书的上限{ long long int user_id; char user_name[50]; char passwd[50]; int book_limit; int job; struct users *next;} USERS, *Pusers;Pusers user_now = NULL;/**************************以下为函数声明**********************************/void user_error(); //无用户信息的错误提示int read_books_information_to_file(Pbook head, Pborrow head2, Pusers head3); //文件的读取void welcome(); //欢迎界面void null_error(); //图书库为空的报错信息void list_borrow(Pborrow head); //打印已借图书信息void addbook(struct books *head); //添加书籍信息void list(Pbook head); //打印所有书籍信息int search(Pbook head); //搜寻书籍信息int modify(Pbook p); //搜寻结束后可进行查找int del(Pbook before, Pbook will_be_del); //删除该图书信息int borrow(Pbook head, Pborrow borrowed); //借书功能void return_book_list(Pborrow head, Pbook origin); //还书的列表(便于控制函数的调用)int return_book(Pborrow head_list, Pbook origin); //还书功能int return_book_by_student_id(Pborrow head, Pbook origin); //通过学号还书void add_borrow(Pbook d, Pborrow head, int a, int b, int c, char name[], char book_name[]); //已借的书的添加void borrowor(Pbook head, Pborrow borrowed); //借书菜单void del_user(Pusers head); //删除用户int add_users(Pusers head); //增加用户void user_list(Pusers head); //打印所有用户信息int user_manage(Pusers head); //用户管理主列表int save_books_information_to_file(Pbook head, Pborrow head2, Pusers head3); //文件的保存/**************************以上为函数声明**********************************//***************************图书基础功能***********************************/int read_books_information_to_file(Pbook head, Pborrow head2, Pusers head3){ FILE *p = fopen("books_information.dat", "r"), *q = fopen("borrowed_books.dat", "r"); FILE *u = fopen("users_information.dat", "r"); if (p == NULL || q == NULL || u == NULL) { cout << "文件不存在。。。" << endl << "已重建相关文件" << endl; system("pause"); system("cls"); return 1; } Pbook books_head = head; Pborrow borrowed_head = head2; Pusers users_head = head3; int a, b, k; char name[50]; char author[50]; double price; while (fscanf(p, "%d%s%s%d%lf%d", &a, name, author, &k, &price, &b) != EOF) { Pbook before = (Pbook)malloc(sizeof(BOOK)); before->book_id = a; strcpy(before->book_name, name); strcpy(before->author, author); before->count = b; before->time = k; before->price = price; books_head->next = before; before->next = NULL; books_head = before; } int c, d, e; char borrow_name[50]; char student_id[50]; while (fscanf(q, "%d%s%d%d%s", &c, borrow_name, &d, &e, &student_id) != EOF) { Pborrow after = (Pborrow)malloc(sizeof(BORROW)); after->book_id = c; strcpy(after->book_name, borrow_name); after->borrowed_book_id = d; after->count = e; strcpy(after->student_id, student_id); borrowed_head->next = after; after->next = NULL; borrowed_head = after; } long long user_id; char user_name[50]; char passwd[50]; int book_limit; int job; while (fscanf(u, "%lld%s%s%d%d", &user_id, user_name, passwd, &book_limit,&job) != EOF) { Pusers english = (Pusers)malloc(sizeof(USERS)); english->user_id = user_id; strcpy(english->user_name, user_name); strcpy(english->passwd, passwd); english->book_limit = book_limit; english->job=job; users_head->next = english; english->next = NULL; users_head = english; } fclose(p); fclose(q); fclose(u); return 0;}int save_books_information_to_file(Pbook head, Pborrow head2, Pusers head3){ system("cls"); FILE *p = fopen("books_information.dat", "w"); FILE *bore = fopen("borrowed_books.dat", "w"); FILE *u = fopen("users_information.dat", "w"); if (p == NULL ) { cout << "打开文件失败!!!,请重试。。。" << endl; return 1; } if ( bore == NULL) { cout << "打开文件失败!!!,请重试。。。" << endl; return 1; } if ( u == NULL) { cout << "打开文件失败!!!,请重试。。。" << endl; return 1; } Pbook q = head->next; Pborrow w = head2->next; Pusers eng = head3->next; cout << "正在写入文件,请稍后。。。" << endl; Sleep(1500); while (q != NULL) { fprintf(p, "%d %s %s %d %f %d\n", q->book_id, q->book_name, q->author, q->time, q->price, q->count); q = q->next; } while (w != NULL) { fprintf(bore, "%d %s %d %d %s\n", w->book_id, w->book_name, w->borrowed_book_id, w->count, w->student_id); w = w->next; } while (eng != NULL) { fprintf(u, "%lld %s %s %d %d\n", eng->user_id, eng->user_name, eng->passwd, eng->book_limit,eng->job); eng = eng->next; } system("cls"); cout << "写入完成。请稍后。。。" << endl; fclose(p); fclose(bore); fclose(u); return 0;}void list_borrow(Pborrow head){ if (head->next == NULL) { system("cls"); cout << "数据库无借阅信息" << endl; cout << "请按回车退出 。。。" << endl; getchar(); getchar(); return; } system("cls"); for (int i = 0; i < 56; i++) printf("*"); printf("\n"); printf("* %11s", "借阅编号"); printf("%11s", "图书编号"); printf("%10s", "借阅数量"); printf("%18s *\n", "借阅者账号"); Pborrow p = head->next; while (p != NULL) { printf("* %11d", p->borrowed_book_id); printf("%11d", p->book_id); printf("%10d", p->count); printf("%18s *\n", p->student_id); p = p->next; } for (int i = 0; i < 56; i++) printf("*"); cout << endl << "输入回车继续。。。" << endl; getchar(); getchar(); system("cls");}void addbook(struct books *head){ int id, time, count; char name[50], author[50]; double price; struct books *q = head; while (1) { system("cls"); cout << "请输入书籍编号" << endl; cin >> id; cout << "请输入书籍名称" << endl; scanf("%s", name); cout << "请输入作者名字" << endl; scanf("%s", author); cout << "请输入出版时间" << endl; cin >> time; cout << "请输入书籍价格" << endl; cin >> price; cout << "请输入书籍数量" << endl; cin >> count; while (q->next != NULL) { if (id == q->next->book_id && strcmp(name, q->next->book_name) == 0 && strcmp(author, q->next->author) == 0) { if (time == q->next->time && price == q->next->price) { q->next->count += count; system("cls"); cout << "图书添加成功。。。" << endl; Sleep(1000); system("cls"); break; } } q = q->next; } if (q->next == NULL) { struct books *p; p = (struct books *)malloc(sizeof(struct books)); q->next = p; p->next = NULL; p->book_id = id; p->count = count; p->price = price; p->time = time; strcpy(p->book_name, name); strcpy(p->author, author); cout << "图书添加成功。。。" << endl; Sleep(1000); } system("cls"); int in; cout << "是否要继续?" << endl << "*****************" << endl << "* 1.继续 *" << endl << "* 0.结束 *" << endl << "*****************" << endl; cin >> in; if (in == 0) return; }}void null_error(){ system("cls"); cout << "数据库无图书信息,请先添加图书信息" << endl; cout << "请按回车退出搜索。。。" << endl; system("pause");}void list(Pbook head){ if (head->next == NULL) { null_error(); return; } system("cls"); for (int i = 0; i < 70; i++) printf("*"); printf("\n"); printf("* %8s", "图书编号"); printf("%14s", "图书名称"); printf("%10s", "作者"); printf("%14s", "时间"); printf("%10s", "价格"); printf("%10s *\n", "数量"); Pbook p = head->next; while (p != NULL) { printf("* %8d", p->book_id); printf("%14s", p->book_name); printf("%10s", p->author); printf("%14d", p->time); printf("%10.2f", p->price); printf("%10d *\n", p->count); p = p->next; } for (int i = 0; i < 70; i++) printf("*"); cout << endl << "输入回车继续。。。" << endl; system("pause"); system("cls");}/*************************图书查找,修改,删除功能区*******************************/int search(Pbook head){ int want_to_search, flag; while (1) { Pbook p = head->next, before = head; flag = 0; if (head->next == NULL) { null_error(); return 0; } system("cls"); cout << "请输入要搜索的图书编号:"; cin >> want_to_search; system("cls"); cout << "正在寻找,请稍后。。。"; while (p != NULL) { if (p->book_id == want_to_search) { system("cls"); flag = 1; break; } before = p; p = p->next; } if (flag == 0) { system("cls"); cout << "未查找到相应图书信息\n"; cout << "接下来要做什么?" << endl << "\t1.继续查找" << endl << "\t0.结束" << endl; int in; cin >> in; if (in == 1) continue; else return 0; } else { int in; system("cls"); cout << "已找到相关图书,接下来要做什么?" << endl; while (1) { int flag1 = 0; cout << "******************************" << endl; cout << "* 1.打印相关图书信息 *" << endl; cout << "* 2.对相关图书进行修改 *" << endl; cout << "* 3.删除该图书信息 *" << endl; cout << "* 4.继续查找 *" << endl; cout << "* 0.退出 *" << endl; cout << "******************************" << endl; cin >> in; switch (in) { case 1: system("cls"); for (int i = 0; i < 70; i++) printf("*"); printf("\n* %8s", "图书编号"); printf("%14s", "图书名称"); printf("%10s", "作者"); printf("%14s", "时间"); printf("%10s", "价格"); printf("%10s *\n", "数量"); printf("* %8d", p->book_id); printf("%14s", p->book_name); printf("%10s", p->author); printf("%14d", p->time); printf("%10.2f", p->price); printf("%10d *\n", p->count); for (int i = 0; i < 70; i++) printf("*"); cout << endl << "输入以回车继续。。。"; getchar(); getchar(); system("cls"); flag = 0; break; case 2: if (modify(p) == 1) { flag1 = 1; break; } else { flag1 = 0; break; } case 3: if (del(before, p) == 1) { return 1; } else { return 0; } case 4: flag1 = 1; break; case 0: return 0; } if (flag1 == 1) break; else { system("cls"); cout << "还需要做什么?" << endl; continue; } } } }}int del(Pbook before, Pbook will_be_del){ before->next = will_be_del->next; free(will_be_del); system("cls"); cout << "该图书信息已被删除" << endl << "你还需要做什么?" << endl; while (1) { cout << "**********************" << endl << "* 1.继续搜索 *" << endl << "* 0.退出搜索 *" << endl << "**********************" << endl; int in; cin >> in; if (in == 1) { return 1; } else if (in == 0) return 0; else { cout << "输入错误,请重新选择" << endl; continue; } }}int modify(Pbook p){ system("cls"); cout << "您需要做什么?" << endl; int in; while (1) { cout << "*************************" << endl; cout << "* 1.修改图书名称 *" << endl; cout << "* 2.修改作者 *" << endl; cout << "* 3.修改出版时间 *" << endl; cout << "* 4.修改价格 *" << endl; cout << "* 5.修改数量 *" << endl; cout << "* 6.回到上一目录 *" << endl; cout << "* 0.退出 *" << endl; cout << "*************************" << endl; cin >> in; system("cls"); switch (in) { case 1: cout << "原有的图书名称为:" << p->book_name << endl << "请键入修改后的名称:"; scanf("%s", p->book_name); break; case 2: cout << "原有的作者为:" << p->author << endl << "请键入修改后的作者:"; scanf("%s", p->author); break; case 3: cout << "原有的出版时间为:" << p->time << endl; cout << "请键入修改后的时间:"; cin >> p->time; break; case 4: cout << "原有的价格为:" << p->price << endl; cout << "请键入修改后的价格:"; cin >> p->price; break; case 5: cout << "原有的数量为:" << p->count << endl; cout << "请键入修改后的数量:"; cin >> p->count; break; case 6: return 0; break; case 0: return 1; break; } system("cls"); cout << "信息修改成功,按回车继续。。。" << endl; system("pause"); system("cls"); cout << "您还需要做什么?" << endl; }}/************************************借阅功能区**************************************************/void borrowor(Pbook head, Pborrow borrowed){ system("cls"); if (head->next == NULL) { null_error(); return; } int in; cout << "您要做什么" << endl; while (1) { cout << "***************************" << endl << "* 1.借阅图书 *" << endl << "* 2.归还图书 *" << endl << "* 0.退出 *" << endl << "***************************" << endl; cin >> in; int tsl; switch (in) { case 1: tsl = borrow(head, borrowed); while (tsl != 0) { tsl = borrow(head, borrowed); } break; case 2: return_book_list(borrowed, head); break; case 0: return; } system("cls"); cout << "您还需要做什么?" << endl; }}int borrow(Pbook head, Pborrow borrowed){ system("cls"); cout << "请输入搜寻根据" << endl; cout << "*************************" << endl << "* 1.图书编号 *" << endl << "* 2.图书名称 *" << endl << "* 3.图书作者 *" << endl << "* 0.退出 *" << endl << "*************************" << endl; int in; cin >> in; system("cls"); int want_to_find_num; char want_to_find_name[50]; char want_to_find_author[50]; switch (in) { case 1: cout << "请输入图书编号:"; cin >> want_to_find_num; break; case 2: cout << "请输入图书名称:"; cin >> want_to_find_name; break; case 3: cout << "请输入图书作者:"; cin >> want_to_find_author; break; case 0: return 0; } Pbook p = head->next; int flag2 = 0; while (p != NULL) { switch (in) { case 1: if (want_to_find_num == p->book_id) flag2 = 1; break; case 2: if (strcmp(want_to_find_name, p->book_name) == 0) flag2 = 1; break; case 3: if (strcmp(want_to_find_author, p->author) == 0) flag2 = 1; break; } if (flag2 == 1) break; p = p->next; } if (flag2 == 0) { system("cls"); cout << "未找到相关图书,是否借阅其它图书?" << endl; cout << "********************" << endl << "* 1.继续 *" << endl << "* 0.结束 *" << endl << "********************" << endl; int intwice; cin >> intwice; if (intwice == 1) return 1; else return 0; } else { system("cls"); if (p->count == 0) { cout << "该图书暂时缺货" << endl << "****************" << endl << "* 1.继续借阅 *" << endl << "* 0.退出 *" << endl << "****************" << endl; int in; cin >> in; if (in == 1) return 1; else return 0; } cout << "已找到该图书,"; while (1) { cout << "目前此书还有" << p->count << "本" << endl << "你现在还可以借阅" << user_now->book_limit << "本书" << endl << "请输入借阅数量(输入0为取消借阅):" << endl; int borrow_count; cin >> borrow_count; system("cls"); if (borrow_count > p->count) { cout << "没这么多书!!!" << endl << "************************" << endl << "* 1.输入其他数量 *" << endl << "* 2.借阅其他图书 *" << endl << "* 0.取消借阅 *" << endl << "************************" << endl; int choose_book; cin >> choose_book; if (choose_book == 2) return 1; else if (choose_book == 0) return 0; else { system("cls"); continue; } } else { p->count -= borrow_count; user_now->book_limit -= borrow_count; add_borrow(p, borrowed, p->book_id, p->book_id * 10000 + p->count, borrow_count, user_now->user_name, p->book_name); cout << "借阅成功,请按时归还。" << endl << "输入回车以继续。。。"; getchar(); return 0; } system("cls"); } } return 0;}void add_borrow(Pbook d, Pborrow head, int a, int b, int c, char name[], char book_name[]){ Pborrow p = head; while (p->next != NULL) p = p->next; Pborrow q = (Pborrow)malloc(sizeof(BORROW)); q->book_id = a; strcpy(q->book_name, book_name); q->borrowed_book_id = b; q->count = c; strcpy(q->student_id, name); p->next = q; q->next = NULL; cout << "请记录您的借书编号:" << b << endl; cout << "请按下回车继续。。。"; getchar(); getchar(); system("cls"); return;}void return_book_list(Pborrow head, Pbook origin){ system("cls"); cout << "请选择:" << endl << "**************************" << endl << "* 1.通过学号还书 *" << endl << "* 2.通过编号还书 *" << endl << "* 0.退出 *" << endl << "**************************" << endl; int in; cin >> in; system("cls"); if (in == 1) { return_book_by_student_id(head, origin); } else if (in == 2) { return_book(head, origin); } else return;}int return_book_by_student_id(Pborrow head, Pbook origin){ system("cls"); char student_id[50]; int flag = 0; cout << "请输入您的帐号:"; cin >> student_id; system("cls"); Pborrow p = head->next; while (p != NULL) { if (strcmp(p->student_id, student_id) == 0) { if (flag == 0) { flag = 1; cout << "****************************************************************" << endl << "* 借书编号 书籍名称 借书数量 借书者学号 *" << endl; } printf("*%10d", p->borrowed_book_id); printf("%14s", p->book_name); printf("%14d", p->count); printf("%18s *\n", p->student_id); } p = p->next; } if (flag == 1) { cout << "****************************************************************" << endl; return_book(head, origin); return 0; } else { system("cls"); cout << "您没有借过书" << endl << "按下回车继续。。。" << endl; getchar(); getchar(); system("cls"); return 0; }}int return_book(Pborrow head_list, Pbook origin){ int return_id; cout << "请输入您的借书编号以还书(输入0取消还书):"; cin >> return_id; if (return_id == 0) { system("cls"); cout << "取消成功" << endl; system("pause"); return 0; } int flag = 0; Pborrow p = head_list->next, before = head_list; while (p != NULL) { if (p->borrowed_book_id == return_id) { flag = 1; break; } before = p; p = p->next; } system("cls"); if (flag == 0) { cout << "借书编号有误,请重新输入" << endl; cout << "按下回车继续"; getchar(); getchar(); system("cls"); return 1; } else { origin->count += p->count; user_now->book_limit += p->count; before->next = p->next; free(p); cout << "归还成功。。。"; Sleep(2000); system("cls"); } return 0;}int fix_passwd_by_oneself(){ system("cls"); while (1) { cout << "请输入修改后的密码:"; char passwd_now[50], again[50]; cin >> passwd_now; cout << "请再次输入密码:"; cin >> again; if (strcmp(passwd_now, again) == 0) { strcpy(user_now->passwd, passwd_now); cout << "密码修改成功。。。" << endl; system("pause"); return 0; } else { cout << "两次输入密码不一致。。。" << endl; system("pause"); } }}/*****************************************用户管理***********************************************/char administrator[50] = "admin";char admin_passwd[50] = "admin";int user_judge(Pusers head){ system("cls"); char user_id[50]; cout << "请输入您的账号:"; cin >> user_id; if (strcmp(administrator, user_id) == 0) { cout << "请输入密码:"; char passwd[50]; cin >> passwd; if (strcmp(passwd, admin_passwd) == 0) return 2; //权限为2,即最高权限————管理员 } Pusers p = head->next; while (p != NULL) { if (strcmp(p->user_name, user_id) == 0) { char passwd[50]; cout << "请输入密码:"; cin >> passwd; int count_limit = 3; while (count_limit--) { if (strcmp(passwd, p->passwd) == 0) { user_now = p; return 1; } //权限为1,为用户权限 } return 0; //权限为0,即未登录,没有权限 } p = p->next; } cout << "暂未收录该用户信息,请联系管理员。。。" << endl; system("pause"); return 0;}void user_error(){ system("cls"); cout << "暂未收录任何用户信息" << endl; system("pause");}void del_user(Pusers head){ if (head->next == NULL) { user_error(); return; } cout << "请输入要注销用户编号:"; long long id; cin >> id; Pusers p = head; while (p->next != NULL) { if (id == p->user_id) { break; } p = p->next; } if (p->next == NULL) { cout << "该用户不存在。。。" << endl; system("pause"); return; } p->next = p->next->next; free(p->next); cout << "用户删除成功。。。" << endl; system("pause"); return;}int add_users(Pusers head){ system("cls"); Pusers p = head; while (p->next != NULL) { p = p->next; } while (1) { system("cls"); Pusers q = (Pusers)malloc(sizeof(USERS)); p->next = q; q->next = NULL; char idid[50]; int flag = 1; while (flag) { cout << "请输入用户编号(编号为数字):"; cin >> idid; q->user_id=0; long long ten=1; for (int i = strlen(idid)-1; i >=0 ; i--) { if (idid[i] >= '0' && idid[i] <= '9') { q->user_id +=( idid[i] - '0')*ten; flag = 0; ten*=10; } else { flag = 1; break; } } if (flag == 1) { system("cls"); cout << "编号为数字!!!" << endl; cout << "编号为数字!!!" << endl; cout << "编号为数字!!!" << endl; system("pause"); system("cls"); } } flag = 1; while (flag) { cout << "请输入账号:"; scanf("%s", q->user_name); if (strcmp(q->user_name, "admin") == 0) { cout << "账号不能为admin" << endl; system("pause") } Pusers chongfu = head->next; while (chongfu != NULL) { if (strcmp(q->user_name, chongfu->user_name) == 0) { break; } } if (chongfu == NULL) { flag = 0; } else { cout << "用户名已存在" << endl; system("pause"); system("cls"); } } cout << "请输入密码:"; scanf("%s", q->passwd); cout << "用户身份:" << endl << "1.学生" << endl << "2.老师" << endl; int job; cin >> job; q->book_limit = job * 10; q->job=job; p->next = q; p = p->next; system("cls"); cout << "添加成功。。。" << endl; system("pause"); system("cls"); cout << "是否继续添加?" << endl << "1.是" << endl << "0.否" << endl; cin >> job; system("cls"); if (job == 0) { return 0; } }}void user_list(Pusers head){ system("cls"); if (head->next == NULL) { user_error(); return; } Pusers p = head->next; printf("%10s%16s%16s\n", "用户编号", "用户名", "身份"); while (p != NULL) { char job[50]; if (p->job == 1) { strcpy(job, "学生"); } else strcpy(job, "老师"); printf("%10d", p->user_id); printf("%16s", p->user_name); printf("%16s\n", job); p = p->next; } system("pause"); system("cls");}int user_manage(Pusers head){ system("cls"); cout << "1.增加用户" << endl << "2.注销用户" << endl << "3.所有用户" << endl << "0.退出" << endl; cout << "请选择:"; int in; cin >> in; switch (in) { case 1: add_users(head); break; case 2: del_user(head); break; case 3: user_list(head); break; case 0: return 0; }}/*****************************************主函数区***********************************************/void welcome(int root){ if (root == 1) { cout << "1.所有图书" << endl << "2.借还图书" << endl << "3.更改密码" << endl << "0.退出" << endl; } else if (root == 2) { cout << "1.增加图书" << endl << "2.所有图书" << endl << "3.搜索图书" << endl << "4.用户管理" << endl << "5.查看所有已借图书" << endl << "0.退出" << endl; } printf("请输入相应序号:");}int main(){ int n; BOOK headd; BORROW borrowedd; Pbook head = &headd; Pborrow borrowed = &borrowedd; USERS user_head; Pusers puser = &user_head; headd.next = NULL; borrowedd.next = NULL; user_head.next = NULL; read_books_information_to_file(head, borrowed, puser); int root = user_judge(puser); system("cls"); while (root == 0) { cout << "\t1.继续登陆" << endl << "\t0.退出" << endl; cout << "\t请选择:"; int in; cin >> in; if (in == 0) { cout << "感谢使用。。。" << endl; Sleep(1000); return 0; } else { root = user_judge(puser); } } welcome(root); int ffllaagg; if (root == 1) //普通用户选项 { while (cin >> n) { if (n == 0) { system("cls"); // cout << "感谢您的使用." << endl; break; ; } switch (n) { case 1: list(head); break; case 2: borrowor(head, borrowed); break; case 3: fix_passwd_by_oneself(); break; } system("cls"); cout << "你还要做什么:" << endl; welcome(root); } } else if (root == 2) { while (cin >> n) { if (n == 0) { system("cls"); // cout << "感谢您的使用." << endl; break; ; } switch (n) { case 1: addbook(head); break; case 2: list(head); break; case 3: ffllaagg = search(head); while (ffllaagg) { ffllaagg = search(head); } break; case 4: user_manage(puser); break; case 5: list_borrow(borrowed); break; } system("cls"); cout << "您还需要做什么" << endl; welcome(root); } } system("cls"); save_books_information_to_file(head, borrowed, puser); system("pause"); return 0;}

 

 

转载于:https://www.cnblogs.com/howxcheng/p/10497554.html

你可能感兴趣的文章