package main;
import dao.StudentDao;
import java.util.Scanner;
public class MainClass {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
//menu
StudentDao dao = new StudentDao();
System.out.println("< 학생 관리 프로그램 >");
while (true){
System.out.println("1. 학생 추가");
System.out.println("2. 학생 삭제");
System.out.println("3. 학생 검색");
System.out.println("4. 학생 수정");
System.out.println("5. 모두 출력");
System.out.print("메뉴 번호를 입력하세요. >> ");
int menu = sc.nextInt();
switch (menu) {
case 1:
dao.insert();
break;
case 2:
dao.delete();
break;
case 3:
dao.select();
break;
case 4:
dao.update();
break;
case 5:
dao.print();
break;
}
}
}
}
package dao;
import dto.StudentDto;
import java.util.Scanner;
// Data Access Object
public class StudentDao {
// CRUD
private Scanner sc;
private StudentDto[] students = new StudentDto[10];
private int count;
public StudentDao() {
sc = new Scanner(System.in);
count = 0;
//students[0] = new StudentDto(1, "홍길동", 171.2, "서울시");
//students[1] = new StudentDto(2, "성춘향", 157.3, "남원시");
//students[2] = new StudentDto(3, "일지매", 180.1, "부산시");
}
// 학생 데이터 추가
public void insert() {
System.out.println("학생을 추가합니다.");
System.out.print("번호를 입력하세요. > ");
int number = sc.nextInt();
System.out.print("이름을 입력하세요. > ");
String name = sc.next();
System.out.print("키를 입력하세요. > ");
double height = sc.nextDouble();
System.out.print("주소를 입력하세요. > ");
String address = sc.next();
StudentDto dto = new StudentDto(number, name, height, address);
students[count] = dto;
count++;
}
// 학생 데이터 삭제
public void delete() {
System.out.println("학생을 삭제합니다.");
System.out.print("삭제할 학생의 이름을 입력하세요. > ");
String name = sc.next();
// 검색
int index = search(name);
/*
for (int i = 0 ; i < students.length ; i++){
if(students[i] != null && name.equals(students[i].getName())){
index = i;
break;
}
}*/
// 삭제
if ( index == -1){
System.out.println("학생 정보를 찾을 수 없습니다.");
return;
}
students[index] = null;
System.out.println(name + " 학생의 정보가 정상적으로 삭제되었습니다.");
}
// 학생 데이터 검색
public void select() {
System.out.println("학생을 검색합니다.");
System.out.print("검색할 학생의 이름을 입력하세요. > ");
String name = sc.next();
int index = search(name);
if ( index == -1){
System.out.println("학생 정보를 찾을 수 없습니다.");
return;
}
System.out.println(name + " 학생의 정보입니다.");
System.out.println(students[index].toString());
}
// 학생 데이터 수정
public void update() {
System.out.println("학생 정보를 수정합니다.");
System.out.print("수정할 학생의 이름을 입력하세요. > ");
String name = sc.next();
int index = search(name);
if ( index == -1){
System.out.println("학생 정보를 찾을 수 없습니다.");
return;
}
System.out.println("학생 정보입니다.");
System.out.println(students[index].toString());
System.out.print("수정할 주소를 입력하세요. > ");
String address = sc.next();
students[index].setAddress(address);
System.out.println(name + " 학생의 주소가 정상적으로 수정되었습니다.");
}
public int search(String name){
int index = -1;
for (int i = 0 ; i < students.length ; i++){
StudentDto dto = students[i];
if(dto != null && name.equals(dto.getName())){
index = i;
break;
}
}
return index;
}
public void print(){
for( int i = 0 ; i < students.length ; i++ ){
StudentDto st = students[i];
if(st != null){
System.out.println(st.toString());
}
}
}
}
/*
MyClass cls = null;
// 객체를 할당
MyClass cls = new MyClass();
// 배열만 생성
MyClass arr[] = new MyClass[3]; // 객체를 생성한 것이 아님. 배열을 생성한 것임. arr[0], arr[1], arr[2]
//객체를 할당
arr[0] = new MyClass();
arr[1] = new MyClass();
arr[2] = new MyClass();
arr[0].setName("홍길동");
*/
package dto;
// Data Transfer Object
public class StudentDto {
private int number;
private String name;
private double height;
private String address;
public StudentDto() {
}
public StudentDto(int number, String name, double height, String address) {
this.number = number;
this.name = name;
this.height = height;
this.address = address;
}
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 String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
@Override
public String toString() {
return "StudentDto{" +
"number=" + number +
", name='" + name + '\'' +
", height=" + height +
", address='" + address + '\'' +
'}';
}
}
'JAVA 프로그래밍' 카테고리의 다른 글
[JAVA] 풀스택 개발자 부트캠프 011일차 ① 상속성 (0) | 2025.01.09 |
---|---|
[JAVA] 풀스택 개발자 부트캠프 010일차 ② 학생 관리 프로그램(불러오기, 저장하기 추가) (0) | 2025.01.07 |
[JAVA] 풀스택 개발자 부트캠프 009일차 ④ constructor와 destructor (1) | 2025.01.07 |
[JAVA] 풀스택 개발자 부트캠프 009일차 ③ Over Load (0) | 2025.01.07 |
[JAVA] 풀스택 개발자 부트캠프 009일차 ② this (0) | 2025.01.07 |