[ java ] 학생별 과목점수 입력 및 통계 프로그램 작성하기 (학생은 최대 5명, 과목은 3과목) > java

본문 바로가기

사이트 내 전체검색

java

[ java ] 학생별 과목점수 입력 및 통계 프로그램 작성하기 (학생은 최대 5명, 과목은 3과목)

작성일 20-12-16 01:13

페이지 정보

작성자 웹지기 조회 7,665회 댓글 0건

본문

1) 학생별 과목 점수 입력 - 과목은 총 3과목 ( DataBase, Python, Java ) 

2) 학생총 입력 가능 수 - 5명

3) 학생을 검색 - 학생의 평균과 학점 표기

4) 점수별 - 학생별 점수를 별로 표기

5) 과목별 평균점수, 전체과목의 평균점수

 

시작화면

==========성적관리프로그램==========

[1]성적입력 [2]개별확인 [3]전체확인 [4]성적통계 [5]종료 >>


[1] 화면 --------------------------------------------

==========성적관리프로그램==========

[1]성적입력 [2]개별확인 [3]전체확인 [4]성적통계 [5]종료 >>1

1. 이름입력 :장가

1. DataBase입력 :100

1. Python입력 :95

1. Java입력 :98

등록 완료되었습니다.

==========성적관리프로그램==========

[1]성적입력 [2]개별확인 [3]전체확인 [4]성적통계 [5]종료 >>

 

[2]화면 -------------------------------------------- 

[1]성적입력 [2]개별확인 [3]전체확인 [4]성적통계 [5]종료 >>2

==========개별확인==========

확인하고 싶은 학생의 이름을 입력하세요 : 장가

이름 : 장가

DataBase : 100

Python : 95

Java : 98

평균 : 97

학점 : A+

==========성적관리프로그램==========

[1]성적입력 [2]개별확인 [3]전체확인 [4]성적통계 [5]종료 >>


[3] 화면 -------------------------------------------- 

==========성적관리프로그램==========

[1]성적입력 [2]개별확인 [3]전체확인 [4]성적통계 [5]종료 >>3

==========전체확인==========

100          

90  *             *   *

80  *   *         *   *

70  *   *         *   *

60  *   *         *   *

50  *   *    *    *   *

40  *   *    *    *   *

30  *   *    *    *   *

20  *   *    *    *   *

10  *   *    *    *   *

  장가 최가 박가 최가 추가

==========성적관리프로그램==========

[1]성적입력 [2]개별확인 [3]전체확인 [4]성적통계 [5]종료 >>

 

[4] 화면 --------------------------------------------  

[1]성적입력 [2]개별확인 [3]전체확인 [4]성적통계 [5]종료 >>4

==========성적통계==========

DataBase평균 :82

Python평균 :81

Java평균 :90

전체평균 :84

==========성적관리프로그램==========

[1]성적입력 [2]개별확인 [3]전체확인 [4]성적통계 [5]종료 >>

 

[5] 화면 --------------------------------------------  

==========성적관리프로그램==========

[1]성적입력 [2]개별확인 [3]전체확인 [4]성적통계 [5]종료 >>5

프로그램을 종료합니다.


import java.util.Scanner;


public class Question6 {

