void printMainSub(int menu, char *menu_num[MENU_NUM]) { menu_num[0] = "1. 전체 명단 보기"; menu_num[1] = "2. 신규 회원 등록"; menu_num[2] = "3. 기존 회원 삭제"; menu_num[3] = "4. 회원 정보 수정"; menu_num[4] = "5. 회원 정보 검색"; menu_num[5] = "6. 변경 사항 저장"; printMain(menu, menu_num); //초기 화면 기반 printMain(menu, menu_num); //초기 화면 정돈 }
int main(void) { system("mode con lines=25 cols=80"); //콘솔 창 크기 초기화 UserInfo *userInfo = NULL; FILE *readFile = NULL; FILE *writeFile = NULL; int input = 1, menu = 1, choice; int *ptr = &menu; char *menu_num[MENU_NUM]; puts("\n\n\n\n\n\n\n\n\n\n\n\n\t\t\t = 시작하는 중 = \n\n\n\n\n\n\n\n\n\n\n"); userInfo = setUserInfo(userInfo, readFile); //구조체 배열에 파일 데이터 저장 if (userInfo == (UserInfo*)-1) return 0; //오류 났을 경우 바로 종료 startSound(); //로딩 완료 효과음 printMainSub(menu, menu_num); //메인 메뉴 구성 while(1) { printMain(menu, menu_num); //메인 화면 출력 input = getch(); //입력 if (input == ARROW_BUFFER) //방향키는 입력 시 아스키확장 값이 먼저 들어온 후 값이 들어옴 input = getch(); //그래서 이 경우 버퍼를 한번 비우도록 하였음 switch (input) { case UP_ARROW_KEY: //상 방향키 if (menu > 1) menu--; moveSound(); break; case DOWN_ARROW_KEY: //하 방향키 if (menu < 6) menu++; moveSound(); break; case ENTER_KEY: //enter키 inSound(); switch (menu) { case 1: //출력 printList(userInfo); break; case 2: //등록 addUser(userInfo); break; case 3: //삭제 searchMain(userInfo, _DELETE, "삭제", "Delete"); break; case 4: //수정 searchMain(userInfo, MODIFY, "수정", "Modify"); break; case 5: //검색 searchMain(userInfo, SEARCH, "검색", "Search"); break; case 6: //저장 saveInfo(userInfo, writeFile); break; } //switch(menu) out break; case ESC_KEY: //esc키 inSound(); choice = closeProgram(); if (choice == SAVE) choice = saveInfo(userInfo, writeFile); if (choice == SAVE || choice == EXIT){ printClose(); free(userInfo); closeSound(); printClose_sub(); return 0; } else break; default: warningMessage(input - '0', 6, ptr); break; } //switch(input) out } free(userInfo); return 0; }
int main(void) { int userInput = mainMenu; rootPointer RP = { NULL, NULL }; member * leafNull; leafNull = (member *)malloc(sizeof(member)* 1); leafNull->color = black; leafNull = makeTree(&RP, leafNull); PlaySound(TEXT("bgm.wav"), NULL, SND_FILENAME | SND_ASYNC | SND_LOOP | SND_NODEFAULT); while (1) { fflush(stdin); switch (userInput){ case (mainMenu) : userInput = printMain(); break; case (printMemberListInIdOrder) : system("cls"); //id 순으로 회원보기 userInput = printList(RP.rootNode, leafNull); break; case (registerNewMember) : //회원등록하기 system("cls"); userInput = addData(&RP, leafNull); break; case (searchMember) : //회원검색하기 system("cls"); userInput = selectSearch(&RP, leafNull); break; case (deleteMember) : //삭제하기 system("cls"); userInput = selectSearch(&RP, leafNull); break; case (memberInfoModif) : //수정하기 system("cls"); userInput = selectSearch(&RP, leafNull); break; case (saveMemberList) : //저장하기 system("cls"); userInput = saveData(&RP, leafNull); break; case (quitProgram) : //종료하기 전에 저장여부 확인 system("cls"); userInput = askSave(&RP,leafNull); return 0; case (creditPage) : //credit system("cls"); userInput = credit(); PlaySound(TEXT("bgm.wav"), NULL, SND_FILENAME | SND_ASYNC | SND_LOOP | SND_NODEFAULT); break; case (printMemberListInNameOrder) : //이름순으로 회원보기 system("cls"); userInput = printList(RP.rootNodeN, leafNull); break; } } return 0; }