Daily coding
Java Basic : day 10 - Example02: 학생성적관리 ArrayList로 작성 본문
Language/Java_basic
Java Basic : day 10 - Example02: 학생성적관리 ArrayList로 작성
sunnnkim 2019. 11. 29. 18:28package day10.example2;
import java.util.Scanner;
public class mainClass {
public static void main(String[] args) {
StudentDAO test = new StudentDAO();
Scanner sc = new Scanner(System.in);
while (true) {
System.out.println("1. 학생정보 입력");
System.out.println("2. 학생정보 삭제");
System.out.println("3. 학생정보 검색");
System.out.println("4. 학생정보 수정");
System.out.println("5. 학생 목록 보기");
System.out.println("6. 파일로 저장하기");
System.out.println("7. 학생정보 파일 불러오기");
System.out.println("0. 종료");
System.out.print(">> ");
int choice;
try {
choice = sc.nextInt();
} catch (Exception e) {
choice = -1;
}
if (choice == 1) {
test.userInsert();
} else if (choice == 2) {
test.userDelete();
} else if (choice == 3) {
test.userSelect();
} else if (choice == 4) {
test.userUpdate();
} else if (choice == 5) {
test.printAll();
} else if (choice == 6) {
try {
test.dataSave();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} else if (choice == 7) {
test.dataLoad();
} else if (choice == 0) {
System.out.println("종료합니다.");
sc.close();
System.exit(0);
} else {
System.out.println("잘못 선택했습니다.");
}
}
}
}
package day10.example2;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.PrintWriter;
import java.util.Scanner;
public class FileClass {
private File file;
private String dir;
private String fileName;
public FileClass() {
file = new File("d:\\");
}
public FileClass(String dir,String fileName) {
file = new File("d:\\" + dir + "\\" + fileName+".txt");
this.dir = "d:\\" + dir;
this.fileName = fileName +".txt";
}
// 파일명이 있는지 확인하기
public boolean check(File file) {
if(file.exists()) {
return true;
}
return false;
}
// creat
public void create() throws Exception{
boolean exist = check(file);
if(exist) {
file.delete();
file.createNewFile();
}
else {
file = new File(dir);
file.mkdirs();
file = new File(dir+"\\" + fileName);
file.createNewFile();
}
}
// read
public void read() throws Exception{
boolean exist = check(file);
if(exist) {
FileReader fr = new FileReader(file);
BufferedReader bw = new BufferedReader(fr);
String str;
while((str = bw.readLine()) != null ){
System.out.println(str);
}
bw.close();
}else {
System.out.println("읽을 파일이 없습니다.");
}
}
// write
public void write(String str) throws Exception{
FileWriter fw = new FileWriter(file);
PrintWriter pw = new PrintWriter(fw);
pw.println(str);
fw.close();
}
}
// memberDAO 랑 연결해서 사용하기
// 만들 메소드
// creatfile
// read
// write
package day10.example2;
import java.util.ArrayList;
import java.util.Scanner;
import javax.management.loading.MLet;
public class StudentDAO {
Scanner sc = new Scanner(System.in);
private ArrayList<StudentDTO> slist;
FileClass file = new FileClass("Student","Student_Grade");
// id, name, age, kor, eng, math
public StudentDAO() {
slist = new ArrayList<StudentDTO>();
// 기본데이터
StudentDTO s1 = new StudentDTO(0,"테스트1",11,100,90,80);
StudentDTO s2 = new StudentDTO(1,"테스트2",22,90,89,91);
StudentDTO s3 = new StudentDTO(2,"테스트3",33,85,77,55);
StudentDTO s4 = new StudentDTO(3,"테스트4",44,77,68,85);
slist.add(s1);
slist.add(s2);
slist.add(s3);
slist.add(s4);
}
// insert
public void insert(StudentDTO s) {
slist.add(s);
}
// delete
public void delete(int index) {
slist.remove(index);
}
// select
public StudentDTO select(int index) {
return slist.get(index);
}
// update
public void update(int index, StudentDTO s) {
slist.set(index, s);
}
// print all
public void printAll() {
System.out.println(" 이름\t 나이\t 국어\t 영어 \t수학\n"
+ "-------------------------------------");
for (int i = 0; i < slist.size(); i++) {
System.out.println(slist.get(i).toString());
}
}
// serch
public int searchIndex() {
int index = -1;
System.out.println("학생의 이름을 입력하세요");
System.out.print(">> ");
String name = sc.next();
for (int i = 0; i < slist.size(); i++) {
if(slist.get(i).getName().equals(name)) {
index = i;
break;
}
}
return index;
}
// 메뉴
public void userInsert() {
StudentDTO s = new StudentDTO();
s.setId(slist.size()-1);
System.out.println("< 학생 추가하기 > ");
System.out.print("이름 : ");
s.setName(sc.next());
System.out.print("나이 : ");
s.setAge(sc.nextInt());
System.out.print("국어점수 : ");
s.setKor(sc.nextInt());
System.out.print("영어점수 : ");
s.setEng(sc.nextInt());
System.out.print("수학점수 : ");
s.setMath(sc.nextInt());
insert(s);
System.out.println("학생이 추가되었습니다.");
}
// 학생정보 보기
public void userSelect() {
System.out.println("< 학생정보 보기 >");
int index = searchIndex();
if(index == -1) {
System.out.println("찾는 학생이 없습니다.");
}else {
System.out.println(" 이름\t 나이\t 국어\t 영어 \t수학\n"
+ "-------------------------------------");
StudentDTO s = select(index);
System.out.println(s);
}
}
// 학생정보 삭제하기
public void userDelete() {
System.out.println("< 학생정보 삭제 >");
int index = searchIndex();
if(index == -1) {
System.out.println("찾는 학생이 없습니다.");
}else {
String name = slist.get(index).getName();
delete(index);
System.out.println(name+" 학생정보를 삭제했습니다.");
}
}
// 학생정보 수정
public void userUpdate() {
System.out.println("< 학생정보 수정 >");
int index = searchIndex();
if(index == -1) {
System.out.println("찾는 학생이 없습니다.");
}else {
StudentDTO s = new StudentDTO();
s.setId(slist.get(index).getId());
s.setName(slist.get(index).getName());
s.setAge(slist.get(index).getAge());
System.out.println("<" + slist.get(index).getName()+ "학생의 정보수정 >");
System.out.print("국어점수 : ");
s.setKor(sc.nextInt());
System.out.print("영어점수 : ");
s.setEng(sc.nextInt());
System.out.print("수학점수 : ");
s.setMath(sc.nextInt());
update(index, s);
}
}
//file
// File method
public void dataSave() throws Exception{
file.create();
String str = " 이름\t 나이\t 국어\t 영어 \t수학\n"
+ "-------------------------------------\n";
for (int i = 0; i < slist.size(); i++) {
str += slist.get(i).toString()+"\n";
}
file.write(str);
System.out.println("데이터를 저장했습니다.");
}
public void dataLoad() {
try {
file.read();
} catch (Exception e) {
System.out.println("읽을 파일이 없습니다.");
}
}
}
package day10.example2;
public class StudentDTO {
private int id;
private String name;
private int age;
private int kor;
private int eng;
private int math;
public StudentDTO() {
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public StudentDTO(int id, String name, int age, int kor, int eng, int math) {
this.id = id;
this.name = name;
this.kor = kor;
this.eng = eng;
this.math = math;
this.age = age;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
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;
}
@Override
public String toString() {
return " "+name + " \t " + age + "\t " + kor + "\t " + eng + "\t " + math;
}
}
'Language > Java_basic' 카테고리의 다른 글
Java Basic : day 11 - Abstract 추상 클래스 (0) | 2019.12.02 |
---|---|
Java Basic : day 11 - Map ( HashMap, TreeMap ) (0) | 2019.12.02 |
Java Basic : day 10 - Example01: 회원관리 ArrayList로 작성 (0) | 2019.11.29 |
Java Basic : day 10 - Collections Framwork : List - ArrayList (0) | 2019.11.29 |
Java Basic : day 10 - 제네릭 Generic (0) | 2019.11.29 |