    public static void main(String[] args) {

        Scanner sc = new Scanner(System.in);

        

        //int[][] scores = {{100,95,98},{60,61,62},{70,71,72},{80,81,82},{90,91,92}};

        //String[] names = {"서가", "정가", "이가", "허가", "유가"};

        //int cnt=names.length;

 

        //점수 입력 받을 변수

        int[][] scores = new int[5][3];

        //이름 입력 받을 변수

        String[] names = new String[5];

        //입력된 개수를 새는 변수

        int cnt = 0;

        

        //문자열 비교할 변수

        String str = "";

        //과목 정의 변수

        String[] ga = {"DataBase", "Python", "Java"};

        //현재 선택된 번호 변수

        int sel = 0;

        

        while(true) {

            //기본제공화면 및 선택

            System.out.println("==========성적관리프로그램==========");

            System.out.print("[1]성적입력 [2]개별확인 [3]전체확인 [4]성적통계 [5]종료 >>");

            sel = sc.nextInt();

            

            //5명이 입력 되지 않았고 sel이 1이면 새로운 데이터를 입력 받는다.

            if(cnt < 5 && sel == 1) {

                System.out.print((cnt+1)+". 이름입력 :");

                names[cnt] = sc.next();

                

                for(int i=0; i<(ga.length); i++) {

                    System.out.print((cnt+1)+". "+ga[i]+"입력 :");

                    scores[cnt][i] = sc.nextInt();

                }

                System.out.println("등록 완료되었습니다.");

                sel = 0;

                cnt++;

            } else {

               //혹시 반대가 있을까??

                ;

            }

            

            if(sel == 1) { //이름및 점수 입력

                //5명이 입력되지 않았다면 입력 가능

                if(cnt < 5) {

                    //사용자 이름을 입력

                    System.out.print((cnt+1)+". 이름입력 :");

                    names[cnt] = sc.next();

                    

                    //과목의 점수를 입력

                    for(int i=0; i<(ga.length); i++) {

                        System.out.print((cnt+1)+". "+ga[i]+"입력 :");

                        scores[cnt][i] = sc.nextInt();

                    }

                    System.out.println("등록 완료되었습니다.");

                    //입력후 등록인원 추가

                    cnt++;

                } else {

                    //5명이 등록 되었으면 추가등록을 받지 않는다.

                    System.out.println("더 이상 등록이 불가능 합니다!");

                }

            } else if(sel == 2) { //개별 확인

                System.out.println("==========개별확인==========");

                if(cnt==0) {

                    System.out.println("==========정보를 먼저 입력 하세요==========");

                } else {

                    //검색할 학생의 이름

                    System.out.print("확인하고 싶은 학생의 이름을 입력하세요 : ");

                    str = sc.next();

                    

                    boolean yes = false; //존재하는 학생인지 확인하는 변수

                    int[] avg = new int[cnt]; //회원별 평균 변수

                    int[] sum = new int[cnt]; //회원별 총점 변수

                    String[] hak = new String[cnt]; //회원별 학점 변수

                    for(int i=0; i<cnt; i++) { //등록된 회원수만큼 반복

                        if(str.equals(names[i])) { //검색에 등록된 회원이 있는지 검색

                            System.out.println("이름 : "+names[i]);

                            for(int j=0; j<ga.length; j++) {

                                System.out.println(ga[j]+ " : " +scores[i][j]);

                                sum[i]+=scores[i][j]; //총점

                            }

                            avg[i]=sum[i]/ga.length; //평균

                            yes = true; //검색회원이 존재하면 true;

                        }

                    }

                    

                    for(int i=0; i<cnt; i++) { 

                        if(str.equals(names[i])) {

                            System.out.println("평균 : "+avg[i]);

                            if(avg[i] >=96) {

                                hak[i] = "A+";

                            } else if(avg[i] <= 95 && avg[i] > 86) {

                                hak[i] = "B+";

                            } else if(avg[i] <= 85 && avg[i] > 76) {

                                hak[i] = "C+";

                            } else {

                                hak[i] = "F";

                            }

                            

                            System.out.println("학점 : "+hak[i]); //회원별 학점

                            yes = true; //검색회원이 존재하면 true

                        }

                    }

                    if(yes == false) {

                        //검색회원이 존재하지 않으면 false

                        System.out.println("찾으려는 학생이 존재하지 않습니다. ");

                    }

                }

            } else if(sel == 3) { //전체확인

                System.out.println("==========전체확인==========");

                if(cnt==0) {

                    System.out.println("==========정보를 먼저 입력 하세요==========");

                } else {

                    int[] avg = new int[cnt]; //학생별 평균 변수

                    int[] sum = new int[cnt]; //학생별 총점 변수

                    for(int i=0; i<cnt; i++) { //등록된 회원의 수만큼 반복

                        for(int j=0; j<ga.length; j++) { //과목만큼 반복

                            sum[i]+=scores[i][j]; //총점 등록

                        }

                        avg[i]=sum[i]/ga.length; //평균 등록

                    }

                    

                    for(int i=100; i>=10; i-=10) { //100~10까지 세로 출력

                        System.out.print(i);

                        for(int j=0; j<cnt; j++) {

                            if(avg[j]>=i) { //평균이 i보다 크거나 같으면 별표

                                System.out.print("\t *");

                            } else { //그렇지 않으면 탭

                                System.out.print("\t  ");

                            }

                        }

                        System.out.println();

                    }

                    

                    //최하단 이름 출력 부분

                    System.out.print("\t");

                    for(int i=0; i<cnt; i++) {

                        System.out.print(names[i]+"\t");

                    }

                    System.out.println();

                }

            } else if(sel == 4) { //과목별 전체 성적

                System.out.println("==========성적통계==========");

                if(cnt==0) {

                    System.out.println("==========정보를 먼저 입력 하세요==========");

                } else {

                    int[] avg = new int[ga.length]; //과목별 평균 변수

                    int[] sum = new int[ga.length]; //과목별 합계 변수

                    int tot = 0; //평균의 총점 변수

                    int totAvg = 0; //평균의 총점을 평균 변수

                    for(int i=0; i<ga.length; i++) {

                        for(int j=0; j<cnt; j++) {

                            sum[i]+=scores[j][i];

                            //System.out.print(j+" :: "+i+" :: "+sum[i]+"\t");

                        }

                        avg[i]=sum[i]/cnt;

                    }


                    for(int i=0; i<ga.length; i++) {

                        tot+=avg[i];

                        System.out.println(ga[i]+"평균 :" +avg[i]);

                    }

                    totAvg = tot/ga.length;

                    //System.out.println(ga[0]+"평균 :" + String.format("%.2f",((double)데이터베이스평균)));

                    //System.out.println(ga[1]+"평균 :" + String.format("%.2f",((double)파이썬평균)));

                    //System.out.println(ga[2]+"평균 :" + String.format("%.2f",((double)자바평균)));

                    System.out.println("전체평균 :" + totAvg);

                }

            } else if(sel == 5) { //프로그램 종료

                System.out.println("프로그램을 종료합니다.");

                break;

            }

        }

    }

}

 


추천0

비추천 0

댓글목록

등록된 댓글이 없습니다.

전체 113건 6 페이지

이미지 목록

게시물 검색
Copyright © 즐거운 코딩 생활 ( funyphp ). All rights reserved.
PC 버전으로 보기