실습8.1 Course&driver
- Study/Java source
- 2009. 4. 7. 23:29
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 |
---|
이 글을 공유하기