BASHA TECH
#연락처 프로그램 220724 본문
728x90
기존에 만들어 둔 건 너무 보기 복잡시럽고 한눈에 파악이 안되서... 거의 싸그리 다 뜯어 고쳤다.. 클래스도 좀 줄이고... 일단 코딩하자 해놔서... 객체 설정 클래스에 다 때려넣은 함수들도 다시 다른 클래스에 재배치하고... 헤헤....
그래서 최종은
lib > ContactsVO, MemeberEdit 클래스로
main> MainProgram만 돌아가게끔... 그렇게 했다..ㅎ
난관인 건... 번호를 받아서... 수정 삭제가 가능하게끔 했는데... 이걸 int가 아니라 string문자열로 입력 받아서.. 중복 이름이 나올 때 숫자를 부여하는 방식으로 코드를 짜야하는데... 그 부분이 막히고 있다.
일단 지금까지 짜놓은 코드는 돌아가긴 함.. 그거 수정해서 오늘 제출해야지..
>MainProgram.java
package main;
import java.util.Scanner;
import lib.ContactsVO;
import lib.MemberEdit;
public class MainProgram {
private static Scanner scan = new Scanner(System.in);
public static void main(String[] args) {
MemberEdit edit = new MemberEdit();
boolean menu = true;
while(menu) {
scan.reset();
//main 메뉴가 무슨 선택을 실행하더라도 다시 보여져야 함
System.out.println("===========================");
System.out.println("다음 메뉴 중 하나를 선택하세요.");
System.out.println("===========================");
System.out.println("1. 회원 추가");
System.out.println("2. 회원 목록 보기");
System.out.println("3. 회원 정보 수정하기");
System.out.println("4. 회원 삭제");
System.out.println("5. 회원 종료");
String menuNum = scan.next();
// 회원 추가
if("1".equals(menuNum)) {
edit.addInfo(makeInfo());
// 회원 목록 보기
}else if("2".equals(menuNum)) {
edit.showInfo();
// 회원 정보 수정하기
}else if("3".equals(menuNum)) {
System.out.println("수정할 정보의 고유 번호를 입력해 주세요.");
int person = scan.nextInt();
edit.updateInfo(makeInfo(), person);
// 회원 삭제
}else if("4".equals(menuNum)) {
// System.out.println("삭제할 회원의 고유 번호를 입력해 주세요.");
System.out.println("삭제할 회원의 이름을 입력해 주세요.");
edit.delInfo(scan.nextInt());
// 회원 종료
}else if("5".equals(menuNum)) {
menu = false;
}else {
System.out.println("해당 메뉴는 없는 메뉴입니다. 다시 선택 바랍니다.");
continue;
}
}
scan.close();
}
public static ContactsVO makeInfo() {
scan.reset();
ContactsVO person = new ContactsVO();
System.out.println("등록할 회원의 정보를 입력하세요.");
System.out.print("이름 : ");
person.setName(scan.next());
System.out.println();
System.out.print("전화번호 : ");
person.setTel(scan.next());
System.out.println();
System.out.print("종류 (ex.가족, 친구, 기타) : ");
person.setRelationship(scan.next());
System.out.println();
return person;
}
}
ContactsVO.java
package lib;
public class ContactsVO {
// 고유 번호
private int person;
// 이름
private String name;
// 전화 번호
private String tel;
// 종류
private String relationship;
// 각 멤버 변수 별 get set
// 고유 번호 get set
public int getPerson() {
return person;
}
public void setPerson(int person) {
this.person = person;
}
// 이름 get set
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
// 전화 번호 get set
public String getTel() {
return tel;
}
public void setTel(String tel) {
this.tel = tel;
}
// 종류 get set
public String getRelationship() {
return relationship;
}
public void setRelationship(String relationship) {
this.relationship = relationship;
}
public void showInfo() {
System.out.println("이름 : " + this.name);
System.out.println("전화번호 : " + this.tel);
System.out.println("종류 (ex.가족, 친구, 기타) : "+ this.relationship);
}
}
MemberEdit.java
package lib;
import java.util.ArrayList;
import java.util.List;
public class MemberEdit {
//개인정보 저장할 List
private List<ContactsVO> ContactList = new ArrayList<ContactsVO>();
//개인별 고유번호
private int person = 0;
/**
* 추가
* @param ContactsVO
* @return
*/
public int addInfo(ContactsVO contact) {
//성공여부 return 변수
int ret = 0;
try {
//고유번호 지정
contact.setPerson(++this.person);
//List에 객체를 추가 해 준다.
this.ContactList.add(contact);
}catch(Exception e) {
System.out.println("정보 추가 중 에러가 발생하였습니다." + "\n" + e.getMessage());
//return값 변경(0 : 정상, 1 : 에러)
ret = 1;
}
return ret;
}
/**
* 삭제
* @param person
* @return
*/
public int delInfo(int person) {
//성공여부 return 변수
int ret = 0;
try {
//List개수만큼 for문
for(int index=0; index < this.ContactList.size(); index++) {
ContactsVO tempContactsVO = this.ContactList.get(index);
if(person == tempContactsVO.getPerson()) {
//고유번호를 비교하여 같은 번호의 정보를 삭제한다.
this.ContactList.remove(index);
break;
}
if(index == this.ContactList.size()-1) {
ret = 2;
}
}
}catch(Exception e) {
System.out.println("정보 삭제 중 에러가 발생하였습니다." + "\n" + e.getMessage());
//return값 변경(0 : 정상, 1 : 에러, 2 : 해당정보없음)
ret = 1;
}
return ret;
}
/**
* 수정
* @param person
* @param contact
* @return
*/
public int updateInfo(ContactsVO ContactsVO, int person) {
//성공여부 return 변수
int ret = 0;
try {
//List개수만큼 for문
for(int index=0; index < this.ContactList.size(); index++) {
ContactsVO tempContactsVO = this.ContactList.get(index);
if(person == tempContactsVO.getPerson()) {
ContactsVO.setPerson(person);
//고유 번호를 비교하여 같은 번호의 정보를 수정한다.
this.ContactList.remove(index);
this.ContactList.add(index, ContactsVO);
break;
}
if(index == this.ContactList.size()-1) {
ret = 2;
}
}
}catch(Exception e) {
System.out.println("정보 수정 중 에러가 발생하였습니다." + "\n" + e.getMessage());
//return값 변경(0 : 정상, 1 : 에러, 2 : 해당정보없음)
ret = 1;
}
return ret;
}
public void showInfo() {
for(int index=0; index < this.ContactList.size(); index++) {
System.out.println("===========================");
System.out.println("고유번호 : " + this.ContactList.get(index).getPerson()
+"\n이름 : " + this.ContactList.get(index).getName()
+"\n전화번호 : " + this.ContactList.get(index).getTel()
+"\n종류 (ex.가족, 친구, 기타) : " + this.ContactList.get(index).getRelationship()
);
System.out.println("===========================");
}
}
}
728x90
반응형
'Assignments > #1' 카테고리의 다른 글
#연락처 프로그램 220714 (0) | 2022.07.15 |
---|
Comments