실습8.1 Course&driver

반응형
반응형

Course--------

//  실습 8.1: Course.java
//   이 클래스는 교과목을 나타낸다.
class Course
{
   //  객체 변수들
   String courseName = "자바 프로그래밍"; // 교과목의 이름
   String instructor   = "이 박사";       // 강사의 이름
   String roomNumber   = "201호실";            // 강의실 번호
   int maxNumStudents =   30;              // 최대 수강인원

   //  변경자 메소드

   // 메소드: setName
   //     목적: 교과목의 이름을 주어진 값으로 한다
   // @입력 매개변수
   //        newName - 교과목의 새 이름
   // @되돌려 주는 값: 없음
   public void setName( String newName )
   {
        // 여기에 코드를 삽입하세요
        courseName=newName;
   }
   // 메소드: setInstructor
   //     목적: 교과목의 강사를 주어진 값으로 한다
   // @입력 매개변수
   //        newInstruc - 교과목의 새 강사
   // @되돌려 주는 값: 없음
   public void setInstructor( String newInstruc )
   {
        // 여기에 코드를 삽입하세요
        instructor=newInstruc;
   }
   // 메소드: setRoom
   //     목적: 교과목의 강의실을 주어진 값으로 한다
   // @입력 매개변수
   //        newRoom - 교과목의 새 강의실
   // @되돌려 주는 값: 없음
   public void setRoom( String newRoom )
   {
        // 여기에 코드를 삽입하세요
        roomNumber=newRoom;
   }
   // 메소드: setMax
   //     목적: 교과목의 최대 수강인원을 주어진 값으로 한다
   // @입력 매개변수
   //        newMax - 교과목의 새 최대 수강인원
   // @되돌려 주는 값: 없음
   public void setMax( int newMax )
   {
        // 여기에 코드를 삽입하세요
        maxNumStudents = newMax;
   }

   //  접근자 메소드
   // 메소드: getName
   //     목적: 교과목의 이름을 되돌려 준다
   // @입력 매개변수 - 없음
   // @되돌려 주는 값: 교과목의 이름
   public String getName()
   {
        // 여기에 코드를 삽입하세요
        return courseName;
   }
   // 메소드: getInstructor
   //     목적: 교과목의 강사를 되돌려 준다
   // @입력 매개변수 - 없음
   // @되돌려 주는 값: 교과목의 강사
   public String getInstructor()
   {
        // 여기에 코드를 삽입하세요
        return instructor;
   }
   // 메소드: getRoom
   //     목적: 교과목의 강의실을 되돌려 준다
   // @입력 매개변수 - 없음
   // @되돌려 주는 값: 교과목의 강의실
   public String getRoom()
   {
        // 여기에 코드를 삽입하세요
        return roomNumber;
   }
   // 메소드: getMax
   //     목적: 교과목의 최대 수강인원을 되돌려 준다
   // @입력 매개변수 - 없음
   // @되돌려 주는 값: 교과목의 최대 수강인원
   public int getMax()
   {
        // 여기에 코드를 삽입하세요
        return maxNumStudents;
   }
   // 메소드: toString
   //  목적: 이 객체의 현재 상태를 나타내는 문자열을 되돌려 준다.
   // @되돌려 주는 값: 현 객체의 변수들과 대응하는 값들을 포함하는 문자열
   public String toString()
   {
        String returnString = "";

        returnString = returnString + "교과목명: " + getName() + '\n';
        returnString = returnString + "강의실: " + getRoom() + '\n';
        returnString = returnString + "강사명: " + getInstructor() + '\n';
        returnString = returnString + "최대 수강인원: " + getMax() + '\n';

        return( returnString );
   }
} // end class Course
--------

 

driver---------------------

// Course 클래스를 테스트하는 드라이버

// 사용자가 키보드에 입력하는 데이터를 읽기 위해서 Scanner 클래스를 사용한다
import java.util.Scanner;

