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);
    }
}

优化分析:

  1. 引入 borrow_success 变量,用于记录借阅状态。
  2. 在成功借阅书籍后,将 borrow_success 设置为 1。
  3. 在函数结束时,根据 borrow_success 的值弹出相应的提示框。

通过以上优化,无论借阅成功与否,都能弹出相应的提示框,提升用户体验。

C语言图书借阅系统:借书函数逻辑优化

原文地址: https://www.cveoy.top/t/topic/oEde 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录