공통된 클래스
- People
package data;
public class People {
private String name;
private int kor;
private int eng;
private int math;
private int total;
private double avg;
public People() {
name = null;
kor = 0;
eng = 0;
math = 0;
total = 0;
avg = 0f;
}
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 getMath() {
return math;
}
public void setMath(int math) {
this.math = math;
}
public int getTotal() {
return total = kor+eng+math;
}
public double getAvg() {
return avg = (total/3);
}
}
- 인터페이스
package main;
public interface SubMa {
public void pCreate(); // 입력
public void pPrint(); // 전체출력
public void pSelect(); // 개인출력
public void pDelete(); // 삭제
public void pUpdate(); // 수정
public int selectMenu(); // 메뉴선택
public void menuPrint(); // 초기화면 출력
}
- 메인(뷰)
package main;
public class SubMain {
public static void main(String[] args) {
SubManage sm = new SubManage();
int ck = 1;
while (ck == 1) {
sm.menuPrint();
ck = sm.selectMenu();
}
}
}
// ArrayList
package main;
import java.util.*;
import data.People;
public class SubManage implements SubMa {
People st;
ArrayList<People> p;
public SubManage() {
p = new ArrayList<>();
}
@Override
public void menuPrint() {
System.out.println("-------------------------------------");
System.out.println("1.입력\t2.출력\t3.검색\t4.삭제\t5.수정\t6.종료");
System.out.println("-------------------------------------");
}
@Override
public int selectMenu() {
// 수정추가해보기
Scanner sc = new Scanner(System.in);
System.out.print("원하는 메뉴의 번호를 입력하세요 : ");
int sw = sc.nextInt();
System.out.println();
switch (sw) {
case 1: // 입력
pCreate();
break;
case 2: // 출력
pPrint();
break;
case 3: // 검색
pSelect();
break;
case 4: // 삭제
pDelete();
break;
case 5: // 수정
pUpdate();
break;
case 6: // 종료
System.out.println("종료되었습니다.");
return 0;
default: // 그 외의 값
System.out.println("올바른 번호를 입력하세요");
}
return 1;
}
@Override
public void pCreate() {
Scanner sc = new Scanner(System.in);
System.out.println("정보 입력을 할 학생 수를 정하세요 : ");
int n = sc.nextInt();
for (int i = 0; i < n; i++) {
st = new People();
System.out.print("이름 입력 : ");
st.setName(sc.next());
System.out.print("국어점수 입력 : ");
st.setKor(sc.nextInt());
System.out.print("영어점수 입력 : ");
st.setEng(sc.nextInt());
System.out.print("수학점수 입력 : ");
st.setMath(sc.nextInt());
System.out.println();
p.add(st);
}
}
@Override
public void pPrint() {
System.out.println("*************************************");
System.out.println("Name"+'\t'+"Kor"+'\t'+"Eng"+'\t'+"Math"+'\t'+"Total"+'\t'+"Avg");
for (People i : p) {
System.out.println(i.getName() + '\t' + i.getKor() + '\t' + i.getEng() + '\t' + i.getMath() + '\t'
+ i.getTotal() + '\t' + i.getAvg());
}
System.out.println("*************************************");
}
@Override
public void pSelect() {
Scanner sc = new Scanner(System.in);
String name;
System.out.print("찾을 학생의 이름을 입력하세요 : ");
name = sc.next();
boolean ft = false;
System.out.println("*************************************");
for (int i = 0; i < p.size(); i++) {
if (p.get(i).getName().equals(name)) {
System.out.println("Name"+'\t'+"Kor"+'\t'+"Eng"+'\t'+"Math"+'\t'+"Total"+'\t'+"Avg");
System.out.println(p.get(i).getName() + '\t' + p.get(i).getKor() + '\t' + p.get(i).getEng() + '\t'
+ p.get(i).getMath() + '\t' + p.get(i).getTotal() + '\t' + p.get(i).getAvg());
ft = true;
break;
}
}
if (ft == false) {
System.out.println("해당 학생의 정보가 없습니다.");
}
System.out.println("*************************************");
}
@Override
public void pDelete() {
Scanner sc = new Scanner(System.in);
System.out.print("삭제할 학생의 이름을 입력하세요 : ");
String name = sc.next();
boolean ft = false;
for (int i = 0; i < p.size(); i++) {
if (p.get(i).getName().equals(name)) {
p.remove(i); // 삭제 함수
ft = true;
break;
}
}
if(ft==false) {
System.out.println("해당 학생의 정보가 없습니다.");
}
}
public void pUpdate() {
Scanner sc = new Scanner(System.in);
String name;
boolean tf = false;
while (true) {
System.out.print("수정할 학생의 이름을 입력하세요 (종료n) : ");
name = sc.next();
if(name.equals("n") || name.equals("N")) {
break;
}
for(int i=0;i<p.size();i++) {
if(p.get(i).getName().equals(name)) {
System.out.println("수정할 항목 선택");
System.out.print("1.kor 2.eng 3.math : ");
int a = sc.nextInt();
if (a == 1) {
System.out.print("국어 점수 입력 : ");
p.get(i).setKor(sc.nextInt());
} else if (a == 2) {
System.out.print("영어 점수 입력 : ");
p.get(i).setEng(sc.nextInt());
} else if (a == 3) {
System.out.print("수학 점수 입력 : ");
p.get(i).setMath(sc.nextInt());
} else {
System.out.println("다시 입력하세요.");
}
tf = true;
break;
}
}
if(tf == false) {
System.out.println("해당 학생의 정보가 없습니다.");
}
}
}
}
// HashMap
package main;
import java.util.Scanner;
import data.People1;
import java.util.*;
public class SubManage1 implements SubMa1 {
HashMap<String, People1> stM;
People1 st;
public SubManage1() {
stM = new HashMap<>();
}
@Override
public void menuPrint() {
System.out.println("-------------------------------------");
System.out.println("1.입력\t2.출력\t3.검색\t4.삭제\t5.수정\t6.종료");
System.out.println("-------------------------------------");
}
@Override
public int selectMenu() {
// 수정추가해보기
Scanner sc = new Scanner(System.in);
System.out.print("원하는 메뉴의 번호를 입력하세요 : ");
int sw = sc.nextInt();
System.out.println();
switch (sw) {
case 1: // 입력
pCreate();
break;
case 2: // 출력
pPrint();
break;
case 3: // 검색
pSelect();
break;
case 4: // 삭제
pDelete();
break;
case 5: // 수정
pUpdate();
break;
case 6: // 종료
System.out.println("종료되었습니다.");
return 0;
default: // 그 외의 값
System.out.println("올바른 번호를 입력하세요");
}
return 1;
}
@Override
public void pCreate() {
Scanner sc = new Scanner(System.in);
System.out.println("정보 입력을 할 학생 수를 정하세요 : ");
int n = sc.nextInt();
for (int i = 0; i < n; i++) {
st = new People1();
System.out.print("이름 입력 : ");
st.setName(sc.next());
System.out.print("국어점수 입력 : ");
st.setKor(sc.nextInt());
System.out.print("영어점수 입력 : ");
st.setEng(sc.nextInt());
System.out.print("수학점수 입력 : ");
st.setMath(sc.nextInt());
System.out.println();
stM.put(st.getName(), st);
}
}
@Override
public void pPrint() {
// KeySet은 저장된 Key값을 확인하는 것.
System.out.println("*************************************");
System.out.println("Name"+'\t'+"Kor"+'\t'+"Eng"+'\t'+"Math"+'\t'+"Total"+'\t'+"Avg");
for (String n : stM.keySet()) { // 해시맵의 키셋을 활용
System.out.println(stM.get(n).getName() + '\t' + stM.get(n).getKor() + '\t' + stM.get(n).getEng() + '\t'
+ stM.get(n).getMath() + '\t' + stM.get(n).getTotal() + '\t' + stM.get(n).getAvg() + '\t');
}
System.out.println("*************************************");
}
@Override
public void pSelect() {
Scanner sc = new Scanner(System.in);
String name;
System.out.print("찾을 학생의 이름을 입력하세요 : ");
name = sc.next();
st = stM.get(name);
System.out.println("*************************************");
System.out.println("Name"+'\t'+"Kor"+'\t'+"Eng"+'\t'+"Math"+'\t'+"Total"+'\t'+"Avg");
if (st == null) {
System.out.println("해당 학생의 정보가 없습니다.");
} else {
System.out.println(st.getName() + '\t' + st.getKor() + '\t' + st.getEng() + '\t' + st.getMath() + '\t'
+ st.getTotal() + '\t' + st.getAvg());
}
System.out.println("*************************************");
}
@Override
public void pDelete() {
Scanner sc = new Scanner(System.in);
System.out.print("삭제할 학생의 이름을 입력하세요 : ");
String name = sc.next();
st = stM.get(name);
if(st == null) {
System.out.println("해당 학생의 정보가 없습니다.");
}
else {
stM.remove(name);
}
}
public void pUpdate() {
Scanner sc = new Scanner(System.in);
String name;
while (true) {
System.out.print("수정할 학생의 이름을 입력하세요 (종료n) : ");
name = sc.next();
if(name.equals("n") || name.equals("N")) {
break;
}
if (stM.keySet().contains(name)) {
System.out.println("수정할 항목 선택");
System.out.print("1.kor 2.eng 3.math : ");
int a = sc.nextInt();
if (a == 1) {
System.out.print("국어 점수 입력 : ");
stM.get(name).setKor(sc.nextInt());
} else if (a == 2) {
System.out.print("영어 점수 입력 : ");
stM.get(name).setEng(sc.nextInt());
} else if (a == 3) {
System.out.print("수학 점수 입력 : ");
stM.get(name).setMath(sc.nextInt());
} else {
System.out.println("다시 입력하세요.");
}
}
else {
System.out.println("해당 학생의 정보가 없습니다.");
}
}
}
}
반응형
'자바과정 > Java' 카테고리의 다른 글
Java 팀 실습(유니캐스트 Client&Server 에서 서로 메세지 주고받기) - 10일차 (0) | 2021.02.22 |
---|---|
Java 기초 - 11일차 (0) | 2021.02.19 |
Java 실습(스택 : 제네릭) - 10일차 (0) | 2021.02.18 |
Java 기초 - 10일차 (0) | 2021.02.18 |
Java 실습(어댑터) - 9일차 (0) | 2021.02.17 |
댓글