captulation

2022. 5. 29. 20:45Programing Language/Java

#program.java

 

package ex1.func.todown;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.PrintStream;
import java.util.Scanner;

public class program {

	public static void main(String[] args) throws IOException {

		while (true) {

			int menu = inputMenu();

			Exam exam = new Exam();

			switch (menu) {
			case 1:
				Exam.input(exam);
				break;
			case 2:
				Exam.print(exam);
				break;
			case 3:
				Exam.load(exam);
				break;
			case 4:
				Exam.save(exam);
				break;
			case 5:
				exitProgram();
				break;
			}
		}

	}

	// Program의 Bottom 구성
	private static void exitProgram() {
		System.out.println("Bye~~");
		System.exit(0);
	}

	static void print(Exam exam) {
		
		Scanner scan = new Scanner(System.in);
		
		if (exam == null) {
			System.out.println("성적이 입력되지 않았습니다. (Exam 객체가 존재하지 않음)");
			return;
		}

		System.out.println("┌───────────────────────────────────┐");
		System.out.println("│              성적 출력              │");
		System.out.println("└───────────────────────────────────┘");
		System.out.println("국어 : " + exam.kor);
		System.out.println("영어 : " + exam.eng);
		System.out.println("수학 : " + exam.math);

		int total = exam.kor + exam.eng + exam.math;
		System.out.println("총점 :" + total);
		System.out.printf("평균 : %.2f\n", (total / 3.0));
	}

	private static int inputMenu() {
		
		Scanner scan = new Scanner(System.in);

		int menu = 0;

		System.out.println("┌────────────────────────────────┐");
		System.out.println("│      성적관리 Main Menu          │");
		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(">");
		menu = scan.nextInt();

		return menu;
	}

}

 

#Exam.java

 

package ex1.func.todown;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.PrintStream;
import java.util.Scanner;

public class Exam {
	// 그룹핑
	 int kor;
	 int eng;
	 int math;
	
public static void input(Exam exam) {
		
		Scanner scan = new Scanner(System.in);
		
		System.out.println("┌───────────────────────────────────┐");
		System.out.println("│              성적 출력              │");
		System.out.println("└───────────────────────────────────┘");
		
		System.out.println("국어 >");
		exam.kor = scan.nextInt();
		System.out.println("영어 >");
		exam.eng = scan.nextInt();
		System.out.println("수학 >");
		exam.math = scan.nextInt();
		
	}

public static void save(Exam exam) throws IOException {		

		File file = new File("res/data.txt");
		FileOutputStream fos = new FileOutputStream(file);
		PrintStream ps = new PrintStream(fos);

		ps.printf("%d,%d,%d\n", exam.kor, exam.eng, exam.math);

		ps.close();
		fos.close();
	}
	
public static Exam load(Exam exam) throws IOException {
		
		File file = new File("res/data.txt");		
		FileInputStream fis = new FileInputStream(file);
		Scanner scan = new Scanner(fis);

		String[] tmps = scan.nextLine().split(",");

		scan.close();
		fis.close();

		exam.kor = Integer.parseInt(tmps[0]);
		exam.eng = Integer.parseInt(tmps[1]);
		exam.math = Integer.parseInt(tmps[2]);

		return exam;
		
		
	}

public static void print(Exam exam) {
			
			Scanner scan = new Scanner(System.in);
			
			if (exam == null) {
				System.out.println("성적이 입력되지 않았습니다. (Exam 객체가 존재하지 않음)");
				return;
			}

			System.out.println("┌───────────────────────────────────┐");
			System.out.println("│              성적 출력              │");
			System.out.println("└───────────────────────────────────┘");
			System.out.println("국어 : " + exam.kor);
			System.out.println("영어 : " + exam.eng);
			System.out.println("수학 : " + exam.math);

			int total = exam.kor + exam.eng + exam.math;
			System.out.println("총점 :" + total);
			System.out.printf("평균 : %.2f\n", (total / 3.0));
		}

}

'Programing Language > Java' 카테고리의 다른 글

abstract  (0) 2022.06.04
데이터구조화  (0) 2022.05.28
File  (0) 2022.05.28