C语言图书借阅系统:借书函数逻辑优化
C语言图书借阅系统:借书函数逻辑优化
在C语言图书借阅系统中,借书函数 borrow_book() 可能存在逻辑错误。原代码中,遍历书籍数组时,如果输入的书籍编号不匹配或者该书已被借出,会弹出“借阅失败”的提示框。但如果输入的书籍编号匹配,但是借出失败(比如该书已经被该学生借阅),并不会弹出提示框。
为了解决这个问题,需要加入一个变量记录借阅状态,并在最后根据变量值弹出对应的提示框。
优化后的代码:
void borrow_book() {
system("cls");
int student_id, book_id;
char id[20];
int borrow_success = 0; // 借阅状态,0表示失败,1表示成功
printf("请输入书籍编号和学生学号: \n");
scanf("%d %d", &book_id, &student_id);
sprintf(id, "%d", book_id);
for (int i = 0; i < book_count; i++) {
if (strcmp(id, books[i].id) == 0 && books[i].available == 1) {
books[i].available = 0;
borrow_success = 1;
for (int j = 0; j < student_count; j++) {
if ((int)students[j].id == student_id) {
for (int k = 0; k < MAX_BOOKS; k++) {
if (students[j].borrowed_books[k] == 0) {
students[j].borrowed_books[k] = book_id;
break;
}
}
break;
}
}
break;
}
}
if (borrow_success == 1) {
MessageBox(NULL, "借阅成功", "温馨提示", MB_OK + MB_ICONQUESTION);
} else {
MessageBox(NULL, "此书已被借阅或书籍编号错误", "借阅失败", MB_OK + MB_ICONQUESTION);
}
}
优化分析:
- 引入
borrow_success变量,用于记录借阅状态。 - 在成功借阅书籍后,将
borrow_success设置为 1。 - 在函数结束时,根据
borrow_success的值弹出相应的提示框。
通过以上优化,无论借阅成功与否,都能弹出相应的提示框,提升用户体验。
原文地址: https://www.cveoy.top/t/topic/oEde 著作权归作者所有。请勿转载和采集!