자세히보기

IT/Programming

[Java] 학생 정보 입력 시스템 출력

COMDORI 2020. 3. 4. 18:56
728x90
반응형

 

 

▶ 조건

 Class는 2개의 클래스 생성한다.

 Student class

 생성자

 private String name;

 private int student_num;

 private int grade;

 public void result(); //결과 출력

 Lab3-2 class

 main() 정의

 학과 별 3명씩 입력 받을 수 있음

 아무것도 입력을 받지 않았을 때, 결과 없음을 띄워야 함.

 힌트 try ~catch{} 사용

 Student 객체에 값을 전달 시 생성자 이용

소스코드

먼저 Student_class 부터!

class Student_class { 			////////////간호학//////////////
	
	private String name;
	private int student_num;
	private int grade;
		
	Student_class(String Name, int ID, int Grade) {
		
		name = Name;
		student_num = ID;
		grade = Grade;
		
	}
	
	 int getStudnet_num(){
		return student_num;
	}
	 String getName(){
		return name;
	}

	 int getGrade() {
		return grade;
	}
	
}

class Student_class_2 { ///////컴퓨터 소프트웨어학//////////
	
	private String name;
	private int student_num;
	private int grade;
		
	public Student_class_2(String Name, int ID, int Grade) {
		
		name = Name;
		student_num = ID;
		grade = Grade;
	}
	
	public int getStudnet_num(){
		return student_num;
	}
	
	public String getName(){
		return name;
	}
	
	public int getGrade() {
		return grade;
	}
}

 

그다음 으로 메인 소스 입니다.

 

import java.util.Scanner;
public class Lab_3_2 {
	String Name, Name2; //이름을 입력받는 변수
	int ID, ID2, Grade, Grade2; //학번과, 학년을 입력받는 변수
	
	public static void main(String[] args) {
		
		String Menu;		//메뉴선택 변수
		String Major, Major2;		//학과1==간호학, 학과2==컴퓨터소프트웨어학
			
		Student_class [] SC_Array = new Student_class [4];		//간호학 배열을 이용하여 학생수를 입력 받음
		Student_class_2 [] SC_Array_2 = new Student_class_2 [4];	//컴퓨터소프트웨어학 배열을 이용하여 학생수를 입력 받음

		Scanner scan = new Scanner(System.in);
		
		System.out.println("======================");
		System.out.println("학번: 2016000000");
		System.out.println("이름: 컴돌이의블로그");
		System.out.println("======================\n");
		System.out.println("학생 정보 입력 시스템");
		
	while(true){
		System.out.println();
		System.out.println("\t  \t메뉴를 선택하세요.");
		System.out.println("|1. 학과선택 및 학생 정보입력 | |2. 결과| |0. 끝내기|");
		Menu = scan.next();			//메뉴를 입력받음
		
		if("0".equals(Menu)){			//0번을 입력받았을 경우 시스템이 종료됨.
			System.out.println("시스템이 종료 되었습니다.");
			System.exit(0);
		}
		
		if("1".equals(Menu)){				//1번을 입력받았을 경우 학과 선택후 바로 학생 정보를 입력
			System.out.println("|1. 간호학 | |2. 컴퓨터소프트웨어학|");
			Major = scan.next();
			
			if ("1".equals(Major)) {		//간호학과 학생 정보를 입력 받음.
												///////////////////간호학///////////////////
				String name;		//간호학 학생 이름 변수
				int student_num, grade;	//간호학 학번, 학년 변수
				
					for(int i=1; i<4; i++){		//컴퓨터는0 부터 카운트를 시작하므로 1번째 를 입력받으려면 1부터 시작하여 4번까지 해야함.
				System.out.println(i+"번째 학생의 "+"이름을 입력하세요");
				System.out.print(">>");
				name = scan.next();		
				
				System.out.println(i+"번째 학생의 "+"학번을 입력하세요");
				System.out.print(">>");
				student_num = scan.nextInt();
				
				System.out.println(i+"번째 학생의 "+"학년을 입력하세요");
				System.out.print(">>");
				grade = scan.nextInt();
				SC_Array[i] = new Student_class(name, student_num, grade); //배열에 차례대로 이름, 학번, 학년을 저장함.
				
					}
			
				continue; //이어서 계속
				}
			
												////////////////컴퓨터 소프트웨어학//////////////
			else if ("2".equals(Major)){				//위의 간호학과 동일 하므로 이하 설명 생략.
				
				String name;
				int student_num, grade;
				
			for(int k=1; k<4; k++){
					System.out.println(k+"번째 학생의 "+"이름을 입력하세요");
					System.out.print(">>");
					name = scan.next();
					
					System.out.println(k+"번째 학생의 "+"학번을 입력하세요");
					System.out.print(">>");
					student_num = scan.nextInt();
					
					System.out.println(k+"번째 학생의 "+"학년을 입력하세요");
					System.out.print(">>");
					grade = scan.nextInt();
					SC_Array_2[k] = new Student_class_2(name, student_num, grade);
				}
			}
				
				else{
				System.out.println("잘못입력하셨습니다. 다시 입력하십시오.");
				continue;
			}
		}
			
		if("2".equals(Menu)){					//2번을 입력받았을 경우 학과 선택후 바로 학생 정보를 출력.

◈ 소스코드를 보시고 고칠 부분이나 더 좋은 로직이 있다면 코멘트 달아주세요! 

이상 문제 7번 입니다.

컴돌이블로그

 

#자바

728x90
반응형