import java.util.Scanner;
interface INIT_MENU
{
int INPUT=1,SEARCH=2,DELETE=3,EXIT=4;
}
interface INPUT_SELECT
{
int NOMAL=1,UNIV=2,COMPANY=3;
}
class PhoneInfo {
String name;
String phoneNumber;
public PhoneInfo(String name,String num)
{
this.name=name;
phoneNumber=num;
}
public void showPhoneInfo()
{
System.out.println("name:"+name);
System.out.println("phone:"+phoneNumber);
}
}
class PhoneUnivInfo extends PhoneInfo
{
String major;
int year;
public PhoneUnivInfo(String name,String num,String major,int year)
{
super(name,num);
this.major=major;
this.year=year;
}
public void showPhoneInfo()
{
super.showPhoneInfo();
System.out.println("major:"+major);
System.out.println("year:"+year);
}
}
class PhoneCompanyInfo extends PhoneInfo
{
String company;
public PhoneCompanyInfo(String name,String num,String company)
{
super(name,num);
this.company=company;
}
public void showPhoneInfo()
{
super.showPhoneInfo();
System.out.println("company:"+company);
}
}
class PhoneBookManager
{
final int MAX_CNT=100;
PhoneInfo[] infoStorage=new PhoneInfo[MAX_CNT];
int curCnt=0;
static PhoneBookManager inst=null;
public static PhoneBookManager createManagerInst()
{
if(inst==null)
inst=new PhoneBookManager();
return inst;
}
private PhoneBookManager(){}
private PhoneInfo readFriendInfo()
{
System.out.print("이름:");
String name=MenuViewer.keyboard.nextLine();
System.out.print("전화번호:");
String phone=MenuViewer.keyboard.nextLine();
return new PhoneInfo(name,phone);
}
private PhoneInfo readUnivFriendInfo()
{
System.out.print("이름:");
String name=MenuViewer.keyboard.nextLine();
System.out.print("전화번호:");
String phone=MenuViewer.keyboard.nextLine();
System.out.println("전공:");
String major=MenuViewer.keyboard.nextLine();
System.out.print("학년:");
int year=MenuViewer.keyboard.nextInt();
MenuViewer.keyboard.nextLine();
return new PhoneUnivInfo(name,phone,major,year);
}
private PhoneInfo readCompanyFriendInfo()
{
System.out.print("이름:");
String name=MenuViewer.keyboard.nextLine();
System.out.print("전화번호:");
String phone=MenuViewer.keyboard.nextLine();
System.out.println("회사:");
String company=MenuViewer.keyboard.nextLine();
return new PhoneCompanyInfo(name,phone,company);
}
public void inputData()
{
System.out.println("데이터 입력을 시작합니다..");
System.out.println("1.일반,2.대학,3.회사");
System.out.print("선택>>");
int choice=MenuViewer.keyboard.nextInt();
MenuViewer.keyboard.nextLine();
PhoneInfo info=null;
switch(choice)
{
case INPUT_SELECT.NORMAL :
info=readFriendInfo();
break;
case INPUT_SELECT.UNIV :
info=readUnivFriendInfo();
break;
case INPUT_SELECT.COMPANY :
info=readCompanyFriendInfo();
break;
}
infoStorage[curCnt++]=info;
System.out.println("데이터 입력이 완료되었습니다.\n");
}
public void searchData()
{
System.out.println("데이터 검색을 시작합니다.");
System.out.print("이름:");
String name=MenuViewer.keyboard.nextLine();
int dataIdx=search(name);
if(dataIdx<0)
{
System.out.println("데이터 없음\n");
}
else
{
infoStorage[dataIdx].showPhoneInfo();
System.out.println("완료");
}
}
public void deleteData()
{
System.out.println("데이터 삭제시작");
System.out.print("이름:");
String name=MenuViewer.keyboard.nextLine();
int dataIdx=search(name);
if(dataIdx<0)
{
System.out.println("존재안함");
}
else
{
for(int idx=dataIdx;idx<(curCnt-1);idx++)
infoStorage[idx]=infoStorage[idx+1];
curCnt--;
System.out.println("삭제\n");
}
}
private int search(String name)
{
for(int idx=0;idx<curCnt;idx++)
{
PhoneInfo curInfo=infoStorage[idx];
if(name.compareTo(curInfo.name)==0)
return idx;
}
return -1;
}
}
class MenuViewer
{
public static Scanner keyboard=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 PhoneBookVer05
{
public static void main(String[] args)
{
PhoneBookManager manager=PhoneBookManager.createManagerInst();
int choice;
while(true)
{
MenuViewer.showMenu();
choice=MenuViewer.keyboard.nextInt();
MenuViewer.keyboard.nextLine();
switch(choice)
{
case INIT_MENU.INPUT :<<<<<<<<<<요부분 오류
manager.inputData();
break;
case INIT_MENU.SEARCH :
manager.searchData();
break;
case INIT_MENU.DELETE :
manager.deleteData();
break;
case INIT_MENU.EXIT :
System.out.println("종료");
return;
}
}
}
}
오류라 표시해논곳이 오류입니다 왜오류인지알려주세요. 책보고 그대로 썻는걸요..
Exception in thread "main" java.lang.Error: Unresolved compilation problem:
INPUT_SELECT.NORMAL cannot be resolved
at PhoneBookManager.inputData(PhoneInfo.java:119)
at PhoneBookVer05.main(PhoneInfo.java:212)
부탁드려요 ㅠㅠ 책보고도 안되니;;




INPUT_SELECT 인터페이스에 NORMAL 이란 변수가 없다는 이야기 입니다.
소스에 보니 NORMAL 이 아니고 NOMAL 로 정의가 되어 있네요.
변수명을 맞춰주면 될 것 같습니다.