C语言程序设计基础--模拟图书管理系统

1. 简单文件数据库-模拟图书馆管理系统

涉及知识点:文件读写、内存管理、结构体定义、基本数据结构、高级格式化输入输出
要求:
编写一个程序模拟图书管理系统。用户分为管理员和读者两类,分别显示不同文本格式菜单,通过菜单项对应数字进行选择。读者菜单包括借书、还书、查询等功能。管理员菜单包括图书和读者信息录入、修改和删除。图书信息至少应包括:编号、书名、数量,读者信息至少应包括:编号、姓名、所借图书。可根据图书名称或编号进行图书信息查询,可查询某本书现在被哪些读者借走。
命令行参数如下:
Libsim –a(-u) xxxx
第一个参数为可执行程序名称;第二个参数为用户身份,-a表示管理员,-u表示读者;第三个参数为用户名

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <time.h>
#include <algorithm>
#include <windows.h>

//书名
typedef struct {
	int   number;
	char  name[20];
	int   totalnumber;
} book;

//读者
typedef struct {
	char name[20];
	char borrowedbook[20][100];
	char password[20];
	int  id;
	int  totalborrownumber = 0;
} reader;

//管理员
typedef struct {
	int  id = 1;
	char name[6] = "admin";
	char password[6] = "admin";
} administrator;

book book_list[100];
reader reader_list[100];
administrator administrator_list;

FILE *readerlist;
FILE *borrowedbooklist;
FILE *booklist;
int readersum = 0;
int booksortsum = 0;
int temp;//用来记录是哪个用户登入
int successful;//用来标记用户是否成功登录

void HideCursor();//隐藏鼠标
void makemenue();//创建初始界面
void makereader();//创建用户(用户注册)
void save_readerlist();//将读者信息从数组中保存到文件;
void load_readerlist();//将读者信息从文件读到数组中
void load_booklist();//所有书籍信息从文件中读到数组中
void save_booklist();//将所有书籍信息从数组拷贝到文件中
void save_borrowbooklist();//将所有借书信息记录到文件
void load_borrowedbooklist();//将借的书读入数组中
void readermenue();//读者菜单
void leadermenue();//管理员界面
void seek_book();//查看所有书
void borrow_book();//用户借书
void return_book();//用户还书
void display_book();//用户查询书籍借阅信息
void signreader();//用户登录
void signleader();//管理员登录;
void diplay_reader();//展示所有用户信息
void changereaderinformation();//管理员修改读者信息
void changbookinformation();//管理员修改书籍信息;

void HideCursor() { //隐藏鼠标
	CONSOLE_CURSOR_INFO cursor;
	cursor.bVisible = FALSE;
	cursor.dwSize = sizeof(cursor);
	HANDLE handle = GetStdHandle(STD_OUTPUT_HANDLE);
	SetConsoleCursorInfo(handle, &cursor);
}

void makemenue() { //创建初始界面
	printf("\t\t*************************************************\n");
	printf("\t\t*                                               *\n");
	printf("\t\t*           欢迎使用图书管理系统                *\n");
	printf("\t\t*                                               *\n");
	printf("\t\t*        登录管理员账号      请按 1             *\n");
	printf("\t\t*        注册用户新账号      请按 2             *\n");
	printf("\t\t*        登录用户账号        请按 3             *\n");
	printf("\t\t*        退出程序            请按 4             *\n");
	printf("\t\t*                                               *\n");
	printf("\t\t*************************************************\n");
}

//创建用户(用户注册)
void makereader() {

	int falg = 0;
	readersum++;
	printf("\t\t请输入需要创建账户的名字(不超过20个字符)\t\t\n");
	char makename[20];
	char password[20];
	scanf("%s", makename);
	for (int i = 0; i < readersum; i++) {
		if (strcmp(reader_list[i].name, makename) == 0) { //    判断该账号是否存在
			printf("该账号已存在,请重新输入\n");
			falg = 1;
			system("pause");
			readersum--;
			return;
		}
	}
	if (falg == 0) {
		printf("请输入你的密码\n");
		scanf("%s", password);
		strcpy(reader_list[readersum - 1].name, makename);
		strcpy(reader_list[readersum - 1].password, password);
		srand(time(NULL));
		reader_list[readersum - 1].id = rand() % (9000) + 1000;
		printf("注册成功");
		system("pause");
		return;
	}
}

