벡터 연습

 

※ 다음 주어진 Menus 클래스를 참고하여 Test168클래스를 완성하여 실행 예의 기능을 가진 프로그램을 구현한다.

class Menus	// → 완성
{
	public static final int E_ADD = 1;		//-- 요소 추가
	public static final int E_DISP = 2;		//-- 요소 출력
	public static final int E_FIND = 3;		//-- 요소 검색
	public static final int E_DEL = 4;		//-- 요소 삭제
	public static final int E_CHA = 5;		//-- 요소 변경
	public static final int E_EXIT = 6;		//-- 종료
}

 

실행 예)
[메뉴 선택]
1. 요소 추가
2. 요소 출력
3. 요소 검색
4. 요소 삭제
5. 요소 변경
6. 종료
>> 메뉴 선택(1~6) : 1

1번째 요소 입력 : 허수민
1번째 요소 입력 성공~!!!
요소 입력 계속(Y/N)? : y

2번째 요소 입력 : 진영은
2번째 요소 입력 성공~!!!
요소 입력 계속(Y/N)? : N

[메뉴 선택]
1. 요소 추가
2. 요소 출력
3. 요소 검색
4. 요소 삭제
5. 요소 변경
6. 종료
>> 메뉴 선택(1~6) : 2

[벡터 전체 출력]
허수민
진영은
벡터 전체 출력 완료~!!!

[메뉴 선택]
1. 요소 추가
2. 요소 출력
3. 요소 검색
4. 요소 삭제
5. 요소 변경
6. 종료
>> 메뉴 선택(1~6) : 3

검색할 요소 입력 : 진영은

[검색 결과 출력]
항목이 존재합니다.

[메뉴 선택]
1. 요소 추가
2. 요소 출력
3. 요소 검색
4. 요소 삭제
5. 요소 변경
6. 종료
>> 메뉴 선택(1~6) : 3

검색할 요소 입력 : 주재완

[검색 결과 출력]
항목이 존재하지 않습니다.

[메뉴 선택]
1. 요소 추가
2. 요소 출력
3. 요소 검색
4. 요소 삭제
5. 요소 변경
6. 종료
>> 메뉴 선택(1~6) : 4

삭제할 요소 입력 : 조인경

[삭제 결과 출력]
항목이 존재하지 않아 삭제할 수 없습니다.

[메뉴 선택]
1. 요소 추가
2. 요소 출력
3. 요소 검색
4. 요소 삭제
5. 요소 변경
6. 종료
>> 메뉴 선택(1~6) : 4

삭제할 요소 입력 : 허수민

[삭제 결과 출력]
허수민 항목이 삭제되었습니다.

[메뉴 선택]
1. 요소 추가
2. 요소 출력
3. 요소 검색
4. 요소 삭제
5. 요소 변경
6. 종료
>> 메뉴 선택(1~6) : 5

변경할 요소 입력 : 조윤상

[변경 결과 출력]
변경할 대상이 존재하지 않습니다.

[메뉴 선택]
1. 요소 추가
2. 요소 출력
3. 요소 검색
4. 요소 삭제
5. 요소 변경
6. 종료
>> 메뉴 선택(1~6) : 5

변경할 요소 입력 : 진영은
수정할 내용 입력 : 조영욱

[변경 결과 출력]
변경이 완료되었습니다.

[메뉴 선택]
1. 요소 추가
2. 요소 출력
3. 요소 검색
4. 요소 삭제
5. 요소 변경
6. 종료
>> 메뉴 선택(1~6) : 6

프로그램 종료
계속하려면 아무 키나 누르세요...

 


import java.util.Vector;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
import java.util.Enumeration;

class Menus	// → 완성
{
	public static final int E_ADD = 1;		//-- 요소 추가
	public static final int E_DISP = 2;		//-- 요소 출력
	public static final int E_FIND = 3;		//-- 요소 검색
	public static final int E_DEL = 4;		//-- 요소 삭제
	public static final int E_CHA = 5;		//-- 요소 변경
	public static final int E_EXIT = 6;		//-- 종료
}

public class Test168
{
	// 주요 속성 구성	→ 완성
	private static final Vector<Object> vt;
	private static BufferedReader br;
	private static Integer sel;			//-- 선택값
	private static String con;			//-- 계속 여부

