이전 질문 게시판은 새 글 쓰기를 막았습니다. [질문 게시판]을 이용바랍니다.
Date |
2010/04/28 01:31:23 |
Name |
제로스 |
Subject |
자바 입력관련 질문입니다. |
import java.util.Scanner;
class PhoneInfo{
public String name;
public String phoneNumber;
public String birthday;
public PhoneInfo(String name, String phoneNumber, String birthday){
this.name=name;
this.phoneNumber=phoneNumber;
this.birthday=birthday;
}
public PhoneInfo(String name, String phoneNumber){
this.name=name;
this.phoneNumber=phoneNumber;
this.birthday=null;
}
public void getPhoneInfo(){
System.out.println("name :"+name);
System.out.println("phoneNumber :"+phoneNumber);
if(birthday!=null)
System.out.println("birthday :"+birthday);
}
}
class Menu{
public static Scanner input=new Scanner(System.in);
public static void showMenu(){
System.out.println("선택하세요...");
System.out.println("1. 데이터 입력");
System.out.println("2. 데이터 검색");
System.out.println("3. 데이터 삭제");
System.out.println("4. 프로그램 종료");
System.out.print("선택 : ");
}
}
class PhoneBookManager{
final int SIZE=100;
int temp=0;
int i=0;
PhoneInfo[] myPhoneInfo=new PhoneInfo[SIZE];
public void setData(){
System.out.println("데이터의 입력을 시작합니다.");
System.out.print("이름 : ");
String name=Menu.input.nextLine();
System.out.print("전화번호 : ");
String phoneNumber=Menu.input.nextLine();
System.out.print("생년월일 : ");
String birthday=Menu.input.nextLine();
myPhoneInfo[temp]=new PhoneInfo(name,phoneNumber,birthday);
temp++;
System.out.println("데이터 입력이 완료되었습니다.");
}
public void getData(){
System.out.println("데이터 검색을 시작합니다..");
int index=search();
if(index<0)
System.out.println("해당하는 데이터가 존재하지 않습니다.");
else{
myPhoneInfo[index].getPhoneInfo();
System.out.println("데이터 검색이 완료되었습니다.");
}
}
public void deleteData(){
System.out.println("데이터의 삭제를 시작합니다.");
int index=search();
if(index<0)
System.out.println("해당하는 데이터가 존재하지 않습니다.");
else{
for(i=index;i<(temp-1);i++)
myPhoneInfo[index]=myPhoneInfo[index+1];
temp--;
System.out.println("데이터 삭제가 완료되었습니다.");
}
}
private int search(){
System.out.print("이름 : ");
String findName=Menu.input.nextLine();
for(i=0;i<temp;i++){
PhoneInfo cntmyPhoneInfo=myPhoneInfo[i];
if(findName.compareTo(cntmyPhoneInfo.name)==0)
return i;
}
return -1;
}
}
public class PhoneBookVer3{
public static void main(String[] args) {
PhoneBookManager myManager=new PhoneBookManager();
while(true){
Menu.showMenu();
int choice=Menu.input.nextInt();
Menu.input.nextLine();
switch(choice){
case 1:
myManager.setData();
break;
case 2:
myManager.getData();
break;
case 3:
myManager.deleteData();
break;
case 4:
System.out.println("프로그램을 종료합니다.");
return;
}
}
}
}
전화번호 관리 프로그램인데요.
전화번호 입력을 하려고하면 제대로 입력을 받지 못합니다, 검색과 삭제 또한 제대로 하지 못합니다.
탭키를 이용해서 어찌저찌해서 프로그램은 돌아가는데, 왜 입력이 제대로 되지 않는지 이해가가지 않습니다.
책을 보고서 약간 제 스타일로 변형한거라서 원래의 소스코드와 별 차이가 없는데, 혹시나해서 원래 소스 코드를 실행해 봤는데
역시나 똑같은 증상이 나타납니다. 컴터상의 문제일까요? 아니면 코드에 문제가 있는건가요?
|
통합규정 1.3 이용안내 인용
"Pgr은 '명문화된 삭제규정'이 반드시 필요하지 않은 분을 환영합니다.
법 없이도 사는 사람, 남에게 상처를 주지 않으면서 같이 이야기 나눌 수 있는 분이면 좋겠습니다."
|