문제1790--학사 관리 프로그램 작성 1

1790: 학사 관리 프로그램 작성 1

실행시간 제한: 1 Sec  메모리사용 제한: 128 MB
제출: 28  통과: 5
[제출] [채점기록] [묻고답하기]

문제 설명

 학교의 구성원의 정보를 저장하는 프로그램을 작성하라.

 
구현 되어야 하는 기능은 다음과 같다.
  • 구성원의 추가/삭제
  • 구성원의 정보 저장

구성원은 다음과 같이 세가지 부류로 구분되며, 저장되어야 하는 정보는 다음과 같다.

  • 학생 - 이름과 학번과 소속학과 수강한 과목
  • 교수 - 이름과 교번과 소속학과 가르치는 과목
  • 교직원 - 이름과 교번과 소속학과

 

입력 설명

주어지는 입력의 형식은 <명령> <인자> 형식으로 한줄로 이뤄지며, 예는 다음과 같다( Java를 사용할 경우 Scanner의 nextLine() method를 이용하는 것을 권장한다. ).

  • ADD <구성원 type> <이름> <학번/교번> <소속>
    • 구성원 type은 3가지의 영문 대문자 하나로 주어진다( S - 학생, P - 교수, F - 교직원 ).
    • 이름은 영문 대문자 3글자로 주어진다( 예 JYJ ).
    • 학번/교번은 6개의 숫자로 입력된다. 숫자 앞에 0이 연달아 나올 수 있음을 유의한다( 예 : 001234 ).
    • 학번이 겹치는 경우는 존재하면 안되며, 만약 그런 경우가 입력될 경우 "Error!"를 출력한다.
    • 소속은 영문 대문자 2글자로 주어진다( 예 MS ).
  • DEL <학번/교번>
    • 구성원을 제거한다.
  • ADD_COURSE <학번/교번> <과목코드>
    • 학생이나 교수에게 듣는/가르치는 과목의 코드를 추가한다. 과목코드는 영문 대문자 2글자 와 숫자 3글자가 이어져 있는 형태로 입력된다( 예 : CS101 ).
  • SHOWALL
    • 구성원들의 모든 정보를 출력한다.
      • 학생의 경우에는 Student : <이름> <학번> <소속> <듣는 과목의 수>를 출력한다.
      • 교수의 경우에는 Professor :  <이름> <교번> <소속> <가르치는 과목의 수>를 출력한다.
      • 교직원의 경우에는 Faculty : <이름> <교번> <소속>을 출력한다.
  • SHOWDIV <소속>
    • 소속 학과에 속해있는 학생, 교수, 교직원을 위의 SHOWALL 명령의 형태대로 출력한다.
  • END
    • 프로그램을 종료한다.

출력 설명

SHOWALL 명령과 SHOWDIV 명령에 대한 결과를 출력해야 하며, 만약 명령어가 올바르게 입력되지 않는 경우(올바르지 않은 명령이 입력된 경우, 주어진 입력 형식에 맞지 않게 인자들이 입력된 경우, 제약 조건에 어긋나는 경우) 에 대해 "Error!"를 출력한다.

SHOWALL 명령과 SHOWDIV 명령에 대해 구성원을 출력하는 순서는 입력된 순서대로 한다.

입력 예시 Copy

ADD S JHH 123456 CS
ADD F KHS 123456 CS
ADD P LKY 123457 MS
ADD F KYK 214748 EE
SHOWALL
SHOWDIV CS
DEL 123456
ADD_COURSE 123457 CS101
ADD_COURSE 123457 CS102
ADD_COURSE 123457 CS103
SHOWALL
ADD
DEL 123456
END

출력 예시 Copy

Error!
Student : JHH 123456 CS 0
Professor : LKY 123457 MS 0
Faculty : KYK 214748 EE
Student : JHH 123456 CS 0
Professor : LKY 123457 MS 3
Faculty : KYK 214748 EE
Error!
Error!

도움

반드시 상속 개념을 이용해서 구현해야 한다.

출처/분류