	// static 초기화 블럭
	static
	{
		// Vector 자료구조 생성
		vt = new Vector<Object>();

		// BufferedReader 클래스 인스턴스 생성
		br = new BufferedReader(new InputStreamReader(System.in));

		// 사용자 입력값 초기화
		sel = 1;
		con = "Y";
	}

	// 메뉴 출력 메소드
	public static void menuDisp()
	{
		// 사용자에게 안내하기 위한 메세지만을 출력하는 기능
		// 메뉴를 선택하는 기능의 메소드를 별도로 정의했기 때문에
		// 이 과정에서는 사용자의 선택값을 받아오지 않아도 무방함.

		System.out.printf("\n\n\t[메뉴 선택]\n");
		System.out.printf("\t1.요소 추가\n");
		System.out.printf("\t2.요소 출력\n");
		System.out.printf("\t3.요소 검색\n");
		System.out.printf("\t4.요소 삭제\n");
		System.out.printf("\t5.요소 변경\n");
		System.out.printf("\t6.종료\n");
		System.out.printf("\n\t>> 메뉴 선택(1~6) : ");
	}

	// 메뉴 선택 메소드
	public static void menuSelect() throws IOException
	{
		// 선택한 메뉴에 따른 기능 분기는
		// menuRun() 에서 처리하기 때문에 입력값을
		// 받아오는 기능만 정의
		sel = Integer.parseInt(br.readLine());
	}

	// 선택된 메뉴 실행에 따른 기능 호출 메소드
	public static void menuRun() throws IOException
	{
		// Menus 클래스를 활용하여 처리
		switch(sel)
		{
			case Menus.E_ADD : addElement(); break;	//ok
			case Menus.E_DISP : dispElement(); break;	//ok
			case Menus.E_FIND : findElement(); break;	//ok
			case Menus.E_DEL : delElement(); break;
			case Menus.E_CHA : chaElement(); break;
			case Menus.E_EXIT : exit(); break;			//ok
			default : 
			{
				System.out.println("\t선택한 메뉴가 존재하지 않습니다.");
				menuSelect();
			} break;
		}
	}

	// 요소 추가(입력) 메소드
	public static void addElement() throws IOException
	{
/*
		do
		{
			System.out.printf("\n\t%d 번째 요소 입력 : ", vt.size() + 1);
			String element = br.readLine();
			boolean b = vt.add(element);
			if (b)
			{
				System.out.printf("\t%d 번째 요소 입력 성공 !!! ", vt.size());
				con = br.readLine().toUpperCase();
			}
		}
		while (con.equals("Y"));

*/
		do
		{
			System.out.print("\n\t"+(vt.size()+1) +"번째 요소 입력 : ");
			String str = br.readLine();
			System.out.printf("\n\t%d 번째 요소 입력 성공 !!! \n", vt.size()+1);
			vt.addElement(str);
			// 추가 입력 유무 처리
			System.out.print("\t요소 입력 계속(Y/N)? : ");
			con = br.readLine().toUpperCase();
		}
		while (con.equals("Y"));
	}

	// 요소 출력 메소드
	public static void dispElement()
	{
		System.out.printf("\n\t[벡터 전체 출력]\n");
		for (Enumeration e = vt.elements(); e.hasMoreElements() ;)
		{
			System.out.printf("\t%10s \n", e.nextElement());
		}
		System.out.printf("\t벡터 전체 출력 완료~!!!\n");
		/*
		System.out.println("\n[벡터 전체 출력]");
		for (int i = 0; i < vt.size(); i++)
			System.out.println(vt.elementAt(i));
		System.out.println("벡터 전체 출력 완료~!!!");
		*/
	}

	// 요소 검색 메소드
	public static void findElement() throws IOException
	{
		System.out.print("\n\t검색할 요소 입력 : ");
		String str = br.readLine();

		System.out.println("\n\t[검색 결과 출력]");
		if (vt.contains(str))
			System.out.println("\t항목이 존재합니다.");
		else
			System.out.println("\t항목이 존재하지 않습니다.");
	}

	// 요소 삭제 메소드
	public static void delElement() throws IOException
	{
		System.out.print("\n\t삭제할 요소 입력 : ");
		String str = br.readLine();
		int idx = vt.indexOf(str);
		System.out.println("\n\t[삭제 결과 출력]");
		if(idx > -1)
		{
			vt.removeElementAt(idx);
			System.out.println("\t" + str + " 항목이 삭제되었습니다.");
		}
		else
			System.out.println("\t항목이 존재하지 않아 삭제할 수 없습니다.");
	}

