Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 다중 모달창
- SUB Query
- static 예제
- 추상 메서드
- 스프링 모달창
- 모달창 여러개
- oracle 연동
- static
- IP
- AOP란?
- 리스트 모달창
- 오라클 비교연산자
- 사용자 데이터그램 프로토콜
- 싱클톤패턴
- order by
- 다운캐스팅
- 형변환
- 객체협력
- 템플릿
- downcasting
- react
- static메서드
- GROUP BY
- 깃 명령어
- Java
- Servlet 맵핑
- singleton
- spring annotation
- 이클립스 오라클 연동
- 상속
Archives
- Today
- Total
모든지 기록하자!
[Java] 배열을 이용한 성적 처리 프로그램 본문
728x90
한 사람의 성적 처리 프로그램
코드를 구현하기 전에 미리 구현할 기능들을 나눠 본다
public class ScoreEx {
public static void main(String[] args) {
// 한사람의 성적 처리 프로그램
// 입력 : 이름,국어,영어,수학
// 연산 : 총점, 평균
// 출력 : 이름 , 국어 , 영어 , 수학 , 총점, 평균
String name; //이름 변수
int []score; //성적 변수
float avg; //총점 변수
//메모리할당
score = new int[4];
// 입력 구현
Scanner sc = new Scanner(System.in);
System.out.println("이름을 입력하세요");
name = sc.next(); //이름 입력받기
System.out.println("국어, 영어, 수학 성적을 차례대로 입력하세요");
for(int i=0;i<score.length-1;i++) { //length-1 하는 이유는 [3]은 총점이기때문
score[i] = sc.nextInt(); // 성적입력받기
score[3] += score[i]; // score[0],[1],[2] 의 합을 score[3]에 대입
}
avg = score[3]/3.f; //총점 나누기 과목수 3 해서 평균 산출
// 출력 구현
System.out.println(name);
String []str = {"국어","영어","수학","총점"};
for(int i=0;i<score.length;i++) {
System.out.println(str[i]+" : "+score[i]);
}
System.out.println("평균 : "+avg);
}
}
이번 예시의 장점은 뒤에 배울 내용들을 성적 처리 프로그램에 적용해서 변형시킬 수 있다.
2차원 배열을 사용한 여러 명의 성적처리 프로그램
public class Practice03 {
public static void main(String[] args) {
// 여러명의 성적 처리 프로그램
// 학생수 입력 : 숫자입력
// 입력 : 이름,국어,영어,수학
// 연산 : 총점, 평균
// 출력 : 이름 , 국어 , 영어 , 수학 , 총점, 평균
Scanner sc = new Scanner(System.in);
System.out.println("학생 수를 입력하세요");
int num = sc.nextInt();
//메모리할당 함수
String []name = new String[num]; // 학생수에 따른 이름변수
int [][]score = new int[num][4]; // 학생수에 따른 점수배열
float []avg = new float[num]; // 학생수에 따른 평균배열
//기능구현 (입력)
System.out.println("학생 이름과 국,영,수 성적을 차례로 입력하세요");
for(int i=0;i<num;i++) {
name[i] = sc.next(); //이름입력받기
for(int j=0;j<3;j++) { // i는 학생이름 j[0]=국어, j[1]=영어, j[2]=수학, j[3]=총점
score[i][j] = sc.nextInt(); // i번째 학생에게 성적입력
score[i][3] += score[i][j]; // 입력받은 성적을 총점 산출
}
avg[i] = score[i][3] / 3.f; //i번째 학생의 총점/3 으로 평균 산출
}
//출력하기
for(int i=0;i<num;i++) {
System.out.println(name[i]);
for(int j=0;j<4;j++) {
System.out.println(score[i][j]); //i번째 학생의 성적 출력후 i는 1증가하여
//다음학생 성적출력
}
System.out.println(avg[i]);
System.out.println("======================");
}
}
}
간단한 함수로 기능을 나누어서 구현한 성적 처리 프로그램
public class CallbyReference {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
CallbyReference se = new CallbyReference(); //객체생성
System.out.println("학생수를 입력하세요");
int num = sc.nextInt();
//메모리할당 함수
String [] name = new String[num]; //학생배열
int [][]score = new int[num][4]; // 점수배열 [학생수][4]
float []avg = new float[num]; // 학생수에 따라 총점 배열이 달라짐
//기능구현 (입력 , 출력)
se.input(name,score,avg,num,sc);
se.disp(name,score,avg,num);
}
public void input(String []name,int [][]score,float []avg,int num, Scanner sc) {
System.out.println("학생 이름과 국,영,수 성적을 차례로 입력하세요");
for(int i=0;i<num;i++) {
name[i] = sc.next();
for(int j=0;j<3;j++) {
score[i][j] = sc.nextInt();
score[i][3] += score[i][j];
}
avg[i] = score[i][3]/3.f;
}
}
public void disp(String []name,int [][]score,float []avg,int num) {
for(int i=0;i<num;i++) {
System.out.println(name[i]+"\t");
for(int j=0;j<4;j++) {
System.out.println(score[i][j]+"\t");
}
System.out.println(avg[i]);
System.out.println("====================");
}
}
}
728x90
'Java' 카테고리의 다른 글
[Java] 배열을 이용한 예제( 1차원배열의 합, 2차원배열의 합, 잔돈구하기) (0) | 2021.05.12 |
---|---|
[Java] static 변수 (0) | 2021.05.12 |
[Java] 객체간의 협력(대중교통 이용) (0) | 2021.05.11 |
[Java] 객체지향 프로그래밍(OOP) 과 클래스(Class) (0) | 2021.05.11 |
반복문 - for 문과 예시(1~5까지 합을구하기, 구구단출력) (0) | 2021.05.11 |
Comments