본문 바로가기
수업시간 JAVA/문제

학생정보 등록/조회/수정/삭제(학생학번 있을 시 선생이 그 학번에 정보입력 or 선생이 학번 미리 입력 시 학생이 그 학번 찾아서 회원가입)

by SEOKIHOUSE 2023. 4. 9.
package mypracticeplace;

public class Student {
	private int num;
	private String name;
	private int korScore;
	private int engScore;
	private int mathScore;
	private String password;
	
	public int getNum() {
		return num;
	}
	public void setNum(int num) {
		this.num = num;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public int getKorScore() {
		return korScore;
	}
	public void setKorScore(int korScore) {
		this.korScore = korScore;
	}
	public int getEngScore() {
		return engScore;
	}
	public void setEngScore(int engScore) {
		this.engScore = engScore;
	}
	public int getMathScore() {
		return mathScore;
	}
	public void setMathScore(int mathScore) {
		this.mathScore = mathScore;
	}
	public String getPassword() {
		return password;
	}
	public void setPassword(String password) {
		this.password = password;
	}
	
	public String toString() {
		return "학번은" + num + " 이고 이름은 " +name + " 이고 국어점수는 " + korScore + "이고 영어점수는 " + engScore + " 이고 수학점수는 " + mathScore + " 이고 비밀번호는 " + password;
	}
	
	
	
}
package mypracticeplace;

import java.util.Scanner;

public class Login {
	Scanner sc = new Scanner(System.in);
	StudentManager sm = new StudentManager();
	Student s = new Student();
	
	//선생로그인
	public String teachLogin() {
		String id = "12";
		String pw ="12";
		System.out.println("안녕하세요 슨상님 로그인해주세요");
		System.out.print("아이디를 입력하세요>> ");
		String idInput = sc.next();
		System.out.print("비번을 입력하세요>> ");
		String pwInput = sc.next();
		
		if(id.equals(idInput) && pw.equals(pwInput)) {
			return "로그인성공";
		}
		else {
			return "로그인실패";
		}
	}
}
package mypracticeplace;

public class StudentManager {
	Student[] st;
	int index;

	StudentManager() {
		st = new Student[5];
	}

	// 정보등록
	public Student saveInfo(Student s, int num) {
		st[index] = s;
		index++;
		return null;
	}

	// 학생 학번찾기용
	public Student studentHack(int num) {
		for (int i = 0; i < index; i++) {
			if (st[i].getNum() == num) {
				return st[i];
			}
		}
		return null;
	}

	// 학생정보 조회
	public void studentFind(int num, String password) {
		for (int i = 0; i < index; i++) {
			if (st[i].getNum() == num && st[i].getPassword().equals(password)) {
				System.out.println("옛다 정보");
				System.out.println(st[i]);
			}
		}
	}

	// 교사정보 전체조회
	public void teacherFind() {
		for (int i = 0; i < st.length; i++) {
			System.out.println(st[i]);
		}
		System.out.println(index);
	}

	// 수정
	public Student repair(int num) {
		for (int i = 0; i < index; i++) {
			if (st[i].getNum() == num)
				return st[i];
		}
		return null;
	}

	// 삭제
	public void delete(int num) {
		for (int i = 0; i < index; i++) {
			if (st[i].getNum() == num) {
				if (st[i] == st[index - 1]) { // 0번째 or 마지막항 삭제
					st[i] = null;
				} else {    //그 사이에 있는 항들 삭제
					for (int j = i; j < index - 1; j++) {
						st[j] = st[j + 1];
						if (st[j + 1] == st[index - 1]) { //앞배열에 하나씩 넣고 마지막행 삭제
							st[j + 1] = null;
						}
					}
				}
				index--;
			}
		}

	}

}
package mypracticeplace;

import java.util.Scanner;

public class StudentTest {

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

