void borrow_book() { int i,j,id; if(!login_menu()) { printf("查找失败!不存在用户信息!\n"); printf("请先登录后再使用!\n"); return; } printf("现在的库存有:\n"); for(i=0;i<MAX_BOOKS;i++) { printf("%d.%s\n",book2[i].id,book2[i].name);//打印初始书单 } printf("请输入您要借的书籍序号:"); scanf("%d",&id); for(i=0;i<MAX_BOOKS;i++) { if(book2[i].id==id) { if(book2[i].borrowed==0) { book2[i].borrowed=1; printf("借书成功!\n"); for(j=i;j<MAX_BOOKS-1;j++) { book2[j].id=book2[j+1].id; strcpy(book2[j].name,book2[j+1].name); book2[j].borrowed = book2[j+1].borrowed; } strcpy(book2[MAX_BOOKS-1].name,""); book2[MAX_BOOKS-1].id=0; book2[MAX_BOOKS-1].borrowed=0; } else { printf("该书已经被借出!\n"); } } } for(i=0;i<MAX_BOOKS;i++) { printf("%d.%s\n",book2[i].id,book2[i].name);//打印借完书后的新书单 } }
时间: 2024-04-01 21:32:58 浏览: 18
这段代码中的 `borrow_book()` 函数实现了借书的功能,如果您需要修改这个函数,可以告诉我需要做哪些修改。
以下是我对这个函数的一些建议:
1. 在函数开头添加一个参数 `struct User user`,用于接收登录用户的信息,这样就可以避免在函数内部调用 `login_menu()` 函数,提高代码的可复用性。
2. 在打印初始书单时,可以添加一个判断条件,只有未被借出的书才会被打印出来,这样可以使用户更方便地找到可借阅的书籍。
3. 在借书成功后,可以将借阅信息保存到一个链表中,这样可以方便查询用户借阅的书籍信息,并且可以实现还书功能。
4. 在打印借完书后的新书单时,同样可以添加一个判断条件,只有未被借出的书才会被打印出来,这样可以让用户更清晰地知道哪些书可以借阅。
5. 可以添加一些异常处理机制,比如用户输入的书籍序号不存在,或者用户已经借阅了最大数量的书籍等情况。
6. 可以考虑将 `borrow_book()` 函数拆分成多个小函数,每个函数只实现一个小功能,提高代码的可维护性。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://img-home.csdnimg.cn/images/20210720083646.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)