void Taskmanager::printMenu(Day &day, Day &dDay) { IoHandler ioh; while (true) { try { printDay(day, dDay); string inputData = ioh.inputMenu("날짜 이동(년월일, (다음날)+, (전날)-), D-day 계산(+/- 날짜), 종료(Q) : "); if (inputData == "q" || inputData == "Q") { break; } int menu = checkInputData(inputData); switch (menu) { //하루이동 case ONE_DAY_MOVE: { oneDayMove(day, dDay, inputData); break; } //DDay지정 case SET_D_DAY: { setDDay(day, dDay); break; } //지정날짜이동 case SET_DAY: { setDay(day, dDay, inputData); break; } default: { ioh.putMsg("잘못된 기능 입력"); ioh.putNewLine(); break; } } } catch (string error) { ioh.putMsg(error); ioh.putNewLine(); } ioh.putNewLine(); } ioh.putNewLine(); }
void Taskmanager::printDay(Day &day, Day &dDay) { IoHandler ioh; ioh.putMsg("[현재날짜] "); ioh.printDay(day); if (isExistDDay) { ioh.putMsg("[D"); ioh.putChar(oper); ioh.putNum(difference); ioh.putMsg("] "); ioh.printDay(dDay); } else { ioh.putMsg("[D-day 없음]"); } ioh.putNewLine(); }
void Taskmanager::startHangmanGame(HangmanGame &hg, WordList &wordList) { IoHandler ioh; char a; hg.makeQuestion(wordList); string lowerQuestion = upperToLower(hg.getQuestionWord()); string lowerInputData; hg.setUsableLetter(); hg.setFindLetter(); hg.endGame(); //hangmancount = 0 while (true) { hg.putGameHeader(currentUser); hg.putHangman(); hg.putQuestion(); hg.putUsableLetter(); ioh.putNewLine(); ioh.putNewLine(); lowerInputData = upperToLower(ioh.inputLetter("알파벳이나 전체 단어를 입력하세요. [A - z 또는 단어] : ")); hg.setInputWord(lowerInputData); if (isOverlap(hg)) { cin >> a; continue; } if (hg.isCorrect() == true) { if (hg.isWin() == true) { hg.putGameHeader(currentUser); hg.putHangman(); hg.putQuestion(); hg.putUsableLetter(); ioh.putNewLine(); ioh.putNewLine(); ioh.putMsg("단어찾기에 성공하셨습니다!! 계속하시려면 아무 키나 입력하세요."); cin >> a; currentUserScore(true); break; } } else { if (hg.isWin() != true && hg.isLose() == true)
int main() { StudentList stdList; BookList bookList; LendList lendList; IoHandler ioh; ioh.loadStd("std.txt", stdList); ioh.loadBook("book.txt", bookList); ioh.loadLend("lend.txt", lendList); Taskmanager tm(stdList, bookList, lendList); int menu; while (true) { menu = ioh.putMenu(); switch (menu) { case 1: //대출 { ioh.putMsg("학번과 도서명 입력 --- "); int stdNum = ioh.inputNum(); string bookName = ioh.inputMsg(); tm.lendBook(stdNum, bookName); ioh.putNewLine(); break; } case 2: //반납 { ioh.putMsg("학번과 도서명 입력 --- "); int stdNum = ioh.inputNum(); string bookName = ioh.inputMsg(); tm.returnBook(stdNum, bookName); ioh.putNewLine(); break; } case 3: //현황 { tm.printLendList(); break; } case 4: //종료 { tm.saveLendList("lend.txt"); ioh.putMsg("대출 - 반납 상황을 저장하고 종료합니다."); return 0; } default: { ioh.putMsg("1 ~ 4중에 선택하세요."); ioh.putNewLine(); break; } } } }
int main() { IoHandler ioh; Taskmanager tm; HangmanGame hg; char menu; //-------소켓 라이브러리 불러오기-------- WSADATA wsaData; int retval = WSAStartup(MAKEWORD(2, 2), &wsaData); if (retval != 0) { ioh.putMsg("WSAStartup() Error\n"); return 0; } //---------소켓생성-------- SOCKET servSock = socket(PF_INET, SOCK_STREAM, 0); //TCP를 이용한 소켓 //---------서버 정보 입력-------------------- string ip = ioh.inputStr("서버의 IP주소를 입력하세요 : "); int port = ioh.inputNum("서버의 포트번호를 입력하세요 : "); SOCKADDR_IN servAddr; servAddr.sin_family = AF_INET; // IP주소를 이용 servAddr.sin_addr.s_addr = inet_addr(ip.c_str()); // 서버의 ip주소 servAddr.sin_port = htons(port); // 소켓 //---------서버 연결------------ retval = connect(servSock, (SOCKADDR*)&servAddr, sizeof(servAddr)); if (retval == SOCKET_ERROR) { ioh.putMsg("connect() Error\n"); return 0; } ioh.putMsg("행맨 서버에 접속중..."); User currentUser = ioh.printUserMenu(servSock); tm.setCurrentUser(currentUser); while (true) { ioh.printMenuHeader(tm.getCurrentUser(), tm.getCurrentWin(), tm.getCurrentLose()); menu = tm.selectMenu(ioh.inputMenu(tm.getCurrentUser()), hg, servSock); if (menu == 'Q' || menu == 'Z') { recv(servSock, &menu, 1, 0); break; } } /////////////////////////////////////////////////// //----------소켓 닫음------------------ closesocket(servSock); //---------라이브러리 해제--------- WSACleanup(); system("pause"); }