	// 요소 수정(변경) 메소드
	public static void chaElement() throws IOException
	{
		System.out.print("\n\t변경할 요소 입력 : ");
		String str = br.readLine();
		int idx = vt.indexOf(str);

		if (idx>-1)
		{
			System.out.print("\t수정할 내용 입력 : ");
			String str2 = br.readLine();
			vt.setElementAt(str2,idx);
			System.out.println("\n\t[변경 결과 출력]");
			System.out.println("\t변경이 완료되었습니다.");

		}
		else
		{
			System.out.println("\n\t[변경 결과 출력]");
			System.out.println("\t변경할 대상이 존재하지 않습니다.");
		}


	}

	// 프로그램 종료 메소드 → 완성
	public static void exit()
	{
		System.out.println("\n\t프로그램 종료~!!!");
		System.exit(-1);
	}
	
	// main() 메소드 → 완성
	public static void main(String[] args) throws IOException
	{
		do
		{
			menuDisp();
			menuSelect();
			menuRun();
		}
		while (true);
	}
}

 

실행 결과

 

// 실행 결과
/*
[메뉴 선택] 
1. 요소 추가 
2. 요소 출력 
3. 요소 검색 
4. 요소 삭제 
5. 요소 변경 
6. 종료 
>> 메뉴 선택(1~6) : 1 

1번째 요소 입력 : 허수민 
1번째 요소 입력 성공~!!! 
요소 입력 계속(Y/N)? : y 

2번째 요소 입력 : 진영은 
2번째 요소 입력 성공~!!! 
요소 입력 계속(Y/N)? : N 

[메뉴 선택] 
1. 요소 추가 
2. 요소 출력 
3. 요소 검색 
4. 요소 삭제 
5. 요소 변경 
6. 종료 
>> 메뉴 선택(1~6) : 2 

[벡터 전체 출력] 
허수민 
진영은 
벡터 전체 출력 완료~!!! 

[메뉴 선택] 
1. 요소 추가 
2. 요소 출력 
3. 요소 검색 
4. 요소 삭제 
5. 요소 변경 
6. 종료 
>> 메뉴 선택(1~6) : 3 

검색할 요소 입력 : 진영은 

[검색 결과 출력] 
항목이 존재합니다. 

[메뉴 선택] 
1. 요소 추가 
2. 요소 출력 
3. 요소 검색 
4. 요소 삭제 
5. 요소 변경 
6. 종료 
>> 메뉴 선택(1~6) : 3 

검색할 요소 입력 : 주재완 

[검색 결과 출력] 
항목이 존재하지 않습니다. 

[메뉴 선택] 
1. 요소 추가 
2. 요소 출력 
3. 요소 검색 
4. 요소 삭제 
5. 요소 변경 
6. 종료 
>> 메뉴 선택(1~6) : 4 

삭제할 요소 입력 : 조인경 

[삭제 결과 출력] 
항목이 존재하지 않아 삭제할 수 없습니다. 

[메뉴 선택] 
1. 요소 추가 
2. 요소 출력 
3. 요소 검색 
4. 요소 삭제 
5. 요소 변경 
6. 종료 
>> 메뉴 선택(1~6) : 4 

삭제할 요소 입력 : 허수민 

[삭제 결과 출력] 
허수민 항목이 삭제되었습니다. 

[메뉴 선택] 
1. 요소 추가 
2. 요소 출력 
3. 요소 검색 
4. 요소 삭제 
5. 요소 변경 
6. 종료 
>> 메뉴 선택(1~6) : 5 

변경할 요소 입력 : 조윤상 

[변경 결과 출력] 
변경할 대상이 존재하지 않습니다. 

[메뉴 선택] 
1. 요소 추가 
2. 요소 출력 
3. 요소 검색 
4. 요소 삭제 
5. 요소 변경 
6. 종료 
>> 메뉴 선택(1~6) : 5 

변경할 요소 입력 : 진영은 
수정할 내용 입력 : 조영욱 

[변경 결과 출력] 
변경이 완료되었습니다. 

[메뉴 선택] 
1. 요소 추가 
2. 요소 출력 
3. 요소 검색 
4. 요소 삭제 
5. 요소 변경 
6. 종료 
>> 메뉴 선택(1~6) : 6 

프로그램 종료 
계속하려면 아무 키나 누르세요...
*/

 

+ Recent posts