//将读者信息从文件读到数组中
void load_readerlist() {

	readersum = 0;
	readerlist = fopen("readerlist.txt", "r");
	fscanf(readerlist, "%*[^\n]%*c");
	while (fscanf(readerlist, "%s %s %d %d\n", reader_list[readersum].name, reader_list[readersum].password,
	              &reader_list[readersum].id, &reader_list[readersum].totalborrownumber) != EOF) {
		readersum++;
	}
	fclose(readerlist);

}

//将读者信息从数组中保存到文件;
void save_readerlist() {
	char a[] = "名字";
	char b[] = "密码";
	char c[] = "id";
	char d[] = "借书数量";
	readerlist = fopen("readerlist.txt", "wt");
	fprintf(readerlist, "%s        %s        %s        %s\n", a, b, c, d);
	for (int i = 0; i < readersum; i++) {
		fprintf(readerlist, "%s                    %s                 %d                 %d\n", reader_list[i].name,
		        reader_list[i].password, reader_list[i].id, reader_list[readersum].totalborrownumber);
	}
//	printf("%d\n",readersum);
	fclose(readerlist);
}

//所有书籍信息从文件中读到数组中
void load_booklist() {

	booksortsum = 0;
	booklist = fopen("booklist.txt", "r");
	fscanf(booklist, "%*[^\n]%*c"); // 跳过第一行
	while (fscanf(booklist, "%d%s%d", &book_list[booksortsum].number, book_list[booksortsum].name,
	              &book_list[booksortsum].totalnumber) != EOF) {
		booksortsum++;
	}
	fclose(booklist);

}

//将所有书籍信息从数组拷贝到文件中
void save_booklist() {

	char a[] = "编号";
	char b[] = "书名";
	char c[] = "书的数量";
	booklist = fopen("booklist.txt", "wt");
	fprintf(booklist, "%s                %s          %s\n", a, b, c);
	for (int i = 0; i < booksortsum; i++) {
		fprintf(booklist, "%d                      %s                 %d\n", book_list[i].number, book_list[i].name,
		        book_list[i].totalnumber);
	}
	fclose(booklist);

}

//将所有借书信息记录到文件
void save_borrowbooklist() {

	char a[] = "借书人";
	char b[] = "书名";
	borrowedbooklist = fopen("borrowedbooklist.txt", "wt");
	fprintf(borrowedbooklist, "%s            %s\n", a, b);
	for (int i = 0; i < readersum; i++) {
		for (int j = 0; j < reader_list[i].totalborrownumber; j++) {
			fprintf(borrowedbooklist, "%s                     %s\n", reader_list[i].name, reader_list[i].borrowedbook[j]);
		}
	}
	fclose(borrowedbooklist);

}

//将借的书读入数组中
void load_borrowedbooklist() {

	int j = 0;

	borrowedbooklist = fopen("borrowedbooklist.txt", "r");
	char bookname[20];
	char readername[20];
	fscanf(borrowedbooklist, "%*[^\n]%*c");
	while (fscanf(borrowedbooklist, "%s %s\n", readername, bookname) != EOF) {
		for (int i = 0; i < readersum; i++) {
			if (strcmp(reader_list[i].name, readername) == 0) {
				strcpy(reader_list[i].borrowedbook[j], bookname);
				reader_list[i].totalborrownumber++;
				j++;
			}
			j = 0;
		}

	}
	fclose(borrowedbooklist);

}

