수업시간 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;
}
}
}
}