Sunny's Coding Diary

자바[JAVA] - 성적산출프로그램 본문

JAVA

자바[JAVA] - 성적산출프로그램

Sunny._. 2023. 1. 6. 17:45

자바를 공부했던 기초들을 확인하기 위해 하나의 프로젝트를 만들어보고자 자바 언어를 이용하여 기초적인 성적산출프로그램을 만들어보았다.

 

학생의 정보, 수강 과목, 성적을 입력하고 입력한 성적을 출력하는 간단한 프로그램을 만들어보았다.

공부를 하면서 배웠던 기초지식들로 만들었기 때문에 코드들이 단순하다는 것을 알아주었으면 좋겠다.

 

구성은 Main.java / Student.java / Subject.java / Score.java / Grade.java로 메인 하나와 4개의 클래스로 만들었다.

 

- Main.java에서는 정보들을 입력하고 출력하는 출력문으로 구성되어 있다.

 

- Student.java에서는 학생들의 정보를 관리한다.

학번, 이름, 소속을 관리하고 학생이 존재하는지 확인하는 메서드를 구성되어 있다.

 

- Subject.java에서는 학생들이 수강하는 과목들을 관리한다.

수강하는 과목을 관리하고 해당과목이 존재하는지 확인하는 메서드를 구성되어 있다.

 

- Score.java에서는 학생들이 수강하는 과목의 점수를 관리한다.

과목의 점수를 관리하고 해당점수가 존재하는지 확인하는 메서드로 구성되어 있다.

 

- Grade.java에서는 점수에 대응하는 성적을 관리한다.

과목들의 점수를 받아와 성적으로 반환하는 메서드로 구성되어 있다.

 

소스코드는 아래와 같다.

 

[Main.java]

import ST.Grade;
import ST.Score;
import ST.Student;
import ST.Subject;
import java.util.ArrayList;
import java.util.Arrays;

public class Main {
    public static void main(String[] args) {
        ArrayList<Student> studentList = new ArrayList<Student>(5);
        ArrayList<Subject> subjectList = new ArrayList<Subject>(5);
        ArrayList<Score>   scoreList   = new ArrayList<Score>(5);
        ArrayList<Grade>   gradeList   = new ArrayList<Grade>(5);

        studentList.add(new Student("20230000", "신땡땡", "컴퓨터공학과"));
        studentList.add(new Student("20231111", "신짱구", "컴퓨터공학과"));
        studentList.add(new Student("20232222", "이훈이", "컴퓨터공학과"));
        studentList.add(new Student("20233333", "한유리", "컴퓨터공학과"));
        studentList.add(new Student("20234444", "김철수", "컴퓨터공학과"));

        subjectList.add(new Subject("20230000", "자바프로그래밍"));
        subjectList.add(new Subject("20231111", "C++프로그래밍"));
        subjectList.add(new Subject("20232222", " 웹프로그래밍 "));
        subjectList.add(new Subject("20233333", " 데이터베이스 "));
        subjectList.add(new Subject("20234444", "컴퓨터네트워크"));

        scoreList.add(new Score("20230000",95));
        scoreList.add(new Score("20231111",90));
        scoreList.add(new Score("20232222",95));
        scoreList.add(new Score("20233333",90));
        scoreList.add(new Score("20234444",95));

        gradeList.add(new Grade(scoreList.get(0).getScore()));
        gradeList.add(new Grade(scoreList.get(1).getScore()));
        gradeList.add(new Grade(scoreList.get(2).getScore()));
        gradeList.add(new Grade(scoreList.get(3).getScore()));
        gradeList.add(new Grade(scoreList.get(4).getScore()));

        for(int i = 0;i < studentList.size();i++){
            if (studentList.get(i).getID() == null || studentList.get(i).getName() == null || studentList.get(i).getAffiliation() == null) {
                //학생이 존재하지 않으면
                studentList.get(i).stcount();
            } else if (subjectList.get(i).getSubject() == null) {
                //과목이 존재하지 않으면
                subjectList.get(i).sjcount();
            } else if (scoreList.get(i).getScore() < 0) {
                //점수가 존재하지 않으면
                scoreList.get(i).sccount();
            }
        }


        System.out.println("                        성적산출프로그램                        ");
        System.out.println("-------------------------------------------------------------");
        System.out.println("|  학   번  | 이  름 |  소    속  |   과    목   | 점 수 | 성 적 |");
        System.out.println("-------------------------------------------------------------");

        for(int i = 0;i < studentList.size();i++){
            System.out.print("| ");
            System.out.print(studentList.get(i).getID());
            System.out.print(" | ");
            System.out.print(studentList.get(i).getName());
            System.out.print(" | ");
            System.out.print(studentList.get(i).getAffiliation());
            System.out.print(" | ");
            System.out.print(subjectList.get(i).getSubject());
            System.out.print(" |  ");
            System.out.print(scoreList.get(i).getScore());
            System.out.print("  |   ");
            System.out.print(gradeList.get(i).getGrade());
            System.out.print("   |\n");
        }
       System.out.println("--------------------------------------------------------------");
    }
}

 

