1. 실행파일 클래스
package client;
import controller.StudentCtrl;
public class Client {
public static void main(String[] args) {
StudentCtrl app=new StudentCtrl();
app.startApp();
}
}
2. 학생 컨트롤러 클래스
package controller;
import java.util.ArrayList;
import model.Student;
import model.StudentModel;
import view.StudentView;
public class StudentCtrl {
private StudentModel model;
private StudentView view;
public StudentCtrl() {
this.model=new StudentModel();
this.view=new StudentView();
}
public void startApp() {
int PK=1002;
while(true) {
view.printMenu();
int action=view.inputAction();
if(action==0) {
break;
}
else if(action==1) {
String name=view.inputName();
int score=view.inputScore();
boolean flag=model.insert(PK++, name, score);
if(flag) {
view.printTrue();
}
else {
view.printFalse();
}
}
else if(action==2) {
ArrayList<Student> datas=model.selectAll();
view.printStudentDatas(datas);
}
else if(action==3) {
int num=view.inputNum();
Student data=model.selectOne(num);
if(data!=null) {
view.printStudentData(data);
}
else {
view.printFalse();
}
}
else if(action==4) {
int num=view.inputNum();
int score=view.inputScore();
boolean flag=model.update(num, score);
if(flag) {
view.printTrue();
}
else {
view.printFalse();
}
}
else if(action==5) {
int num=view.inputNum();
boolean flag=model.delete(num);
if(flag) {
view.printTrue();
}
else {
view.printFalse();
}
}
}
}
}
3. Student(학생) 클래스
package model;
public class Student {
private int num; // PK
private String name;
private int score;
public Student(int num,String name,int score) {
this.num=num;
this.name=name;
this.score=score;
}
public int getNum() {
return num;
}
public void setNum(int num) {
this.num = num;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getScore() {
return score;
}
public void setScore(int score) {
this.score = score;
}
@Override
public String toString() {
return num + "번 " + name + "학생 " + score + "점";
}
}
4. 학생 모델 클래스
package model;
import java.util.ArrayList;
public class StudentModel {
// CRRUD
// 만약 메서드가 5개보다 적거나 많으면 어라...?? 이상감지해야함
private ArrayList<Student> datas;
public StudentModel() {
datas=new ArrayList<Student>();
datas.add(new Student(1001,"홍길동",50));
}
public ArrayList<Student> selectAll() {
return datas;
}
public Student selectOne(int num) {
for(Student data:datas) {
if(data.getNum()==num) {
return data;
}
}
return null; // 검색할 학생이 없다면, null이 반환됨
}
// Q1. 성이 김씨인 학생 출력 -> selectAll()
// Q2. 1002번 학생 출력 -> selectOne()
// Q3. 1등 출력 -> selectAll() : 2명이상일수도있는 액션은 전부 All()
public boolean insert(int num,String name,int score) {
datas.add(new Student(num,name,score));
System.out.println(" [로그] insert 메서드 수행");
return true;
}
public boolean update(int num,int score) {
// num 유효성은 데이터를 봐야지만 알수있음
// score는 VIEW에서 체크가능
boolean flag=false;
int i;
for(i=0;i<datas.size();i++) {
if(datas.get(i).getNum()==num) {
flag=true;
break;
}
}
if(!flag) {
System.out.println(" [로그] update 메서드 실패");
return false;
}
datas.get(i).setScore(score);
System.out.println(" [로그] update 메서드 성공");
return true;
}
public boolean delete(int num) {
boolean flag=false;
int i;
for(i=0;i<datas.size();i++) {
if(datas.get(i).getNum()==num) {
flag=true;
break;
}
}
if(!flag) {
System.out.println(" [로그] delete 메서드 실패");
return false;
}
datas.remove(i);
System.out.println(" [로그] delete 메서드 성공");
return true;
}
}
'개발일지 > 복습' 카테고리의 다른 글
DAO, DTO 활용 예시 [학생부 프로그램] (0) | 2023.12.12 |
---|---|
DAO란 (0) | 2023.12.12 |
DTO란 (0) | 2023.12.12 |
MVC패턴 (0) | 2023.12.11 |
클래스(Class) (0) | 2023.12.09 |
댓글