Java 학생관리 프로그램

import java.awt.print.Book;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Scanner;

public class StudentManage {

public static void main(String[] args) {
// TODO Auto-generated method stub

OperateStudentManage operateStudentManage = new OperateStudentManage();
operateStudentManage.main();
}

}

class OperateStudentManage {
Scanner sc = new Scanner(System.in);
ArrayList<Student> list = new ArrayList<Student>();


public void main() {
do {

menuprint();
String input = sc.next();
if (input.equals("q")) {
break;
}
if (input.equals("1")) {
makeStudent();
}
if (input.equals("2")) {
printAllStudentInfo();
}
if (input.equals("3")) {
searchByName();
}
if (input.equals("4")) {
deleteByName();
}
if (input.equals("5")) {
updateByName();

}
} while (true);
}

public void menuprint(){
System.out.println("===학생 데이터 관리 프로그램===");
System.out.println("선택하세요...(종료=q)");
System.out.println("1.학생 정보 입력 ");
System.out.println("2.전체 학생 정보 출력");
System.out.println("3.학생 정보 검색");
System.out.println("4.학생 정보 삭제");
System.out.println("5.학생 정보 수정");
System.out.print(">>");

}

public void makeStudent(){
System.out.print("학생이름을 입력하세요. : ");
String name = sc.next();
System.out.print("학생번호 입력하세요. : ");
int num = sc.nextInt();
System.out.print("학생나이를 입력하세요. :");
int age = sc.nextInt();
Student s = new Student(name, num, age);
list.add(s);
}
public void printAllStudentInfo(){

for (int i = 0; i < list.size(); i++) {
System.out.println(list.get(i).getNumber() + "번 " + list.get(i).getName() + "학생 "
+ list.get(i).getAge() + "살");
}

}

public void searchByName(){
System.out.print("학생 이름을 입력하세요 : ");
String name = sc.next();
int i = 0;
for (i = 0; i < list.size(); i++) {
if (list.get(i).getName().equals(name)) {
System.out.print("찾으시는 학생자료 :");
System.out.println(list.get(i).getNumber() + "번 " + list.get(i).getName() + "학생 "
+ list.get(i).getAge() + "살");

}
}
}

public void deleteByName(){
System.out.print("학생 이름을 입력하세요 : ");
String name = sc.next();
int i = 0;
for (i = 0; i < list.size(); i++) {
if (list.get(i).getName().equals(name)) {
System.out.println(list.get(i).getName() + " 학생 자료가 삭제 되었습니다.");
list.remove(i);
break;
}
}
}

public void updateByName(){
System.out.print("학생 이름을 입력하세요 : ");
String name = sc.next();
int i = 0;
for (i = 0; i < list.size(); i++) {
if (list.get(i).getName().equals(name)) {
System.out.println("나이는 몇살로 바꿀까요?");
int age = sc.nextInt();
System.out.println("번호는 몇번으로 바꿀까요?");
int num = sc.nextInt();
list.get(i).setAge(age);
list.get(i).setNumber(num);
System.out.println(list.get(i).getName() + " 학생의 나이와 번호가 변경되었습니다.");
}

}
}

}

class Student {
private String name;
private int number;
private int age;

public Student(String name, int number, int age) {
super();
this.name = name;
this.number = number;
this.age = age;
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public int getNumber() {
return number;
}

public void setNumber(int number) {
this.number = number;
}

public int getAge() {
return age;
}

public void setAge(int age) {
this.age = age;
}

@Override
public String toString() {
return "Student [name=" + name + ", number=" + number + ", age=" + age + "]";
}

}

댓글

  1. 학생번호 중복일 경우 어떻게하나요

    답글삭제
    답글
    1. 제가 3년전에 올렸네요.. 이런 것도 올렸네요.

      makeStudent() 에서 validation 을 해야겠죠?
      기존 list 에서 순회하면서 중복 검사를 하거나, Set 을 사용해서 중복검사를 하거나,
      방법은 여러가지가 있을것같네요, 최대한 효율적인 로직을 생각해보면 될듯합니다.

      삭제

댓글 쓰기

이 블로그의 인기 게시물

About Kafka Basic

About JVM Warm up

About ZGC

Spring Boot Actuator readiness, liveness probes on k8s

About G1 GC

sneak peek jitpack

About idempotent

C 언어 구조체의 포인터 멤버 변수

Synology NAS에 MariaDB 10에 Mysql workbench로 원격접속하기

About Websocket minimize data size and data transfer cost on cloud