Java带有登录操作的学生管理系统

一:问题描述

     写一个学生管理系统,并且带有登录操作,登录包括注册,登录和忘记密码三部分,注册要填写用户名,手机号,密码,注册时要检查用户名,手机号,密码,格式是否正确,登录时要检查填写的用户名和密码是否匹配。

二:代码如下

  


import java.util.ArrayList;
import java.util.Random;
import java.util.Scanner;
public class Studentsystem {
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        ArrayList<User> list=new ArrayList<>();
        loop:while (true) {
            System.out.println("--------欢迎来到登录界面--------");
            System.out.println("--------1.注册----------------");
            System.out.println("--------2.登录----------------");
            System.out.println("--------3.忘记密码-------------");
            System.out.println("--------4.退出----------------");
            System.out.println("请选择想要的序号:");
            String choose=sc.next();
            User us=new User();
            switch(choose){
                case "1":{
                    System.out.println("欢迎来到注册模式");
                    int num=0;
                    while (true) {
                        System.out.println("请输入要注册的用户名(用户名长度在3-15之间,且不能为纯数字):");
                        num++;
                        String username=sc.next();
                        boolean flag1=contains(list,username);//判断用户名是否存在
                        if(flag1){
                            System.out.println("该用户名已存在,请重新输入");
                            continue;
                        }
                        boolean flag2=checkusername(username);
                        if(!flag2){
                            System.out.println("输入的用户名格式不正确,请重新输入");
                            continue;
                        }
                        boolean flag3=haveusername(username);
                        if(!flag3){
                            System.out.println("输入的用户名格式不正确,请重新输入");
                            continue;
                        }
                        us.setUsername(username);
                        System.out.println("用户名注册成功,请输入其他数据!");
                        while (true) {
                            System.out.println("请输入密码");
                            String password=sc.next();
                            System.out.println("请再次输入密码");
                            String apassword=sc.next();
                            if(!password.equals(apassword)){
                                System.out.println("密码输入失败,请重新输入");
                                continue;
                            }
                            us.setUserpassword(apassword);
                            System.out.println("密码输入成功!");
                            break;
                        }
                        while (true) {
                            System.out.println("请输入手机号");
                            String phonenumber=sc.next();
                            boolean flag4=checkphonenumber(phonenumber);
                            if(!flag4){
                                System.out.println("手机号格式不正确,请重新输入!");
                                continue;
                            }
                            us.setPhonenumber(phonenumber);
                            while (true) {
                                System.out.println("验证码如下:");
                                String code=getcode();
                                System.out.println(code);
                                System.out.println("请输入收到的验证码(不区分大小写)!");
                                String writecode=sc.next();
                                if(!code.equalsIgnoreCase(writecode)){
                                    System.out.println("验证码输入错误,请重新输入!");
                                    continue;
                                }
                                System.out.println("验证码输入正确!");
                                break;
                            }
                            System.out.println("手机号注册成功!");
                            break;
                        }
                        break;
                    }
                    list.add(us);
                    System.out.println("用户注册成功!");
                    break;
                }
                case "2":{
                    System.out.println("欢迎来到登录模式");
                    System.out.println("请输入用户名:");
                    String username=sc.next();
                    Boolean flag5=contains(list,username);
                    if(!flag5){
                        System.out.println("用户名未注册,请先注册!");
                        break;
                    }
                    int a=getindex(list,username);
                    int i=1;
                    while (i<=3) {
                        System.out.println("请输入密码:");
                        String password=sc.next();
                        if(!list.get(a).getUserpassword().equals(password)){
                            System.out.println("密码错误,您还有"+(3-i)+"次机会!");
                            i++;
                            continue;
                        }
                        System.out.println("密码正确,登陆成功!");
                        Studenttest s=new Studenttest();
                        s.studesystem();
                        break loop;
                    }
                    break;
                }
                case "3":{
                    System.out.println("忘记密码");
                    System.out.println("请输入要修改的账号的用户名");
                    String removeusername=sc.next();
                    boolean flag6=contains(list,removeusername);
                    if(!flag6){
                        System.out.println("该用户名还未注册,请先注册!");
                        break;
                    }
                    while (true) {
                        System.out.println("请输入注册该用户名时所用的手机号");
                        String pnumber=sc.next();
                        int index=getindex(list,removeusername);
                        if(!list.get(index).getPhonenumber().equals(pnumber)){
                            System.out.println("用户名与手机号不匹配,请重新输入!");
                            continue;
                        }
                        String newpassword;
                        while (true) {
                            System.out.println("手机号验证成功,请输入修改后的密码!");
                            newpassword=sc.next();
                            System.out.println("请再次输入新密码");
                            String againnewpassword=sc.next();
                            if(!newpassword.equals(againnewpassword)){
                                System.out.println("两次密码输入不一致,请重新输入!");
                                continue;
                            }
                            break;
                        }
                        us.setUserpassword(newpassword);
                        list.add(us);
                        System.out.println("密码修改成功!");
                        break;
                    }
                    break;
                }
                case "4":{
                    System.out.println("退出成功!");
                    break loop;
                }
                default:{
                    System.out.println("输入的选择不正确,请重新输入!");
                    break;
                }
            }
        }
    }
    public static Boolean contains(ArrayList<User> list,String username){
        for (int i = 0; i < list.size(); i++) {
            User u=list.get(i);
            if(u.getUsername().equals(username)){
                return true;
            }
        }
        return false;
    }//判断用户名是否存在
    public static Boolean checkusername(String username){
        int l=username.length();
        if(l<3||l>15){//用户名在3-15之间
            return false;
        }
        for (int i = 0; i < username.length(); i++) {
            char c=username.charAt(i);
            if(!(c>='a'&&c<='z')||(c>='A'&&c<='Z')||(c>='0'&&c<='9')){
                return false;
            }
        }
        return true;
    }//判断用户名是否正确
    public static Boolean haveusername(String username){
        int num=0;
        for (int i = 0; i < username.length(); i++) {
            char c=username.charAt(i);
            if((c>='a'&&c<='z')||(c>='A'&&c<='Z')){
                num++;
                break;
            }
        }
        return num>0;
    }//判断用户名是否全是数字和字母组成
    public static Boolean checkphonenumber(String phonenumber){//判断手机号格式是否正确
        if(phonenumber.charAt(0)=='0'){
            return false;
        }
        for (int i = 0; i < phonenumber.length(); i++) {
            char c=phonenumber.charAt(i);
            if(!(c>='0'&&c<='9')){
                return false;
            }
        }
        return true;
    }//判断手机号格式是否正确
    public 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 stb=new StringBuilder();
        Random r=new Random();
        for(int i=0;i<4;i++){
            int index=r.nextInt(list.size());
            char c=list.get(index);
            stb.append(c);
        }
        int num=r.nextInt(10);
        stb.append(num);
        char [] arr=stb.toString().toCharArray();
        int randomindex=r.nextInt(arr.length);
        char ch=arr[randomindex];
        arr[randomindex]=arr[4];
        arr[4]=ch;
        return new String(arr);
    }//得到手机验证码
    public static int getindex(ArrayList<User> list,String username){
        for (int i = 0; i < list.size(); i++) {
            User u=list.get(i);
            if(u.getUsername().equals(username)){
                return i;
            }
        }
        return -1;
    }//或得用户名索引
}
class Studentsys {
    private String id;
    private String name;
    private int age;
    private String address;

