//添加功能 publicstatic ArrayList<Student> addStudent(ArrayList<Student> students) { Scannersc=newScanner(System.in); System.out.println("Please enter the student information to be ADDED, the student id is:"); Stringid= sc.next(); //判断添加学生的学号是否已经存在 for (inti=0; i < students.size(); i++) { if (students.get(i).getId().equals(id)) { System.out.println("Student already exists"); return students; } } System.out.println("Please enter student name:"); Stringname= sc.next(); System.out.println("Please enter student age:"); intage= sc.nextInt(); System.out.println("Please enter student's home address:"); StringhomeAddress= sc.next(); StudentnewStudent=newStudent(id, name, age, homeAddress); students.add(newStudent); //添加 return students; }
首先判断学生的学号是否存在,已经存在直接返回;不存在则添加新的学生信息(学号、姓名、年龄、住址)
3.删除学生信息
键盘录入要删除的学生id,需要满足以下要求:
id存在删除
id不存在,需要提示不存在,并回到初始菜单
1 2 3 4 5 6 7 8 9 10 11 12 13 14
//删除学生信息 publicstatic ArrayList<Student> deleteStudent(ArrayList<Student> students) { System.out.println("Please enter the student id to be DELETE:"); Scannersc=newScanner(System.in); StringdelId= sc.next(); for (inti=0; i < students.size(); i++) { if (students.get(i).getId().equals(delId)) { students.remove(i); //删除 return students; } } System.out.println("Student does not exist"); return students; }
//修改学生信息 publicstatic ArrayList<Student> modifyStudent(ArrayList<Student> students) { System.out.println("Please enter the student id to be MODIFY:"); Scannersc=newScanner(System.in); StringmodId= sc.next(); for (inti=0; i < students.size(); i++) { if (students.get(i).getId().equals(modId)) { System.out.println("Student exists,please enter student's new ID:"); students.get(i).setId(sc.next()); System.out.println("enter student's new name:"); students.get(i).setName(sc.next()); System.out.println("enter student's new age:"); students.get(i).setAge(sc.nextInt()); System.out.println("enter student's new home address:"); students.get(i).setHomeAddress(sc.next()); return students; } } System.out.println("Student does not exist"); return students; }
5.查询学生信息
查询某个学生信息,并输出显示
1 2 3 4 5 6 7 8 9 10 11 12 13
//查询某个学生信息 publicstaticvoidqueryStudents(ArrayList<Student> students) { System.out.println("Please enter the student id to be QUERY:"); Scannersc=newScanner(System.in); StringqueId= sc.next(); for (inti=0; i < students.size(); i++) { if (students.get(i).getId().equals(queId)) { System.out.println(students.get(i)); return; } } System.out.println("Not found the student"); }
6. 打印全部学生信息
打印所有的学生信息,需要满足以下要求
如果没有学生信息,提示:当前无学生信息,请添加后再查询
如果有学生信息,输出。
1 2 3 4 5 6 7 8 9 10 11 12
//显示所有学生信息 publicstaticvoidshowAllStudents(ArrayList<Student> students) { if (students.size() == 0) { System.out.println("No students found, please add a student!"); return; } System.out.println("Students Information is as Follows:"); System.out.println("id name age home address"); for (inti=0; i < students.size(); i++) { System.out.println(students.get(i).getId() + " " + students.get(i).getName() + " " + students.get(i).getAge() + " " + students.get(i).getHomeAddress()); } }
//菜单 publicstaticvoidshowMenu() { System.out.println("---------Welcome to student manager system-------"); System.out.println("please choose your option: 1 is Login, 2 is Register, 3 is Forget password, 4 is Exit"); }
//注册 publicstaticvoidregisterUser() { Scannersc=newScanner(System.in); System.out.println("please enter username: "); StringuserName= sc.next();
//用户名唯一 for (inti=0; i < users.size(); i++) { if (users.get(i).getUserName().equals(userName)) { System.out.println("username already exists!"); return; } }
//用户名长度必须在3-15位 if (userName.length() < 3 || userName.length() > 15) { System.out.println("username length must be between 3 and 15 characters!"); return; }
//用户名必须是字母加数字组合 intcountLetters=0; intcountNumbers=0; intcountOthers=0; for (inti=0; i < userName.length(); i++) { charch= userName.charAt(i); if (ch >= 'A' && ch <= 'Z' || ch >= 'a' && ch <= 'z') { countLetters++; } elseif (ch >= '0' && ch <= '9') { countNumbers++; } else countOthers++; } if (countOthers != 0) { System.out.println("username cannot be special characters!"); return; } elseif (countLetters == 0 || countNumbers == 0) { System.out.println("username cannot be only letters or numbers!"); return; }
//密码键盘输入两次,两次一致才可以进行注册。 System.out.println("please enter password: "); Stringpsw1= sc.next(); System.out.println("please enter password again: "); Stringpsw2= sc.next(); if (!psw1.equals(psw2)) { System.out.println("passwords do not match!"); return; }
System.out.println("please enter id card Number: "); StringidCardNumber= sc.next();
//长度为18位,不能以0为开头 if (idCardNumber.length() != 18 || idCardNumber.charAt(0) == '0') { System.out.println("id card number is not valid!"); return; }
//前17位必须都是数字 for (inti=0; i < idCardNumber.length() - 1; i++) { charch= idCardNumber.charAt(i); if (ch > '9' || ch < '0') { System.out.println("id card number is not valid!"); return; } }
//最后一位可以是数字,也可以是大写X或小写x if (!((idCardNumber.charAt(17) >= '0' && idCardNumber.charAt(17) <= '9') || idCardNumber.charAt(17) == 'x' || idCardNumber.charAt(17) == 'X')) { System.out.println("id card number is not valid!"); return; }
//长度为11位 不能以0为开头必须都是数字 System.out.println("please enter phone number: "); StringphoneNumber= sc.next();
if (phoneNumber.length() != 11 || phoneNumber.charAt(0) == '0') { System.out.println("phone number is not valid!"); return; }
for (inti=0; i < phoneNumber.length(); i++) { charch= phoneNumber.charAt(i); if (ch > '9' || ch < '0') { System.out.println("phone number is not valid!"); return; } }
//忘记密码 publicstaticvoidForgetPassword() { Scannersc=newScanner(System.in); System.out.println("please enter username: "); StringuserName= sc.next(); intcurrentUserIndex= -1; //用户名是否存在 // 检查用户名是否存在 for (inti=0; i < users.size(); i++) { if (users.get(i).getUserName().equals(userName)) { currentUserIndex = i; break; // 找到用户名,跳出循环 } }
// 如果用户不存在 if (currentUserIndex == -1) { System.out.println("Username does not register!"); return; }
System.out.println("please enter id card Number: "); StringidCardNumber= sc.next(); System.out.println("please enter phone number: "); StringphoneNumber= sc.next(); //身份证号和手机号是否一致 if (!(users.get(currentUserIndex).getIdCard().equals(idCardNumber) && users.get(currentUserIndex).getPhoneNumber().equals(phoneNumber))) { System.out.println("Account information does not match! Modification failed!"); return; }
System.out.println("please enter new password: "); StringnewPassword= sc.next(); users.get(currentUserIndex).setPassword(newPassword); //修改当前密码
//进入学生管理系统 while (true) { showMenu(); Scannersc=newScanner(System.in); intchoice= sc.nextInt();//选择相应的功能 switch (choice) { case1: { System.out.println("please enter the number of students you want to add"); intnum= sc.nextInt(); for (inti=0; i < num; i++) { students = addStudent(students); } } ; break; case2: students = deleteStudent(students); break; case3: students = modifyStudent(students); break; case4: queryStudents(students); break; case5: showAllStudents(students); break; case6: System.out.println("EXIT"); return; default: System.out.println("Invalid choice"); } } }
System.out.println("please enter username: "); StringuserName= sc.next();
//用户名唯一 for (inti=0; i < users.size(); i++) { if (users.get(i).getUserName().equals(userName)) { System.out.println("username already exists!"); return; } }
//用户名长度必须在3-15位 if (userName.length() < 3 || userName.length() > 15) { System.out.println("username length must be between 3 and 15 characters!"); return; }
//用户名必须是字母加数字组合 intcountLetters=0; intcountNumbers=0; intcountOthers=0; for (inti=0; i < userName.length(); i++) { charch= userName.charAt(i); if (ch >= 'A' && ch <= 'Z' || ch >= 'a' && ch <= 'z') { countLetters++; } elseif (ch >= '0' && ch <= '9') { countNumbers++; } else countOthers++; } if (countOthers != 0) { System.out.println("username cannot be special characters!"); return; } elseif (countLetters == 0 || countNumbers == 0) { System.out.println("username cannot be only letters or numbers!"); return; }
//密码键盘输入两次,两次一致才可以进行注册。 System.out.println("please enter password: "); Stringpsw1= sc.next(); System.out.println("please enter password again: "); Stringpsw2= sc.next(); if (!psw1.equals(psw2)) { System.out.println("passwords do not match!"); return; }
System.out.println("please enter id card Number: "); StringidCardNumber= sc.next();
//长度为18位,不能以0为开头 if (idCardNumber.length() != 18 || idCardNumber.charAt(0) == '0') { System.out.println("id card number is not valid!"); return; }
//前17位必须都是数字 for (inti=0; i < idCardNumber.length() - 1; i++) { charch= idCardNumber.charAt(i); if (ch > '9' || ch < '0') { System.out.println("id card number is not valid!"); return; } }
//最后一位可以是数字,也可以是大写X或小写x if (!((idCardNumber.charAt(17) >= '0' && idCardNumber.charAt(17) <= '9') || idCardNumber.charAt(17) == 'x' || idCardNumber.charAt(17) == 'X')) { System.out.println("id card number is not valid!"); return; }
//长度为11位 不能以0为开头必须都是数字 System.out.println("please enter phone number: "); StringphoneNumber= sc.next();
if (phoneNumber.length() != 11 || phoneNumber.charAt(0) == '0') { System.out.println("phone number is not valid!"); return; }
for (inti=0; i < phoneNumber.length(); i++) { charch= phoneNumber.charAt(i); if (ch > '9' || ch < '0') { System.out.println("phone number is not valid!"); return; } }
//验证验证码 while (true) { System.out.println("please enter verification code: "); StringinputCode= sc.next(); if (!(verifyCode.equals(inputCode))) { System.out.println("verification code is valid! Please try again!"); } else { System.out.println("verification code is passed!"); break; } }
// 三次登录机会 for (inti=0; i < 3; i++) { booleanpasswordCorrect=false; System.out.println("please enter password: "); Stringpsw= sc.next(); // 遍历用户列表,检查用户名和密码是否匹配 for (intj=0; j < users.size(); j++) { if (users.get(j).getUserName().equals(userName) && users.get(j).getPassword().equals(psw)) { passwordCorrect = true; break; // 密码匹配,跳出循环 } } if (passwordCorrect) { returntrue; // 密码正确,登录成功 } else { System.out.println("Password is incorrect! Please try again!"); } }
System.out.println("Three opportunities have been used up! Account has been locked!"); returnfalse; }
//忘记密码 publicstaticvoidForgetPassword() { Scannersc=newScanner(System.in); System.out.println("please enter username: "); StringuserName= sc.next(); intcurrentUserIndex= -1; //用户名是否存在 // 检查用户名是否存在 for (inti=0; i < users.size(); i++) { if (users.get(i).getUserName().equals(userName)) { currentUserIndex = i; break; // 找到用户名,跳出循环 } }
// 如果用户不存在 if (currentUserIndex == -1) { System.out.println("Username does not register!"); return; }
System.out.println("please enter id card Number: "); StringidCardNumber= sc.next(); System.out.println("please enter phone number: "); StringphoneNumber= sc.next(); //身份证号和手机号是否一致 if (!(users.get(currentUserIndex).getIdCard().equals(idCardNumber) && users.get(currentUserIndex).getPhoneNumber().equals(phoneNumber))) { System.out.println("Account information does not match! Modification failed!"); return; }
System.out.println("please enter new password: "); StringnewPassword= sc.next(); users.get(currentUserIndex).setPassword(newPassword); //修改当前密码
System.out.println("Modify successfully!"); }
//菜单 publicstaticvoidshowMenu() { System.out.println("---------Welcome to student manager system-------"); System.out.println("please choose your option: 1 is Login, 2 is Register, 3 is Forget password, 4 is Exit"); } }
while (true) { showMenu(); Scannersc=newScanner(System.in); intchoice= sc.nextInt();//选择相应的功能 switch (choice) { case1: { System.out.println("please enter the number of students you want to add"); intnum= sc.nextInt(); for (inti=0; i < num; i++) { students = addStudent(students); } } ; break; case2: students = deleteStudent(students); break; case3: students = modifyStudent(students); break; case4: queryStudents(students); break; case5: showAllStudents(students); break; case6: System.out.println("EXIT"); return; default: System.out.println("Invalid choice"); } } }
//菜单界面 publicstaticvoidshowMenu() { System.out.println("---------Welcome to student manager system--------"); System.out.println("1. Add student"); System.out.println("2. Delete student"); System.out.println("3. Modify students"); System.out.println("4. Query students"); System.out.println("5. Show all students"); System.out.println("6. Exit"); System.out.println("Please enter your choice:"); }
//添加功能 publicstatic ArrayList<Student> addStudent(ArrayList<Student> students) { Scannersc=newScanner(System.in); System.out.println("Please enter the student information to be ADDED, the student id is:"); Stringid= sc.next(); //判断添加学生的学号是否已经存在 for (inti=0; i < students.size(); i++) { if (students.get(i).getId().equals(id)) { System.out.println("Student already exists"); return students; } } System.out.println("Please enter student name:"); Stringname= sc.next(); System.out.println("Please enter student age:"); intage= sc.nextInt(); System.out.println("Please enter student's home address:"); StringhomeAddress= sc.next(); StudentnewStudent=newStudent(id, name, age, homeAddress); students.add(newStudent); //添加 return students; }
//删除学生信息 publicstatic ArrayList<Student> deleteStudent(ArrayList<Student> students) { System.out.println("Please enter the student id to be DELETE:"); Scannersc=newScanner(System.in); StringdelId= sc.next(); for (inti=0; i < students.size(); i++) { if (students.get(i).getId().equals(delId)) { students.remove(i); //删除 return students; } } System.out.println("Student does not exist"); return students; }
//修改学生信息 publicstatic ArrayList<Student> modifyStudent(ArrayList<Student> students) { System.out.println("Please enter the student id to be MODIFY:"); Scannersc=newScanner(System.in); StringmodId= sc.next(); for (inti=0; i < students.size(); i++) { if (students.get(i).getId().equals(modId)) { System.out.println("Student exists,please enter student's new ID:"); students.get(i).setId(sc.next()); System.out.println("enter student's new name:"); students.get(i).setName(sc.next()); System.out.println("enter student's new age:"); students.get(i).setAge(sc.nextInt()); System.out.println("enter student's new home address:"); students.get(i).setHomeAddress(sc.next()); return students; } } System.out.println("Student does not exist"); return students; }
//查询某个学生信息 publicstaticvoidqueryStudents(ArrayList<Student> students) { System.out.println("Please enter the student id to be QUERY:"); Scannersc=newScanner(System.in); StringqueId= sc.next(); for (inti=0; i < students.size(); i++) { if (students.get(i).getId().equals(queId)) { System.out.println(students.get(i)); return; } } System.out.println("Not found the student"); }
//显示所有学生信息 publicstaticvoidshowAllStudents(ArrayList<Student> students) { if (students.size() == 0) { System.out.println("No students found, please add a student!"); return; } System.out.println("Students Information is as Follows:"); System.out.println("id name age home address"); for (inti=0; i < students.size(); i++) { System.out.println(students.get(i).getId() + " " + students.get(i).getName() + " " + students.get(i).getAge() + " " + students.get(i).getHomeAddress()); } } }