타닥타닥 개발자의 일상

java 학생들의 정보 입력, 조회,삭제하는 프로그램 만들기 본문

코딩 기록/Java

java 학생들의 정보 입력, 조회,삭제하는 프로그램 만들기

NomadHaven 2021. 12. 15. 21:45

 

StudentDto StudentDao
package dto;

public class StudentDto {

private int number;
private String name;
private double height;
private int eng;
private int math;

public StudentDto() {

 }

public StudentDto(int number, String name, double height, int eng, int math) {
super();
this.number = number;
this.name = name;
this.height = height;
this.eng = eng;
this.math = math;
}


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 double getHeight() {
return height;
}

public void setHeight(double height) {
this.height = height;
}

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 void remove() {
number=0;
name="";
height=0.0;
eng=0;
math=0;
}

@Override
public String toString() { //데이터를 확인할수 있는 함수
return "StudentDto [number=" + number + ", name=" + name + ", height=" + height + ", eng=" + eng + ", math="
+ math + "]";
}


}
package dao;
import java.util.Scanner;
import dto.StudentDto;

//데이터의 접근 관리
public class StudentDao {
Scanner sc = new Scanner(System.in);
private StudentDto student[] = new StudentDto[20];


private int count;
private String name;
public StudentDao() {
count = 0;
student[0] = new StudentDto(1001, "홍길동", 171.1, 90, 85); student[1] = new StudentDto(1002, "성춘향", 181.1, 100, 85);
student[2] = new StudentDto(1003, "일지매", 151.1, 40, 60); count = 3;
}

//데이터 추가
public void insert() { 
System.out.println("번호 = ");
int number =sc.nextInt();
System.out.println("이름= ");
String name = sc.next();
System.out.println("신장= ");
double height = sc.nextDouble();
System.out.println("영어 = ");
int eng =sc.nextInt();
System.out.println("수학 = ");
int math =sc.nextInt();
StudentDto dto = new StudentDto(number, name, height, eng, math);
student[count] = dto; 
count++;
}

//삭제
public void delete() { 
System.out.println("삭제할 학생명= ");
String name = sc.next();

int index = search(name);
if(index==-1) {
System.out.println("데이터를 찾을수 없습니다.");
}
else {
System.out.println(student[index].getName()+"데이터를 삭제했습니다.");
student[index].remove();
}
}

public void select() {
System.out.println("검색할 학생명 = ");
String name =sc.next();

//데이터 조회 
int index = search(name); //search함수 밑에 나옴

//데이터 조회 실패경우
if(index==-1) { 
System.out.println("데이터를 찾을 수 없습니다.");
}else {
StudentDto dto =student[index];
System.out.println(student[index].toString());
}
}

//수정
public void update() { 
System.out.println("수정할 학생명= ");
String name = sc.next();

//수정전 수정할 학생 검색 검색
int index = search(name);

if(index==-1) {
System.out.println("데이터를 찾을수 없습니다.");
}
else {
System.out.print("영어 점수 = ");
int eng = sc.nextInt();

System.out.print("수학 점수 =");
int math = sc.nextInt();

student[index].setEng(eng);
student[index].setMath(math);
System.out.println("데이터를 수정하였습니다.");
}
}

//전체 데이터 조회
public void alldata() {
for (int i = 0; i < student.length; i++) {
StudentDto dto =student[i];
if(dto!=null && dto.getName().equals("")==false){
System.out.println(dto.toString());
}
}
}

//검색함수
public int search(String name) { 
int index = -1; //값을 못찾았을때를 나타내는 변수
for (int i = 0; i < student.length; i++) {
StudentDto dto = student[i];
if(dto !=null&& !dto.getName().equals("")) {
if(dto.getName().equals(name)) {
index = i;
break;
}
}
}
return index;
}
}
MainClass
package main;

import java.util.Scanner;

import dao.StudentDao;

public class MainClass {

public static void main(String[] args) {
Scanner sc = new Scanner(System.in);

StudentDao dao = new StudentDao();

//menu
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("메뉴번호를 입력>>");
int menuNum = sc.nextInt();

switch(menuNum) {
case 1:
dao.insert();
break;
case 2:
dao.delete();
break;
case 3:
dao.select();
break;
case 4:
dao.update();
break;
case 5:
dao.alldata();
break;
case 6:
System.exit(0); //프로그램 강제 종료
break;

}


}


}

}

 

Comments