void readermenue() {

	printf("\t\t*************************************************\n");
	printf("\t\t*                                               *\n");
	printf("\t\t*              欢迎进入用户系统                 *\n");
	printf("\t\t*                                               *\n");
	printf("\t\t*              借书          请按 1             *\n");
	printf("\t\t*              还书          请按 2             *\n");
	printf("\t\t*          查看图书馆藏书    请按 3             *\n");
	printf("\t\t*          查看书被谁借走    请按 4             *\n");
	printf("\t\t*              退出          请按 5             *\n");
	printf("\t\t*                                               *\n");
	printf("\t\t*************************************************\n");

}

//管理员界面
void leadermenue() {

	printf("\t\t******************************************************\n");
	printf("\t\t*                                                    *\n");
	printf("\t\t*              欢迎进入管理员系统                    *\n");
	printf("\t\t*                                                    *\n");
	printf("\t\t*           修改图书信息          请按 1             *\n");
	printf("\t\t*           修改用户信息          请按 2             *\n");
	printf("\t\t*          查看图书馆藏书         请按 3             *\n");
	printf("\t\t*          查看书被谁借走         请按 4             *\n");
	printf("\t\t*              退出               请按 5             *\n");
	printf("\t\t*                                                    *\n");
	printf("\t\t******************************************************\n");


}

//查看所有书
void seek_book() {

	printf("\t\t\t编号     书名      书的数量\n");
	for (int i = 0; i < booksortsum; i++) {
		printf("\t\t\t %d        %s         %d\n", book_list[i].number, book_list[i].name, book_list[i].totalnumber);
	}


}

//用户借书
void borrow_book() {

	int flag = 0, flag2 = 0, flag3 = 0;
	int flag4 = 0;
	int a;
	char b[20];
	printf("\t\t\t按书编查询请按1,按书名查询请按2\n");
	scanf("%d", &flag);
	if (flag == 1) {
		printf("\t\t\t请输入书的编号\n");
		scanf("%d", &a);

		for (int i = 0; i < booksortsum; i++) {
			if (a == book_list[i].number) {
				flag3 = 1;
				if (book_list[i].totalnumber == 0) {
					printf("\t\t\t该书目前暂缺\n");
					return;
				} else {
					strcpy(b, book_list[i].name);
//					printf("temp=%d sum=%d\n",temp,readersum);
					for (int j = 0; j < reader_list[temp].totalborrownumber; j++) {
//						printf("number=%d\n",reader_list[temp].totalborrownumber);
//						printf("%s\n",reader_list[temp].borrowedbook[0]);
						if (strcmp(reader_list[temp].borrowedbook[j], b) == 0) {
							printf("\t\t\t你已经借过该书\n");
							flag2 = 1;
							return;
						}
					}
					if (flag2 == 0) {
//	                printf("f=%d\n",flag2);
						book_list[i].totalnumber--;
						strcpy(reader_list[temp].borrowedbook[reader_list[temp].totalborrownumber], book_list[i].name);
						reader_list[temp].totalborrownumber++;
						printf("\t\t\t借书成功!\n");
					}
				}
			}
		}
		if (flag3 == 0) {
			printf("\t\t\t输入编号错误\n");
			return;
		}
	}
	if (flag == 2) {
		printf("\t\t\t请输入书的名字\n");
		scanf("%s", b);

		for (int i = 0; i < booksortsum; i++) {
			if (strcmp(book_list[i].name, b) == 0) {
				if (book_list[i].totalnumber == 0) {
					printf("\t\t\t该书目前暂缺\n");
					return;
				} else {
					for (int j = 0; j < reader_list[temp].totalborrownumber; j++) {
						if (strcmp(reader_list[temp].borrowedbook[j], b) == 0) {
							printf("\t\t\t你已经借过该书\n");
							flag2 = 1;
							return;
						}
					}
					if (flag2 == 0) {
						book_list[i].totalnumber--;
						strcpy(reader_list[temp].borrowedbook[reader_list[temp].totalborrownumber], book_list[i].name);
						reader_list[temp].totalborrownumber++;
						printf("\t\t\t借书成功!\n");
					}
				}
			}
		}
	}

}

