Exemplo n.º 1
0
int main()
{
    while(1)  //执行算法 
    {
        switch(chooseMenu())
        {
            case 0:exit(0);
            case 1:searchMain();break;
            case 2:sortMain();break;
            case 3:shortPathMain();break;
            case 4:KNAPMain();break;
            case 5:greedyJobMain();break;
            case 6:nQueenMain();break;
            case 7:sumOfSubMain();break;
            case 8:scientificComputingMain();break;
            case 9:binatTreeMain();break;
            case 10:diagramTraversalMain();break;
            case 11:minimumSpanningTreeMain();break;
        }
    }
    
    system("PAUSE");
    return 1;
}
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;
}