Java学生管理系统plus版(增删查改)
主要是为学生管理系统书写一个登陆、注册、忘记密码的功能。
只有用户登录成功之后,才能进入到学生管理系统中进行增删改查操作。
一个软件包(StudentPro)中建立四个类(User, UserTest,student,studentTest),这个四个类分别作用1.用户名的基本信息,2登录,注册,忘记密码,退出操作,3学生的基本信息,4学生信息的增删查改
效果在UserTest运行图片展示
需求:
用户类: 属性:用户名、密码、身份证号码、手机号码
注册功能:
1,用户名需要满足以下要求:
验证要求:
用户名唯一 用户名长度必须在3~15位之间 只能是字母加数字的组合,但是不能是纯数字
2,密码
密码键盘输入两次,两次一致才可以进行注册。
3,身份证号码需要验证。
验证要求: 长度为18位 不能以0为开头 前17位,必须都是数字 ,最为一位可以是数字,也可以是大写X或小写x
4,手机号验证。
验证要求: 长度为11位 不能以0为开头 必须都是数字
登录功能:
1,键盘录入用户名 2,键盘录入密码 3,键盘录入验证码
验证要求:
用户名如果未注册,直接结束方法,并提示:用户名未注册,请先注册 判断验证码是否正确,如不正确,重新输入 ,再判断用户名和密码是否正确,有3次机会
忘记密码:
1,键盘录入用户名,判断当前用户名是否存在,如不存在,直接结束方法,并提示:未注册
2,键盘录入身份证号码和手机号码
3,判断当前用户的身份证号码和手机号码是否一致, 如果一致,则提示输入密码,进行修改。 如果不一致,则提示:账号信息不匹配,修改失败。
验证码规则:
长度为5 由4位大写或者小写字母和1位数字组成,同一个字母可重复 数字可以出现在任意位置 比如:aQd1f
登录所需基本信息
package Studentpro;
public class User {
private String username;//用户名
private String password;//密码
private String personId;//身份证号码
private String Phonenmber;//手机号
public User() {
}
public User(String username, String password, String personId, String phonenmber) {
this.username = username;
this.password = password;
this.personId = personId;
Phonenmber = phonenmber;
}
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 getPhonenmber() {
return Phonenmber;
}
public void setPhonenmber(String phonenmber) {
Phonenmber = phonenmber;
}
}
学生管理系统 ----1.登录,2注册,3忘记密码,4退出的功能代码
package Studentpro;
import java.util.ArrayList;
import java.util.Random;
import java.util.Scanner;
public class UserTest {
public static void main(String[] args) {
ArrayList<User> list = new ArrayList<>();
while (true) {
System.out.println("欢迎来到小卷学生管理系统");
System.out.println("请选择操作:1登录 2注册 3忘记密码 4退出");
Scanner sc = new Scanner(System.in);
String choose = sc.next();
switch (choose) {
case "1": {
login(list);
break;
}
case "2": {
reginst(list);
break;
}
case "3": {
forgetPassword(list);
break;
}
case "4": {
System.out.println("谢谢使用,再见");
System.exit(0);
}
default: {
System.out.println("没有这个选项");
}
}
}
}
//注册
private static void reginst(ArrayList<User> list) {
Scanner sc = new Scanner(System.in);
//用户名输入
String UserName;
while (true) {
System.out.println("请输入用户名");
UserName = sc.next();
int flag = checkUserName(list, UserName);
if (flag == -1) {
System.out.println("用户名长度必须在3~15位之间,请重新输入");
} else if (flag == -2) {
System.out.println("用户名只能是字母加数字的组合,但是不能是纯数字,请重新输入");
} else if (flag == -3) {
System.out.println("用户名" + UserName + "已存在,请重新输入");
} else {
System.out.println("用户名输入成功");
break;
}
}
//注册密码输入
String Password;
while (true) {
System.out.println("请输入注册密码");
Password = sc.next();
System.out.println("请再次输入注册密码");
String Password2 = sc.next();
if (Password.equals(Password2)) {
System.out.println("注册密码输入成功");
break;
} else {
System.out.println("两次密码不一致,请重新输入密码");
}
}
//身份证号码输入
String personId;
while (true) {
System.out.println("请输入身份证号码");
personId = sc.next();
int flag = checkpersonId(personId);
if (flag == -1) {
System.out.println("身份证的长度必须位18位,请重新输入");
} else if (flag == -2) {
System.out.println("身份证不能以0为开头,请重新输入");
} else if (flag == -3) {
System.out.println("身份证最后一位必须是数字或者大写(X)小写(x),请重新输入");
} else {
System.out.println("身份证号码输入成功");
break;
}
}
//手机号码输入
String phonenumber;
while (true) {
System.out.println("请输入手机号码");
phonenumber = sc.next();
int flag = checkPhoneNumber(phonenumber);
if (flag == -1) {
System.out.println("电话号码必须是11位,请重新输入");
} else if (flag == -2) {
System.out.println("手机号码第一个数字不能为0,请重新输入");
} else if (flag == -3) {
System.out.println("手机号码必须都是数字");
} else {
System.out.println("手机号码输入成功");
break;
}
}
User user = new User(UserName, Password, personId, phonenumber);
list.add(user);//添加进集合中
System.out.println("注册成功");
printList(list);//打印输出集合
}
//打印输出集合
private static void printList(ArrayList<User> list) {
System.out.println("用户名\t用户Id\t密码\t手机号码");
for (User user : list) {
System.out.println(user.getUsername() + " " + user.getPersonId() + " " + user.getPassword() + " " + user.getPhonenmber());
}
}
//检查手机号码
private static int checkPhoneNumber(String phonenumber) {
int len = phonenumber.length();
if (len != 11) {
return -1;
}
char startchar = phonenumber.charAt(0);
if (startchar == '0') {
return -2;
}
for (int i = 0; i < len; i++) {
char ch = phonenumber.charAt(i);
if (ch < '0' || ch > '9') {
return -3;
}
}
return 1;
}
//检查Id
private static int checkpersonId(String personId) {
int len = personId.length();
if (len != 18) {
return -1;
}
if (personId.charAt(0) == '0') {
return -2;
}
for (int i = 0; i < len - 1; i++) {
char ch = personId.charAt(i);
if (ch < '0' || ch > '9') {
return -3;
}
}
char ch = personId.charAt(len - 1);
if ((ch >= '0' && ch <= '9') || ch == 'x' || ch == 'X') {
return 1;
} else {
return -4;
}
}
//检查用户名
private static int checkUserName(ArrayList<User> list, String userName) {
int len = userName.length();
if (len < 3 || len > 15) {
return -1;
}
int cnt = 0;
for (int i = 0; i < len; i++) {
char ch = userName.charAt(i);
if (ch >= 'a' && ch <= 'z' || ch >= 'A' && ch <= 'Z') {
cnt++;
break;
}
}
if (cnt == 0) {
return -2;
}
for (User s : list) {
if (s.getUsername().equals(userName)) {
return -3;
}
}
return 1;
}
//登录
private static void login(ArrayList<User> list) {
Scanner sc = new Scanner(System.in);
for (int i = 0; i < 3; ++i) {
System.out.println("请输入用户名");
String UserName = sc.next();
int flag = checkUserName(list, UserName);
if (flag != -3) {
System.out.println("用户未注册,请先注册账号");
return;
}
System.out.println("请输入登录密码");
String Password = sc.next();
while (true) {
String rightcode = getcode();
System.out.println("验证码为" + rightcode);
String getword = sc.next();
if (getword.equalsIgnoreCase(rightcode)) {
System.out.println("验证码输入正确");
break;
} else if (i == 2) {
System.out.println("验证失败,请联系小卷同学,进行相关操作");
return;
} else {
System.out.println("验证码输入错误,您还有" + (2 - i) + "次机会");
i++;
}
}
User user = new User(UserName, Password, null, null);
boolean result = checkIofo(list, user);
if (result) {
System.out.println("登录成功,欢迎使用小卷管理系统");
studentTest.StartStudentSystem(); //引用学生管理系统
break;
} else {
System.out.println("账号或密码错误!");
}
}
}
//检查用户名和密码
private static boolean checkIofo(ArrayList<User> list, User user) {
for (User user1 : list) {
if (user1.getUsername().equals(user.getUsername()) && user1.getPassword().equals(user.getPassword())) {
return true;
}
}
return false;
}
//验证码随机生成
private static String getcode() {
ArrayList<Character> list = new ArrayList<>();
for (int i = 0; i < 26; i++) {
list.add((char) ('a' + i));
list.add((char) ('A' + i));
}
StringBuilder sb = new StringBuilder();
Random r = new Random();
for (int i = 0; i < 4; i++) {
int index = r.nextInt(list.size());
char ch = list.get(index);
sb.append(ch);
}
int number = r.nextInt(10);
sb.append(number);
char[] arr = sb.toString().toCharArray();
int index = r.nextInt(arr.length);
char tmp = arr[index];
arr[index] = arr[arr.length - 1];
arr[arr.length - 1] = tmp;
return new String(arr);
}
//忘记密码
private static void forgetPassword(ArrayList<User> list) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入用户名");
String UserName = sc.next();
int flag = checkUserName(list, UserName);
if (flag != -3) {
System.out.println("用户未注册,请先注册账号");
return;
}
System.out.println("输入身份证号");
String personId = sc.next();
System.out.println("输入手机号");
String phoneNumber = sc.next();
User user = new User(null, null, personId, phoneNumber);
int index = checkfind(list, user);
if (index == -1) {
System.out.println("账号信息不匹配,修改失败");
return;
}
while (true) {
System.out.println("请输入你的新密码");
String password = sc.next();
System.out.println("请再次输入你的新密码");
String password2 = sc.next();
if (password.equals(password2)) {
User s = list.get(index);
s.setPassword(password);
System.out.println("新密码设置成功");
break;
} else {
System.out.println("两次密码输入不一致,请从新输入");
}
}
}
//检查身份证手机号码
private static int checkfind(ArrayList<User> list, User user) {
for (int i = 0; i < list.size(); i++) {
User user1 = list.get(i);
if (user1.getPersonId().equalsIgnoreCase(user.getPersonId()) && user1.getPhonenmber().equals(user.getPhonenmber())) {
return i;
}
}
return -1;
}
}
注册成功登录后进入管理系统页面
以下为学生的基本信息
package Studentpro;
public class student {
String id; //学号
String name; //姓名
int age; //年龄
String adress; //住址
public student() {
}
public student(String id, String name, int age, String adress) {
this.id = id;
this.name = name;
this.age = age;
this.adress = adress;
}
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 getAdress() {
return adress;
}
public void setAdress(String adress) {
this.adress = adress;
}
}
学生管理系统的曾删改查
以下代码实现
package Studentpro;
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 digit = sc.next();
switch (digit) {
case "1": {
addstudent(list);
break;
}
case "2": {
deletstudent(list);
break;
}
case "3": {
updatestudent(list);
break;
}
case "4": {
querystudent(list);
break;
}
case "5": {
System.out.println("退出");
System.exit(0);
}
default: {
System.out.println("没有这个选项!");
break;
}
}
}
}
//添加学生信息
public static void addstudent(ArrayList<student> list) {
Scanner sc = new Scanner(System.in);
String id;
while (true) {
System.out.println("请输入学生id");
id = sc.next();
boolean flag = check(list, id);
if (flag) {
System.out.println("id重复,请重新输入id");
} else {
break;
}
}
System.out.println("请输入学生姓名");
String name = sc.next();
System.out.println("请输入学生年龄");
int age = sc.nextInt();
System.out.println("请输入学生住址");
String adress = sc.next();
student s = new student(id, name, age, adress);
list.add(s);
System.out.println("学生信息添加成功");
}
//删除学生信息
public static void deletstudent(ArrayList<student> list) {
System.out.println("请输入要删除的id");
Scanner sc = new Scanner(System.in);
String id = sc.next();
int flag = getindex(list, id);
if (flag == -1) {
System.out.println("id不存在");
} else {
list.remove(flag);
System.out.println("信息删除成功");
}
}
//修改学生信息
public static void updatestudent(ArrayList<student> list) {
System.out.println("请输入修改学生的id");
Scanner sc = new Scanner(System.in);
String id = sc.next();
int index = getindex(list, id);
if (index == -1) {
System.out.println("学生id" + id + "不存在");
return;
}
student s = list.get(index);
System.out.println("请输入修改学生的姓名");
String name = sc.next();
s.setName(name);
System.out.println("请输入修改学生的年龄");
int age = sc.nextInt();
s.setAge(age);
System.out.println("请输入修改学生的住址");
String adress = sc.next();
s.setAdress(adress);
}
//查询学生信息
public static void querystudent(ArrayList<student> list) {
if (list.isEmpty()) {
System.out.println("当前无学生信息,请添加后查询");
return;
}
System.out.println("id\tname\tage\tadress");
for (student s : list) {
System.out.println(s.getId() + " " + s.getName() + " " + s.getAge() + " " + s.getAdress());
}
}
public static boolean check(ArrayList<student> list, String id) {
return getindex(list, id) >= 0;
}
public static int getindex(ArrayList<student> list, String id) {
for (int i = 0; i < list.size(); i++) {
student s = list.get(i);
if (s.getId().equals(id)) {
return i;
}
}
return -1;
}
}
本人蒟蒻,如有错误或不恰当的地方还望指点,如果对您有帮助,希望给个免费的点赞和关注,这对我很重要,感谢观看我的博客