暂无描述

Videotape.java 5.9KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142
  1. package kr.co.swh.lecture.java.example;
  2. /*
  3. 작성일 : 10. 9
  4. 이 름 :20002751 허 석
  5. TV 프로그램을 VideoTape으로 Recording 할때 세부정보를 클래스로 작성하는 코드
  6. */
  7. //InputStreamReader와 BufferedReader클래스 사용을 위한 import문
  8. import java.io.BufferedReader;
  9. import java.io.IOException;
  10. import java.io.InputStreamReader;
  11. public class Videotape{
  12. private String title = new String(); //제목을 인스턴스 변수로 선언
  13. private String kind = new String(); //종류를 인스턴스 변수로 선언
  14. private String playingtime = new String(); //재생시간을 인스턴스 변수로 선언
  15. private boolean stat; //입력하지 않고 출력을 실행할때 제한을 걸어주기 위한 boolean형 변수
  16. public void intro() throws IOException{ //입력부분에 대한 예외처리로 intro함수 선언
  17. int user; //switch문에서 쓸 변수선언
  18. do{
  19. System.out.println("***********************************************"); //출력
  20. System.out.println("* Video information recording of a TV PROGRAM *");
  21. System.out.println("***********************************************");
  22. System.out.println("* 1. Recoding Insert *");
  23. System.out.println("* 2. Video View *");
  24. System.out.println("* 3. Modify *");
  25. System.out.println("* 4. Exit *");
  26. System.out.println("***********************************************");
  27. System.out.println();
  28. System.out.print("* Select ? ");
  29. user = System.in.read(); //int형을 입력받기 위한 부분
  30. System.in.skip(10); //쓰레기값이 자동으로 분기되는 것을 막기위한 skip메소드로
  31. //C언어의 getchar()과 같은 쓰임
  32. user-=48; //아스키코드값을 정수형으로 변환
  33. switch(user){ //switch문에 들어갈 변수는 int형보다 범위가 작은 값만 들어갈 수 있다
  34. case 1:
  35. input(); //입력부분
  36. stat=true; //input()을 생략하고 print()를 실행하는 것을 막기위함
  37. break;
  38. case 2:
  39. print(); //출력부분
  40. break;
  41. case 3:
  42. modify(); //수정부분
  43. break;
  44. default: //1,2,3을 제외한 다른 값을 입력했을때
  45. System.out.println("Select Error..");
  46. break;
  47. }
  48. }while(user!=4); //4을 입력하면 분기문 종료
  49. }
  50. public void input() throws IOException{ //입력부분
  51. //단일String형을 입력받는 부분인 InputStreamReader에 문자하나하나씩을 버퍼에 저장해서
  52. //문자열을 입력받을 수 있도록 하는 BufferedReader클래스를 사용
  53. BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
  54. System.out.println(" What's video recording of a TV ?");
  55. System.out.print(" 1.Title : ");
  56. title = br.readLine(); //제목을 입력받는 부분
  57. System.out.println("----------------"); //출력부분
  58. System.out.println(" 2.Kind Select ");
  59. System.out.println("----------------");
  60. System.out.println(" 1. Film ");
  61. System.out.println(" 2. Comedy ");
  62. System.out.println(" 3. Education ");
  63. System.out.println(" 4. News ");
  64. System.out.println(" 5. Key input ");
  65. System.out.println("----------------");
  66. System.out.print(" choose? : ");
  67. String input = br.readLine(); //종류를 입력받는 부분
  68. //switch문을 사용하여 int형으로 사용할수도 있으나 다른경우도
  69. if(input.equals("1")) //있다는 것을보여주기 위함
  70. kind = "film"; //film값을 인스턴스 변수에 저장
  71. else if(input.equals("2"))
  72. kind = "comedy"; //comedy값을 인스턴스 변수에 저장
  73. else if(input.equals("3"))
  74. kind = "education"; //education값을 인스턴스 변수에 저장
  75. else if(input.equals("4"))
  76. kind = "news"; //news값을 인스턴스 변수에 저장
  77. else{
  78. System.out.print("Key Input -> ");
  79. kind = br.readLine(); //그 외의 다른 값을 입력하는 부분
  80. }
  81. System.out.print(" 3.Playing Time : ");
  82. playingtime = br.readLine(); //재생시간 입력받는 부분
  83. System.out.print(" Complete ? (y/n): ");
  84. String user = br.readLine(); //제대로 입력을 했는지 안했는지를 확인하는 부분
  85. if(user.equalsIgnoreCase("y")) //String클래스의 대소문자를 무시하는 equalsIgnoreCase메소드 사용
  86. System.out.println(" Completed.. ");
  87. else{
  88. System.out.println(" Uncompleted.. ");
  89. input(); //제대로 입력이 안되었다면 다시 input메소드 호출
  90. }
  91. }
  92. public void print() throws IOException{
  93. if(stat==false) //input메소드를 이전에 실행안했다면 종료
  94. return;
  95. System.out.println("-------------------------"); //출력
  96. System.out.println(" 1.Title : " + title);
  97. System.out.println(" 2.Kind : " + kind);
  98. System.out.println(" 3.Playing Time : " + playingtime);
  99. System.out.println("-------------------------");
  100. }
  101. public void modify() throws IOException{
  102. BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
  103. int user;
  104. this.print(); //print메소드를 먼저 호출함으로써 수정할 부분을 고를수 있게 함
  105. System.out.print(" select : ");
  106. user = System.in.read(); //수정하고 싶은 데이터를 선택
  107. System.in.skip(10);
  108. user-=48;
  109. switch(user){
  110. case 1:
  111. System.out.print(" Title : "); //제목을 수정하는 부분
  112. title = br.readLine();
  113. break;
  114. case 2:
  115. System.out.print(" Kind : "); //종류를 수정하는 부분
  116. kind = br.readLine();
  117. break;
  118. case 3:
  119. System.out.print(" Playing Time : "); //재생시간을 수정하는 부분
  120. playingtime = br.readLine();
  121. break;
  122. default:
  123. this.modify(); //그 외의 값을 입력할시에 다시 modify메소드 호출
  124. break;
  125. }
  126. }
  127. public static void main(String[] args) throws IOException{
  128. Videotape video = new Videotape(); //외부클래스의 객체를 생성
  129. video.intro(); //외부클래스의 객체로 intro메소드 실행
  130. }
  131. }