package Student_Management_System;
import java.util.ArrayList;
import java.util.Random;
import java.util.Scanner;
public class StudentUpTest {
public static void main(String[] args) {
ArrayList<StudentUp> list=new ArrayList<>();
boolean LoginSucc=false;
boolean flag=false;
while(!flag){
Main_interface();
Scanner sc=new Scanner(System.in);
System.out.println("输入你的选择对应的编号");
int select=sc.nextInt();
switch (select){
case 1:
LoginSucc=login(list,LoginSucc);
break;
case 2:
enroll(list);
flag=true;
break;
case 3:
ForgotPassword(list);
break;
case 0:
System.out.println("退出系统");
System.exit(0);
default:
System.out.println("输入错误,请重新输入");
break;
}
}
//进入系统
if(LoginSucc){
operate();
}
}
public static void operate() {
//把上个系统拿进来,前面的补充只是注册和登录以及忘记密码的操作
}
//忘记密码
public static void ForgotPassword(ArrayList<StudentUp> list) {
System.out.println("忘记密码");
Scanner sc=new Scanner(System.in);
System.out.println("输入身份证号:");
String IDcard=sc.next();
System.out.println("输入电话号码:");
String Phone=sc.next();
boolean succ=false;
for (int i = 0; i < list.size(); i++) {
if(IDcard.equals(list.get(i).getIDcard())&&Phone.equals(list.get(i).getPhonenum())){
System.out.println("输入新密码:");
String passw=sc.next();
list.get(i).setPassword(passw);
System.out.println("修改成功");
succ=true;
break;
}
}
if(!succ){
System.out.println("账号信息不匹配,修改失败");
}
}
public static int sole(ArrayList<StudentUp> studentlist, StudentUp student) {
for (int i = 0; i < studentlist.size(); i++) {
if (student.getUsername().equals(studentlist.get(i).getUsername()) ) {
//System.out.println("输入的学号已经存在,请重新输入");
return i;
}
}
return -1;
}
//判断用户名,保证不全是数字
public static boolean LettersNumbers(String user) {
boolean s=false;
for (int i = 0; i < user.length(); i++) {
if((user.charAt(i)>='a'&&user.charAt(i)<='z')||(user.charAt(i)>='A'&&user.charAt(i)<='Z')){
s=true;
} else if (user.charAt(i)>='0'&&user.charAt(i)<='9') {
}else{
s=false;
}
}
return s;
}
//判断身份证号
public static boolean identityCard(String ID) {
boolean r=false;
int sum=0;
if(ID.length()==18){
if(ID.charAt(0)>='1'&&ID.charAt(0)<='9'){//保证第一位为数字,且不为0;
for (int i = 1; i < ID.length()-1; i++) {//前十七位为数字
if(ID.charAt(i)>='0'&&ID.charAt(i)<='9'){
sum++;
}else {
System.out.println("身份证号输入违法");
break;
}
}
if(sum==16){
if((ID.charAt(17)>='0'&&ID.charAt(17)<='9')||ID.charAt(17)=='x'&&ID.charAt(17)=='X'){
r=true;
}else {
System.out.println("输入身份证违法");
}
}
}else{
System.out.println("输入的身份证号有误,请保证第一位为数字且不为0");
}
}else{
System.out.println("输入的身份证不是18位");
}
return r;
}
//判断电话号码是否正确
public static boolean phone(String phone) {
boolean p=false;
if(phone.length()==11){
if(phone.charAt(0)=='0'){
System.out.println("输入的电话号码第一位为0");
}else{
int sum=0;
for (int i = 0; i < phone.length(); i++) {
if(phone.charAt(i)>='0'&&phone.charAt(i)<='9'){
sum++;
}
}
if(sum==11){
p=true;
}else {
System.out.println("请输入全是数字的电话号码");
}
}
}
return p;
}
//注册
public static void enroll(ArrayList<StudentUp> list) {
System.out.println("---------------------注册---------------------");
StudentUp stu=new StudentUp();
Scanner sc=new Scanner(System.in);
System.out.println("输入用户名(3~15位):");
String user=sc.next();
if(user.length()<=15&&user.length()>=3){
if(sole(list,stu)<0){
if(LettersNumbers(user)){
//正确的输入
stu.setUsername(user);
PassWord(stu);
IdCard(stu);
PhoneNum(stu,list);
System.out.println("注册成功");
}else{
//错误的输入
System.out.println("输入违法,请输入数字+字母的组合,不能是纯数字");
}
}else{
System.out.println("输入的用户名已经存在,请重新输入");
}
}else{
System.out.println("请输入3~15位的用户名");
}
// stu.getUsername()
}
//登录
public static boolean login(ArrayList<StudentUp> list,boolean successful) {
System.out.println("+++++++++++++++++登录+++++++++++++++++");
Scanner sc=new Scanner(System.in);
boolean flag=false;
while(!flag) {
System.out.println("输入账号:");
String name = sc.next();
boolean bool = false;
for (int i = 0; i < list.size(); i++) {
if (name.equals(list.get(i).getUsername())) {
bool = true;
Contrast();
for (int j = 0; j < 3; j++) {
System.out.println("输入密码:");
String password = sc.next();
if (password.equals(list.get(i).getPassword())) {
System.out.println("登录成功");
successful=true;
break;
} else {
System.out.println("账户密码不匹配,请重新输入密码" + "剩余"+(2 - j)+"次机会");
}
}
flag=true;
break;
}
}
if (!bool) {
System.out.println("用户名未注册,请先注册");
flag=true;
}
}
return successful;
}
//主界面
public static void Main_interface() {
System.out.println("-----------------------欢迎来到学生管理系统-----------------------");
System.out.println("请选择操作:"+"\n"+"1、登录"+"\n"+"2、注册"+"\n"+"3、忘记密码");
}
//判断注册时两次输入密码是否一样
public static void PassWord(StudentUp stu) {
Scanner sc=new Scanner(System.in);
boolean flag=false;
while(!flag){
System.out.println("请输入密码");
String pw1=sc.next();
System.out.println("请再次输入");
String pw2=sc.next();
if(pw1.equals(pw2)){
stu.setPassword(pw1);
flag=true;
}else{
System.out.println("两次密码不一致");
}
}
}
//接受身份证的验证结果,存入对象
public static void IdCard(StudentUp stu) {
Scanner sc= new Scanner(System.in);
boolean flag=false;
while(!flag){
System.out.println("请输入身份证号:");
String Id=sc.next();
if(identityCard(Id)){
stu.setIDcard(Id);
flag=true;
}
}
}
//接受电话的验证结果,存入对象
public static void PhoneNum(StudentUp stu,ArrayList<StudentUp> list) {
Scanner sc=new Scanner(System.in);
boolean f=false;
while(!f){
System.out.println("请输入手机号:");
String phone;
phone=sc.next();
if(phone(phone)){
stu.setPhonenum(phone);
list.add(stu);
f=true;
}
}
}
//登录时随机数的产生
public static String RandomL() {
Random r=new Random();
int digit=r.nextInt(10);
StringBuilder sb=new StringBuilder();
sb.append(digit);
char []letter=new char[52];
for (int i = 0; i < letter.length; i++) {
if(i<26){
letter[i]=(char)('A'+i);
}else {
letter[i]=(char) ('a'+i-26);
}
}
for (int i = 0; i < 4; i++) {
int L=r.nextInt(52);
sb.append(letter[L]);
}
String str=sb.toString();
char []s=str.toCharArray();
for (int i = 0; i < s.length; i++) {
int t= r.nextInt(s.length);
char temp;
temp=s[i];
s[i]=s[t];
s[t]=temp;
}
String str1="";
for (int i = 0; i < s.length; i++) {
str1=str1+s[i];
}
return str1;
}
//对随机数进行判断
public static void Contrast() {
Scanner sc=new Scanner(System.in);
boolean flag=false;
while(!flag){
String Captcha = RandomL();
System.out.println("验证码为:"+Captcha);
String Cap=sc.next();
if (Cap.equalsIgnoreCase(Captcha)) {
//判断用户名和密码是否匹配
flag=true;
}else{
System.out.println("验证码输入错误");
}
}
}
}
关于学生管理系统的改进
最新推荐文章于 2024-07-22 14:15:06 发布