public void ViewMenu() { while (true) { print.Menu("도서대여"); menuSelect = CancelKey.ReadLineWithCancel(); //중간에 ESC키 받으면 menuSelect 값이 null이 되어 if (menuSelect == null) { menu.ViewMenu(); //이전 메뉴로 나감 } if (errorCheck.Number(menuSelect, "5지선다") == false) //입력받은 menuSelect의 오류값이 false면(오류없음) 반복문 나감 { break; } print.MenuErrorMsg("5지선다오류"); } switch (int.Parse(menuSelect)) { case RENT: RentMenu(); break; case RETURN: Return(); break; case EXTENSION: Extension(); break; case PREVIOUS: menu.ViewMenu(); break; } }
public Book BookEdit(Book inputBook, BookManagement bookManagement) { string count; Console.Clear(); Console.WriteLine("\n\n\t---------------------------------수정할 도서 기존 정보--------------------------------"); Console.WriteLine("\t도서 제목 : {0}", inputBook.BookName); Console.WriteLine("\t출판사 : {0}", inputBook.Publisher); Console.WriteLine("\t저자 : {0}", inputBook.Author); Console.WriteLine("\t도서 가격 : {0}", inputBook.Price); Console.WriteLine("\t수량 : {0}", inputBook.Count + "\n"); Console.WriteLine("\t--------------------------------------------------------------------------------------"); Console.WriteLine("\n\n\t---------------------------------수정할 도서 수량 입력--------------------------------"); while (true) { Console.Write("\n\t수량을 입력해주세요 : "); count = CancelKey.ReadLineWithCancel(); if (count == null) { bookManagement.Edit(bookManagement); } if (errorCheck.BookCount(count) == false) { break; } RegisterErrorMsg("수량"); } inputBook.Count = int.Parse(count); return(inputBook); }
public void Edit(MemberManagement memberManagement) //멤버 편집 { string inputID; int listIndex; while (true) { print.Search("편집할 회원의 학번을 "); inputID = CancelKey.ReadLineWithCancel(); if (inputID == null) { ViewMenu(); } if (errorCheck.MemberID(inputID) == false) { break; } } listIndex = memberList.FindIndex(member => member.StudentId.Equals(inputID)); //listIndex = 회원 리스트에서 입력받은 inputID 값과 일치하는 item의 index를 반환함 if (listIndex == NO_MEMBER) //리스트-1 => 매칭 되는 item 없다는 뜻 { while (true) //입력시 정규표현식에 맞지 않으면 반복문 탈출 불가(같은 부분 지속적으로 입력받기 위함) { print.ErrorMsg("존재하지않는회원"); menuSelect = CancelKey.ReadLineWithCancel(); if (menuSelect == null) { ViewMenu(); //입력 중간에 ESC키를 누르면 이전 메뉴로 } if (errorCheck.Number(menuSelect, "선택") == false) //에러 안나면 나감 { break; } print.MenuErrorMsg("2지선다오류"); } switch (int.Parse(menuSelect)) { case REINPUT: Edit(this); break; case GOPREV: ViewMenu(); break; } } else //리스트에 존재 { memberList[listIndex] = print.MemberEdit(memberList[listIndex], this); print.CompleteMsg("편집이 완료"); ViewMenu(); } }
public void Search() //회원 검색 { string inputID; int listIndex; while (true) { print.Search("검색할 회원의 학번을 "); inputID = CancelKey.ReadLineWithCancel(); if (inputID == null) { ViewMenu(); } errorCheck.MemberID(inputID); if (errorCheck.MemberID(inputID) == false) { break; } print.MenuErrorMsg("2지선다오류"); } listIndex = memberList.FindIndex(member => member.StudentId.Equals(inputID)); if (listIndex == NO_MEMBER) //리스트-1 => 매칭 되는 item 없다는 뜻 { while (true) { print.ErrorMsg("존재하지않는회원"); menuSelect = CancelKey.ReadLineWithCancel(); if (menuSelect == null) { ViewMenu(); } if (errorCheck.Number(menuSelect, "선택") == false) { break; } print.MenuErrorMsg("2지선다오류"); } switch (int.Parse(menuSelect)) { case REINPUT: Search(); break; case GOPREV: ViewMenu(); break; } } else //리스트에 입력받은 학번에 부합하는 아이템 존재 { print.MemberInfo(memberList[listIndex]); ViewMenu(); } }
public int SearchByPublisher() { print.Search("출판사"); input = CancelKey.ReadLineWithCancel(); if (input == null) { ViewMenu(); } bookListIndex = bookList.FindIndex(book => book.Publisher.Equals(input)); return(bookListIndex); //bookList에서 입력받은 출판사명 값과 일치하는 인덱스 반환 }
public int SearchByName() { print.Search("도서명"); input = CancelKey.ReadLineWithCancel(); if (input == null) { ViewMenu(); //시간나면 } listIndex = bookList.FindIndex(book => book.BookName.Equals(input)); return(listIndex); }
public int SearchByAuthor() { print.Search("저자"); input = CancelKey.ReadLineWithCancel(); if (input == null) { ViewMenu(); //이것도 } listIndex = bookList.FindIndex(book => book.Author.Equals(input)); return(listIndex); }
public int SearchByPublisher() { print.Search("출판사"); input = CancelKey.ReadLineWithCancel(); if (input == null) { ViewMenu(); //시간나면 타입별 받앙서 } listIndex = bookList.FindIndex(book => book.Publisher.Equals(input)); return(listIndex); }
public void ViewMenu() { while (true) { print.Menu("회원관리"); menuSelect = CancelKey.ReadLineWithCancel(); if (menuSelect == null) { menu.ViewMenu(); //입력 중간에 ESC키 받으면 menuSelect값이 null이 되어 } //이전 메뉴로 돌아가게됨. if (errorCheck.Number(menuSelect, "7지선다") == false) { break; } print.MenuErrorMsg("7지선다오류"); } switch (int.Parse(menuSelect)) { case REGISTER: Register(); break; case EDIT: Edit(this); break; case REMOVE: Delete(); break; case SEARCH: Search(); break; case PRINT_MEMBER_LIST: PrintMemberList(); break; case PREVIOUS: menu.ViewMenu(); break; case EXIT: Environment.Exit(0); break; } }
public void ViewMenu() { while (true) { print.Menu("도서관리"); menuSelect = CancelKey.ReadLineWithCancel(); if (menuSelect == null) { menu.ViewMenu(); } if (errorCheck.Number(menuSelect, "7지선다") == false) { break; } print.MenuErrorMsg("7지선다오류"); } switch (int.Parse(menuSelect)) { case REGISTRATION: Register(); break; case EDIT: Edit(this); break; case REMOVE: Delete(); break; case SEARCH: Search(); break; case PRINT_BOOK_LIST: PrintBookList(); break; case PREVIOUS: menu.ViewMenu(); break; case EXIT: Environment.Exit(0); break; } }
//기본 기능은 주소/핸드폰 번호만 수정 가능 public Member MemberEdit(Member inputMember, MemberManagement memberManagement) { string phoneNumber, address; Console.Clear(); Console.WriteLine("\n\n\t---------------------------------수정할 회원 기존 정보--------------------------------"); Console.WriteLine("\n\t이름 : {0}", inputMember.Name); Console.WriteLine("\t학번 : {0}", inputMember.StudentId); Console.WriteLine("\t성별 : {0}", inputMember.Gender); Console.WriteLine("\t핸드폰 번호 : {0}", inputMember.PhoneNumber); Console.WriteLine("\t이메일 주소 : {0}", inputMember.Email); Console.WriteLine("\t주소 : {0}", inputMember.Address + "\n"); Console.WriteLine("\t--------------------------------------------------------------------------------------"); Console.WriteLine("\n\n\t---------------------------------수정할 회원 정보 입력--------------------------------"); while (true) { Console.Write("\n\t핸드폰 번호 입력(010-1234-5678 형식) : "); phoneNumber = CancelKey.ReadLineWithCancel(); if (phoneNumber == null) { memberManagement.Edit(memberManagement); } if (errorCheck.MemberPhone(phoneNumber) == false) { break; } RegisterErrorMsg("핸드폰 번호"); } while (true) { Console.Write("\n\n\t주소 입력(동/리까지 입력) : "); address = CancelKey.ReadLineWithCancel(); if (address == null) { MemberEdit(inputMember, memberManagement); } if (errorCheck.MemberAddress(address) == false) { break; } RegisterErrorMsg("주소"); } inputMember.PhoneNumber = phoneNumber; inputMember.Address = address; return(inputMember); }
public void RentMenu() { while (true) { print.Menu("대여검색"); menuSelect = CancelKey.ReadLineWithCancel(); if (menuSelect == null) { ViewMenu(); } if (errorCheck.Number(menuSelect, "5지선다") == false) { break; } print.MenuErrorMsg("5지선다오류"); } switch (int.Parse(menuSelect)) { case SEARCH_BY_NAME: bookListIndex = SearchByName(); //이름으로 검색 ValidateCheckBook("byName"); break; case SEARCH_BY_PUBLISHER: bookListIndex = SearchByPublisher(); //출판사명으로 검색 ValidateCheckBook("byPublisher"); break; case SEARCH_BY_AUTHOR: bookListIndex = SearchByAuthor(); //작가로 검색 ValidateCheckBook("byAuthor"); break; case GOPREV: ViewMenu(); break; case SHUT_DOWN: Environment.Exit(0); break; } }
public void ValidateCheckBook(string searchType) { if (bookListIndex == NO_BOOK) { while (true) { print.ErrorMsg("존재하지않는도서"); menuSelect = CancelKey.ReadLineWithCancel(); if (menuSelect == null) { RentMenu(); } if (errorCheck.Number(menuSelect, "선택") == false) { break; } print.MenuErrorMsg("2지선다"); } switch (int.Parse(menuSelect)) { case REINPUT: //다시 입력 할 때 searchType 변수로 검색 방식 설정해주고 인자값으로 넘겨줌 if (searchType == "byName") { SearchByName(); } if (searchType == "byPublisher") { SearchByPublisher(); } if (searchType == "byAuthor") { SearchByAuthor(); } break; case PREV: RentMenu(); break; } } Rent(bookListIndex, searchType); }
public void Return() { string studentID; string confirm; while (true) { print.InputIDMsg("책을 반납할 회원"); studentID = CancelKey.ReadLineWithCancel(); if (studentID == null) { ViewMenu(); } if (errorCheck.MemberID(studentID) == false) { break; } print.RegisterErrorMsg("학번"); } memberListIndex = memberList.FindIndex(member => member.StudentId.Equals(studentID)); //입력받은 학번과 일치하는 회원을 리스트에서 찾아서 인덱스를 반환 if (memberListIndex == NO_MEMBER) //입력받은 학번에 해당하는 회원 없을때 { while (true) { print.ErrorMsg("존재하지않는회원"); menuSelect = CancelKey.ReadLineWithCancel(); if (menuSelect == null) { Return(); //ESC키 } if (errorCheck.Number(menuSelect, "선택") == false) { break; } print.MenuErrorMsg("2지선다오류"); } switch (int.Parse(menuSelect)) { case REINPUT: Return(); break; case PREV: RentMenu(); break; } } bookListIndex = bookList.FindIndex(book => //검색한 학번의 회원이 존재하면 그 회원이 빌린 책과 memberList[memberListIndex].RentBook.Equals(book.BookName)); //도서 리스트에 있는 책에서 값이 일치하는 인덱스를 반환 while (true) { print.ReturnMsg(bookList[bookListIndex].BookName); confirm = CancelKey.ReadLineWithCancel(); if (confirm == null) { Return(); } if (errorCheck.Confirm(confirm) == false) { break; } print.MenuErrorMsg("Y/N오류"); } if (confirm == "Y" || confirm == "y") { memberList[memberListIndex].RentBook = ""; //책을 반납한 회원의 빌린 책명 없애줌 memberList[memberListIndex].DueDate = ""; //책을 반납한 회원의 반납일 없애줌 bookList[bookListIndex].Count = bookList[bookListIndex].Count + 1; print.CompleteMsg("반납 완료"); RentMenu(); } else if (confirm == "N" || confirm == "n") { Console.WriteLine("\t2초 후에 메뉴로 돌아갑니다..."); Thread.Sleep(2000); ViewMenu(); } }
public Book BookRegister(BookManagement bookManagement) { string bookName, publisher, author, price, count; Console.Clear(); while (true) { Console.Write("\n\n\t도서 제목 입력(16자이내) : "); bookName = CancelKey.ReadLineWithCancel(); if (bookName == null) { bookManagement.ViewMenu(); } if (errorCheck.BookName(bookName) == false) { break; } RegisterErrorMsg("도서제목"); } while (true) { Console.Write("\n\n\t출판사 입력(8자이내) : "); publisher = CancelKey.ReadLineWithCancel(); if (publisher == null) { BookRegister(bookManagement); } if (errorCheck.BookName(publisher) == false) { break; } RegisterErrorMsg("출판사명"); } while (true) { Console.Write("\n\n\t저자 입력(10자이내) : "); author = CancelKey.ReadLineWithCancel(); if (author == null) { BookRegister(bookManagement); } if (errorCheck.BookAuthor(author) == false) { break; } RegisterErrorMsg("저자"); } while (true) { Console.Write("\n\n\t가격 입력(예:50000원) : "); price = CancelKey.ReadLineWithCancel(); if (price == null) { BookRegister(bookManagement); } if (errorCheck.BookPrice(price) == false) { break; } RegisterErrorMsg("가격"); } while (true) { Console.Write("\n\n\t수량 입력(숫자만 입력) : "); count = CancelKey.ReadLineWithCancel(); if (count == null) { BookRegister(bookManagement); } if (errorCheck.BookCount(count) == false) { break; } RegisterErrorMsg("수량"); } Book newBook = new Book(bookName, publisher, author, price, int.Parse(count)); return(newBook); }
public void Search() { while (true) { print.Menu("도서검색"); menuSelect = CancelKey.ReadLineWithCancel(); if (menuSelect == null) { ViewMenu(); } if (errorCheck.Number(menuSelect, "5지선다") == false) { break; } print.MenuErrorMsg("5지선다오류"); } switch (int.Parse(menuSelect)) { case SEARCH_BY_NAME: SearchByName(); break; case SEARCH_BY_PUBLISHER: SearchByPublisher(); break; case SEARCH_BY_AUTHOR: SearchByAuthor(); break; case PREV: ViewMenu(); break; case SHUT_DOWN: Environment.Exit(0); break; } if (listIndex == NO_BOOK) { while (true) { print.ErrorMsg("존재하지않는도서"); menuSelect = CancelKey.ReadLineWithCancel(); if (menuSelect == null) { Search(); } if (errorCheck.Number(menuSelect, "선택") == false) { break; } print.MenuErrorMsg("2지선다오류"); } switch (int.Parse(menuSelect)) { case REINPUT: Search(); break; case GOPREV: ViewMenu(); break; } } else //리스트에 존재 { print.BookSearch(bookList[listIndex]); ViewMenu(); } }
public void Delete() { while (true) { print.Menu("도서검색"); menuSelect = CancelKey.ReadLineWithCancel(); if (menuSelect == null) { ViewMenu(); } if (errorCheck.Number(menuSelect, "5지선다") == false) { break; } print.MenuErrorMsg("5지선다오류"); } switch (int.Parse(menuSelect)) { case SEARCH_BY_NAME: listIndex = SearchByName(); break; case SEARCH_BY_PUBLISHER: listIndex = SearchByPublisher(); break; case SEARCH_BY_AUTHOR: listIndex = SearchByAuthor(); break; case PREV: ViewMenu(); break; case SHUT_DOWN: Environment.Exit(0); break; } if (listIndex == NO_BOOK) { print.ErrorMsg("존재하지않는도서"); menuSelect = CancelKey.ReadLineWithCancel(); if (menuSelect == null) { Delete(); } switch (int.Parse(menuSelect)) { case REINPUT: Delete(); break; case GOPREV: ViewMenu(); break; } } else //리스트에 존재 { string confirm; while (true) { print.BookDelete(bookList[listIndex]); confirm = CancelKey.ReadLineWithCancel(); if (confirm == null) { Delete(); } if (errorCheck.Confirm(confirm) == false) { break; } print.MenuErrorMsg("Y/N오류"); } if (confirm == "Y" || confirm == "y") { bookList.RemoveAt(listIndex); print.CompleteMsg("도서 삭제가 완료 "); ViewMenu(); } else if (confirm == "N" || confirm == "n") { Console.WriteLine("이전 메뉴로 돌아갑니다..."); Console.WriteLine("\t2초 후에 메뉴로 돌아갑니다..."); Thread.Sleep(2000); ViewMenu(); } } }
public void Edit(BookManagement bookManagement) { while (true) { print.Menu("도서수정"); menuSelect = CancelKey.ReadLineWithCancel(); if (menuSelect == null) { ViewMenu(); } if (errorCheck.Number(menuSelect, "5지선다") == false) { break; } print.MenuErrorMsg("5지선다오류"); } switch (int.Parse(menuSelect)) { case SEARCH_BY_NAME: listIndex = SearchByName(); break; case SEARCH_BY_PUBLISHER: listIndex = SearchByPublisher(); break; case SEARCH_BY_AUTHOR: listIndex = SearchByAuthor(); break; case PREV: menu.ViewMenu(); break; case SHUT_DOWN: Environment.Exit(0); break; } if (listIndex == NO_BOOK) { while (true) { print.ErrorMsg("존재하지않는도서"); menuSelect = CancelKey.ReadLineWithCancel(); if (menuSelect == null) { Edit(this); } if (errorCheck.Number(menuSelect, "선택") == false) { break; } } switch (int.Parse(menuSelect)) { case REINPUT: Edit(this); break; case GOPREV: Edit(this); break; } } else //리스트에 존재 { bookList[listIndex] = print.BookEdit(bookList[listIndex], this); print.CompleteMsg("수량 수정 완료"); ViewMenu(); } }
public void Delete() //멤버 삭제 메소드 { string inputID; string confirm; int listIndex; while (true) { print.Search("삭제할 회원의 학번을 "); inputID = CancelKey.ReadLineWithCancel(); if (inputID == null) { ViewMenu(); } if (errorCheck.MemberID(inputID) == false) { break; } } listIndex = memberList.FindIndex(member => member.StudentId.Equals(inputID)); if (listIndex == NO_MEMBER) //리스트-1 => 매칭 되는 item 없다는 뜻 { while (true) { print.ErrorMsg("존재하지않는회원"); menuSelect = CancelKey.ReadLineWithCancel(); if (menuSelect == null) { ViewMenu(); } if (errorCheck.Number(menuSelect, "선택") == false) //에러 값이 false이기 때문에 반복문 나감 { break; } print.MenuErrorMsg("2지선다오류"); } switch (int.Parse(menuSelect)) { case REINPUT: Edit(this); break; case GOPREV: ViewMenu(); break; } } else //리스트에 입력받은 학번과 일치하는 아이템 있음. { while (true) { print.MemberDelete(memberList[listIndex]); confirm = CancelKey.ReadLineWithCancel(); if (confirm == null) { ViewMenu(); } if (errorCheck.Confirm(confirm) == false) //입력 양식 안맞을때 { break; } print.MenuErrorMsg("Y/N오류"); } if (confirm == "Y" || confirm == "y") { memberList.RemoveAt(listIndex); print.CompleteMsg("회원 삭제가 완료 "); ViewMenu(); } else if (confirm == "N" || confirm == "n") { Console.WriteLine("\n\t2초 후에 메뉴로 돌아갑니다..."); Thread.Sleep(2000); ViewMenu(); } } }
public void Rent(int bookListIndex, string searchType) { //리스트에 존재 if (bookList[bookListIndex].Count == 0) //책 수량 없음 { print.CompleteMsg("수량이 소진"); RentMenu(); } else//수량이 있으면 빌릴 사람 입력 { while (true) { print.InputIDMsg("책을 빌릴 회원"); studentID = CancelKey.ReadLineWithCancel(); if (studentID == null) { RentMenu(); } if (errorCheck.MemberID(studentID) == false) { break; } print.RegisterErrorMsg("학번"); } memberListIndex = memberList.FindIndex(member => member.StudentId.Equals(studentID)); if (memberListIndex == NO_MEMBER) //학번 검색했을때 등록되지 않은 회원이었을때 { while (true) { print.ErrorMsg("존재하지않는회원"); menuSelect = CancelKey.ReadLineWithCancel(); if (menuSelect == null) { RentMenu(); } if (errorCheck.Number(menuSelect, "선택") == false) { break; } print.MenuErrorMsg("2지선다오류"); } switch (int.Parse(menuSelect)) { case REINPUT: Rent(bookListIndex, searchType); break; case PREV: RentMenu(); break; } } if (memberList[memberListIndex].RentBook != "") //해당 회원이 빌린 책이 있을 때 { while (true) { print.ReturnErrorMsg(); menuSelect = CancelKey.ReadLineWithCancel(); if (menuSelect == null) { Rent(bookListIndex, searchType); } if (errorCheck.Number(menuSelect, "선택") == false) { break; } print.MenuErrorMsg("2지선다오류"); } switch (int.Parse(menuSelect)) { case REINPUT: Return(); break; case PREV: RentMenu(); break; } } else //정상적으로 해당 인원에게 책을 대출해줌. 책 카운트도 감소 { bookList[bookListIndex].Count = bookList[bookListIndex].Count - 1; //책 카운트 감소 memberList[memberListIndex].DueDate = "2018-04-23"; //오늘부터 일주일 설정 memberList[memberListIndex].RentBook = bookList[bookListIndex].BookName; print.CompleteMsg("{0}에게 대출이 완료" + memberList[memberListIndex]); ViewMenu(); } } }
public void Extension() //반납 연장 { string studentID; string confirm; while (true) { print.InputIDMsg("책을 연장할 회원"); studentID = CancelKey.ReadLineWithCancel(); if (studentID == null) { ViewMenu(); } if (errorCheck.MemberID(studentID) == false) { break; } print.RegisterErrorMsg("학번"); } memberListIndex = memberList.FindIndex(member => member.StudentId.Equals(studentID)); //입력받은 학번에 해당하는 회원의 인덱스 if (memberListIndex == NO_MEMBER) //입력받은 학번에 해당하는 회원 없을때 { while (true) { print.ErrorMsg("존재하지않는회원"); menuSelect = CancelKey.ReadLineWithCancel(); if (menuSelect == null) { Extension(); } if (errorCheck.Number(menuSelect, "선택") == false) { break; } print.MenuErrorMsg("2지선다오류"); } switch (int.Parse(menuSelect)) { case REINPUT: Extension(); break; case PREV: RentMenu(); break; } } bookListIndex = bookList.FindIndex(book => memberList[memberListIndex].RentBook.Equals(book.BookName)); while (true) { print.ExtensionMsg(bookList[bookListIndex].BookName); confirm = CancelKey.ReadLineWithCancel(); if (confirm == null) { ViewMenu(); } if (errorCheck.Confirm(confirm) == false) { break; } print.MenuErrorMsg("Y/N오류"); } if (confirm == "Y" || confirm == "y") { memberList[memberListIndex].DueDate = "2018-04-30"; //오늘 날짜로부터 연장 print.CompleteMsg("연장 완료"); RentMenu(); } else if (confirm == "N" || confirm == "n") { Console.WriteLine("\t2초 후에 메뉴로 돌아갑니다..."); Thread.Sleep(2000); RentMenu(); } }
public Member MemberRegister(MemberManagement memberManagement) //while로 틀린 항목 다시 입력하게 { string name, studentId, gender, phoneNumber, email, address; Console.Clear(); while (true) { Console.Write("\n\n\t이름 입력 (4자리 이내) : "); name = CancelKey.ReadLineWithCancel(); if (name == null) { memberManagement.ViewMenu(); //입력중간에 ESC키 입력하면 바로 이전 메뉴로 나감 } if (errorCheck.MemberName(name) == false) //미리 설정해둔 정규식에 맞으면 bool 타입 false 반환 { break; } RegisterErrorMsg("이름"); } while (true) { Console.Write("\n\n\t학번 입력 (6~8자리 이내) : "); studentId = CancelKey.ReadLineWithCancel(); if (studentId == null) { MemberRegister(memberManagement); //입력중간에 ESC키 입력하면 입력 양식 가장 위로 올라감 } if (errorCheck.MemberID(studentId) == false) { break; } RegisterErrorMsg("학번"); } while (true) { Console.Write("\n\n\t성별 입력 (남/여): "); gender = CancelKey.ReadLineWithCancel(); if (gender == null) { MemberRegister(memberManagement); } if (errorCheck.MemberGender(gender) == false) { break; } RegisterErrorMsg("성별"); } while (true) { Console.Write("\n\n\t핸드폰 번호 입력(010-1234-5678 형식) : "); phoneNumber = CancelKey.ReadLineWithCancel(); if (phoneNumber == null) { MemberRegister(memberManagement); } if (errorCheck.MemberPhone(phoneNumber) == false) { break; } RegisterErrorMsg("핸드폰 번호"); } while (true) { Console.Write("\n\n\t이메일 입력 : "); email = CancelKey.ReadLineWithCancel(); if (email == null) { MemberRegister(memberManagement); } if (errorCheck.MemberEmail(email) == false) { break; } RegisterErrorMsg("이메일"); } while (true) { Console.Write("\n\n\t주소 입력 : "); address = CancelKey.ReadLineWithCancel(); if (address == null) { MemberRegister(memberManagement); } if (errorCheck.MemberAddress(address) == false) { break; } RegisterErrorMsg("주소"); } Member newMember = new Member(name, studentId, gender, phoneNumber, email, address, "", ""); return(newMember); }