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 JVM Warm up

About idempotent

About Kafka Basic

About ZGC

sneak peek jitpack

Spring Boot Actuator readiness, liveness probes on k8s

About Websocket minimize data size and data transfer cost on cloud

About G1 GC

대학생 코딩 과제 대행 java, python, oracle 네 번째