123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142 |
- package kr.co.swh.lecture.java.example;
-
- /*
- 작성일 : 10. 9
- 이 름 :20002751 허 석
- TV 프로그램을 VideoTape으로 Recording 할때 세부정보를 클래스로 작성하는 코드
- */
-
- //InputStreamReader와 BufferedReader클래스 사용을 위한 import문
- import java.io.BufferedReader;
- import java.io.IOException;
- import java.io.InputStreamReader;
-
- public class Videotape{
- private String title = new String(); //제목을 인스턴스 변수로 선언
- private String kind = new String(); //종류를 인스턴스 변수로 선언
- private String playingtime = new String(); //재생시간을 인스턴스 변수로 선언
- private boolean stat; //입력하지 않고 출력을 실행할때 제한을 걸어주기 위한 boolean형 변수
-
- public void intro() throws IOException{ //입력부분에 대한 예외처리로 intro함수 선언
- int user; //switch문에서 쓸 변수선언
- do{
- System.out.println("***********************************************"); //출력
- System.out.println("* Video information recording of a TV PROGRAM *");
- System.out.println("***********************************************");
- System.out.println("* 1. Recoding Insert *");
- System.out.println("* 2. Video View *");
- System.out.println("* 3. Modify *");
- System.out.println("* 4. Exit *");
- System.out.println("***********************************************");
- System.out.println();
- System.out.print("* Select ? ");
- user = System.in.read(); //int형을 입력받기 위한 부분
- System.in.skip(10); //쓰레기값이 자동으로 분기되는 것을 막기위한 skip메소드로
- //C언어의 getchar()과 같은 쓰임
- user-=48; //아스키코드값을 정수형으로 변환
- switch(user){ //switch문에 들어갈 변수는 int형보다 범위가 작은 값만 들어갈 수 있다
- case 1:
- input(); //입력부분
- stat=true; //input()을 생략하고 print()를 실행하는 것을 막기위함
- break;
- case 2:
- print(); //출력부분
- break;
- case 3:
- modify(); //수정부분
- break;
- default: //1,2,3을 제외한 다른 값을 입력했을때
- System.out.println("Select Error..");
- break;
- }
- }while(user!=4); //4을 입력하면 분기문 종료
- }
-
- public void input() throws IOException{ //입력부분
- //단일String형을 입력받는 부분인 InputStreamReader에 문자하나하나씩을 버퍼에 저장해서
- //문자열을 입력받을 수 있도록 하는 BufferedReader클래스를 사용
- BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
- System.out.println(" What's video recording of a TV ?");
- System.out.print(" 1.Title : ");
- title = br.readLine(); //제목을 입력받는 부분
- System.out.println("----------------"); //출력부분
- System.out.println(" 2.Kind Select ");
- System.out.println("----------------");
- System.out.println(" 1. Film ");
- System.out.println(" 2. Comedy ");
- System.out.println(" 3. Education ");
- System.out.println(" 4. News ");
- System.out.println(" 5. Key input ");
- System.out.println("----------------");
- System.out.print(" choose? : ");
- String input = br.readLine(); //종류를 입력받는 부분
- //switch문을 사용하여 int형으로 사용할수도 있으나 다른경우도
- if(input.equals("1")) //있다는 것을보여주기 위함
- kind = "film"; //film값을 인스턴스 변수에 저장
- else if(input.equals("2"))
- kind = "comedy"; //comedy값을 인스턴스 변수에 저장
- else if(input.equals("3"))
- kind = "education"; //education값을 인스턴스 변수에 저장
- else if(input.equals("4"))
- kind = "news"; //news값을 인스턴스 변수에 저장
- else{
- System.out.print("Key Input -> ");
- kind = br.readLine(); //그 외의 다른 값을 입력하는 부분
- }
- System.out.print(" 3.Playing Time : ");
- playingtime = br.readLine(); //재생시간 입력받는 부분
-
- System.out.print(" Complete ? (y/n): ");
- String user = br.readLine(); //제대로 입력을 했는지 안했는지를 확인하는 부분
-
- if(user.equalsIgnoreCase("y")) //String클래스의 대소문자를 무시하는 equalsIgnoreCase메소드 사용
- System.out.println(" Completed.. ");
- else{
- System.out.println(" Uncompleted.. ");
- input(); //제대로 입력이 안되었다면 다시 input메소드 호출
- }
- }
-
- public void print() throws IOException{
- if(stat==false) //input메소드를 이전에 실행안했다면 종료
- return;
- System.out.println("-------------------------"); //출력
- System.out.println(" 1.Title : " + title);
- System.out.println(" 2.Kind : " + kind);
- System.out.println(" 3.Playing Time : " + playingtime);
- System.out.println("-------------------------");
- }
-
- public void modify() throws IOException{
- BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
- int user;
- this.print(); //print메소드를 먼저 호출함으로써 수정할 부분을 고를수 있게 함
- System.out.print(" select : ");
- user = System.in.read(); //수정하고 싶은 데이터를 선택
- System.in.skip(10);
- user-=48;
- switch(user){
- case 1:
- System.out.print(" Title : "); //제목을 수정하는 부분
- title = br.readLine();
- break;
- case 2:
- System.out.print(" Kind : "); //종류를 수정하는 부분
- kind = br.readLine();
- break;
- case 3:
- System.out.print(" Playing Time : "); //재생시간을 수정하는 부분
- playingtime = br.readLine();
- break;
- default:
- this.modify(); //그 외의 값을 입력할시에 다시 modify메소드 호출
- break;
- }
- }
-
- public static void main(String[] args) throws IOException{
- Videotape video = new Videotape(); //외부클래스의 객체를 생성
- video.intro(); //외부클래스의 객체로 intro메소드 실행
- }
-
- }
|