티스토리 뷰
성적 처리 프로그램
1. 입력 - 한명씩
2. 전체 출력 / 오름차순으로 출력
3. 검색 - 이름 검색 / 성적 (국어, 영어, 수학, 총점) 검색
4. 수정 - 이름을 받아서 각 과목 수정
5. 삭제 - 이름을 받아서 삭제
import java.util.Scanner;
class Name { //이름
private String name;
public void setName(String name) {
this.name = name;
}
public String getName() {
return name;
}
}
class Score { //점수
private int score;
public int getScore() {
return score;
}
public void setScore(int score) {
this.score = score;
}
}
class Student { //has ~a관계로 상속
private Name name;
private Score kor;
private Score eng;
private Score math;
private int total;
private float avg;
Student() {
name = new Name();
kor = new Score();
eng = new Score();
math = new Score();
}
public Name getName() {
return name;
}
public void setName(Name name) {
this.name = name;
}
public Score getKor() {
return kor;
}
public void setKor(Score kor) {
this.kor = kor;
}
public Score getEng() {
return eng;
}
public void setEng(Score eng) {
this.eng = eng;
}
public Score getMath() {
return math;
}
public void setMath(Score math) {
this.math = math;
}
public int getTotal() {
total = kor.getScore() + eng.getScore() + math.getScore();
return total;
}
public void setTotal(int total) {
this.total = total;
}
public float getAvg() {
avg = total / 3.f;
return avg;
}
public void setAvg(float avg) {
this.avg = avg;
}
@Override
public String toString() {
return "이름 : " + name.getName() + " 국어 : " + kor.getScore() + " 영어 : " + eng.getScore() + " 수학 : "
+ math.getScore() + " 총점 : " + this.getTotal() + " 평균 : " + this.getAvg() + "\n";
}
}
public class Grade {
static Scanner sc = new Scanner(System.in);
public static Student[] s = new Student[50];
public static int num = 0;
public static void input() {
s[num] = new Student(); // 생성자
System.out.print("이름 : ");
s[num].getName().setName(sc.next());
System.out.print("국어 : ");
s[num].getKor().setScore(sc.nextInt());
System.out.print("영어 : ");
s[num].getEng().setScore(sc.nextInt());
System.out.print("수학 : ");
s[num].getMath().setScore(sc.nextInt());
}
public static void output() {
for (int i = 0; i < num; i++) {
System.out.println("이름 : " + s[i].getName().getName());
System.out.println("국어 : " + s[i].getKor().getScore());
System.out.println("영어 : " + s[i].getEng().getScore());
System.out.println("수학 : " + s[i].getMath().getScore());
System.out.println("총점 : " + s[i].getTotal());
System.out.println("평균 : " + s[i].getAvg());
System.out.println("------------------");
}
System.out.println("정렬 - 점수 기준");
Student tmp;
for (int i = 0; i < num; i++) {
for (int j = 0; j < num - 1; j++) {
if (s[j].getTotal() < s[j + 1].getTotal()) {
tmp = s[j];
s[j] = s[j + 1];
s[j + 1] = tmp;
}
}
}
for (int i = 0; i < num; i++) {
System.out.println(s[i]);
}
}
public static void search() {
System.out.print("검색 - 1.이름 2.성적 : ");
int c = sc.nextInt();
if (c == 1) {
System.out.print("이름 검색 : ");
String n = sc.next();
for (int i = 0; i < num; i++) {
if (s[i].getName().getName().equals(n)) {
System.out.println(s[i]);
break;
}
}
} else if (c == 2) {
System.out.print("성적 - 1.국어 2.영어 3.수학 4.총점 : ");
int si = sc.nextInt();
switch (si) {
case 1: // 국어
System.out.print("국어 검색 : ");
int k = sc.nextInt();
for (int i = 0; i < num; i++) {
if (s[i].getKor().getScore() == k) {
System.out.println(s[i]);
}
}
break;
case 2: // 영어
System.out.print("영어 검색 : ");
int e = sc.nextInt();
for (int i = 0; i < num; i++) {
if (s[i].getEng().getScore() == e) {
System.out.println(s[i]);
}
}
break;
case 3: // 수학
System.out.print("수학 검색 : ");
int m = sc.nextInt();
for (int i = 0; i < num; i++) {
if (s[i].getMath().getScore() == m) {
System.out.println(s[i]);
}
}
break;
case 4:// 총점
System.out.print("총점 검색 : ");
int t = sc.nextInt();
for (int i = 0; i < num; i++) {
if (s[i].getTotal() == t) {
System.out.println(s[i]);
}
}
break;
}
}
}
public static void fix() {
System.out.print("수정 할 이름 입력 : ");
String f = sc.next();
for (int i = 0; i < num; i++) {
if (s[i].getName().getName().equals(f)) {
System.out.print("수정 - 1.국어 2.영어 3.수학 : ");
int f2 = sc.nextInt();
switch (f2) {
case 1: // 국어
System.out.print("국어 : ");
s[i].getKor().setScore(sc.nextInt());
break;
case 2: // 영어
System.out.print("영어 : ");
s[i].getEng().setScore(sc.nextInt());
break;
case 3: // 수학
System.out.print("수학 : ");
s[i].getMath().setScore(sc.nextInt());
break;
}
}
}
}
public static void delete() {
if (num == 0) {
System.out.println("삭제할 내역이 없습니다");
} else {
System.out.print("삭제 할 이름 검색 : ");
String d = sc.next();
for (int i = 0; i < num; i++) {
if (s[i].getName().getName().equals(d)) {
for (int j = i; j < num; j++) {
s[j] = s[j + 1];
}
num--;
break;
}
}
}
}
public static void main(String[] args) {
while (true) {
System.out.println("1.입력 2.출력 3.검색 4.수정 5.삭제 6.끝내기");
System.out.print("선택 : ");
int choose;
choose = sc.nextInt();
while (choose != 6) {
switch (choose) {
case 1: // 입력
input();
num++;
break;
case 2: // 출력
output();
break;
case 3: // 검색
search();
break;
case 4: // 수정
fix();
break;
case 5: // 삭제
delete();
break;
case 6: // 끝내기
break;
}
break;
}
}
}
}
'LANGUAGE > JAVA' 카테고리의 다른 글
[JAVA] CLASS - 클래스 (0) | 2018.03.21 |
---|---|
[JAVA] 문자열 계산기 (0) | 2018.03.21 |
[JAVA] ARRAY - 배열 (0) | 2018.03.20 |
[JAVA] THIS (0) | 2018.03.20 |
[JAVA] BASIC THINGS (0) | 2018.03.19 |
댓글