성적관리 프로그램을 만들어보자
* 사람의 성적처리 프로그램
*
* 입력:이름,국어,영어,수학
* 연산:총점,평균
* 출력:이름,국어,영어,수학,총점,평균
public static void main(String[] args) {
String name; //name
int []score; //kor eng math total
float avg;
Scanner sc=new Scanner(System.in);
score=new int[4];
System.out.println("이름입력");
name=sc.nextLine();
System.out.println("국영수 순으로 성적 입력");
for(int i=0;i<score.length-1;i++) {
score[i]=sc.nextInt();
}
for(int i=0;i<score.length-1;i++) {
score[3]+=score[i];
}
avg=score[3]/3.0f;
System.out.print(name+":");
for(int i=0;i<score.length;i++) {
System.out.print(score[i]+",");
}
//foreach 문 위식과 같은거임
// for(int i:score) {
// System.out.println(i);
// }
System.out.println(avg);
}
이중 배열을 활용해서 3명의 성적처리 프로그램을 만들자
public static void main(String[] args) {
String []name; //name
int [][]score; //kor eng math total
float []avg;
Scanner sc=new Scanner(System.in);
name=new String[3];
score=new int[3][4];
avg=new float[3];
//입력
for(int i=0;i<name.length;i++) {
System.out.println("이름입력");
name[i]=sc.next();
System.out.println("국영수 순으로 성적 입력");
for(int j=0;j<score[i].length-1;j++) {
score[i][j]=sc.nextInt();
}
}
//연산
for(int i=0;i<score.length;i++) {
for(int j=0;j<score[i].length-1;j++) {
score[i][3]+=score[i][j];
}
}
for(int i=0;i<avg.length;i++) {
avg[i]=score[i][3]/3.f;
}
//출력
for(int i=0;i<name.length;i++) {
System.out.print(name[i]+":");
for(int j=0;j<score[i].length-1;j++) {
System.out.print(score[i][j]+",");
}
System.out.print("총점:"+score[i][3]);
System.out.println("평균:"+avg[i]);
}
}
처음에 작성하고 성공한 코드이다 하지만 이 코드에 문제점이 보였다. 똑같은 반복문들이 반복돼서 코드가 길어 보였다. 그래서 수정하여 아래 코드처럼 고쳤다.
public static void main(String[] args) {
String []name; //name
int [][]score; //kor eng math total
float []avg;
Scanner sc=new Scanner(System.in);
//메모리 할당
name=new String[3];
score=new int[3][4];
avg=new float[3];
//입력 &연산
for(int i=0;i<name.length;i++) {
System.out.println("이름입력");
name[i]=sc.next();
System.out.println("국영수 순으로 성적 입력");
for(int j=0;j<score[i].length-1;j++) {
score[i][j]=sc.nextInt();
score[i][3]+=score[i][j];
}
avg[i]=score[i][3]/3.f;
}
//출력
for(int i=0;i<name.length;i++) {
System.out.print(name[i]+":");
for(int j=0;j<score[i].length-1;j++) {
System.out.print(score[i][j]+",");
}
System.out.print("총점:"+score[i][3]);
System.out.println("평균:"+avg[i]);
}
}
3반 3명 성적처리
import java.util.Scanner;
/*
* 사람의 성적처리 프로그램
*
* 입력:이름,국어,영어,수학
* 연산:총점,평균
* 출력:이름,국어,양아,수학,총점,평균
* 한반당 3명 3반
*
* 1반 출력 3명
*/
public class Day3 {
public static void main(String[] args) {
String [][]name; //name
int [][][]score; //kor eng math total
float [][]avg;
String[] schoolClass=new String[3];
Scanner sc=new Scanner(System.in);
String []subject= {"국어","영어","수학"};
name=new String[3][3];
score=new int[3][3][4];
avg=new float[3][3];
for(int k=0;k<name.length;k++) {
//System.out.println(k+1+"반");
System.out.println("반입력");
schoolClass[k]=sc.next()+"반";
for(int i=0;i<name[k].length;i++) {
System.out.println("이름입력");
name[k][i]=sc.next();
System.out.println("국영수 순으로 성적 입력");
for(int j=0;j<score[k][i].length-1;j++) {
score[k][i][j]=sc.nextInt();
score[k][i][3]+=score[k][i][j];
}
avg[k][i]=score[k][i][3]/3.f;
}
}
for(int k=0;k<name.length;k++) {
System.out.println(schoolClass[k]);
for(int i=0;i<name[k].length;i++) {
System.out.print(name[k][i]+": ");
for(int j=0;j<score[k][i].length-1;j++) {
System.out.print(subject[j]+": "+score[k][i][j]+",");
}
System.out.print("총점:"+score[k][i][3]);
System.out.println("평균:"+avg[k][i]);
}
}
}
}
총몇반 있는지 입력받고 그 반에서 또 몇명씩 있는지 입력받는다. (단 반명수가 반마다 다를수 있다)
import java.util.Scanner;
/*
* 사람의 성적처리 프로그램
*
* 입력:이름,국어,영어,수학
* 연산:총점,평균
* 출력:이름,국어,양아,수학,총점,평균
*/
public class Day3 {
public static void main(String[] args) {
String [][]name; //name
int [][][]score; //kor eng math total
float [][]avg;
Scanner sc=new Scanner(System.in);
String []subject= {"국어","영어","수학"};
System.out.println("학교에 몇반있습니까?");
int num=sc.nextInt(); //class 개수입력
name=new String[num][];
score=new int[num][][];
avg=new float[num][];
for(int k=0;k<name.length;k++) {
System.out.println(k+1+"반은 몇명입니까");
num=sc.nextInt();// 반별 인원 수 입력
name[k]=new String[num];
score[k]=new int[num][4];
avg[k]=new float[num];
}
for(int k=0;k<name.length;k++) {
System.out.println(k+1+"반 정보입력해주세요");
for(int i=0;i<name[k].length;i++) {
System.out.println("이름입력");
name[k][i]=sc.next();
System.out.println("국영수 순으로 성적 입력");
for(int j=0;j<score[k][i].length-1;j++) {
score[k][i][j]=sc.nextInt();
score[k][i][3]+=score[k][i][j];
}
avg[k][i]=score[k][i][3]/3.f;
}
}
for(int k=0;k<name.length;k++) {
System.out.println(k+1+"반");
for(int i=0;i<name[k].length;i++) {
System.out.print(name[k][i]+": ");
for(int j=0;j<score[k][i].length-1;j++) {
System.out.print(subject[j]+": "+score[k][i][j]+",");
}
System.out.print("총점:"+score[k][i][3]);
System.out.println("평균:"+avg[k][i]);
}
}
}
}
'Java기초' 카테고리의 다른 글
| [Java]클래스활용 성적관리프로그램(getter and setter)+has ~ a관계이해 (0) | 2022.06.28 |
|---|---|
| [Java] 성적처리 프로그램심화(array이해하기 (0) | 2022.06.24 |
| [Java]while,do while 문 활용(For문에서 while문으로 변경) (0) | 2022.06.23 |
| [Java] Eclipse 단축키 (0) | 2022.06.23 |
| [JAVA]for문활용 별찍기 (0) | 2022.06.22 |
댓글