void borrow_book 借书函数 systemcls; int student_idbook_id; char id20; printf请输入书籍编号和学生学号 n; scanfd d &book_id&student_id; sprintfid d book_id; for int i = 0; i book_count; i++ if
可能会出现逻辑错误,因为在遍历书籍数组时,如果输入的书籍编号不匹配或者该书已被借出,会弹出“借阅失败”的提示框,但是如果输入的书籍编号匹配,但是借出失败(比如该书已经被该学生借阅),并不会弹出提示框。因此,应该加入一个变量记录借阅状态,并在最后根据变量值弹出对应的提示框,如下所示:
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); }
原文地址: https://www.cveoy.top/t/topic/hbgu 著作权归作者所有。请勿转载和采集!