//用户还书
void return_book() {

	int a, flag = 0, q;
	int flag1 = 0;
	char b[20];
	char book[20];
	int flag2 = 0;
	printf("\t\t\t按书编还书按1,按书名还书按2\n");
	scanf("%d", &flag);
	if (flag == 1) {
		printf("\t\t\t请输入书的编号\n");
		scanf("%d", &a);
		for (int i = 0; i < booksortsum; i++) {
			if (book_list[i].number == a) {
				strcpy(book, book_list[i].name);
				q = i;
				flag2 = 1;
				break;
			}
		}
	}
	if (flag == 2) {
		printf("\t\t\t请输入书名\n");
		scanf("%s", book);
		for (int i = 0; i < booksortsum; i++) {
			if (strcmp(book, book_list[i].name) == 0) {
				q = i;
				flag2 = 1;
				break;
			}
		}
	}
	if (flag2 == 0) {
		printf("\t\t\t该书不存在于这个图书馆\n");
		return;
	}
	for (int i = 0; i < reader_list[temp].totalborrownumber; i++) {
		if (strcmp(book, reader_list[temp].borrowedbook[i]) == 0) {
			for (int k = i; k < reader_list[temp].totalborrownumber; k++) {
				strcpy(reader_list[temp].borrowedbook[k], reader_list[temp].borrowedbook[k + 1]);
			}
			reader_list[temp].totalborrownumber--;
			book_list[q].totalnumber++;
			flag1 = 1;
			printf("\t\t\t还书成功!\n");
			break;
		}
	}
	if (flag1 == 0)
		printf("\t\t\t你没有借阅这本书\n");


}

//用户查询书籍借阅信息
void display_book() {

	int a, flag = 0, q, flag2 = 0;
	char book[20];
	printf("\t\t\t按书编查书按1,按书名查书按2\n");
	scanf("%d", &flag);

	if (flag == 1) {
		printf("\t\t\t请输入书的编号\n");
		scanf("%d", &a);
		for (int i = 0; i < booksortsum; i++) {
			if (book_list[i].number == a) {
				strcpy(book, book_list[i].name);
				if (book_list[i].totalnumber != 0)
					printf("\t\t\t该书在图书馆中还有%d本\n", book_list[i].totalnumber);
				for (int j = 0; j < readersum; j++) {
					for (int k = 0; k < reader_list[j].totalborrownumber; k++) {
						if (strcmp(reader_list[j].borrowedbook[k], book) == 0) {
							printf("\t\t\t%s借走了%s\n", reader_list[j].name, book);
						}
					}
				}
				flag2 = 1;
			}
		}
		if (flag2 == 0)
			printf("\t\t\t查无此书\n");
	}
	if (flag == 2) {
		printf("\t\t\t请输入书名\n");
		scanf("%s", book);
		for (int i = 0; i < booksortsum; i++) {
			if (strcmp(book, book_list[i].name) == 0) {
				if (book_list[i].totalnumber != 0)
					printf("\t\t\t该书在图书馆中还有%d本\n", book_list[i].totalnumber);
				for (int j = 0; j < readersum; j++) {
					for (int k = 0; k < reader_list[j].totalborrownumber; k++) {
						if (strcmp(reader_list[j].borrowedbook[k], book) == 0) {
							printf("\t\t\t%s借走了%s\n", reader_list[i].name, book);
						}
					}
				}
				flag2 = 1;
			}
		}
		if (flag2 == 0)
			printf("\t\t\t查无此书\n");
	}

}

//用户登录
void signreader() {
	int i;
	int flag = 0;
	char name[20];
	char key[20];

	successful = 0;
	printf("\t\t\t请输入用户账号\n");
	scanf("%s", name);
	for (i = 0; i < readersum; i++) {
		if (strcmp(reader_list[i].name, name) == 0) {
			flag = 1;
			break;
		}
	}
	if (flag == 0) {
		printf("\t\t\t账号错误\n");
		system("pause");
		system("cls");
		return;
	}
	if (flag == 1) {
		printf("\t\t\t请输入密码\n");
		scanf("%s", key);
		if (strcmp(reader_list[i].password, key) == 0) {
			printf("\t\t\t登录成功\n");
			successful = 1;
			temp = i;
			return;
		} else {
			printf("\t\t\t密码错误\n");
			system("pause");
			system("cls");
			return;
		}
	}
}

