|  |  |  | @ -208,12 +208,212 @@ Book* DealoldBook(Book* book1) | 
			
		
	
		
			
				
					|  |  |  |  |     return book1; | 
			
		
	
		
			
				
					|  |  |  |  | } | 
			
		
	
		
			
				
					|  |  |  |  | //C6
 | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | void foundBook(Book* book1) | 
			
		
	
		
			
				
					|  |  |  |  | { | 
			
		
	
		
			
				
					|  |  |  |  |     Book* book = book1; | 
			
		
	
		
			
				
					|  |  |  |  |     printf("输入要查找的书的id:"); | 
			
		
	
		
			
				
					|  |  |  |  |     int id; | 
			
		
	
		
			
				
					|  |  |  |  |     scanf("%d", &id); | 
			
		
	
		
			
				
					|  |  |  |  |     getchar(); | 
			
		
	
		
			
				
					|  |  |  |  |     while (book != NULL) | 
			
		
	
		
			
				
					|  |  |  |  |     { | 
			
		
	
		
			
				
					|  |  |  |  |         if (id == book->iNum) | 
			
		
	
		
			
				
					|  |  |  |  |         { | 
			
		
	
		
			
				
					|  |  |  |  |             printf("该书的信息如下:\n"); | 
			
		
	
		
			
				
					|  |  |  |  |             printf("%d\t%s\t%s\t%s\t%d\n", book->iNum, book->acName, book->acAuthor, book->acPress, book->iAmount); | 
			
		
	
		
			
				
					|  |  |  |  |             printf("按任意键返回\n"); | 
			
		
	
		
			
				
					|  |  |  |  |             getchar(); | 
			
		
	
		
			
				
					|  |  |  |  |             return; | 
			
		
	
		
			
				
					|  |  |  |  |         } | 
			
		
	
		
			
				
					|  |  |  |  |         book = book->next; | 
			
		
	
		
			
				
					|  |  |  |  |     } | 
			
		
	
		
			
				
					|  |  |  |  |     printf("没有找到该书!\n"); | 
			
		
	
		
			
				
					|  |  |  |  |     printf("按任意键返回\n"); | 
			
		
	
		
			
				
					|  |  |  |  |     getchar(); | 
			
		
	
		
			
				
					|  |  |  |  |     return; | 
			
		
	
		
			
				
					|  |  |  |  | } | 
			
		
	
		
			
				
					|  |  |  |  | //C7
 | 
			
		
	
		
			
				
					|  |  |  |  | void foundReader_Info(Reader* reader1) | 
			
		
	
		
			
				
					|  |  |  |  | { | 
			
		
	
		
			
				
					|  |  |  |  |     Reader* reader = reader1; //备份
 | 
			
		
	
		
			
				
					|  |  |  |  |     printf("输入读者的id:"); | 
			
		
	
		
			
				
					|  |  |  |  |     int id; | 
			
		
	
		
			
				
					|  |  |  |  |     scanf("%d", &id); | 
			
		
	
		
			
				
					|  |  |  |  |     getchar(); | 
			
		
	
		
			
				
					|  |  |  |  |     while (reader) | 
			
		
	
		
			
				
					|  |  |  |  |     { | 
			
		
	
		
			
				
					|  |  |  |  |         if (id == reader->iNum) | 
			
		
	
		
			
				
					|  |  |  |  |         { | 
			
		
	
		
			
				
					|  |  |  |  |             printf("借阅的书的编号如下:\n"); | 
			
		
	
		
			
				
					|  |  |  |  |             for (int i = 0; i < reader->iMax; i++)  //根据读者可以借阅的数量作为循环终止条件
 | 
			
		
	
		
			
				
					|  |  |  |  |             { | 
			
		
	
		
			
				
					|  |  |  |  |                 if (reader->aiBookId[i] != 0)       //数组里不为0,证明有一条记录,因为:数组初始化为0,并且书的编号不可能为0
 | 
			
		
	
		
			
				
					|  |  |  |  |                 { | 
			
		
	
		
			
				
					|  |  |  |  |                     printf("%d\n", reader->aiBookId[i]); | 
			
		
	
		
			
				
					|  |  |  |  |                 } | 
			
		
	
		
			
				
					|  |  |  |  |             } | 
			
		
	
		
			
				
					|  |  |  |  |             printf("按任意键返回\n"); | 
			
		
	
		
			
				
					|  |  |  |  |             getchar(); | 
			
		
	
		
			
				
					|  |  |  |  |             return; | 
			
		
	
		
			
				
					|  |  |  |  |         } | 
			
		
	
		
			
				
					|  |  |  |  |         reader = reader->next; | 
			
		
	
		
			
				
					|  |  |  |  |     } | 
			
		
	
		
			
				
					|  |  |  |  |     printf("没有该读者!\n"); | 
			
		
	
		
			
				
					|  |  |  |  |     printf("按任意键返回\n"); | 
			
		
	
		
			
				
					|  |  |  |  |     getchar(); | 
			
		
	
		
			
				
					|  |  |  |  |     return; | 
			
		
	
		
			
				
					|  |  |  |  | } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | //C8
 | 
			
		
	
		
			
				
					|  |  |  |  | void foundReaderInfo(Reader* reader1) | 
			
		
	
		
			
				
					|  |  |  |  | { | 
			
		
	
		
			
				
					|  |  |  |  |     Reader* reader = reader1; | 
			
		
	
		
			
				
					|  |  |  |  |     printf("输入读者的id:"); | 
			
		
	
		
			
				
					|  |  |  |  |     int id; | 
			
		
	
		
			
				
					|  |  |  |  |     scanf("%d", &id); | 
			
		
	
		
			
				
					|  |  |  |  |     getchar(); | 
			
		
	
		
			
				
					|  |  |  |  |     while (reader) | 
			
		
	
		
			
				
					|  |  |  |  |     { | 
			
		
	
		
			
				
					|  |  |  |  |         if (id == reader->iNum) | 
			
		
	
		
			
				
					|  |  |  |  |         { | 
			
		
	
		
			
				
					|  |  |  |  |             printf("读者id:%d\n", reader->iNum); | 
			
		
	
		
			
				
					|  |  |  |  |             printf("读者姓名:%s\n", reader->acName); | 
			
		
	
		
			
				
					|  |  |  |  |             printf("读者性别:%s\n", reader->acSex); | 
			
		
	
		
			
				
					|  |  |  |  |             printf("读者职位:%s\n", reader->position); | 
			
		
	
		
			
				
					|  |  |  |  |             printf("读者已借阅书的数量:%d\n", reader->iAmount); | 
			
		
	
		
			
				
					|  |  |  |  |             printf("按任意键返回\n"); | 
			
		
	
		
			
				
					|  |  |  |  |             getchar(); | 
			
		
	
		
			
				
					|  |  |  |  |             return; | 
			
		
	
		
			
				
					|  |  |  |  |         } | 
			
		
	
		
			
				
					|  |  |  |  |         reader = reader->next; | 
			
		
	
		
			
				
					|  |  |  |  |     } | 
			
		
	
		
			
				
					|  |  |  |  |     printf("没有找到该读者\n"); | 
			
		
	
		
			
				
					|  |  |  |  |     printf("按任意键返回\n"); | 
			
		
	
		
			
				
					|  |  |  |  |     getchar(); | 
			
		
	
		
			
				
					|  |  |  |  |     return; | 
			
		
	
		
			
				
					|  |  |  |  | } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | //C9
 | 
			
		
	
		
			
				
					|  |  |  |  | Reader* LendBook(Reader* reader1, Book* book1) | 
			
		
	
		
			
				
					|  |  |  |  | { | 
			
		
	
		
			
				
					|  |  |  |  |     Reader* reader = reader1; | 
			
		
	
		
			
				
					|  |  |  |  |     Book* book = book1; | 
			
		
	
		
			
				
					|  |  |  |  |     Reader* prev = reader1; | 
			
		
	
		
			
				
					|  |  |  |  |     Reader* tmpp = reader1; | 
			
		
	
		
			
				
					|  |  |  |  |     printf("输入读者id:"); | 
			
		
	
		
			
				
					|  |  |  |  |     int id; | 
			
		
	
		
			
				
					|  |  |  |  |     scanf("%d", &id); | 
			
		
	
		
			
				
					|  |  |  |  |     getchar(); | 
			
		
	
		
			
				
					|  |  |  |  |     if (reader == NULL) | 
			
		
	
		
			
				
					|  |  |  |  |     { | 
			
		
	
		
			
				
					|  |  |  |  |         Reader* tmp = (Reader*)malloc(sizeof(Reader)); | 
			
		
	
		
			
				
					|  |  |  |  |         tmp->next = NULL; | 
			
		
	
		
			
				
					|  |  |  |  |         tmp->iAmount = 0; | 
			
		
	
		
			
				
					|  |  |  |  |         tmp->iNum = id; | 
			
		
	
		
			
				
					|  |  |  |  |         printf("输入读者名字:"); | 
			
		
	
		
			
				
					|  |  |  |  |         scanf("%s", &tmp->acName); | 
			
		
	
		
			
				
					|  |  |  |  |         getchar(); | 
			
		
	
		
			
				
					|  |  |  |  |         printf("输入读者性别:"); | 
			
		
	
		
			
				
					|  |  |  |  |         scanf("%s", &tmp->acSex); | 
			
		
	
		
			
				
					|  |  |  |  |         getchar(); | 
			
		
	
		
			
				
					|  |  |  |  |         printf("输入读者职位:<student\tor\tteacher>"); | 
			
		
	
		
			
				
					|  |  |  |  |         scanf("%s", &tmp->position); | 
			
		
	
		
			
				
					|  |  |  |  |         getchar(); | 
			
		
	
		
			
				
					|  |  |  |  |         if (strcmp(tmp->position, "student") == 0) | 
			
		
	
		
			
				
					|  |  |  |  |         { | 
			
		
	
		
			
				
					|  |  |  |  |             tmp->iMax = 20; | 
			
		
	
		
			
				
					|  |  |  |  |             tmp->day = 30; | 
			
		
	
		
			
				
					|  |  |  |  |         } | 
			
		
	
		
			
				
					|  |  |  |  |         else { | 
			
		
	
		
			
				
					|  |  |  |  |             tmp->iMax = 40; | 
			
		
	
		
			
				
					|  |  |  |  |             tmp->day = 60; | 
			
		
	
		
			
				
					|  |  |  |  |         } | 
			
		
	
		
			
				
					|  |  |  |  |         for (int i = 0; i < tmp->iMax; i++) | 
			
		
	
		
			
				
					|  |  |  |  |         { | 
			
		
	
		
			
				
					|  |  |  |  |             tmp->aiBookId[i] = 0; | 
			
		
	
		
			
				
					|  |  |  |  |         } | 
			
		
	
		
			
				
					|  |  |  |  |         printf("输入要借的书的编号:"); | 
			
		
	
		
			
				
					|  |  |  |  |         int id_book; | 
			
		
	
		
			
				
					|  |  |  |  |         scanf("%d", &id_book); | 
			
		
	
		
			
				
					|  |  |  |  |         getchar(); | 
			
		
	
		
			
				
					|  |  |  |  |         while (book != NULL) | 
			
		
	
		
			
				
					|  |  |  |  |         { | 
			
		
	
		
			
				
					|  |  |  |  |             if (id_book == book->iNum) | 
			
		
	
		
			
				
					|  |  |  |  |             { | 
			
		
	
		
			
				
					|  |  |  |  |                 if (book->iAmount <= 1) | 
			
		
	
		
			
				
					|  |  |  |  |                 { | 
			
		
	
		
			
				
					|  |  |  |  |                     printf("借阅失败,该图书库存不足.\n"); | 
			
		
	
		
			
				
					|  |  |  |  |                     printf("按任意键返回\n"); | 
			
		
	
		
			
				
					|  |  |  |  |                     getchar(); | 
			
		
	
		
			
				
					|  |  |  |  |                     return NULL; | 
			
		
	
		
			
				
					|  |  |  |  |                 } | 
			
		
	
		
			
				
					|  |  |  |  |                 if ((tmp->iAmount) + 1 > tmp->iMax) | 
			
		
	
		
			
				
					|  |  |  |  |                 { | 
			
		
	
		
			
				
					|  |  |  |  |                     printf("借阅失败,该读者借阅图书数量已达上线.\n"); | 
			
		
	
		
			
				
					|  |  |  |  |                     printf("按任意键返回\n"); | 
			
		
	
		
			
				
					|  |  |  |  |                     getchar(); | 
			
		
	
		
			
				
					|  |  |  |  |                     return NULL; | 
			
		
	
		
			
				
					|  |  |  |  |                 } | 
			
		
	
		
			
				
					|  |  |  |  |                 book->iAmount--; | 
			
		
	
		
			
				
					|  |  |  |  |                 tmp->aiBookId[tmp->iAmount] = id_book; | 
			
		
	
		
			
				
					|  |  |  |  |                 tmp->iAmount; | 
			
		
	
		
			
				
					|  |  |  |  |                 reader = tmp; | 
			
		
	
		
			
				
					|  |  |  |  |                 printf("借阅成功!\n"); | 
			
		
	
		
			
				
					|  |  |  |  |                 printf("按任意键返回\n"); | 
			
		
	
		
			
				
					|  |  |  |  |                 getchar(); | 
			
		
	
		
			
				
					|  |  |  |  |                 return reader; | 
			
		
	
		
			
				
					|  |  |  |  |             } | 
			
		
	
		
			
				
					|  |  |  |  |             book = book->next; | 
			
		
	
		
			
				
					|  |  |  |  |         } | 
			
		
	
		
			
				
					|  |  |  |  |         printf("没有找到该书!\n"); | 
			
		
	
		
			
				
					|  |  |  |  |         printf("按任意键返回\n"); | 
			
		
	
		
			
				
					|  |  |  |  |         getchar(); | 
			
		
	
		
			
				
					|  |  |  |  |         return reader1; | 
			
		
	
		
			
				
					|  |  |  |  |     } | 
			
		
	
		
			
				
					|  |  |  |  |     if (reader != NULL) | 
			
		
	
		
			
				
					|  |  |  |  |     { | 
			
		
	
		
			
				
					|  |  |  |  |         while (reader != NULL) | 
			
		
	
		
			
				
					|  |  |  |  |         { | 
			
		
	
		
			
				
					|  |  |  |  |             if (id == reader->iNum) | 
			
		
	
		
			
				
					|  |  |  |  |             { | 
			
		
	
		
			
				
					|  |  |  |  |                 printf("图使馆当前的书籍册:\n"); | 
			
		
	
		
			
				
					|  |  |  |  |                 ShowLibBook(book); | 
			
		
	
		
			
				
					|  |  |  |  |                 printf("输入要借的书的编号:"); | 
			
		
	
		
			
				
					|  |  |  |  |                 int id_book; | 
			
		
	
		
			
				
					|  |  |  |  |                 scanf("%d", &id_book); | 
			
		
	
		
			
				
					|  |  |  |  |                 getchar(); | 
			
		
	
		
			
				
					|  |  |  |  |                 while (book != NULL) | 
			
		
	
		
			
				
					|  |  |  |  |                 { | 
			
		
	
		
			
				
					|  |  |  |  |                     if (id_book == book->iNum) | 
			
		
	
		
			
				
					|  |  |  |  |                     { | 
			
		
	
		
			
				
					|  |  |  |  |                         if (book->iAmount <= 1) | 
			
		
	
		
			
				
					|  |  |  |  |                         { | 
			
		
	
		
			
				
					|  |  |  |  |                             printf("借阅失败,该图书库存不足.\n"); | 
			
		
	
		
			
				
					|  |  |  |  |                             printf("按任意键返回\n"); | 
			
		
	
		
			
				
					|  |  |  |  |                             getchar(); | 
			
		
	
		
			
				
					|  |  |  |  |                             return reader1; | 
			
		
	
		
			
				
					|  |  |  |  |                         } | 
			
		
	
		
			
				
					|  |  |  |  |                         if (tmpp->iAmount + 1 > tmpp->iMax) | 
			
		
	
		
			
				
					|  |  |  |  |                         { | 
			
		
	
		
			
				
					|  |  |  |  |                             printf("借阅失败,该读者借阅图书数量已达上线.\n"); | 
			
		
	
		
			
				
					|  |  |  |  |                             printf("按任意键返回\n"); | 
			
		
	
		
			
				
					|  |  |  |  |                             getchar(); | 
			
		
	
		
			
				
					|  |  |  |  |                             return reader1; | 
			
		
	
		
			
				
					|  |  |  |  |                         } | 
			
		
	
		
			
				
					|  |  |  |  |                         reader->iAmount++; | 
			
		
	
		
			
				
					|  |  |  |  |                         reader->aiBookId[tmpp->iAmount] = id_book; | 
			
		
	
		
			
				
					|  |  |  |  |                         return reader1; | 
			
		
	
		
			
				
					|  |  |  |  |                     } | 
			
		
	
		
			
				
					|  |  |  |  |                     book = book->next; | 
			
		
	
		
			
				
					|  |  |  |  |                 } | 
			
		
	
		
			
				
					|  |  |  |  |                 printf("没有找到该书!\n"); | 
			
		
	
		
			
				
					|  |  |  |  |                 printf("按任意键返回\n"); | 
			
		
	
		
			
				
					|  |  |  |  |             } | 
			
		
	
		
			
				
					|  |  |  |  |             reader = reader->next; | 
			
		
	
		
			
				
					|  |  |  |  |         } | 
			
		
	
		
			
				
					|  |  |  |  |     } | 
			
		
	
		
			
				
					|  |  |  |  | } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | //C10
 | 
			
		
	
		
			
				
					|  |  |  |  | void returnBook(Reader* reader1, Book* book1) | 
			
		
	
	
		
			
				
					|  |  |  | 
 |