티스토리 뷰
금일은 어제까지 배웠던 부분을 모두 사용하여 성적관리 및 수정하는 프로그램을 작성해보았습니다.
여기에서 쓰인 개념은 switch case, for, while, do while, if를 사용하여 작성하였습니다.
package MiniP; /* * */ import java.util.Scanner; public class T1 { public static void main(String[] args) { // 입력을 위한 스캐너 객체 생성 Scanner sc = new Scanner(System.in); // 학급의 수와 학급별 학생의 수, 성적을 담아둘 변수 선언 int ban; int num; int grade = 3; String[] sub = { "국어", "영어", "수학", "총점", "평균" }; // 기능 int active; int active2; // 클래스의 수를 우선 물어봄. System.out.println("몇 학급이 있나요?"); ban = sc.nextInt(); // 점수, 이름, 평균의 정보를 담아둘 배열을 생성 및 선언 int[][][] score = new int[ban][30][]; String[][] name = new String[ban][30]; float[][] avg = new float[ban][30]; // 학급별 학생의 수만 따로 담아둘 배열을 선언 int[][] check = new int[ban][]; // 클래스의 수 만큼 반복 for (int i = 0; i < ban; i++) { // 1개의 학급의 최대 정원이 30명이므로 30명이 초과하면 다시 인원수를 입력하게 조정함. do { System.out.println(i + 1 + "반의 인원을 입력하세요."); num = sc.nextInt(); if (num > 30) { System.out.println("하나의 학급의 최대 정원은 30명입니다. 다시 입력하세요."); System.out.println(); } } while (num > 30); // 학급별 학생의 수를 체크 check[i] = new int[num]; // 입력된 학급의 인원 수 만큼 반복 for (int j = 0; j < num; j++) { System.out.println("이름을 입력하세요."); name[i][j] = sc.next(); score[i][j] = new int[grade + 1]; for (int k = 0; k < grade; k++) { System.out.println(sub[k] + "성적을 입력하세요."); score[i][j][k] = sc.nextInt(); score[i][j][3] += score[i][j][k]; } avg[i][j] = (float)score[i][j][3] / 3.f; } } // 첫 입력이 끝난 후에 행동을 결정함. do { System.out.println("어떤 것을 하실건가요?"); System.out.println("1.검색 2.출력 3.수정 4.삭제 5.종료"); active = sc.nextInt(); switch (active) { // 검색 case 1: System.out.println("검색할 학생의 이름을 입력하세요."); String sname = sc.next(); for (int i = 0; i < ban; i++) { for (int j = 0; j < check[i].length; j++) { if (sname.equals(name[i][j])) { System.out.println(i + 1 + "반"); System.out.println("이름 : " + name[i][j]); System.out.println("평균 : " + avg[i][j]); for (int k = 0; k < grade + 1; k++) { System.out.println(sub[k] + ":" + score[i][j][k]); } } System.out.println(); } } break; // 성적 출력 case 2: System.out.println("어떤 것을 하실건가요?"); System.out.println("1.전체 성적 2.학급별 성적"); active2 = sc.nextInt(); switch (active2) { // 전체 성적 출력 case 1: for (int i = 0; i < ban; i++) { System.out.println(i + 1 + "반"); System.out.println(); for (int j = 0; j < check[i].length; j++) { System.out.println("이름 :" + name[i][j]); for (int k = 0; k < score[i][j].length; k++) { System.out.println(sub[k] + ":" + score[i][j][k]); } System.out.println(sub[4] + ":" + avg[i][j]); System.out.println(); } System.out.println("ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ"); } break; // 학급 성적 출력 case 2: System.out.println("어떤 학급의 성적을 확인하실 건가요?"); int c = sc.nextInt(); System.out.println(c + "반"); for (int i = 0; i < check[c - 1].length; i++) { System.out.println("이름 :" + name[c - 1][i]); for (int j = 0; j < score[c - 1][i].length; j++) { System.out.println(sub[j] + ":" + score[c - 1][i][j]); } System.out.println(sub[4] + ":" + avg[c - 1][i]); System.out.println(); } break; } break; // 수정 case 3: System.out.println("수정할 사람의 이름을 입력하세요."); String insert = sc.next(); for (int i = 0; i < ban; i++) { for (int j = 0; j < check[i].length; j++) { if (insert.equals(name[i][j])) { while (true) { int k=0; System.out.print("국어의 성적을 입력해주세요 : "); score[i][j][k]=sc.nextInt(); score[i][j][3]+=score[i][j][k]; System.out.println(sub[k] + "는(은)" + score[i][j][k] + "로 수정되었습니다."); k++; System.out.print("영어의 성적을 입력해주세요 : "); score[i][j][k]=sc.nextInt(); score[i][j][3]+=score[i][j][k]; System.out.println(sub[k] + "는(은)" + score[i][j][k] + "로 수정되었습니다."); k++; System.out.print("수학의 성적을 입력해주세요 : "); score[i][j][k]=sc.nextInt(); score[i][j][3]+=score[i][j][k]; System.out.println(sub[k] + "는(은)" + score[i][j][k] + "로 수정됨"); break; } } } } break; // 학생 정보 삭제 case 4: System.out.println("정보를 삭제할 학생의 이름을 입력하세요."); String dsname = sc.next(); for (int i = 0; i < ban; i++) { for (int j = 0; j < check[i].length; j++) { if (dsname.equals(name[i][j])) { name[i][j] = null; avg[i][j] = 0; for (int k = 0; k < grade + 1; k++) { score[i][j][k] = 0; } } } } System.out.println(dsname + "학생의 정보가 삭제되었습니다."); break; } } while (active == 1 | active == 2 | active == 3 | active == 4); } } |
'it분야의 끄적끄적 > Java 계열의 프로젝트 및 글' 카테고리의 다른 글
Java 강의 6일차 (0) | 2020.01.20 |
---|---|
Java 강의 4~5일차 (0) | 2020.01.16 |
JAVA 강의 2일차 (0) | 2020.01.14 |
JAVA 강의 1일차 (0) | 2020.01.13 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
TAG
- 서포트벡터머신
- java
- PAM
- PCA
- Partitioning Around Medoids
- SVM
- 군집분석
- Clustering Analysis
- dimension reduce
- 차원축소
- K-means clustering
- 이상치처리
- 데이터전처리
- CA
- ML
- EDA
- 머신러닝
- 주성분분석
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
글 보관함