//管理员登录;
void signleader() {

	int flag = 0;
	char key[20];
	char name[20];

	successful = 0;
	printf("\t\t\t\t请输入管理员账号\n");
	scanf("%s", name);
	if (strcmp(administrator_list.name, name) != 0) {
		flag = 1;
		printf("\t\t\t\t账号错误\n");
		system("pause");
		system("cls");
		return;
	}
	if (flag == 0) {
		printf("\t\t\t\t请输入密码\n");
		scanf("%s", key);
		if (strcmp(administrator_list.password, key) != 0) {
			printf("\t\t\t\t密码错误\n");
			system("pause");
			system("cls");
			return;
		} else {
			printf("\t\t\t\t登录成功\n");
			successful = 1;
			return;
		}
	}
}

//展示所有用户信息
void diplay_reader() {

	printf("\t\t\t\t所有用户信息如下:\n");
	printf("\t\t\t账号   ID     密码   借书数量\n");
	for (int i = 0; i < readersum; i++) {
		printf("\t\t\t %s    %d     %s       %d\n", reader_list[i].name, reader_list[i].id, reader_list[i].password,
		       reader_list[i].totalborrownumber);
	}

}

//管理员修改读者信息
void changereaderinformation() {

	int flag;
	int b;
	char name[20];
	char key[20];
	int flag1 = 0;
	printf("\t\t\t\t按ID修改按1,按账号修改按2\n");
	scanf("%d", &flag);
	if (flag != 1 && flag != 2) {
		printf("\t\t\t\t请输入正确操作\n");
	}
	if (flag == 1) {
		printf("\t\t\t\t\t请输入ID\n");
		scanf("%d", &b);
		for (int i = 0; i < readersum; i++) {
			if (reader_list[i].id == b) {
				flag1 = 1;
				break;
			}
		}
	}
	if (flag == 2) {
		printf("\t\t\t\t\t请输入账号\n");
		scanf("%s", name);
		for (int i = 0; i < readersum; i++) {
			if (strcmp(reader_list[i].name, name) == 0) {
				b = reader_list[i].id;
				flag1 = 1;
				break;
			}
		}
	}
	if ((flag == 1 || flag == 2) && flag1 == 0) {
		printf("\t\t\t\t\t查无此人\n");
		return;
	}
	for (int i = 0; i < readersum; i++) {
		if (reader_list[i].id == b) {
			printf("\t\t\t账号   ID     密码   借书数量\n");
			printf("\t\t\t %s    %d     %s       %d\n", reader_list[i].name, reader_list[i].id, reader_list[i].password,
			       reader_list[i].totalborrownumber);
			printf("\t\t\t\t修改编号按1,修改用户账号按2,修改密码按3,注销该用户按4\n");
			scanf("%d", &b);
			switch (b) {
				case 1: {
					printf("\t\t\t\t请输入新的编号(四位)\n");
					scanf("%d", &b);
					reader_list[i].id = b;
					printf("\t\t\t\t修改完成\n");
					break;
				}
				case 2: {
					printf("\t\t\t\t请输入新的账号\n");
					scanf("%s", name);
					strcpy(reader_list[i].name, name);
					printf("\t\t\t\t修改完成\n");
					break;
				}
				case 3: {
					printf("\t\t\t\t\t请输入新的密码\n");
					scanf("%s", key);
					strcpy(reader_list[i].password, key);
					printf("\t\t\t\t\t修改完成\n");
					break;
				}
				case 4: {
					if (reader_list[i].totalborrownumber == 0) {
						printf("\t\t\t\t\t%s用户已被注销\n", reader_list[i].name);
						for (int j = i; j < readersum; j++) {
							for (int k = 0; k < reader_list[j].totalborrownumber; k++) {
								strcmp(reader_list[j].borrowedbook[k], reader_list[j + 1].borrowedbook[k]);
							}
							reader_list[j].id = reader_list[j + 1].id;
							reader_list[j].totalborrownumber = reader_list[j + 1].totalborrownumber;
							strcpy(reader_list[j].name, reader_list[j + 1].name);
							strcpy(reader_list[j].password, reader_list[j + 1].password);
						}
						readersum--;
					}
					if (reader_list[i].totalborrownumber != 0) {
						printf("\t\t\t\t该用户还有书未还,无法注销\n");
					}
					break;
				}
			}
		}
	}
}