[Student.java]

package ST;

//학생클래스
public class Student {
    String ID; //학생학번
    String name; //학생이름
    String affiliation; //학생소속

    //Student 클래스 기본생성자
    public Student(String ID, String name, String affiliation) {
        this.ID = ID;
        this.name = name;
        this.affiliation = affiliation;
    }

    //Student 클래스 디폴트생성자
    public Student() { }

    //설정자 생성
    public void setID(String ID) { this.ID = ID; }
    public void setName(String name) { this.name = name; }
    public void setAffiliation(String affiliation) { this.affiliation = affiliation; }

    //접근자 생성
    public String getID() { return ID; }
    public String getName() { return name; }
    public String getAffiliation() { return affiliation; }

    //학생을 입력했는지 확인하는 함수
    public void stcount(){
        if(ID == null || name == null || affiliation == null) {
            System.out.println("학생이 없습니다.");
        }
    }
}

 

[Subject.java]

package ST;

//과목클래스
public class Subject {
    String subject; //과목명
    String ID; //학번

    //Subject 클래스 기본생성자
    public Subject(String ID, String subject) {
        this.ID = ID;
        this.subject = subject;
    }

    //Subject 클래스 디폴트생성자
    public Subject() { }

    //설정자 && 접근자
    public void setSubject(String subject) { this.subject = subject; }
    public void getID(String ID) { this.ID = ID; }
    public String getSubject() { return subject; }

    //과목을 입력했는지 확인하는 함수
    public void sjcount() {
        if(subject == null){
            System.out.println("과목을 입력하십시오.");
        }
    }
}
//---------------------------------------------------------------------------------------
//학생의 학번을 확인해서 존재하면 과목을 리턴
/*public String cheakSubject(String str){
        if(str == ID) {
            return subject;
        }
        return ID;
    }
 */

 

[Score.java]

package ST;

//점수클래스
public class Score {
    int score = -1; //점수
    String ID; //학번

    //Score 클래스 기본생성자
    public Score(String ID, int score) {
        this.ID = ID;
        this.score = score;
    }


    //Score 클래스 디폴트생성자
    public Score() { }

    //설정자 && 접근자
    public void setScore(int score){ this.score = score; }
    public int getScore() { return score; }

    //점수를 입력했는지 확인하는 함수
    public void sccount() {
        if(score < 0) {
            System.out.println("점수를 입력하시오.");
        }
    }
}
//---------------------------------------------------------------------------------------
//학생 학번을 확인해서 존재하면 점수 리턴
/*
public int cheakScore(String str) {
        if(str == ID){
            return score;
        }
        return 0;
    }
 */

 

[Grade.java]

package ST;

//성적 클래스
public class Grade{
    String grade; //성적
    int point; //점수

    //Grade 클래스 기본생성자
    public Grade(int point) {
      this.point = point;
    }
    
    //Grade 클래스 디폴트 생성자
    public Grade() {  }

    //Score 클래스에서 점수를 받아와 성적을 매기는
    public String getGrade() {

        if (point > 89)     grade = "A"; //90점 이상이면 A
        else if(point > 79) grade = "B"; //80점 이상이면 B
        else if(point > 69) grade = "C"; //70점 이상이면 C
        else if(point > 59) grade = "D"; //60점 이상이면 D
        else                grade = "F"; //그 이하 F
        return grade; //grade값 리턴
    }
}
//---------------------------------------------------------------------------------------
 /* 점수가 없으면 성적이 존재할 수 없다.
    Score 클래스에서 점수를 확인해줬기 떄문에 Grade 클래스 중복 확인해줄필요없음

    //성적을 매기기 위한 점수가 존재하는지 확인하는 함수
    public void Gcount(int point){
        if(point < 0 ){
            System.out.println("성적이 존재하지 않습니다.");
        }
    }
*/

[출력화면]

 

아직 부족한 점이 많지만 한 걸음씩 차근차근 가는 것이 중요하다는 마음으로 생각하여 글을 썼다.

위 소스코드에서 더 추가할 예정이고 추가되는 사항들을 다음에 다시 업로드할 것이다.

 

 

 

[꿈은 크게 가져라. 부서져도 그 조각이 크게]

Comments