当前位置: 首页 > news >正文

java基础-学生管理系统升级

package com.jdL.studentmanagement;public class user {//用户的基本信息:用户名,密码,身份证号,手机号private String name;private String password;private String idcard;private String phonenumber;//空参构造public user() {}//有参构造public user(String name, String password, String idcard, String phonenumber) {this.name = name;this.password = password;this.idcard = idcard;this.phonenumber = phonenumber;}//get和set方法public String getName() {return name;}public void setName(String name) {this.name = name;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}public String getIdcard() {return idcard;}public void setIdcard(String idcard) {this.idcard = idcard;}public String getPhonenumber() {return phonenumber;}public void setPhonenumber(String phonenumber) {this.phonenumber = phonenumber;}
}

package com.jdL.studentmanagement;import java.util.ArrayList;
import java.util.Random;
import java.util.Scanner;public class UserMain {public static void main(String[] args) {//建立一个user对象的集合ArrayList<user> userlist = new ArrayList<>();while (true) {System.out.println("欢迎来到学生管理系统");System.out.println("请选择操作:1登录 2注册 3忘记密码");System.out.println("请输入您的选择:");Scanner sc = new Scanner(System.in);String choose = sc.next();switch (choose) {case "1":boolean flag=login(userlist);if(flag){System.out.println("登录成功");}break;case "2":userlist=register(userlist);break;case "3":forgetPassword(userlist);break;default:System.out.println("无此相关操作");break;}}}//在一个集合中判断数据是否存在public static boolean contains(ArrayList<user> list, String name) {for (int i = 0; i < list.size(); i++) {if (list.get(i).getName().equals(name)) {return true;}}return false;}//获取一个number位数的验证码public static String getVerification(int number){char[] chars = new char[number];char[] array={'a','b','c','d','e','f','g','h','A','B','C','D','E','F','G','H'};char temp=' ';Random random=new Random();for (int i = 0; i < chars.length-1; i++) {//每次都随机产生一个int num=random.nextInt(array.length);chars[i]=array[num];}int num1=random.nextInt(10);chars[chars.length-1]=(char)(num1+'0');//把验证码数组中数字放在任意位置int num2=random.nextInt(chars.length-1);temp=chars[num2];chars[num2]=chars[chars.length-1];chars[chars.length-1]=temp;//输出验证码字符串return String.valueOf(chars);}//在一个集合中获取姓名对应的密码public static String getpassword(ArrayList<user> list, String name) {for (int i = 0; i < list.size(); i++) {if (list.get(i).getName().equals(name)) {return list.get(i).getPassword();}}return null;}//在一个集合中获取姓名对应的索引public static int getIndex(ArrayList<user> list, String name) {for (int i = 0; i < list.size(); i++) {if (list.get(i).getName().equals(name)) {return i;}}return -1;}//2、注册public static ArrayList<user> register(ArrayList<user> list) {//注册:用户名的判断Scanner sc = new Scanner(System.in);String name=" ";loop:while (true) {int count = 0;System.out.println("请输入用户名:");name = sc.next();//判断录入的用户名是否已经存在,利用contain方法输出真假if (contains(list, name)) {System.out.println("此用户名已存在");} else {//不存在继续判断字符串长度if (name.length() >= 3 && name.length() <= 15) {for (int i = 0; i < name.length(); i++) {//用户名的每一个字符都必须在a~z,A~Z,0~9三个之间char ch = name.charAt(i);//System.out.println(ch);if (!((ch >= 'a' && ch <= 'z') || (ch >= 'A' && ch <= 'Z') || (ch >= '0' && ch <= '9'))) {System.out.println("注册的用户名需要包含字母和数字");break;} else {if ((ch >= 'a' && ch <= 'z') || (ch >= 'A' && ch <= 'Z')) {count++;}}}if(count>0){//list.add(new user().setName(name);break;}else{System.out.println("注册的用户不能为数字");}} else {System.out.println("用户名长度必须在3~15之间,请确认");}}}//注册:键盘密码输入的时候,需两次一样才可以注册String password = " ";while (true) {System.out.println("请输入密码:");String passwordFirst = sc.next();System.out.println("请再次输入密码:");String passwordSecond = sc.next();if (!passwordFirst.equals(passwordSecond)) {System.out.println("两次密码输入不一致,");} else {password = passwordFirst;break;}}//注册:身份证号码的验证String idcard = " ";loop:while (true) {System.out.println("请输入用户名身份证号:");String idcardtemp = sc.next();if (idcardtemp.charAt(0) == '0' || idcardtemp.length() != 18) {System.out.println("录入的身份证号必须满足18位且第一位不能为0");continue;} else {for (int i = 0; i < idcardtemp.length() - 1; i++) {if (!((idcardtemp.charAt(i) >= '0' && idcardtemp.charAt(i) <= '9'))) {System.out.println("身份证号前面17位必须为纯数字");continue loop;} else {char last = idcardtemp.charAt(idcardtemp.length() - 1);if (!((last >= '0' && last <= '9') || (last == 'X') || (last == 'x'))) {System.out.println("录入的身份证号最后一位需要在0~9之间,或者为X、x");continue loop;}}}}idcard = idcardtemp;break loop;}//注册:手机号验证String phonenumbe=" ";loop:while (true) {System.out.println("请输入手机号");String phonenum = sc.next();if(phonenum.length() != 11||phonenum.charAt(0)=='0'){System.out.println("手机号录入格式错误");}else{for(int i=0;i<phonenum.length();i++){if(!(phonenum.charAt(i)>='0' && phonenum.charAt(i)<='9')){System.out.println("手机号只能全部都是数字,请确认");continue loop;}}phonenumbe=phonenum;break loop;}}list.add(new user(name,password,idcard,phonenumbe));System.out.println("注册成功");return list;}//1、登录public static boolean login(ArrayList<user> list){Scanner sc = new Scanner(System.in);System.out.println("请输入登录的用户名");String name = sc.next();if(contains(list,name)){while (true) {//先获取一个验证码String PorVerification=getVerification(5);System.out.println(PorVerification);System.out.println("请输入验证码");String EnterVerification = sc.next();if(PorVerification.equals(EnterVerification)){break;}}int count= 0;while (true) {//count = 0;System.out.println("请输入登录的用户密码");String password = sc.next();//获取登录用户名的密码String proPassword=getpassword(list,name);System.out.println("用户的初始密码是:"+proPassword);if(password.equals(proPassword)){return true;}else{count++;}if(count>=3){System.out.println("用户密码录入错误,超过三次");return false;}}}else {System.out.println("未查询到用户名,请先注册");}return false;}//3、忘记密码public static boolean forgetPassword(ArrayList<user> list){Scanner sc = new Scanner(System.in);System.out.println("请输入登录的用户名");String name = sc.next();if(contains(list,name)){//找到用户名对象的索引int index=getIndex(list,name);while (true) {System.out.println("输入身份证号");String idCard = sc.next();if(!(list.get(index).getIdcard().equals(idCard))){System.out.println("用户身份证号错误");}else{break;}}while (true) {System.out.println("输入手机号");String phonenumber = sc.next();if(!(list.get(index).getPhonenumber().equals(phonenumber))){System.out.println("用户手机号错误");}else{break;}}//身份证和手机号都正确//if((list.get(index).getIdcard().equals(idCard))&&list.get(index).getPhonenumber().equals(phonenumber)){System.out.println("请输入新的密码");String newPassword = sc.next();list.get(index).setPassword(newPassword);//return true;//}}else{System.out.println("用户名不存在,请先注册");return false;}return true;}
}

http://www.dtcms.com/a/591006.html

相关文章:

  • 知名网站建设制作深圳网站平台制作
  • 五金塑胶 技术支持 东莞网站建设影楼修图
  • 做网站的工作轻松吗怎么自创公众号
  • 做国外网站用什么颜色宝安中心医院妇科
  • 直接在原备案号下增加新网站网页设计自学视频网站
  • 哈尔滨搭建网站文创产品设计理念
  • 网站建设 业务走下坡抖音推广有几种方式
  • 购物网站建设需要公司营业执照吗无锡网络公司有哪些
  • RAFT微调学习笔记
  • 网站开发制作公司排行网站建设专业学什么
  • 江苏网站建设怎么样php网站的数据库怎么做备份
  • 做非法网站判什么邢看那种片哪个网站好用
  • 中专生做电商客服,能转电商运营吗?需要学习什么?
  • 高端网站设计找哪个公司wordpress 课程
  • 泉州网站制作平台网站建设简历
  • 个人注册网站只做正品的购物网站
  • 烟台专业的网站建站公司厦门市建设协会网站首页
  • 怎样做jsp网站百度seo入驻
  • 广州市城乡建设信息中心网站临沂建设网站制作公司
  • 爬豆瓣喜剧电影排行榜数据
  • 聚美优品网站建设情况网站信息组织优化
  • 多个网站备案负责人wordpress 个人资料页
  • 动易学校网站管理系统 漏洞网站建设分工的通知
  • 做条形图的网站免费网站下载app软件免费
  • 移动公司营销网站设计邯郸市人社局
  • 做外账经常进哪几个网站中小企业网站设计与开发目的
  • 新农村建设投诉网站中英文的网站是怎么做的
  • 探秘Linux进程“亡灵”:僵尸进程(Zombie Process)深度解析
  • 局域网视频网站搭建折扣网站模板
  • FOC控制与SVPWM解析