<처리조건>
• 1. 데이터구조 : 이름(String),학번(int),학과(String),전화번호(String)
• 2. 학생수 결정 : 키보드로 입력 받는다.
• 3. 메뉴 선택 : 다음 메뉴를 구성하여 프로그램을 관리한다.
[메뉴 구성]
• 1. 학생등록 : 키보드로 학생정보 입력 -> 배열저장 : 학번은 고유한 데이터이므로 중복되면 안됨.
• 2. 전체출력 : 등록학생 전체출력
• 3. 학생조회 : 학번 입력 -> 이름, 학번, 학과, 전화번호 출력
• 4. 정보수정 : 학번 입력 -> 학과와 전화번호 수정
• 5. 프로그램 종료 : 프로그램을 종료하시겠습니다?(y/n) y입력-> 종료(System.exit(0), n입력 -> 프로그램 반복
* 위 5개의 메뉴는 별도의 메서드로 정의해 놓고, 메뉴 선택 시 해당 메서드가 호출되어 실행되도록 하시오.
package method;
import java.util.Scanner;
public class Exam_01 {
public static void regi(Scanner sc, String[] name, int[] id, String[] dept, String[] ph) {
int count = 0;
boolean over = true;
while(count<id.length) {
System.out.print("학 번 입력 : ");
id[count] = sc.nextInt();
if(count == 0) {
System.out.print("이 름 입력 : ");
name[count] = sc.next();
System.out.print("학 과 입력 : ");
dept[count] = sc.next();
System.out.print("전화번호 입력 : ");
ph[count] = sc.next();
System.out.println("----------------------");
count++;
} else {
for(int j=(count-1); j>=0; j--) {
if(id[count] == id[j]) {
System.out.println("[동일한 학번입니다. 다시 입력하세요.]");
over = false;
break;
}
over = true;
}
if(over) {
System.out.print("이 름 입력 : ");
name[count] = sc.next();
System.out.print("학 과 입력 : ");
dept[count] = sc.next();
System.out.print("전화번호 입력 : ");
ph[count] = sc.next();
System.out.println("----------------------");
count++;
}
}
}
}
public static void print(String[] name, int[] id, String[] dept, String[] ph) {
for(int i=0; i<id.length; i++) {
System.out.println("학 번:" + id[i]);
System.out.println("이 름:" + name[i]);
System.out.println("학 과:" + dept[i]);
System.out.println("연락처: " + ph[i]);
System.out.println("----------------------");
}
}
public static void search(int sid, String[] name, int[] id, String[] dept, String[] ph) {
for(int i=0; i<id.length; i++) {
if(id[i] == sid) {
System.out.println("학 번:" + id[i]);
System.out.println("이 름:" + name[i]);
System.out.println("학 과:" + dept[i]);
System.out.println("연락처: " + ph[i]);
System.out.println("----------------------");
break;
} else if(i == (id.length-1)){
System.out.println("[일치하는 학번이 없습니다.]");
}
}
}
public static void modify(Scanner sc, int sid, String[] name, int[] id, String[] dept, String[] ph) {
for(int i=0; i<id.length; i++) {
if(id[i] == sid) {
System.out.println("학 번 : " + id[i]);
System.out.println("이 름 : " + name[i]);
System.out.print("학 과 입력 : ");
dept[i] = sc.next();
System.out.print("전화번호 입력 : ");
ph[i] = sc.next();
System.out.println("----------------------");
break;
} else if(i == (id.length-1)){
System.out.println("[일치하는 학번이 없습니다.]");
}
}
}
public static void end(Scanner sc) {
System.exit(0);
sc.close();
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("학생 수 입력 : ");
int[] id = new int[sc.nextInt()];
String[] name = new String[id.length];
String[] dept = new String[id.length];
String[] ph = new String[id.length];
while(true) {
System.out.println("**** 학생 관리 프로그램 ****");
System.out.println("1.학생 등록");
System.out.println("2.전체 출력");
System.out.println("3.학생 조회");
System.out.println("4.정보 수정");
System.out.println("5.프로그램 종료");
System.out.print("관리 번호를 입력하세요. : ");
int num = sc.nextInt();
System.out.println("----------------------");
if(num > 5 || num < 0) {
System.out.println("[잘못된 관리 번호 입니다. 다시 입력 하십시오.]");
} else {
switch (num) {
case 1:
System.out.println("[학생을 등록합니다.]");
regi(sc, name, id, dept, ph);
break;
case 2:
System.out.println("====== 전체 학생 출력 ======");
print(name, id, dept, ph);
break;
case 3:
System.out.println("[학생을 조회 합니다.]");
System.out.print("학번을 입력하십시오. : ");
search(sc.nextInt(), name, id, dept, ph);
break;
case 4:
System.out.println("[학생 정보를 수정합니다.]");
System.out.print("학번을 입력하십시오. : ");
modify(sc, sc.nextInt(), name, id, dept, ph);
break;
default:
System.out.println("[프로그램을 종료합니다.]");
end(sc);
break;
}
}
}
}
}
'Back > JAVA' 카테고리의 다른 글
생성자(Constructor) (0) | 2021.03.08 |
---|---|
객체(Object)와 클래스(Class) (0) | 2021.03.08 |
메서드 다중정의(method overloading) (0) | 2021.03.05 |
[문제] 메소드를 사용한 계산기 프로그램 (0) | 2021.03.04 |
메소드 - 형식, 기본자료형, 참조자료형, 반환형 (0) | 2021.03.04 |