1.User.java
public class User {
private String username;
private String password;
private String personId;
private String phonenumber;
public User() {
}
public User(String username, String password, String personId, String phonenumber) {
this.username = username;
this.password = password;
this.personId = personId;
this.phonenumber = phonenumber;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getPersonId() {
return personId;
}
public void setPersonId(String personId) {
this.personId = personId;
}
public String getPhonenumber() {
return this.phonenumber;
}
public void setPhonenumber(String phonenumber) {
this.phonenumber = phonenumber;
}
}
2.UserTest.java
import java.util.ArrayList;
import java.util.Scanner;
public class UserTest {
public static void main(String[] args) {
ArrayList<User> list = new ArrayList<User>();
while (true) {
System.out.println("----欢迎来到学生管理系统----");
System.out.println("1.登录 2.注册 3.忘记密码 4.退出");
System.out.println("--------------------------");
Scanner sc = new Scanner(System.in);
String choose = sc.next();
switch (choose) {
case "1":
Login(list);
break;
case "2":
Register(list);
break;
case "3":
ForgetPassword(list);
break;
case "4":
System.out.println("退出系统,谢谢使用。");
System.exit(0);
break;
default:
System.out.println("没有这个选项,请重新输入。");
}
}
}
//忘记密码
private static void ForgetPassword(ArrayList<User> list) {
Scanner sc = new Scanner(System.in);
String susername;
while (true) {
System.out.println("请输入忘记的账号:");
susername = sc.next();
boolean flag = contains(list, susername);
if (flag) {
System.out.println("账号不存在,请检查:");
continue;
}break;}
while (true) {
System.out.println("请输入身份证号:");
String spersonid = sc.next();
int index = 0;
for (int i = 0; i < list.size(); i++) {
User user = list.get(i);
if (spersonid.equals(user.getPersonId())) {
index = i;
}
}
User user1 = list.get(index);
if (user1.getPersonId().equals(spersonid)) {
System.out.println("你的密码是" + user1.getPassword());
break;
} else {
System.out.println("身份证输入错误,请重新输入!");
continue;
}
}
}
//注册
private static void Register(ArrayList<User> list) {
Scanner sc = new Scanner(System.in);
String susername;//用户名
String pwd;//第一次的密码
String spwd;//第二次输入的密码
String personid;//身份证号
String phonenumber;//手机号
while (true) {
System.out.println("请输入用户名:");
susername = sc.next();
boolean flag1 = checkUsername(susername);
boolean flag2 = contains(list, susername);
if (!flag1 || !flag2) {
System.out.println("用户名格式错误或者用户名已经存在,请重新输入:");
continue;
} else {
break;
}
}
while (true) {
System.out.println("请输入密码:");
pwd = sc.next();
System.out.println("请再次输入密码:");
spwd = sc.next();
boolean flag = checkUserpwd(pwd, spwd);
if (!flag) {
System.out.println("输入的2次密码不相同!");
} else {
break;
}
}
while (true) {
System.out.println("请输入身份证号:");
personid = sc.next();
if (personid.length() != 18) {
System.out.println("身份证格式错误,请重新输入:");
continue;
} else {
break;
}
}
while (true) {
System.out.println("请输入手机号:");
phonenumber = sc.next();
if (phonenumber.length() != 11 || phonenumber.charAt(0) == 0) {
System.out.println("手机号格式错误,请重新输入");
continue;
} else {
break;
}
}
User user = new User(susername, pwd, personid, phonenumber);
list.add(user);
System.out.print("注册成功!");
printlist(list);
}
//遍历集合
private static void printlist(ArrayList<User> list) {
for (int i = 0; i < list.size(); i++) {
User user = list.get(i);
System.out.println(user.getUsername() + "," + user.getPassword() + "," + user.getPersonId() + "," + user.getPhonenumber());
}
}
//登录
private static void Login(ArrayList<User> list) {
Scanner sc = new Scanner(System.in);
String username;
while (true) {
System.out.println("请输入账号:");
username = sc.next();
boolean flag = contains(list, username);
if (flag) {
System.out.println("账号不存在,请注册后,重新登录");
continue;
}
break;
}
while (true) {
System.out.println("请输入密码:");
String spwd = sc.next();
int index = 0;
for (int i = 0; i < list.size(); i++) {
User user = list.get(i);
if (username.equals(user.getUsername())) {
index = i;
break;
}
}
User user1 = list.get(index);
if (user1.getPassword().equals(spwd)) {
System.out.println("登录成功!!!");
StudentTest ss=new StudentTest();
ss.startStudentSystem();
break;
} else {
System.out.println("密码错误,请重新登输入密码!");
continue;
}
}
}
//注册验证用户名格式
private static boolean checkUsername(String susername) {
//用户名长度校验
int len = susername.length();
if (len < 3 || len > 15) {
return false;
}
//只能是数字加字母的组合
for (int i = 0; i < susername.length(); i++) {
char c = susername.charAt(i);
if (!(('a' <= c && c <= 'z') || ('A' <= c && c <= 'Z') || ('0' <= c && '9' >= c))) {
return false;
}
}
//不能全是数字
int count = 0;
for (int i = 0; i < susername.length(); i++) {
char a = susername.charAt(i);
if (('a' <= a && a <= 'z') || ('A' <= a && a <= 'Z')) {
count++;
}
}
if (count == 0) {
return false;
} else {
return true;
}
}
//验证注册的用户名是否存在
private static boolean contains(ArrayList<User> list, String susername) {
for (int i = 0; i < list.size(); i++) {
User user = list.get(i);
if (user.getUsername().equals(susername)) {
return false;
}
}
return true;
}
//验证注册2次输入的密码是否相同
private static boolean checkUserpwd(String pwd, String spwd) {
if (pwd.equals(spwd)) {
return true;
} else {
return false;
}
}
}
3.Student.java
public class Student {
private String id;
private String name;
private int age;
private String address;
public Student() {
}
public Student(String id, String name, int age, String address) {
this.id = id;
this.name = name;
this.age = age;
this.address = address;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
}
4.StudentTest.java
import java.util.ArrayList;
import java.util.Scanner;
public class StudentTest {
public static void startStudentSystem() {
ArrayList<Student> list = new ArrayList<>();
while (true) {
System.out.println("----------欢迎来到学生管理系统----------");
System.out.println("1.添加学生信息");
System.out.println("2.删除学生信息");
System.out.println("3.修改学生信息");
System.out.println("4.查询学生信息");
System.out.println("5.退出系统");
System.out.println("请输入你的选择:");
Scanner sc = new Scanner(System.in);
String choose = sc.next();
switch (choose) {
case "1":
AddStudent(list);
break;
case "2":
DeleteStudent(list);
break;
case "3":
UpdateStudent(list);
break;
case "4":
FindAllStudent(list);
break;
case "5":
System.out.println("退出系统,谢谢使用。");
System.exit(0);
default:
System.out.println("没有这个选项,请重新输入。");
}
}
}
//1.添加学生信息
public static void AddStudent(ArrayList<Student> list){
System.out.println("输入学生学号:");
Scanner sc=new Scanner(System.in);
String sid=sc.next();
// 定义标记,判断学生学号是否被占用
boolean flag = true;
for (int i = 0; i < list.size(); i++) {
Student stu=list.get(i);
if (stu.getId().equals(sid)){
flag=false;
System.out.println("学号重复。添加失败。");
break;
}
}
if (flag){
Student stu=new Student();
System.out.println("输入学生的姓名:");
stu.setName(sc.next());
System.out.println("输入学生的年龄:");
stu.setAge(sc.nextInt());
System.out.println("输入学生的地址:");
stu.setAddress(sc.next());
stu.setId(sid);
list.add(stu);
System.out.println("添加成功。");
}
}
//2.删除学生信息
public static void DeleteStudent(ArrayList<Student> list){
Scanner sc=new Scanner(System.in);
System.out.println("输入删除学生的学号:");
String sid=sc.next();
int index=-1;
for (int i = 0; i < list.size(); i++) {
Student stu=list.get(i);
if (sid.equals(stu.getId())){
index=i;
break;
}
}
if (index==-1){
System.out.println("学生不存在。");
}else{
list.remove(index);
System.out.println("删除成功。");
}
}
//3.修改学生信息
public static void UpdateStudent(ArrayList<Student> list){
Scanner sc=new Scanner(System.in);
System.out.println("输入修改学生的学号:");
String sid=sc.next();
int index=-1;
for (int i = 0; i < list.size(); i++) {
Student stu=list.get(i);
if (sid.equals(stu.getId())){
index=i;
break;
}
}
if (index==-1){
System.out.println("学生不存在。");
}else{
Student stu=new Student();
System.out.println("输入学生的姓名:");
stu.setName(sc.next());
System.out.println("输入学生的年龄:");
stu.setAge(sc.nextInt());
System.out.println("输入学生的地址:");
stu.setAddress(sc.next());
stu.setId(sid);
list.set(index,stu);
System.out.println("修改成功。");
}
}
//4.查询学生信息
public static void FindAllStudent(ArrayList<Student> list){
if (list.size()==0){
System.out.println("没有学生信息。");
}else{
System.out.println("学号:\t姓名:\t年龄:\t住址:");
for (int i = 0; i < list.size(); i++) {
Student stu=list.get(i);
System.out.println(stu.getId() + "\t" + stu.getName() + "\t" +stu.getAge() + "\t" + stu.getAddress()+ "\t");
}
}
}
}