		while (true) {
			System.out.print("1.학생 2.교사 0.종료");
			int choose = sc.nextInt();
			if (choose == 1) {
				while (true) {
					System.out.print("1.회원가입 2.학생정보조회 0.첫화면으로 가기");
					int where = sc.nextInt();
					if (where == 1) {
						Student regist = new Student();
						System.out.print("회원가입 페이지입니다. 학번을 입력하세요>>");
						int num = sc.nextInt();
						if (sm.studentHack(num) != null) {
							Student regists = sm.studentHack(num);
							System.out.println("학번은 이미 등록되어있습니다 비번만 설정하세요");
							System.out.print("설정할 비밀번호를 입력하세요>>");
							String password = sc.next();
							regists.setPassword(password);
							System.out.println("등록완료");
						} else {
							regist.setNum(num);
							System.out.print("설정할 비밀번호를 입력하세요");
							String password1 = sc.next();
							regist.setPassword(password1);
							sm.saveInfo(regist, num);
							System.out.println("등록완료");
						}

					} else if (where == 2) {
						System.out.print("정보조회창입니다. 학번을 입력하세요");
						int num = sc.nextInt();
						if (sm.studentHack(num) == null) {
							System.out.println("회원가입이 필요합니다");
						} else if (sm.studentHack(num).getPassword() == null) {
							System.out.println("회원가입이 필요합니다");
						} else {
							System.out.print("비번을 입력하세요");
							String password = sc.next();
							sm.studentFind(num, password);
						}
					} else if (where == 0) {
						break;
					}
				}
			} else if (choose == 2) {
				if (login.teachLogin().equals("로그인성공")) {
					System.out.println("로그인성공");
					while (true) {
						System.out.print("1.학생정보 등록 2.전체학생조회 3.수정 4. 삭제 0.첫화면으로 가기");
						int where = sc.nextInt();
						if (where == 1) {
							System.out.print("등록할 학생학번은? ");
							int num = sc.nextInt();
							if (sm.studentHack(num) != null) {
								Student s = sm.studentHack(num);
								System.out.println("학생이 회원가입해서 학번은 이미 등록되어있습니다 기타정보를 저장하세요");
								System.out.print("등록할 이름은?");
								String name = sc.next();
								s.setName(name);
								System.out.print("등록할 국어점수는?");
								int kor = sc.nextInt();
								s.setKorScore(kor);
								System.out.print("등록할 영어점수는?");
								int eng = sc.nextInt();
								s.setEngScore(eng);
								System.out.print("등록할 수학점수는?");
								int math = sc.nextInt();
								s.setMathScore(math);
							} else {
								Student regist = new Student();
								sm.saveInfo(regist, num);
								regist.setNum(num);
								System.out.print("등록할 이름은?");
								String name = sc.next();
								regist.setName(name);
								System.out.print("등록할 국어점수는?");
								int kor = sc.nextInt();
								regist.setKorScore(kor);
								System.out.print("등록할 영어점수는?");
								int eng = sc.nextInt();
								regist.setEngScore(eng);
								System.out.print("등록할 수학점수는?");
								int math = sc.nextInt();
								regist.setMathScore(math);
							}
						} else if (where == 2) {
							sm.teacherFind();
						} else if (where == 3) {
							System.out.print("수정할 학생 학번을 입력하세요");
							int num = sc.nextInt();
							Student s = sm.repair(num);
							System.out.print("수정할 이름은?");
							String name = sc.next();
							s.setName(name);
							System.out.print("수정할 국어점수는?");
							num = sc.nextInt();
							s.setKorScore(num);
							System.out.print("수정할 영어점수는?");
							num = sc.nextInt();
							s.setEngScore(num);
							System.out.print("수정할 수어점수는?");
							num = sc.nextInt();
							s.setMathScore(num);
						} else if (where == 4) {
							System.out.print("삭제할 학생 학번은?");
							int num = sc.nextInt();
							sm.delete(num);
						} else if (where == 0) {
							break;
						}
					}
				} else {
					System.out.println("로그인실패");
				}

			} else if (choose == 0) {
				System.out.println("프로그램 종료");
				break;
			}
		}
	}
}