//管理员修改书籍信息;
void changbookinformation() {

	char name[20];
	int falg;
	int falg1;
	int flag;
	int b;
	int p = 0;
	int flag2 = 0;
	printf("\t\t\t按书编修改书籍信息按1,按书名修改书籍信息按2\n");
	scanf("%d", &falg);
	if (falg == 1) {
		printf("\t\t\t\t请输入书的书编\n");
		scanf("%d", &falg1);
		for (int i = 0; i < booksortsum; i++) {
			if (book_list[i].number == falg1) {
				flag2 = 1;
				break;
			}
		}
		if (flag2 == 0) {
			printf("%d\n", flag2);
			printf("\t\t\t\t4查无此书\n");
			return;
		}
		for (int i = 0; i < booksortsum; i++) {
			if (falg1 == book_list[i].number && book_list[i].totalnumber != 0) {
				printf("\t\t\t编号   书名    数量\n");
				printf("\t\t\t %d       %s     %d\n", book_list[i].number, book_list[i].name, book_list[i].totalnumber);
				printf("\t\t\t修改编号按1,修改数量按2,下架该书按3\n");
				scanf("%d", &flag);
				switch (flag) {
					case 1: {
						printf("\t\t\t\t请输入新的编号(四位)\n");
						scanf("%d", &b);
						book_list[i].number = b;
						break;
					}
					case 2: {
						printf("\t\t\t\t请输入新的数量\n");
						scanf("%d", &b);
						book_list[i].totalnumber = b;
						break;
					}
					case 3: {
						if (book_list[i].totalnumber != 0) {
							printf("\t\t\t\t%s已被下架\n", book_list[i].name);
							for (int j = i; j < booksortsum; j++) {
								book_list[j].number = book_list[j + 1].number;
								book_list[j].totalnumber = book_list[j + 1].totalnumber;
								strcpy(book_list[j].name, book_list[j + 1].name);
							}
							booksortsum--;
							break;
						}
					}
				}
				p = 1;
				break;
			}
			if (falg1 == book_list[i].number && book_list[i].totalnumber == 0) {
				printf("\t\t\t\t该书暂时被人全部借走,无法修改\n");
				p = 1;
				break;
			}
		}
		if (p == 0)
			printf("\t\t\t\t输入的编号错误\n");
	}
	if (falg == 2) {
		printf("\t\t\t\t请输入书名\n");
		scanf("%s", name);
		for (int i = 0; i < booksortsum; i++) {
			if (strcmp(book_list[i].name, name) == 0) {
				flag2 = 1;
				break;
			}
		}
		if (flag2 == 0) {
			printf("\t\t\t\t查无此书\n");
			return;
		}
		for (int i = 0; i < booksortsum; i++) {
			if (strcmp(name, book_list[i].name) == 0 && book_list[i].totalnumber != 0) {
				printf("\t\t\t\t编号   书名    数量\n");
				printf("\t\t\t\t%d   %s   %d\n", book_list[i].number, book_list[i].name, book_list[i].totalnumber);
				printf("\t\t\t\t修改编号按1,修改数量按2,下架该书按3\n");
				scanf("%d", &flag);
				switch (flag) {
					case 1: {
						printf("\t\t\t\t请输入新的编号(四位)\n");
						scanf("%d", &b);
						book_list[i].number = b;
						break;
					}
					case 2: {
						printf("\t\t\t\t请输入新的数量\n");
						scanf("%d", &b);
						book_list[i].totalnumber = b;
						break;
					}
					case 3: {
						if (book_list[i].totalnumber != 0) {
							printf("\t\t\t\t%s已被下架\n", book_list[i].name);
							for (int j = i; j < booksortsum; j++) {
								book_list[j].number = book_list[j + 1].number;
								book_list[j].totalnumber = book_list[j + 1].totalnumber;
								strcpy(book_list[j].name, book_list[j + 1].name);
							}
							booksortsum--;
							break;
						}
					}
				}
				p = 1;
				break;
			}
			if (falg1 == book_list[i].number && book_list[i].totalnumber == 0) {
				printf("\t\t\t\t该书暂时被人全部借走,无法修改\n");
				p = 1;
				break;
			}
		}
		if (p == 0)
			printf("\t\t\t\t输入的书名错误\n");
	}

}

