DTO (모델) 선언
toString 및 기본 생성자, getter setter, toString이 포함되어 있다.
package dto;
public class GradeDto {
int number;
String name;
int age;
int kor;
int eng;
int math;
public GradeDto() {
}
public GradeDto(int number, int age, String name, int kor, int eng, int math) {
this.number = number;
this.name = name;
this.age = age;
this.kor = kor;
this.eng = eng;
this.math = math;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public int getNumber() {
return number;
}
public void setNumber(int number) {
this.number = number;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getMath() {
return math;
}
public void setMath(int math) {
this.math = math;
}
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;
}
@Override
public String toString() {
return "GradeDto [number=" + number + ", name=" + name + ", age=" + age + ", kor=" + kor + ", math=" + math
+ ", eng=" + eng + "]";
}
}
Controller(DAO)
DTO의 속성들을 조절하는 메소드가 포함되어있다.
package dao;
import java.util.ArrayList;
import java.util.Scanner;
import dto.GradeDto;
public class GradeDao {
ArrayList<GradeDto> list = new ArrayList<GradeDto>();
Scanner scanner = new Scanner(System.in);
public GradeDao() {
GradeDto gradeDto1 = new GradeDto(0, 24, "온유", 80, 70, 60);
GradeDto gradeDto2 = new GradeDto(1, 26, "진형", 90, 50, 60);
GradeDto gradeDto3 = new GradeDto(2, 27, "규성", 80, 80, 60);
list.add(gradeDto1);
list.add(gradeDto2);
list.add(gradeDto3);
}
public void insert() {
// System.out.println("번호");
int number = list.get(list.size() - 1).getNumber() + 1;
System.out.println("나이");
int age = scanner.nextInt();
System.out.println("이름");
String name = scanner.next();
System.out.println("국어");
int kor = scanner.nextInt();
System.out.println("영어");
int eng = scanner.nextInt();
System.out.println("수학");
int math = scanner.nextInt();
GradeDto dto = new GradeDto(number, age, name, kor, eng, math);
list.add(dto);
}
public int findIndex(String name) {
int findIndex = -1;
for (int i = 0; i < list.size(); i++) {
if (name.equals(list.get(i).getName())) {
findIndex = i;
break;
}
}
return findIndex;
}
public void delete() {
System.out.println("삭제할 대상의 이름을 입력해주세요");
String name = scanner.next();
int findIndex = findIndex(name);
if (findIndex == -1) {
System.out.println("삭제할 대상을 찾을 수 없습니다.");
} else {
list.remove(findIndex);
System.out.println("삭제가 완료 되었습니다.");
}
}
public void select() {
System.out.println("검색할 대상의 이름을 입력해주세요");
String name = scanner.next();
int findIndex = findIndex(name);
if (findIndex == -1) {
System.out.println("검색할 대상을 찾을 수 없습니다.");
} else {
System.out.println("대상의 정보 = " + list.get(findIndex).toString());
}
}
public void update() {
System.out.println("업데이트할 대상의 이름을 입력해주세요");
String name = scanner.next();
int findIndex = findIndex(name);
if (findIndex == -1) {
System.out.println("업데이트 할 대상을 찾을 수 없습니다.");
} else {
System.out.print("변경할 국어 점수: ");
list.get(findIndex).setKor(scanner.nextInt());
System.out.print("변경할 영어 점수: ");
list.get(findIndex).setEng(scanner.nextInt());
System.out.print("변경할 수학 점수: ");
list.get(findIndex).setMath(scanner.nextInt());
}
}
public void selectOneScore() {
System.out.println("학생의 총점및 평균 조회하기");
String name = scanner.next();
int findIndex = findIndex(name);
if (findIndex == -1) {
System.out.println("조회할 대상을 찾을 수 없습니다.");
} else {
int korScore = list.get(findIndex).getKor();
int engScore = list.get(findIndex).getEng();
int mathScore = list.get(findIndex).getMath();
int sub = korScore + engScore + mathScore;
double average = (double) sub / 3;
System.out.println(list.get(findIndex).getName() + " 님의 총점 : " + sub);
System.out.println(list.get(findIndex).getName() + " 님의 평균 : " + average);
}
}
public int allScore() {
int sub = 0;
for (int i = 0; i < list.size(); i++) {
int korScore = list.get(i).getKor();
int engScore = list.get(i).getEng();
int mathScore = list.get(i).getMath();
sub = sub + korScore + engScore + mathScore;
}
return sub;
}
public void allAverage() {
double average = (double) (allScore() / (3 * list.size()));
System.out.println("학생 총점의 평균은 " + average + " 입니다.");
}
public void sort() {
int sub[] = new int[list.size()];
GradeDto temp;
for (int i = 0; i < list.size(); i++) {
int korScore = list.get(i).getKor();
int engScore = list.get(i).getEng();
int mathScore = list.get(i).getMath();
sub[i] = korScore + engScore + mathScore;
}
for (int i = 0; i < sub.length - 1; i++) {
for (int j = i + 1; j < sub.length; j++) {
if(sub[i] < sub[j]) {
temp = list.get(i);
list.set(i, list.get(j));
list.set(j, temp);
}
}
}
for (int i = 0; i < list.size(); i++) {
System.out.println(list.get(i).toString());
}
}
}
View (mainClass)
콘솔상태에서 화면에 나타내주는 역활
package main;
import java.util.Scanner;
import dao.GradeDao;
public class mainClass {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
GradeDao gradeDao = new GradeDao();
while (true) {
System.out.println("1. 학생 정보 추가");
System.out.println("2. 학생 정보 삭제");
System.out.println("3. 학생정보 검색");
System.out.println("4. 학생정보 수정");
System.out.println("5. 학생의 총점및 평균 조회 (1명)");
System.out.println("6. 학생성적 총점");
System.out.println("7. 학생성적 평균");
System.out.println("8. 학생성적순 출력 (총점에 대한)");
int choice = scanner.nextInt();
if (choice == 1) {
gradeDao.insert();
} else if (choice == 2) {
gradeDao.delete();
} else if (choice == 3) {
gradeDao.select();
} else if (choice == 4) {
gradeDao.update();
} else if (choice == 5) {
gradeDao.selectOneScore();
} else if (choice == 6) {
System.out.println("학생의 총점은 " + gradeDao.allScore() + " 입니다");
} else if (choice == 7) {
gradeDao.allAverage();
} else if (choice == 8) {
gradeDao.sort();
}
}
}
}
'Java > java 기초' 카테고리의 다른 글
ArrayList (0) | 2019.11.29 |
---|---|
Generic(제네릭) (0) | 2019.11.29 |
학생관리 프로그램 MVC 패턴으로 나누기 (0) | 2019.11.28 |
final (0) | 2019.11.28 |
객체 오버라이딩 및 상속을 통한 구현 (0) | 2019.11.28 |