class driver
{
   // 교과목의 목록을 만든다.
   // 사용자가 정보를 갱신하는 것을 허용하고 출력하게 한다.
   // 이 클래스는 오류 검사는 하지 않는다. 맞는 데이터를 가정한다.
public static void main( String argv[] )
{
        String strInput;        // 사용자가 입력하는 문자열
        int numCourses;       // 제공되는 교과목들의 수
        String itemInput = "Y";    // 메뉴 선택
        char choice;           // 또 다른 메뉴 선택
        int intInput;           // 사용자가 입력하는 정수
        int maximum;         // 최대 수강인원

        // 키보드로부터 입력하는 데이터를 읽기 위한 Scanner 객체를 만든다.
        Scanner scan = new Scanner(System.in);

        // 1 //  myCourses라는 교과목들의 배열을 선언한다.
             //  여기에 코드를 삽입하세요
             Course[] myCourses;

        // 사용자에게 입력하라고 요청하는 메시지를 출력한다
        System.out.print("몇 개의 교과목들을 추가하고 싶으세요? ");

        // 2 //  교과목들의 수를 읽어 드린다
        numCourses = scan.nextInt();

        // 3 // 배열을 만들기 위해서 "new" 명령을 사용하세요.
        //  numCourses 개의 요소들을 가진 myCourses라는 교과목들의 배열
              //  여기에 코드를 삽입하세요
        myCourses = new Course[numCourses];

        for (int i = 0 ; i < myCourses.length ; i++)
        {
          // 4 //  새 Create a new Course 객체를 만들고 그 객체를 myCourses의
          //      i번째 인덱스에 할당한다.
          //  여기에 코드를 삽입하세요
          myCourses[i]=new Course();

          // 사용자로부터 입력을 받는다
          System.out.println("교과목 번호 " + (i + 1) + "에 대한 정보를 입력하세요.");

          System.out.print("교과목명: ");

   // 5 // 한 줄의 사용자 입력을 읽어 드린다
          strInput = scan.next();
          //  여기에 코드를 삽입하세요
          myCourses[i].setName(strInput);

          System.out.print("강의실: ");
          // 6 //  여기에 코드를 삽입하세요
   strInput = scan.next();
          myCourses[i].setRoom(strInput);

          System.out.print("강사명: ");
          // 7 //  여기에 코드를 삽입하세요
           strInput = scan.next();
          myCourses[i].setInstructor(strInput);

          System.out.print("최대 수강인원: ");
          // 8 //  여기에 코드를 삽입하세요
          strInput = scan.next();
          myCourses[i].setMax(Integer.parseInt(strInput));
        } // end for loop

        while ( itemInput.equals("Y") || itemInput.equals("y") )
        {
            System.out.print("한 엔트리를 갱신하고 싶으세요? " +
                          "그렇다면 Y를 아니면 N을 입력하세요: ");
            // 9 //  여기에 코드를 삽입하세요
            itemInput = scan.next();

            if( itemInput.equals("Y") || itemInput.equals("y") )
            {
                System.out.print("교과목 번호를 입력하세요: ");
                // 10 //  여기에 코드를 삽입하세요
                intInput = scan.nextInt();

          intInput = intInput - 1;

                System.out.println("교과목명, 강사명, 강의실 혹은 최대 수강인원을 " +
                                " 수정하고 싶으면 각각 ");
                System.out.print("N, I, L 혹은 M을 입력하세요: ");

                // 11 //  여기에 코드를 삽입하세요
                strInput = scan.next();
                choice = strInput.charAt(0);

                // 12 // 사용자의 선택에 따라 교과목 정보를 수정한다.
                switch (choice)
                {
                    case 'n':
                    case 'N':
                    {
                        System.out.print("새 교과목명을 입력하세요: ");
                        // 13 //  여기에 코드를 삽입하세요
                        strInput = scan.next();
                        myCourses[intInput].courseName = strInput;
                        break;
                    }
                    case 'i':
                    case 'I':
                    {
                        // 14 //  여기에 코드를 삽입하세요
                        System.out.print("새 강사명을 입력하세요: ");
                        strInput = scan.next();
      myCourses[intInput].courseName = strInput;
                        break;
                    }
                    case 'l':
                    case 'L':
                    {
                        // 15 //  여기에 코드를 삽입하세요
                        System.out.print("새 강의실을 입력하세요: ");
                        strInput = scan.next();
      myCourses[intInput].courseName = strInput;
                        break;
                    }
                    case 'm':
                    case 'M':
                    {
                        // 16 //  여기에 코드를 삽입하세요
                        System.out.print("새 최대 수강인원을 입력하세요: ");
                        strInput = scan.next();
      myCourses[intInput].maxNumStudents = Integer.parseInt(strInput);
                        break;

                    }
                    default:
                        break;
                } // end switch
            }
            else
            {
                for ( int i = 0; i < myCourses.length; i++ )
                {
                   // 교과목 목록을 출력한다
                   // 17 //  여기에 코드를 삽입하세요
                   System.out.println("교과목 목록 : "+ myCourses[i].toString());

                } // end for loop
            } // end else
        } // end while loop
    } // end of main
} // end class Driver

반응형

'Study > Java source' 카테고리의 다른 글

실습 7.3 BankAccount  (0) 2009.04.07

이 글을 공유하기

댓글

Designed by CMSFactory.NET