int main() {

	int flag1, flag4;
	while (1) {
		HideCursor();
		int flag3 = 0;
		makemenue();
		load_booklist();
		load_readerlist();
		load_borrowedbooklist();
		scanf("%d", &flag1);
		switch (flag1) {
			case 1: {
				signleader();
				if (successful == 1) {
					system("pause");
					system("cls");
					while (1) {
						leadermenue();
						scanf("%d", &flag4);
						switch (flag4) {
							case 1: {
								changbookinformation();
								save_booklist();
								save_borrowbooklist();
								system("pause");
								system("cls");
								break;
							}//修改书籍信息
							case 2: {
								load_readerlist();
								load_borrowedbooklist();
								diplay_reader();
								changereaderinformation();
								save_booklist();
								save_borrowbooklist();
								save_readerlist();
								save_readerlist;
								system("pause");
								system("cls");
								break;
							}//修改用户信息
							case 3: {
								seek_book();
								system("pause");
								system("cls");
								break;
							}//查看藏书
							case 4: {
								display_book();
								system("pause");
								system("cls");
								break;
							}//查看谁借了书
							case 5: {
								flag3 = 1;
								printf("\t\t\t\t退出成功\n");
								system("pause");
								system("cls");
								break;
							}
							default: {
								printf("\t\t\t\t请按正确格式输入操作\n");
								system("pause");
								system("cls");
								break;
							}
						}
						if (flag3 == 1)
							break;
					}
					break;
				}
				break;
			}//管理员系统
			case 3: {
				signreader();
				if (successful == 1) {
					system("pause");
					system("cls");
					while (1) {
						readermenue();
						scanf("%d", &flag4);
						switch (flag4) {
							case 1: {
								borrow_book();
								save_booklist();
								save_borrowbooklist();//将用户借书信息传到文件中
								system("pause");
								system("cls");
								break;
							}//用户借书
							case 2: {
								return_book();
								save_booklist();
								save_borrowbooklist();
								system("pause");
								system("cls");
								break;
							}//用户还书
							case 3: {
								seek_book();
								system("pause");
								system("cls");
								break;
							}//查看藏书
							case 4: {

								display_book();
								system("pause");
								system("cls");
								break;
							}
							case 5: {
								flag3 = 1;
								printf("\t\t\t\t退出成功\n");
								system("pause");
								system("cls");
								break;
							}
							//查看书被谁借走
							default: {
								printf("\t\t\t\t请按正确格式输入操作\n");
								system("pause");
								system("cls");
								break;
							}
						}
						if (flag3 == 1)
							break;
					}
					break;
				}
				break;
			}//用户登录及用户操作
			case 2: {
				makereader();
				save_readerlist();
				system("cls");
				break;
			}//注册用户;
			default: {
				printf("\t\t\t\t请按正确格式输入操作\n");
				system("pause");
				system("cls");
				break;
			}
		}
		save_booklist();
		save_readerlist();
		save_borrowbooklist();
	}
	return 0;
}

ps:如有错误敬请指正,欢迎评论区交流或者发私信
邮箱1654407501@qq.com,QQ号同邮箱

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

怡人蝶梦

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值