    public Studentsys(String id, String name, int age, String address) {
        this.id = id;
        this.name = name;
        this.age = age;
        this.address = address;
    }

    public Studentsys() {
    }

    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;
    }
}
class Studenttests {
    public static void studesystem() {
        ArrayList<Studentsys> list = new ArrayList<>();//用集合来保存每个学生的信息
        loop: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("6.退出");
            System.out.println("请输入想要选择的数字");
            Scanner sc = new Scanner(System.in);
            String choose = sc.next();
            switch (choose) {
                case "1": {
                    System.out.println("欢迎来到添加学生信息模式");
                    addstudent(list);//添加信息的函数
                    break;
                }
                case "2": {
                    System.out.println("欢迎来到删除学生信息模式");
                    Scanner sr=new Scanner(System.in);
                    System.out.println("请输入要删除的学生的id号");
                    String id=sr.next();
                    deletestudent(list,id);//删除信息的函数
                    break;
                }
                case "3": {
                    System.out.println("欢迎来到查询学生信息模式");
                    System.out.println("请输入要查询的学生的id号");
                    Scanner s=new Scanner(System.in);
                    String id2=s.next();
                    findstudent(list,id2);//查找信息的函数
                    break;
                }
                case "4": {
                    System.out.println("欢迎来到修改学生信息模式");
                    Scanner sn=new Scanner(System.in);
                    System.out.println("请输入要修改的学生的id号");
                    String id3=sc.next();
                    revisestudent(list,id3);//修改学生信息函数
                    break;
                }
                case "5": {
                    printstudent(list);//打印信息函数
                    break;
                }
                case "6": {
                    System.out.println("退出系统");
                    break loop;
                }
                default:
                    System.out.println("输入错误,请重新输入");
            }
        }
    }
    public static void addstudent(ArrayList<Studentsys> list){
        Studentsys s= new Studentsys();
        Scanner sc=new Scanner(System.in);
        System.out.println("请输入要添加的学生id");
        String id=sc.next();
        Boolean flag=isexistence(list,id);//判断要添加的学生id号是否已存在
        if(flag==true){
            System.out.println("该id号已存在,请重新输入");
            return;
        }
        s.setId(id);
        System.out.println("请输入要添加的学生姓名");
        String name=sc.next();
        s.setName(name);
        System.out.println("请输入要添加的学生年龄");
        int age=sc.nextInt();
        s.setAge(age);
        System.out.println("请输入要添加的学生家庭住址");
        String address=sc.next();
        s.setAddress(address);
        list.add(s);
        System.out.println("学生信息添加成功!");
    }
    public static void deletestudent(ArrayList<Studentsys> list, String id){
        if(list.size()==0){
            System.out.println("当前无学生信息,请先添加学生信息");
            return;
        }
        int flag=findid(list,id);//找到输入id号在集合中的索引
        if(flag==-1){
            System.out.println("该id号不存在,请重新输入!");
            return;
        }
        else{
            list.remove(flag);
        }
        System.out.println("学生信息删除成功!");
    }
    public static void findstudent(ArrayList<Studentsys> list, String id){
        int flag=findid(list,id);
        Studentsys stu=list.get(flag);
        System.out.println(stu.getId()+"\t"+stu.getName()+"\t"+stu.getAge()+"\t"+stu.getAddress());
    }
    public static void revisestudent(ArrayList<Studentsys> list, String id){
        int flag=findid(list,id);
        if(flag==-1){
            System.out.println("要修改的学生id号不存在,请重新输入");
            return;
        }
        Studentsys stu=list.get(flag);
        Scanner sc=new Scanner(System.in);
        System.out.println("请输入要修改的学生的名字");
        String newname=sc.next();
        stu.setName(newname);
        System.out.println("请输入要修改的学生的年龄");
        int newage=sc.nextInt();
        stu.setAge(newage);
        System.out.println("请输入要修改的学生的家庭住址");
        String newaddress=sc.next();
        stu.setAddress(newaddress);
        System.out.println("学生信息修改成功!");
    }
    public static void printstudent(ArrayList<Studentsys> list){
        System.out.println("打印学生信息");
        System.out.println("id\t姓名\t年龄\t家庭住址\t");
        for (int i = 0; i < list.size(); i++) {
            Studentsys stu=list.get(i);
            System.out.println(stu.getId()+"\t"+stu.getName()+"\t"+stu.getAge()+"\t"+stu.getAddress());
        }
    }
    public static boolean isexistence(ArrayList<Studentsys> list, String id){
        for (int i = 0; i < list.size(); i++) {
            Studentsys stu=list.get(i);
            String sid=stu.getId();
            if(sid==id){
                return true;
            }
        }
        return false;
    }
    public static int findid(ArrayList<Studentsys> list, String id){//找某个id号在集合中的索引值
        for (int i = 0; i < list.size(); i++) {
            Studentsys s=list.get(i);
            String sid=s.getId();
            if(sid.equals(id)){
                return i;
            }
        }
        return -1;
    }
}
class User {
    private String username;
    private String userpassword;
    private String phonenumber;

    public User() {
    }

    public User(String username, String userpassword, String phonenumber) {
        this.username = username;
        this.userpassword = userpassword;
        this.phonenumber = phonenumber;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getUserpassword() {
        return userpassword;
    }

    public void setUserpassword(String userpassword) {
        this.userpassword = userpassword;
    }

    public String getPhonenumber() {
        return phonenumber;
    }

    public void setPhonenumber(String phonenumber) {
        this.phonenumber = phonenumber;
    }
}

三:最终结果

 

 

 

 

 

 

 

  • 1
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值