일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- ruby
- 자바
- CSS
- html
- 디지몬
- 연습문제
- 인프런
- Web
- 一日一つメソッド
- nico
- vscode
- Spring
- Flutter
- Python
- C로 시작하는 컴퓨터 프로그래밍4판
- java
- DART
- 비즈니스일본어
- jsp
- メソッド
- 単語
- 반다이몰
- springboot
- 건담
- rails7
- 건담베이스
- javascript
- 일본어
- 日本語
- rails
Archives
- Today
- Total
AR삽질러
Java - Collection Framework(List성적관리프로그램) 본문
728x90
성적관리프로그램
1.입력 2.출력 3.수정 4.삭제 5.종료
1번 입력시 이름과 국어점수 영점수를 입력받아 저장한다.
2번 출력시 입력된 모든 학생의 성적합계와 등수를 알려준다.
3번 수정시 이름을 입력받아 해당하는 학생의 수학,영어점수를 수정한다.
4번 삭제시 이름을 입력받아 해당하는 학생이 있으면 삭제한다.
5번 종료시 프로그램을 종료시킨다.
SungJuk
package grade;
public class SungJuk {
private String name;
private int kor;
private int eng;
private int tot;
private int rank;
public SungJuk(String name, int kor, int eng) {
this.name = name;
this.kor = kor;
this.eng = eng;
tot = kor + eng;
rank = 1;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getKor() {
return kor;
}
public void setKor(int kor) {
this.kor = kor;
}
public int getEng() {
return eng;
}
public void setEng(int eng) {
this.eng = eng;
}
public int getTot() {
return tot;
}
public void setTot(int tot) {
this.tot = tot;
}
public void clearRank() {
rank = 1;
}
public void plusRank() {
rank++;
}
public void disp() {
System.out.println(name + "학생의 촘점은 : " + tot + "점이고 순위는 " + rank + "등 입니다.");
}
}
- name : 학생이름저장 문자열변수, kor : 국어점수 저장 정수변수
- eng : 영어점수저장 정수변수, tot : 국어 영어 점수를 저장 정수변수, rank : 학생의 순위를 저장 정수변수
생성자 : SungJuk(String name, int kor, int eng)는 매개변수로 name, kor, eng를 받아 객체를 생성하고 -> tot 국어,영어성적을 합산한 값을 초기화, rank는 1
- clearRank() Method : 순위를 초기화, plusRank() Method : 순위를 1증가시키는 메서드- disp() Method : 학생의 이름, 총점, 순위를 출력하는 메서드
SungJukMain
package grade;
import java.util.Scanner;
public class SungJukMain {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
SungJukPro pro = new SungJukProImpl();
while(true) {
System.out.print("1.입력 | 2.출력 | 3.수정 | 4.삭제 | 5.종료 : ");
int select = scan.nextInt();
switch (select) {
case 1:
pro.input();
break;
case 2:
pro.view();
break;
case 3:
pro.edit();
break;
case 4:
pro.delete();
break;
case 5:
pro.exit();
break;
default:
System.out.println("잘못입력하셨습니다.");
}
}
}
}
SungJukPro
package grade;
public interface SungJukPro {
public void input();
public void view();
public void edit();
public void delete();
public void exit();
}
- 학생의 성적정보 : 입력, 출력, 수정, 삭제, 종료 기능 Interface
SungJukProImpl
package grade;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class SungJukProImpl implements SungJukPro{
private List<SungJuk> list;
private Scanner scan;
public SungJukProImpl() {
list = new ArrayList<>();
scan = new Scanner(System.in);
}
@Override
public void input() {
System.out.print("학생이름을 입력해주세요 : ");
String name = scan.next();
System.out.print("국어점수 입력 : ");
int kor = scan.nextInt();
System.out.print("영어점수 입력 : ");
int eng = scan.nextInt();
SungJuk sungjuk = new SungJuk(name, kor, eng);
list.add(sungjuk);
}
protected void rank() {
for(SungJuk i : list) {
i.clearRank();
for(SungJuk j : list) {
if(i.getTot() < j.getTot()) {
i.plusRank();
}
}
}
}
@Override
public void view() {
rank();
for(SungJuk sj : list) {
sj.disp();
}
}
@Override
public void edit() {
System.out.print("수정할 학생임을 입력해 주세요 : ");
String name = scan.next();
SungJuk sj = getSungJuk(name);
if(sj == null) {
System.out.println("해당 학생은 존재하지 않습니다!");
} else {
System.out.println("입력하신 " + name + "학생의 정보를 수학성적 : " + sj.getKor() + "을 수정해주세요 : ");
sj.setKor(scan.nextInt());
System.out.println("입력하신 " + name + "학생의 정보를 영어성적 : " + sj.getEng() + "을 수정해주세요 : ");
sj.setEng(scan.nextInt());
sj.setTot(sj.getKor() + sj.getEng()); // tot 값 업데이트
}
}
protected SungJuk getSungJuk(String name) {
for(SungJuk sj : list) {
if (sj.getName().equals(name)) {
return sj;
}
}
return null;
}
@Override
public void delete() {
System.out.print("삭제할 학생의 이름을 입력해주세요 : ");
String name = scan.next();
SungJuk sj = getSungJuk(name);
if(sj == null) {
System.out.println("입력하신 " + sj + "는 저희 학생이 아닙니다.");
}else {
list.remove(sj);
System.out.println(name + "을 삭제합니다.");
}
}
@Override
public void exit() {
System.out.println("성적관리 프로그램을 종료합니다.");
System.exit(0);
}
}
728x90
반응형
LIST
'JAVA' 카테고리의 다른 글
Java - Collection Framework (Set Collection) (0) | 2023.04.14 |
---|---|
Java - Collection Framework (List Collection) (0) | 2023.04.14 |
Java - Collection Framework(Example) (0) | 2023.04.13 |
이것이 자바다 - 7장 확인문제(상속) (0) | 2023.02.24 |
이것이 자바다 - 6장 확인문제(클래스)-2 (0) | 2023.02.23 |