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

본문 바로가기
사이트 내 전체검색

java

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

페이지 정보

작성자 웹지기 댓글 0건 조회 7,399회 작성일 20-12-16 01:13

본문

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

댓글목록

등록된 댓글이 없습니다.

Total 113건 6 페이지
  • 38 [ java ] 리컨값이 없는 메소드 만들기
  • return 을 사용하지 않고 바로 출력을 해버린다. 이때 return에 해당하는 값에 void를 넣어준다. public static int getDivisor ==&gt; public static void getDivisor public class Exam04_getDivisor { public static void main(String[] args) { getDivisor(10); getDivisor(10); ...
  • 웹지기 12-17 1245 0 0 댓글 0
  • 37 [ java ] 두수 중 큰수를 확인하는 메소드 만들기
  • 코드 작성 public class Exam02_Method { public static void main(String[] args) { int num1 = 10; int num2 = 24; int result = LargeNumbers(num1, num2); System.out.println("큰수 확인 : "+result); } //두개의 정수중 큰수를 반환하는 Lar...
  • 웹지기 12-17 2469 0 0 댓글 1
  • 36 [ java ] 메소드 (method)
  • 메소드(method) - 객체의 행위를 표현하기 위한 행위 - 반복적으로 사용되는 코드를 줄위기 위한 행위 - 특정작업을 수행하기 위한 명령문의 집합 public class Exam01_method { public static void main(String[] arg) { int r = addNumber(10, 54, '+'); System.out.println(r); } // public -&gt;...
  • 웹지기 12-17 1166 0 0 댓글 1
  • 35 [ java ] ArrayList 객체를 이용한 노래 등록 프로그램 작성하기
  • MusicPlayList클래스는 musicList 라는 이름으로 ArrayList 객체를 생성하여 musicList에 노래 제목을 추가하고 삭제하는 프로그램 MusicPlayList 클래스 구성은 아래와 같다. 메뉴 - [1]노래 추가 [2]노래 삭제 [3]종료 &gt;&gt; [1]노래추가 시 노래가 없으면 - 재생목록이 없습니다 출력 메뉴 - [1]마지막에 추가 [2]원하는 위치에 추가 &gt;&gt; [1]마지막에 추가 선택시 메뉴 - 추...
  • 웹지기 12-16 3783 0 0 댓글 0
  • 34 [ java ] Collection
  • Collection 1) 요소(element) 라고 불리는 가변 개수의 객체들의 모음 - 데이터 - 객체들의 컨테이너라고도 불림 - 요소의 개수에 따라 collection 은 자동 크기조절 - collation 은 요소의 삽입, 삭제에 따른 자리 이동에 용이 2) 고정크기의 배열을 다루는 어려움 해소 3) 다양한 객체들의 삽입, 삭제, 검색등을 관리하기 용이 ArrayList&lt;String&gt; Collection의 내부 구성 ArrayList&#...
  • 웹지기 12-16 1309 0 0 댓글 0
  • 33 [ java ] 검색 알고르즘
  • Sequential sesarch - 가장 단순한 검색 방법으로 원소의 정렬이 필요없다. 하지만 리스트의 길이가 길어진다. - 처음부터 순차적으로 검색하는 알고리즘 import java.util.Arrays; import java.util.Arrays; public class Exam07_Sequential_search { public static void main(String[] args) { int[] arr = {13, 35, 15...
  • 웹지기 12-16 1110 0 0 댓글 0
  • 32 [ java ] 정렬 알고리즘
  • 버블 정렬(Bubble Sort) - 치환할 내용이 발생 하면 바로 치환 ① 다른 정렬에 비해 속도가 느리다. ② 삽입 정렬은 두 번째 인덱스부터 시작한다. 현재 인덱스 값과, 바로 이전의 인덱스 값을 비교 ③ 현재 인덱스가 더 크면, 교환하지 않고 다음 두 연속된 배열값을 비교 ④ 이를 전체배열의 크기 현재까지 순환하는 바퀴 수 만큼 반복 import java.util.Arrays; public class Exam01_버블정렬 { public sta...
  • 웹지기 12-16 1498 0 0 댓글 0
  • 열람중 [ java ] 학생별 과목점수 입력 및 통계 프로그램 작성하기 (학생은 최대 5명, 과목은 3과목)
  • 1) 학생별 과목 점수 입력 - 과목은 총 3과목 ( DataBase, Python, Java ) 2) 학생총 입력 가능 수 - 5명 3) 학생을 검색 - 학생의 평균과 학점 표기 4) 점수별 - 학생별 점수를 별로 표기 5) 과목별 평균점수, 전체과목의 평균점수 시작화면 ==========성적관리프로그램========== [1]성적입력 [2]개별확인 [3]전체확인 [4]성적통계 [5]종료 &gt;&gt; [1] 화면 -...
  • 웹지기 12-16 7400 0 0 댓글 0
  • 26 [ java ] 정보처리 기사의 합격여부를 알려주는 프로그램 작성
  • 정보처리기사의 합격여부를 알려주는 프로그램을 작성하시오 합격기준 : 정보처리기사는 5개 과목이 있으며 한과목당 문제는 20문제 이며 총합이 60개가 넘어야 합격이다. 단, 총합이 60개가 넘어가더라도 한과목이라도 8개 미만의 개수를 맞았다면 탈락이다. import java.util.Scanner; public class Question3_2 { public static void main(String[] args) { //합격기준 :...
  • 웹지기 12-15 1510 0 0 댓글 0
  • 25 [ java ] 마트 계산대 프로그램, 10000원짜리 구매시 지불해야하는 금액
  • 마트 계산대 프로그램입니다. 10000원짜리 추석선물셋트를 구입했을 때 지불해야하는 금액을 계산해주는 프로그램을 작성하시오. 단, 11개 이상 구매시에는 10% 할인이 적용됩니다. import java.util.Scanner; public class Question3_1 { public static void main(String[] args) { //10000원짜리 구입 //11개 이상 구입시 10%할인 Scan...
  • 웹지기 12-15 2629 0 0 댓글 0
  • 24 [ java ] 거스름돈을 입력 받아 내줘야하는 지폐와 동전의 개수를 출력
  • 거스름돈을 입력 받아 내줘야하는 지폐와 동전의 개수를 출력 단, 최대단위는 10000원, 최소단위는 100원 import java.util.Scanner; public class Question2_2 { public static void main(String[] args) { //거스름돈 입력 받아 내줘야 하는 지폐와 동전의 개수를 출력하는 프로그램 작성 //최대 단위는 10000원 최소 단위 100 Scanne...
  • 웹지기 12-15 3690 0 0 댓글 0
게시물 검색

회원로그인

접속자집계

오늘
1,753
어제
6,915
최대
33,828
전체
8,106,447

그누보드5
Copyright © funyphp.com. All rights reserved.