728x90
과제.
아래에 data.txt를 읽어와서 다음과 같이 출력하는 프로그램을 작성해보자.
data.txt
김사과,90,80,100
오렌지,100,90,70
반하나,60,80,90
이메론,70,80,85
결과
********* 성적 프로그램 **********
이름 : 김사과
국어점수 : 90
영어점수 : 80
수학점수 : 100
총점 : XXX
평균 : XXX
학점 : XXX
Student클래스
public class Student {
private String name;
private int kor;
private int eng;
private int math;
private int tot;
private double avg;
private String grade;
public Student(String name, int kor, int eng, int math, int tot, double avg, String grade) {
this.name = name;
this.kor = kor;
this.eng = eng;
this.math = math;
this.tot = tot;
this.avg = avg;
this.grade = grade;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getKor() {
return kor;
}
public void setKor(int kor) {
this.kor = kor;
}
public int getEng() {
return eng;
}
public void setEng(int eng) {
this.eng = eng;
}
public int getMath() {
return math;
}
public void setMath(int math) {
this.math = math;
}
public int getTot() {
return tot;
}
public void setTot(int tot) {
this.tot = tot;
}
public double getAvg() {
return avg;
}
public void setAvg(double avg) {
this.avg = avg;
}
public String getGrade() {
return grade;
}
public void setGrade(String grade) {
this.grade = grade;
}
@Override
public String toString() {
return "이름 : " + name + "\n" +
"국어점수 : " + kor + "\n" +
"영어점수 : " + eng + "\n" +
"수학점수 : " + math + "\n" +
"총점 : " + tot + "\n" +
"평균 : " + avg + "\n" +
"학점 : " + grade;
}
}
실행
import java.io.FileInputStream;
import java.util.Scanner;
public class Homework {
public static void main(String[] args) {
Scanner sc; // 파일을 읽을 스캐너 객체 생성
String file = "data.txt"; // 파일 경로를 저장할 file 객체 생성
try {
sc = new Scanner(new FileInputStream(file)); // file을 읽어와서 sc객체에 저장
while(sc.hasNextLine()) { // 다음 줄에 데이터가 있을 때 까지 반복
String[] str = sc.nextLine().split(","); // "," 를 기준으로 나누어서 배열 str에 저장
String name = str[0];
int kor = Integer.parseInt(str[1]);
int eng = Integer.parseInt(str[2]);
int math = Integer.parseInt(str[3]);
int tot = kor + eng + math;
double avg = tot/3;
String grade = "";
if (avg >= 90 && avg <= 100) {
grade = "A";
} else if (avg >= 80 && avg < 90) {
grade = "B";
} else if (avg >= 70 && avg < 80) {
grade = "C";
} else if (avg >= 60 && avg < 70) {
grade = "D";
} else {
grade = "F";
}
Student student = new Student(name, kor, eng, math, tot, avg, grade);
System.out.println(student); // Student클래스의 toString() 출력
System.out.println();
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
실행결과
728x90
'Java' 카테고리의 다른 글
[Java] 파일 클래스 예제2 (영어 단어장) (0) | 2022.04.18 |
---|---|
[Java] 파일 클래스(StringBuilder) (0) | 2022.04.18 |
[Java] 파일 클래스 (0) | 2022.04.18 |
[Java] 예외 처리(Exception) (0) | 2022.04.18 |
[Java] 예제3 (학생 관리 프로그램) (0) | 2022.04.17 |