Java를 이용한 Array(배열)만으로 만든 성적 관리 프로그램
2021. 7. 15. 11:38
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
|
package tester;
import java.util.Scanner;
public class ScoreBoard {
public static void main(String[] args) {
// Array를 이용하여 다음과 같은 프로그램 만들기.
// 성적입력받기, 총합구하기, 평균구하기, 최고점수와 최저점수, 중간값 구하기.
// Array >> ArrayList를 사용하면 더 편하게 만들 수 있을듯.
Scanner scan = new Scanner(System.in);
int sum = 0;
double average = 0;
int max = 0;
int min = 0;
int students = 0;
System.out.println("반의 학생수를 입력하세요.");
while(students <= 0) {
students = scan.nextInt();
if(0 >= students) {
System.out.println("최소 학생수는 1명입니다. 다시 입력하세요.");
}
}
int[] scores = new int[students];
for(int i = 0; i < scores.length; i++) {
System.out.println("학생" + (i+1) + "의 점수를 입력하세요.");
scores[i] = scan.nextInt();
if(0 > scores[i] || 100 < scores[i] ) {
System.out.println("입력하신 다음 '" + scores[i] + "' 점수는 허용 범위 밖입니다.");
i--;
}
}
System.out.println("---------------------------");
for(int i = 0; i < scores.length; i++) {
sum += scores[i];
}
average = (double)sum / scores.length;
for(int i = 0; i < scores.length; i++) {
if(max < scores[i]) {
max = scores[i];
}
if(0 == i) {
min = scores[i];
}
if(min > scores[i]) {
min = scores[i];
}
}
System.out.println("총합은 다음과 같습니다 : " + sum);
System.out.println("---------------------------");
System.out.println("평균은 다음과 같습니다 : " + average);
System.out.println("---------------------------");
System.out.println("최고점수는 다음과 같습니다 : " + max);
System.out.println("---------------------------");
System.out.println("최저점수는 다음과 같습니다 : " + min);
// 배열 정렬하기 : 교환정렬
// 이웃한 값을 비교해서 값을 바꾼다는 것(알고리즘).
if(0 == students % 2) {
int medium = students / 2;
int medium_up = (int) (medium + 0.5);
int medium_down = (int) (medium - 0.5);
int tmp = 0;
for(int i = 0; i < scores.length; i++){
for(int j = i + 1; j < scores.length; j++) {
if(scores[i] > scores[j]) {
tmp = scores[i];
scores[i] = scores[j];
scores[j] = tmp;
}
}
}
double midfinal = (double) (scores[medium_up] + scores[medium_down]) / 2;
System.out.println("중간값은 '" + midfinal + "' 입니다.");
} else {
int tmp = 0;
for(int i = 0; i < scores.length; i++){
for(int j = i + 1; j < scores.length; j++) {
if(scores[i] > scores[j]) {
tmp = scores[i];
scores[i] = scores[j];
scores[j] = tmp;
}
}
//정렬과정을 보여주기 위한 임시코딩.
for(int k = 0; k < scores.length; k++) {
System.out.print(scores[k] + " ");
}
System.out.println();
}
int midIndex = students / 2;
System.out.println("중간값은 '" + scores[midIndex] + "' 입니다.");
}
scan.close();
}
}
|
cs |
Code Review
1. ArrayList would have been more convenient, but it was an experiment to work with Array.
2. The practice was closer to C than Java in terms of using Array.
'Computer Language > Java' 카테고리의 다른 글
(Java)Difference Between '==' and 'equals()' (0) | 2021.08.02 |
---|---|
이클립스(Eclipse) Java 단축키 (0) | 2021.07.21 |
Java를 이용한 가위바위보 게임 (0) | 2021.07.17 |
Java를 이용한 동전 앞뒤 맞추기 (0) | 2021.07.17 |
Java 기본 자료형(Primitive Data Type) (0) | 2021.07.15 |