int main(){ char inputs[10]; int input; int admin = 0; //0 for NO, 1 for YES LoadBooks(&bookRoot); LoadMembers(&memRoot); while(1){ //Main Menu printf("\n\n\t\t\t\t UEC Library\n\n"); printf("1. Issue a book\n"); printf("2. Return book\n"); printf("3. Display all books\n"); printf("4. Find a book\n"); if(admin == 0){ printf("5. Admin Login\n"); printf("6. Exit\n"); }else{ printf("5. Add new book\n"); printf("6. Delete book\n"); printf("7. Add new member\n"); printf("8. Display all members\n"); printf("9. Find member\n"); printf("10. Delete member\n"); printf("11. Logout\n"); printf("12. Exit\n"); } printf("\nEnter your choice: "); fgets(inputs, 10, stdin); input = atoi(inputs); if(input == 0){ printf("Saving database...\n"); FILE *f = fopen(BOOKFILE, "w"); SaveBooks(bookRoot, &f); fclose(f); f = fopen(MEMBERFILE, "w"); SaveMembers(memRoot, &f); fclose(f); exit(1); } if(input <= 0) exit(1); if(admin == 0){ switch(input){ case 1: IssueABook(); break; case 2: ReturnBook(); break; case 3: DisplayAllBooks(); break; case 4: FindBook(); break; case 5: AdminLogin(&admin); break; default: printf("Saving database...\n"); FILE *f = fopen(BOOKFILE, "w"); SaveBooks(bookRoot, &f); fclose(f); f = fopen(MEMBERFILE, "w"); SaveMembers(memRoot, &f); fclose(f); exit(1); } }else{ switch(input){ case 1: IssueABook(); break; case 2: ReturnBook(); break; case 3: DisplayAllBooks(); break; case 4: FindBook(); break; case 5: AddNewBook(); break; case 6: DeleteBook(); break; case 7: AddNewMember(); break; case 8: DisplayAllMembers(); break; case 9: FindMember(); break; case 10: DeleteMember(); break; case 11: admin = 0; break; case 12: default: printf("Saving database...\n"); FILE *f = fopen(BOOKFILE, "w"); SaveBooks(bookRoot, &f); fclose(f); f = fopen(MEMBERFILE, "w"); SaveMembers(memRoot, &f); fclose(f); exit(1); } } } return 0; }
int main(void) { users_t users[MAX_USERS]; char buf[100]; int done = 0; // BusyWork(); // set a global pointer for easier function access USERS = users; // init some vars ADMIN_ACCESS = 0; CURRENT_USER = -1; NUM_USERS = 0; zero((char *)USERS, sizeof(users_t)*MAX_USERS); while (!done) { if (ADMIN_ACCESS) { zero(buf, 100); PrintAdminMenu(); if (read_until(buf, '\n', 100) == -1) { _terminate(-1); } if (strlen(buf) > 1) { print("[-] Invalid choice\n"); continue; } switch (buf[0]) { case '1': SendBroadcastMessage(); break; case '2': ADMIN_ACCESS = 0; break; case '3': print("Exiting...\n"); done = 1; break; default: continue; } } else if (CURRENT_USER == -1) { zero(buf, 100); PrintLoggedOutMenu(); if (read_until(buf, '\n', 100) == -1) { _terminate(-1); } if (strlen(buf) > 1) { print("[-] Invalid choice\n"); continue; } switch (buf[0]) { case '1': CreateUser(); break; case '2': Login(); break; case '3': print("Exiting...\n"); _terminate(0); break; default: print("[-] Invalid choice\n"); continue; } } else { zero(buf, 100); PrintNewMessages(); PrintLoggedInMenu(); if (read_until(buf, '\n', 100) == -1) { _terminate(-1); } if (strlen(buf) > 1) { print("[-] Invalid choice\n"); continue; } switch (buf[0]) { case '1': SendMessage(); break; case '2': ReadMessage(); break; case '3': ListMessages(); break; case '4': DeleteMessage(); break; case '5': CURRENT_USER = -1; print("Logging out...\n"); break; case '6': print("Exiting...\n"); _terminate(0); break; case 'a': AdminLogin(); break; default: print("[-] Invalid choice\n"); continue; } } } return(0); }