// hàm menu void Menu(LIST l) { int n = readBook(l); // số node được tạo sau khi đọc file dữ liệu int menu; // chọn chức năng menu printf("\n Nhap:\n\n - 1: de them sach."); printf("\n - 2: de xoa sach."); printf("\n - 3: de xuat danh sach theo thu tu nam xuat ban tang dan."); printf("\n - 4: de tim kiem sach theo ID."); printf("\n - 5: de dem so luong sach trong thu vien cua cung mot tac gia."); printf("\n - 6: de xuat danh sach nhung quyen xuat ban cung mot nam cua mot nha xuat ban.\n Nhap: "); scanf("%d", &menu); switch(menu) { case 1: // thêm sách { Input(l); // thêm sách saveBook(l, n); // ghi tiếp file contApp(l); // gọi hàm sử dụng tiếp break; } case 2: // xóa sách { delNode(l); // xóa sách saveBook2(l); // ghi lại từ đầu contApp(l); // gọi hàm sử dụng tiếp break; } case 3: // xuất mảng theo thứ tự { sortYear(l); // gọi hàm xuất mảng sau khi sắp xếp contApp(l); // gọi hàm sử dụng tiếp break; } case 4: // tìm sách theo ID { lookID(l); // gọi hàm tìm sách theo ID contApp(l); // gọi hàm sử dụng tiếp break; } case 5: // đếm số lượng sách của 1 tác giả { lookAuthor(l); // gọi hàm đếm số sách theo tên tác giả contApp(l); // gọi hàm sử dụng tiếp break; } case 6: // xuất danh sách những quyển xuất bản cùng năm YYYY cùng một nhà xuất bản { lookBook(l); // gọi hàm tìm sách theo yêu cầu trên contApp(l); // gọi hàm sử dụng tiếp break; } // trường hợp người dùng nhập 1 số khác 1, 2, 3, 4, 5, 6 thì cho người dùng nhập lại default: { delAll(l.pHead); // xóa danh sách cũ để khi đọc lại file (khi gọi lại hàm menu) sẽ không ghi tiếp vào danh sách cũ printf("\n\n\n BAN DA NHAP SAI HUONG DAN. XIN VUI LONG NHAP LAI: "); Menu(l); } } }
main() { int selection = 0; int entryNum = 0; entry *phoneBook; phoneBook = (entry*)malloc(sizeof(entry)); do { printf("\n---------------------------------------------"); printf("\nPhone Book\n[1]\tAdd Friend\n[2]\tDelete Friend\n[3]\tShow Phone Book\n[4]\tSearch Phone Book\n[5]\tRandom Entry\n[6]\tAlphebetical Phone Book\n[7]\tClear Phone Book\n[8]\tSave Phone Book\n[9]\tLoad Phone Book\n[0]\tExit\n:"); scanf("%d",&selection); switch(selection) { case 1: { printf("\nYou have selected \"Add Friend\"."); addFriend(phoneBook,&entryNum); break; } case 2: { printf("\nYou have selected \"Delete Friend\"."); delFriend(phoneBook,&entryNum); break; } case 3: { printf("\nYou have selected \"Show Phone Book\"."); showBook(phoneBook,&entryNum); break; } case 4: { printf("\nYou have selected \"Search Phone Book\"."); findFriend(phoneBook,&entryNum); break; } case 5: { printf("\nYou have selected \"Random Entry\"."); randEntry(phoneBook,&entryNum); break; } case 6: { printf("\nYou have selected \"Alphabetical Phone Book\"."); alphaBook(phoneBook,&entryNum); break; } case 7: { printf("\nYou have selected \"Clear Phone Book\"."); clearBook(phoneBook,&entryNum); break; } case 8: { printf("\nYou have selected \"Save Phone Book\"."); saveBook(phoneBook,&entryNum); break; } case 9: { printf("\nYou have selected \"Load Phone Book\"."); phoneBook=loadBook(phoneBook,&entryNum); break; } case 0: { printf("\nYou have selected \"Exit\"."); printf("\nHave a nice day!"); free(phoneBook); break; } default: { printf("\nINVALID OPTION!"); break; } } }while (selection!=0); }