코딩은 실력보다 시력이지

빅데이터교육과정/JAVA

DAY 3. 배열, 함수 응용 과제(성적입력)

Listeria 2021. 2. 1. 23:27
import java.util.Scanner;

/*
 * 사람수 입력, 학생 수 만큼 성적 처리
 * 1. 몇명? 숫자입력
 * 2. 이름 국 영 수 사람수대로 입력
 * 3. 사람 수대로 총점 평균
 * 4. 전체 출력
 * 
 * 과제 - 전체 반 수, 각 반의 인원 -> 반복
 * 
 */
public class Day3hw1 {
	public static void main(String[] args) {
		
		String [][]name;		//이름
		int [][][]score;	//국 영 수 총
		float [][]avg;		//평균
		int []people;
		String []txt = { "class", "student", "name", "kr", "en", "math", "tot", "avg"};	//출력목록
		int classnum;						//전체 교실 수
		int subnum = 3;						// 최대 과목 수
		int maxnum = 100;					//입력 제한
		
		
		System.out.println("반을 입력하세요.");
		Scanner sc = new Scanner(System.in);
		classnum = sc.nextInt();
		people = new int[classnum];							//전체 반수와 각반의 학생수를 저장할 배열 생성
		
		name = new String[classnum][maxnum];
		score = new int[classnum][maxnum][subnum+1];
		avg = new float[classnum][subnum];					//이름, 점수, 평균에 관한 배열 생성

		
		for(int i=0;i<classnum;i++) {
			System.out.print((i+1)+"반의 학생 수를 입력하세요 : ");
			people[i] = sc.nextInt();

			
			for(int j=0;j<people[i];j++) {
				
				System.out.print("학생 이름을 입력하세요 : ");		
				name[i][j] = sc.next();
					
				for(int k=0; k< subnum ;k++) {

					System.out.print(txt[k+3]+ " 성적을 입력하세요 : ");
					score[i][j][k] = sc.nextInt();	

					score[i][j][3] += score[i][j][k];

				}
				avg[i][j] =  (float)score[i][j][3]/(subnum);				
				
			}
		}
		
		for(int i=0;i<classnum;i++) {
			for(String data : txt) {
				System.out.print(data+"\t");						//리스트 출력
			}
			for(int j=0;j<people[i];j++) {
				System.out.print("\n"+(i+1)+"\t"+people[i]+"\t");
				System.out.print(name[i][j]+"\t");
				for(int k=0; k<= subnum ;k++) {
					System.out.print(score[i][j][k]+"\t");
				}
				System.out.println(avg[i][j]+"\n");					//점수 및 인적 사항출력
			}	
		}
		
	}
}


import java.util.Scanner;

/*
 * 사람수 입력, 학생 수 만큼 성적 처리
 * 1. 몇명? 숫자입력
 * 2. 이름 국 영 수 사람수대로 입력
 * 3. 사람 수대로 총점 평균
 * 4. 전체 출력
 * 
 * 과제 - 전체 반 수, 각 반의 인원 -> 반복
 * 
 */
public class Day3hw2 {
	public static void main(String[] args) {
		
		String [][]name;		//이름
		int [][][]score;	//국 영 수 총
		float [][]avg;		//평균
		int []people;
		int classnum;						//전체 교실 수
		int subnum = 3;						// 최대 과목 수
		int maxnum = 100;					//입력 제한
		
		System.out.println("반을 입력하세요.");
		classnum = numIn();

		people = new int[classnum];							//전체 반수와 각반의 학생수를 저장할 배열 생성		
		name = new String[classnum][maxnum];
		score = new int[classnum][maxnum][subnum+1];
		avg = new float[classnum][subnum];					//이름, 점수, 평균에 관한 배열 생성

		asking(subnum,classnum,name,people,score);			//입력 사항 요청
		calculation(subnum,classnum,people,score ,avg);		//계산
		result(subnum,classnum,name,people,score ,avg);		//결과 출력
				
	}
	
	static void calculation(int subnum, int classnum,int []people, int [][][]score ,float [][]avg) {

		for(int i=0;i<classnum;i++) {
			for(int j=0;j<people[i];j++) {
				for(int k=0; k< subnum ;k++) {
					
					score[i][j][3] += score[i][j][k];
					
				}
				avg[i][j] =  (float)score[i][j][3]/(subnum);				
				
			}
		}
	}
	
	static void asking(int subnum, int classnum,String [][]name,int []people, int [][][]score ) {
		
		String []txt = { "class", "student", "name", "kr", "en", "math", "tot", "avg"};	//출력목록
		for(int i=0;i<classnum;i++) {
			System.out.print((i+1)+"반의 학생 수를 입력하세요 : ");
			people[i] = numIn();
			
			for(int j=0;j<people[i];j++) {
				
				System.out.print("학생 이름을 입력하세요 : ");		
				name[i][j] = textIn();
				
				for(int k=0; k< subnum ;k++) {
					
					System.out.print(txt[k+3]+ " 성적을 입력하세요 : ");
					score[i][j][k] = numIn();	

				}

			}
		}
	}
	static int numIn() {
		
		Scanner sc = new Scanner(System.in);
		int num = sc.nextInt();
		return num;
	}
	
	static String textIn() {
		String txt;
		Scanner sc = new Scanner(System.in);
		txt = sc.next();
		return txt;
	}
	
	static void result(int subnum, int classnum,String [][]name,int []people, int [][][]score ,float [][]avg) {
		String []txt = { "class", "student", "name", "kr", "en", "math", "tot", "avg"};	//출력목록
		for(int i=0;i<classnum;i++) {
			for(String data : txt) {
				System.out.print(data+"\t");						//리스트 출력
			}
			for(int j=0;j<people[i];j++) {
				System.out.print("\n"+(i+1)+"\t"+people[i]+"\t");
				System.out.print(name[i][j]+"\t");
				for(int k=0; k<= subnum ;k++) {
					System.out.print(score[i][j][k]+"\t");
				}
				System.out.print(avg[i][j]);					//점수 및 인적 사항출력
			}
			System.out.println();
		}
		
	}
}

'빅데이터교육과정 > JAVA' 카테고리의 다른 글

DAY 5. Class : has~a  (0) 2021.02.04
DAY4. Class.  (0) 2021.02.02
DAY 3. 배열(Array)과 형변환  (0) 2021.02.01
DAY2. JAVA 기초 - 과제  (0) 2021.01.30
DAY2. JAVA 기초 - 제어문과 반복문(복습 정리)  (0) 2021.01.29