上一篇中介绍了学生管理系统的基础部分,这一篇中将会在学生管理系统的基础上新添加一些新的内容
1、添加内容介绍
1、增加了登录、注册、忘记密码三个功能
(1)登录功能:
键盘录入用户名
键盘录入密码
验证要求:
用户名如果未注册,直接结果,并提示:用户名未注册,请先注册
判断输入的用户名和对应的密码是否输入正确,如果不正确登录不通过
登录次数上限为3次,若3次不通过则直接结束
(2)注册功能:
用户名要满足以下需求:
用户名唯一
用户名长度必须要在3~15位
身份证需要验证
验证需求:
长度为18位
不能以0开头
只能是数字
手机号需要满足以下需求:
长度为11位
只能是数字
(3)忘记密码功能:
键盘录入用户名,判断当前用户名是否存在,如果不存在,直接结束并提示未注册
键盘录入身份证号和手机号
判断录入的身份证号和手机号于录入的用户名的身份证号和手机号是否匹配成功
如果一致,则提示输入新的密码进行修改
如果不一致,则提示:账号信息不匹配,修改失败
2、添加一个用户类 属性:用户名、密码、身份证、手机号。
提供每个成员变量的get、set方法
2、内容实现
(1)创建用户类
public class StudentUser {
//成员变量
private String UserName;
private int password;
private String IDNumber;
private String telephoneNumber;
public StudentUser(String userName, int password, String IDNumber, String telephoneNumber) {
UserName = userName;
this.password = password;
this.IDNumber = IDNumber;
this.telephoneNumber = telephoneNumber;
}
public String getUserName() {
return UserName;
}
public int getPassword() {
return password;
}
public String getIDNumber() {
return IDNumber;
}
public String getTelephoneNumber() {
return telephoneNumber;
}
public void setUserName(String userName) {
UserName = userName;
}
public void setPassword(int password) {
this.password = password;
}
public void setIDNumber(String IDNumber) {
this.IDNumber = IDNumber;
}
public void setTelephoneNumber(String telephoneNumber) {
this.telephoneNumber = telephoneNumber;
}
}
(2)实现登录功能
public static boolean Login(){
System.out.println("请输入用户名");
String newUserName = sc.next();
System.out.println("请输入密码");
int newpassWord = sc.nextInt();
for(int i=0;i<Studentuser.size();i++)
{
if(Studentuser.get(i).getUserName().equals(newUserName))
{
if(Studentuser.get(i).getPassword() == newpassWord) {
System.out.println("登入成功");
return true;
}
}
}
System.out.println("未找到该用户名,请先注册");
return false;
}
(3)实现注册功能
public static void register(){
System.out.println("请输入用户名");
String newUserName = sc.next();
System.out.println("请输入密码");
int newpassWord1 = sc.nextInt();
System.out.println("请输入身份证号");
String IDNumber = sc.next();
System.out.println("请输入手机号");
String telephoneNumber = sc.next();
//用户名长度要在3~15
if(newUserName.length()<3 || newUserName.length()>15) {
System.out.println("用户名输入不符合规定");
return;
}
//身份证的长度只能位18位
if(IDNumber.length() != 18) {
System.out.println("身份证输入不符合规定");
return;
}
//身份证不能是0开头
if(IDNumber.charAt(0) == 0){
System.out.println("身份证不能是0开头");
return;
}
//手机号的长度只能为11位
if(telephoneNumber.length() != 11){
System.out.println("手机号输入不符合规定");
return;
}
//手机只能是数字
for(int i=0;i<telephoneNumber.length();i++)
{
if(telephoneNumber.charAt(i) <48 || telephoneNumber.charAt(i) >57){
System.out.println("输入的身份证只能是数字");
return;
}
}
//身份证只能是数字
for(int i=0;i<IDNumber.length();i++)
{
if(IDNumber.charAt(i) <48 || IDNumber.charAt(i) >57){
System.out.println("输入的身份证只能是数字");
return;
}
}
//用户名唯一
for(int i=0;i<Studentuser.size();i++)
{
if(Studentuser.get(i).getUserName().equals(newUserName))
{
System.out.println("用户名已存在");
return;
}
}
//开始注册
StudentUser newStudent = new StudentUser(newUserName,newpassWord1,IDNumber,telephoneNumber);
Studentuser.add(newStudent);
System.out.println("注册成功");
}
(4)实现忘记密码功能
public static void RetrievePassword(){
System.out.println("请输入用户名");
String newUserName = sc.next();
for(int i=0;i<Studentuser.size();i++)
{
if(Studentuser.get(i).getUserName().equals(newUserName)){
System.out.println("请输入身份证号码");
String newIDNumber = sc.next();
System.out.println("请输入手机号码");
String newTelephoneNumber = sc.next();
if(Studentuser.get(i).getIDNumber().equals(newIDNumber) && Studentuser.get(i).getTelephoneNumber().equals(newTelephoneNumber)){
System.out.println("请输入新密码");
int newPassWoed = sc.nextInt();
Studentuser.get(i).setPassword(newPassWoed);
System.out.println("修改成功");
}else{
System.out.println("账号信息不匹配,修改失败");
}
}
}
System.out.println("未注册");
}
3、完整代码
import java.util.ArrayList;
import java.util.Scanner;
public class exercise16 {
public static Scanner sc = new Scanner(System.in);
//创建一个存储学生账户的集合
public static ArrayList<StudentUser> Studentuser = new ArrayList<>();
//创建一个存储学生信息的集合
public static ArrayList<Student> StudentList = new ArrayList<>();
//函数人口
public static void main(String[] args){
//初始化数据
AddInitialData();
//登入注册
int LoginTimes=0;
boolean LoginStatus = false;
while(LoginTimes < 3){
//登入注册界面
Logininterface();
int h = sc.nextInt();
switch (h){
//登入
case 1:
if(Login())
{
LoginStatus = true;
}
LoginTimes++;
break;
//注册
case 2:
register();
break;
//忘记密码
case 3:
RetrievePassword();
break;
default:
System.out.println("登入错误");
}
if(LoginStatus) break;
}
if(LoginStatus){
while(true){
IU();
int i = sc.nextInt();
switch (i)
{
//添加学生
case 1:
Add(StudentList);
break;
//删除学生
case 2:
delete(StudentList);
break;
//修改学生
case 3:
modification(StudentList);
break;
//查询学生
case 4:
inquire(StudentList);
break;
//退出
case 5:
return;
//打印全部学生信息
case 6:
Print(StudentList);
break;
}
}
}
}
//登入注册界面
public static void Logininterface(){
System.out.println("欢迎来到学生管理系统");
System.out.println("1.登入");
System.out.println("2.注册");
System.out.println("3.忘记密码");
}
//判断是否登入
public static boolean Login(){
System.out.println("请输入用户名");
String newUserName = sc.next();
System.out.println("请输入密码");
int newpassWord = sc.nextInt();
for(int i=0;i<Studentuser.size();i++)
{
if(Studentuser.get(i).getUserName().equals(newUserName))
{
if(Studentuser.get(i).getPassword() == newpassWord) {
System.out.println("登入成功");
return true;
}
}
}
System.out.println("未找到该用户名,请先注册");
return false;
}
//注册
public static void register(){
System.out.println("请输入用户名");
String newUserName = sc.next();
System.out.println("请输入密码");
int newpassWord1 = sc.nextInt();
System.out.println("请输入身份证号");
String IDNumber = sc.next();
System.out.println("请输入手机号");
String telephoneNumber = sc.next();
//用户名长度要在3~15
if(newUserName.length()<3 || newUserName.length()>15) {
System.out.println("用户名输入不符合规定");
return;
}
//身份证的长度只能位18位
if(IDNumber.length() != 18) {
System.out.println("身份证输入不符合规定");
return;
}
//身份证不能是0开头
if(IDNumber.charAt(0) == 0){
System.out.println("身份证不能是0开头");
return;
}
//手机号的长度只能为11位
if(telephoneNumber.length() != 11){
System.out.println("手机号输入不符合规定");
return;
}
//手机只能是数字
for(int i=0;i<telephoneNumber.length();i++)
{
if(telephoneNumber.charAt(i) <48 || telephoneNumber.charAt(i) >57){
System.out.println("输入的身份证只能是数字");
return;
}
}
//身份证只能是数字
for(int i=0;i<IDNumber.length();i++)
{
if(IDNumber.charAt(i) <48 || IDNumber.charAt(i) >57){
System.out.println("输入的身份证只能是数字");
return;
}
}
//用户名唯一
for(int i=0;i<Studentuser.size();i++)
{
if(Studentuser.get(i).getUserName().equals(newUserName))
{
System.out.println("用户名已存在");
return;
}
}
//开始注册
StudentUser newStudent = new StudentUser(newUserName,newpassWord1,IDNumber,telephoneNumber);
Studentuser.add(newStudent);
System.out.println("注册成功");
}
//忘记密码
public static void RetrievePassword(){
System.out.println("请输入用户名");
String newUserName = sc.next();
for(int i=0;i<Studentuser.size();i++)
{
if(Studentuser.get(i).getUserName().equals(newUserName)){
System.out.println("请输入身份证号码");
String newIDNumber = sc.next();
System.out.println("请输入手机号码");
String newTelephoneNumber = sc.next();
if(Studentuser.get(i).getIDNumber().equals(newIDNumber) && Studentuser.get(i).getTelephoneNumber().equals(newTelephoneNumber)){
System.out.println("请输入新密码");
int newPassWoed = sc.nextInt();
Studentuser.get(i).setPassword(newPassWoed);
System.out.println("修改成功");
}else{
System.out.println("账号信息不匹配,修改失败");
}
}
}
System.out.println("未注册");
}
//学生管理系统的IU
public static void IU(){
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("6.打印全部学生信息");
System.out.println("请输入你的选择");
}
//添加学生
public static void Add(ArrayList<Student> a){
System.out.println("请输入要添加的学生数量");
int i = sc.nextInt();
for(int j=0;j<i;j++)
{
System.out.println("请输入学生的名字");
String newName = sc.next();
System.out.println("请输入学生的学号");
int newXuehao = sc.nextInt();
System.out.println("请输入学生的年龄");
int newAge = sc.nextInt();
//创建一个新的学生对象
Student b = new Student(newName,newXuehao,newAge);
//将新创建的学生对象添加到集合中
a.add(b);
}
System.out.println("添加成功");
}
//打印全部学生信息
public static void Print(ArrayList<Student> a){
System.out.println("名字"+"\t"+"学号"+"\t"+"年龄");
for(int i=0;i<a.size();i++)
{
System.out.println(a.get(i));
}
}
//删除学生
public static void delete(ArrayList<Student> a) {
System.out.println("请输入要删除学生的位置");
int i = sc.nextInt();
a.remove(i);
System.out.println("删除成功");
}
//修改学生
public static void modification(ArrayList<Student> a){
System.out.println("请输入要修改的学生的学号");
int i = sc.nextInt();
for(int j=0;j<a.size();j++)
{
if(a.get(j).getXuehao() == i)
{
System.out.println("请输入修改后学生的名字");
a.get(j).setName(sc.next());
System.out.println("请输入修改后学生的学号");
a.get(j).setXuehao(sc.nextInt());
System.out.println("请输入修改后学生的年龄");
a.get(j).setAge(sc.nextInt());
return;
}
}
}
//查询学生
public static void inquire(ArrayList<Student> a){
System.out.println("请输入要查询学生的学号");
int i = sc.nextInt();
for(int j=0;j<a.size();j++)
{
if(a.get(j).getXuehao() == i)
{
System.out.println(a.get(j));
}
}
}
public static void AddInitialData(){
StudentUser b1 = new StudentUser("xiaoming",123456,"123456789011111111","12345678901");
StudentUser b2 = new StudentUser("xiaowang",123457,"123456789022222222","12345678902");
StudentUser b3 = new StudentUser("xiaohong",123458,"123456789033333333","12345678903");
Studentuser.add(b1);
Studentuser.add(b2);
Studentuser.add(b3);
}
}