Java-学生管理系统[进阶](登录系统)

这次我们来尝试使用Java 实现一下**"学生管理系统"** ,顾名思义,就是实现一个能用来管理学生各种数据的系统 。在后续学习中我们将对**"学生管理系统"** 进行++两种实现++:

📚 学生管理系统[初阶](不带模拟登录系统)------(传送门: Java-学生管理系统[初阶]-CSDN博客)

📚 学生管理系统[进阶](附带模拟登录系统)------(我们这次讲这个)

在这篇文章学习实现"学生管理系统"之前,++需要我们了解并学习过以下知识点:++

📕 Java的输入和输出

📕 Java的分支与循环

📕 Java的数组

📕 Java的方法(定义 调用 重载)

📕 Java的初阶面向对象(类和对象 构造方法)

📕 Java的集合(基本使用)

前言:

📚 在实现**"学生管理系统[进阶]"** 之前,我们先需要明确一下++此篇文章中我们的目标++:

此次我们的目标是:以上一篇文章中学习的"学生管理系统[初阶]"为基础上再实现一个"模拟用户登录"的功能大概能细分为以下几个功能

📕 "学生管理系统"用户的登录("用户名","密码","验证码")

📕 "学生管理系统"用户的注册("用户名","密码","身份证号","手机号")

📕 "学生管理系统"用户忘记密码(修改)(输入:"用户名","身份证号","手机号";修改:"密码")

++(在上一篇中已经编写过的代码,这篇文章就会一带而过了,如果有兴趣的朋友可以去上一篇进行学习~)++

一、创建用户类

因为每个**"用户"** 都有不同的"用户名","密码","手机号","身份证号" ,而对这种繁杂的数据进行处理,最好的方法就是创建一个拥有这些属性的"类" 。所以我们第一步先创建用户类~

先创建出一个**"User"文件**:

用户的属性:"用户名","密码","手机号","身份证号":

用户的**"get"** ,"set" 和**"构造"**:

二、创建系统菜单

我们知道,再平常使用软件时,账户也不是唯一的,所以为了准确的便捷的存放多个账户 ,我们还是需要先创建一个<集合>

然后就是此篇文章中最简单的部分~就和往常一样,使用while()循环switch()语句就能够解决啦:

📌 只需要通过一个String的输入 ,然后进入switch()分别进行判断

📕 如果为"1"则进入++"登录方法"++

📕 如果为"2"则进入++"注册方法"++

📕 如果为"3"则进入++"忘记密码方法"++

📕 如果为"0"则++退出登录++

三、实现用户注册功能

注册!"学生管理系统[进阶]" 中最难的一个方法,(本来想放在后面讲的,但是不注册用户就没法登录 ...不注册用户就没法忘记(修改)密码...所以只能先讲注册了)

由于比较复杂,让我们将**"注册功能"** 分成四步,分别进行讲解吧:

① 用户名的注册

📌 ++要求++:

📚 注册用户名(++需要满足以下要求++):

📕 输入的用户名必须唯一

📕 用户名长度 必须在3~15位之间

📕 用户名必须同时拥有字母与数字 ,并且只能由字母与数字组成

编写思路

① 由于用户名必须唯一 ,所以我们在注册用户名的时候,必须先对"注册用户名"在<集合>进行查找 ,如果能找到该"注册用户名" ,代表用户名失去了唯一性,便不能够进行注册。

📚 (可以创建一个**"FindNum"** 方法,对<集合>中的"用户"进行遍历 ,可以使用++equals()方法++ 对**"注册用户名"是否重复进行判断**)

② 在注册用户名时,我们需要对"注册用户名"的长度进行判断 ,如果长度不在[3~15]之间 (可以使用**String.length()**进行判断),则不能够进行注册。

③ 我们必须保证用户名必须有数字和字母 ,并且只能有数字和字母 。那么我们可以创建一个方法"Num"在其中创建两个计数器"num1"和"num2" ,通过 fori( ) 循环 对**"注册用户名"** 分别 charAt(i) 索引 ,若该字符为数字,则num1++ ,若该字符为字母,则num2++若都不是,则返回"false"若num1与num2均 >0 ,则返回"true"

📚 (可以使用 Character.isLetter()Character.isDigit() 判断是否为"字母"或"数字")

++代码实现++:

java 复制代码
    public static void enroll(ArrayList<User> list) {
        Scanner in = new Scanner(System.in);
        System.out.println("请输入注册的用户名:");
        out:while (true) {
            String account = in.next();
            int num = FindNum(list, account);
            if (num >= 0) {
                System.out.println("该用户名已被注册,请重新输入:");
            } else {
                if (!Num(account)) {
                    System.out.println("格式错误,请重新输入:");
                   }
                else {
               ---------开始输入密码---------

++"FindNum"方法实现++:

java 复制代码
    public static int FindNum(ArrayList<User> list, String account) {
        for (int i = 0; i < list.size(); i++) {
            User user = list.get(i);
            if (user.getAccount().equals(account)) {
                return i;
            }
        }
        return -1;
    }

++"Num"方法实现++:

java 复制代码
    public static boolean Num(String account) {
        int num1 = 0;
        int num2 = 0;
        if (account.length() >= 3 && account.length() <= 15) {
            char[] s = account.toCharArray();
            for (int i = 0; i < s.length; i++) {
                if (Character.isLetter(s[i])) {
                    num1++;
                } else if (Character.isDigit(s[i])) {
                    num2++;
                }else{
                    return false;
                }
            }
        }
        if (num1 > 0 && num2 > 0) {
            return true;
        }
        return false;
    }

② 设置密码

📌 ++要求++:

📕 从键盘中输入两次,如果输入两次都一致则设置成功

这个还是比较简单的,只需要使用**equasl()**进行比较以下就行~

++代码实现++

java 复制代码
       while(true) {
              System.out.println("请输入注册的密码:");
              String num1 = in.next();
              System.out.println("请再次输入注册的密码:");
              String num2 = in.next();
              if (!num1.equals(num2)) {
                  System.out.println("两次输入密码不一致,请重新输入:");
               } else {
      //---------开始输入身份证号--------

③ 输入身份证号码

📌 ++要求++:

📚 对于身份证号码的格式(++有以下要求++):

📕 长度必须等于18

📕 开头不能为0

📕 前17位必须为数字,最后一位可以是数字,也可以是大写' X '或小写' x '

编写思路

① 使用**length()**对长度进行判断。

② 使用charAt(0)索引对开头与' 0 '进行比较

③ 创建方法**"userNum"** ,使用for()循环遍历"身份证号码"的各个字符 ,确保前17位为数字最后一位可以是数字也可以是'X','x'。

📚 (仍然是使用 Character.isDigit() 对 charAt(i) 的字符进行逐一判断)

++代码实现++:

java 复制代码
            System.out.println("请输入身份证号码:");
            while(true) {
                 String usernum = in.next();
                 if (!userNum(usernum)) {
                 System.out.println("身份证输入格式错误,请重新输入:");
                 }else{
         //---------开始输入手机号---------

++"userNum"方法实现++:

java 复制代码
    public static boolean userNum(String usernum){
        if(usernum.length() != 18 || usernum.charAt(0) == '0'){
            return false;
        }else{
            for (int i = 0; i < usernum.length(); i++) {
                if((i == usernum.length() - 1) && (usernum.charAt(i) == 'x' ||
                        usernum.charAt(i) == 'X')){
                    return true;
                }else if(!Character.isDigit(usernum.charAt(i))){
                    return false;
                }
            }
        }
        return true;
    }

④ 输入手机号

📌++要求++:

📚 手机号格式++(满足以下要求)++:

📕 长度为11位

📕 不能以0开头

📕 必须都是数字

编写思路

其实和上面的**"身份证号码验证"**大同小异,按照上面的方法就好啦~

(此处定义新方法"phoneNum"但实现原理基本和"userNum"方法是一样的)

++代码实现++:

java 复制代码
               while(true) {
                    System.out.println("请输入手机号:");
                    String phone = in.next();
                    if (!phoneNum(phone)) {
                    System.out.println("手机号输入错误,请重新输入");
                 }else{
                     System.out.println("帐号注册成功!");
                     User user = new User(account,num1,usernum,phone);
                     list.add(user);
                     break out;
                }

++"phoneNum"方法实现++:

java 复制代码
    public static boolean phoneNum(String phone){
        if(phone.charAt(0) == '0' || phone.length() != 11){
            return false;
        }else{
            for (int i = 0; i < phone.length(); i++) {
                if(!Character.isDigit(phone.charAt(i))){
                    return false;
                }
            }
        }
        return true;
    }

至此,第一个功能:注册功能就完成啦~

四、登录功能

登录功能与注册功能相比起来,还是要简单上许多的~但仍然有三步繁琐的方法 ,为了讲解方便,我们还是分三块讲解~

① 输入用户名

📌 ++要求++:

📕 如果用户名未注册,直接结束方法,并且提示:" 用户名未注册,需要先注册 "

📚 (仍然可以通过**"FindNum"的比较方法进行查找** ,并且**"FindNum"返回的<集合>下标也是非常的有用~**)

++代码实现++:

java 复制代码
    public static void login(ArrayList<User> list) {
        Scanner in = new Scanner(System.in);
        System.out.println("请输入用户名:");
        int n = 3;//用于控制密码输入3次
        out:while (true) {
            String id = in.next();
            int num = FindNum(list, id);
            if (num < 0) {
                System.out.println("该用户名不存在,请重新输入:");
            } else {
                System.out.println("用户名输入正确");

② 输入密码

📌 ++要求++:

📕 需要与**"账户"原密码**相同

📕 若输入密码错误则会给予警告,三次 之后则被强制退出登录

📚 (我们可以使用while(自减变量) 来控制**"三次"**)

++代码实现++:

java 复制代码
    while (n >= 0) {
        User user = list.get(num);
        System.out.println("请输入密码:");
        String num1 = in.next();
        if (!user.getPassword().equals(num1)) {
            if(n > 0) {
                System.out.println("密码输入错误,你还有" + n-- + "次机会!");
            }else if(n == 0){
                System.out.println("你已经没有机会了!");
                break out;
            }
        } else {
            System.out.println("密码输入正确");

③ 输入验证码

此块儿为**"登录功能"** 中最难的一步,我们需要灵活的使用Random()随机生成字符或数字

📌 ++要求++:

📚 生成验证码(++有以下规则++):

📕 长度为5

📕 由4位大写小写字母1位数字组成

📚(使用 **Random()**随机生成)

📕 同一个字母可以重复,数字出现在任意位置

📚(使用for()循环生成,可生成随机数代表数字出现的位置)

++编写思路++:

① 使用length()对长度进行比较。

② 对于生成**"大写字母"、"小写字母"、"数字"** 。我们都可以通过Ascii码转换而得 ~没错,也就是说我们可以创建一个方法**"phonerandom"** ,在其中使用Random()随机生成"大写字母"、"小写字母"对应的Ascii码范围间的数字再将其传换成字符 ,通过StringBuilder()的append()方法 来进行拼接 ,最后再将其转换为String值进行返回。

③ 而对于那一个数字出现的位置,我们可以随机生成一个[0,5)的数字代表了for()循环在进行时,i = ?时在会StringBuilder其中插入那唯一的数字

++代码实现++:

java 复制代码
        while (true) {
            String s = phonerandom();
            System.out.println(s);
            System.out.println("请输入验证码:");
            String ss = in.next();
            if (!s.equals(ss)) {
                System.out.println("验证码输入错误,请重新输入:");
            }else{
                System.out.println("验证码输入正确");
                System.out.println("登陆成功");
                STU();
                break out;
            }
        }

++"phonerandom"方法实现++:

java 复制代码
    public static String phonerandom(){
        Random random = new Random();
        StringBuilder sb = new StringBuilder();
        int num1 = random.nextInt(5);//唯一数字出现的位置
        for (int i = 0; i < 5; i++) {
            int num2 = random.nextInt(2);//字母的大小写
            if(i == num1){
                int n = random.nextInt(10)+48;//数字的Ascii
                sb.append((char)n);
            }else if(num2 == 0){
                int n = random.nextInt(26)+97;//小写字母的Ascii
                sb.append((char)n);
            }else if(num2 == 1){
                int n = random.nextInt(26)+65;//小写字母的Ascii
                sb.append((char)n);
            }
        }
        String s = sb.toString();
        return s;
    }

五、忘记密码(修改密码)

修改密码就和我们生活中一样,需要先输入"用户名"判断是否存在该帐号 ,然后再分别输入"身份证号码"和"手机号码"进行验证,最后成功修改密码~

① 输入找回用户名

📌 ++要求++:

📕 输入想要找回的用户名,判断是否存在

📕 若不存在则直接结束方法并提示"未注册"

++编写思路++:

仍然是使用我们的**"FindNum"方法** 就能够解决啦~并使用num接收返回的<集合>下标~

++代码实现++:

java 复制代码
    public static void forget(ArrayList<User> list) {
        Scanner in = new Scanner(System.in);
        System.out.println("请输入忘记的帐号:");
        String id = in.next();
        int num = FindNum(list, id);
        if (num < 0) {
            System.out.println("该用户名不存在,请注册");
        } else {
            System.out.println("输出正确");

② 输入手机号码与身份证号码

📌 ++要求++:

📕 判断当前用户的身份证号与手机号是否正确

📕 (如果正确,则可以输入新密码进行修改)

📕 (如果不正确,则修改失败)

++编写思路++:

与上面的方法其实都大同小异,仍然还是通过"FindNum"返回的<集合>下标找到对应的帐号 ,然后再对该账号的"身份证号"和"手机号"进行判断如果都相同,则提示修改密码 ,将新密码通过临时变量"user"将原密码替换后将"user"替换到<集合>的对应位置中

++代码实现++:

java 复制代码
out:while (true) {
    String phone = in.next();
    if (!user.getPhonenumber().equals(phone)) {
        System.out.println("输入错误,请重新输入:");
    } else {
        System.out.println("输入正确");
        System.out.println("请输入你的身份证号:");
        while (true) {
            String usernum = in.next();
            if (!user.getUsernumber().equals(usernum)) {
                System.out.println("身份证输入错误,请重新输入");
            } else {
                System.out.println("输入正确");
                System.out.println("请输入新密码:");
                String newnum = in.next();
                user.setPassword(newnum);
                list.set(num,user);
                System.out.println("密码修改成功!");
                break out;
            }
        }
    }
}

六、功能演示(附源码)

📕 Student.java

java 复制代码
public class Student {
    private String id;
    private String name;
    private int age;
    private double score;

    public Student(String id, String name, int age, double score) {
        this.id = id;
        this.name = name;
        this.age = age;
        this.score = score;
    }
    public Student() {
    }

    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 double getScore() {
        return score;
    }

    public void setScore(double score) {
        this.score = score;
    }
}

📕 User.java:

java 复制代码
public class User {
    private String account;
    private String password;
    private String usernumber;
    private String phonenumber;

    public User() {
    }

    public User(String account, String password, String usernumber, String phonenumber) {
        this.account = account;
        this.password = password;
        this.usernumber = usernumber;
        this.phonenumber = phonenumber;
    }

    public String getAccount() {
        return account;
    }

    public void setAccount(String account) {
        this.account = account;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public String getUsernumber() {
        return usernumber;
    }

    public void setUsernumber(String usernumber) {
        this.usernumber = usernumber;
    }

    public String getPhonenumber() {
        return phonenumber;
    }

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

📚 Test.java:

java 复制代码
import javax.xml.stream.events.Characters;
import java.util.*;
public class Test {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        ArrayList<User> users = new ArrayList<>();//存储用户信息
        outside:
        while (true) {
            System.out.println("------------欢迎来到学生管理系统------------");
            System.out.println("1:登录");
            System.out.println("2:注册");
            System.out.println("3:忘记密码");
            System.out.println("0:退出登录");
            System.out.println("请输入你的选择:");
            String s = in.next();
            switch (s) {
                case "1" -> login(users);
                case "2" -> enroll(users);
                case "3" -> forget(users);
                case "0" -> {
                    System.out.println("退出登录");
                    break outside;
                }
                default -> System.out.println("输入错误,请重新输入");
            }
        }
    }
    public static void forget(ArrayList<User> list) {
        Scanner in = new Scanner(System.in);
        System.out.println("请输入忘记的帐号:");
        String id = in.next();
        int num = FindNum(list, id);
        if (num < 0) {
            System.out.println("该用户名不存在,请注册");
        } else {
            System.out.println("输出正确");
            User user = list.get(num);
            System.out.println("请输入你的手机号:");
            out:while (true) {
                String phone = in.next();
                if (!user.getPhonenumber().equals(phone)) {
                    System.out.println("输入错误,请重新输入:");
                } else {
                    System.out.println("输入正确");
                    System.out.println("请输入你的身份证号:");
                    while (true) {
                        String usernum = in.next();
                        if (!user.getUsernumber().equals(usernum)) {
                            System.out.println("身份证输入错误,请重新输入");
                        } else {
                            System.out.println("输入正确");
                            System.out.println("请输入新密码:");
                            String newnum = in.next();
                            user.setPassword(newnum);
                            list.set(num,user);
                            System.out.println("密码修改成功!");
                            break out;
                        }
                    }
                }
            }
        }
    }
    public static void login(ArrayList<User> list) {
        Scanner in = new Scanner(System.in);
        System.out.println("请输入用户名:");
        int n = 3;//用于控制密码输入3次
        out:while (true) {
            String id = in.next();
            int num = FindNum(list, id);
            if (num < 0) {
                System.out.println("该用户名不存在,请重新输入:");
            } else {
                System.out.println("用户名输入正确");
                while (n >= 0) {
                    User user = list.get(num);
                    System.out.println("请输入密码:");
                    String num1 = in.next();
                    if (!user.getPassword().equals(num1)) {
                        if(n > 0) {
                            System.out.println("密码输入错误,你还有" + n-- + "次机会!");
                        }else if(n == 0){
                            System.out.println("你已经没有机会了!");
                            break out;
                        }
                    } else {
                        System.out.println("密码输入正确");
                        while (true) {
                            String s = phonerandom();
                            System.out.println(s);
                            System.out.println("请输入验证码:");
                            String ss = in.next();
                            if (!s.equals(ss)) {
                                System.out.println("验证码输入错误,请重新输入:");
                            }else{
                                System.out.println("验证码输入正确");
                                System.out.println("登陆成功");
                                STU();
                                break out;
                            }
                        }
                    }
                }
            }
        }
    }
    public static String phonerandom(){
        Random random = new Random();
        StringBuilder sb = new StringBuilder();
        int num1 = random.nextInt(5);//唯一数字出现的位置
        for (int i = 0; i < 5; i++) {
            int num2 = random.nextInt(2);//字母的大小写
            if(i == num1){
                int n = random.nextInt(10)+48;//数字的Ascii
                sb.append((char)n);
            }else if(num2 == 0){
                int n = random.nextInt(26)+97;//小写字母的Ascii
                sb.append((char)n);
            }else if(num2 == 1){
                int n = random.nextInt(26)+65;//小写字母的Ascii
                sb.append((char)n);
            }
        }
        String s = sb.toString();
        return s;
    }
    public static void enroll(ArrayList<User> list) {
        Scanner in = new Scanner(System.in);
        System.out.println("请输入注册的用户名:");
        out:while (true) {
            String account = in.next();
            int num = FindNum(list, account);
            if (num >= 0) {
                System.out.println("该用户名已被注册,请重新输入:");
            } else {
                if (!Num(account)) {
                    System.out.println("格式错误,请重新输入:");
                }
                //---------开始输入密码---------
                else {
                    while(true) {
                        System.out.println("请输入注册的密码:");
                        String num1 = in.next();
                        System.out.println("请再次输入注册的密码:");
                        String num2 = in.next();
                        if (!num1.equals(num2)) {
                            System.out.println("两次输入密码不一致,请重新输入:");
                        } else {
                            //---------开始输入身份证号--------
                            System.out.println("请输入身份证号码:");
                            while(true) {
                                String usernum = in.next();
                                if (!userNum(usernum)) {
                                    System.out.println("身份证输入格式错误,请重新输入:");
                                }else{
                                    //---------开始输入手机号---------
                                    while(true) {
                                        System.out.println("请输入手机号:");
                                        String phone = in.next();
                                        if (!phoneNum(phone)) {
                                            System.out.println("手机号输入错误,请重新输入");
                                        }else{
                                            System.out.println("帐号注册成功!");
                                            User user = new User(account,num1,usernum,phone);
                                            list.add(user);
                                            break out;
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }

    public static int FindNum(ArrayList<User> list, String account) {
        for (int i = 0; i < list.size(); i++) {
            User user = list.get(i);
            if (user.getAccount().equals(account)) {
                return i;
            }
        }
        return -1;
    }


    public static boolean Num(String account) {
        int num1 = 0;
        int num2 = 0;
        if (account.length() >= 3 && account.length() <= 15) {
            char[] s = account.toCharArray();
            for (int i = 0; i < s.length; i++) {
                if (Character.isLetter(s[i])) {
                    num1++;
                } else if (Character.isDigit(s[i])) {
                    num2++;
                }else{
                    return false;
                }
            }
        }
        if (num1 > 0 && num2 > 0) {
            return true;
        }
        return false;
    }
    public static boolean userNum(String usernum){
        if(usernum.length() != 18 || usernum.charAt(0) == '0'){
            return false;
        }else{
            for (int i = 0; i < usernum.length(); i++) {
                if((i == usernum.length() - 1) && (usernum.charAt(i) == 'x' ||
                        usernum.charAt(i) == 'X')){
                    return true;
                }else if(!Character.isDigit(usernum.charAt(i))){
                    return false;
                }
            }
        }
        return true;
    }
    public static boolean phoneNum(String phone){
        if(phone.charAt(0) == '0' || phone.length() != 11){
            return false;
        }else{
            for (int i = 0; i < phone.length(); i++) {
                if(!Character.isDigit(phone.charAt(i))){
                    return false;
                }
            }
        }
        return true;
    }
    public static void add(ArrayList<Student> stu) {
        System.out.println("添加学生");
        Scanner in = new Scanner(System.in);
        while (true) {
            System.out.println("请输入学生id:");
            String id1 = in.next();
            int n = findnum(stu,id1);
            if(n >= 0){
                System.out.println("此学号已存在,请重新输入!");
                continue;
            }
            System.out.println("请输入学生姓名:");
            String name1 = in.next();
            System.out.println("请输入学生年龄:");
            int age1 = in.nextInt();
            System.out.println("请输入学生成绩:");
            double score1 = in.nextDouble();
            Student s = new Student(id1,name1,age1,score1);
            stu.add(s);
            System.out.println("学生添加成功");
            break;
        }
    }

    public static void delete(ArrayList<Student> stu) {
        System.out.println("删除学生");
        Scanner in = new Scanner(System.in);
        System.out.println("请输入你要删除的学生id:");
        String id1 = in.next();
        int num = 0;
        for (int i = 0; i < stu.size(); i++) {
            Student s = stu.get(i);
            if(s.getId().equals(id1)){
                System.out.println("删除成功!");
                stu.remove(findnum(stu,id1));
                num++;
            }
        }
        if(num == 0) {
            System.out.println("未找到此id的学生,删除失败");
        }
    }
    public static void revise(ArrayList<Student> stu) {
        Scanner in = new Scanner(System.in);
        System.out.println("修改学生");
        while (true) {
            System.out.println("请输入学生的id:");
            String id1 = in.next();
            int num = findnum(stu, id1);
            if (num < 0) {
                System.out.println("未找到此id的学生,请重新输入");
            }else {
                System.out.println("请输入学生新的id:");
                String id2 = in.next();
                int num1 = findnum(stu, id2);
                if(num1 >= 0){
                    System.out.println("此id已经拥有,请重新输入");
                }else{
                    System.out.println("请输入学生新的姓名:");
                    String name1 = in.next();
                    System.out.println("请输入学生新的年龄:");
                    int age1 = in.nextInt();
                    System.out.println("请输入学生新的成绩:");
                    double score1 = in.nextDouble();
                    Student s = new Student(id2, name1, age1, score1);
                    stu.set(num, s);
                    System.out.println("学生修改成功");
                    break;
                }
            }
        }
    }

    public static void print(ArrayList<Student> stu) {
        System.out.println("查询学生");
        if(stu.size() == 0){
            System.out.println("目前系统中暂无学生!");
        }
        for (int i = 0; i < stu.size(); i++) {
            Student s = stu.get(i);
            System.out.println(String.format("id:%-6s",s.getId()) + String.format("name:%-6s",s.getName()) + String.format("age:%-6d",s.getAge()) + String.format("score:%-6.2f",s.getScore()));
        }
    }
    public static int findnum(ArrayList<Student> stu,String id1) {
        for (int i = 0; i < stu.size(); i++) {
            Student s = stu.get(i);
            if(s.getId().equals(id1)){
                return i;
            }
        }
        return -1;
    }
    public static void STU() {
        ArrayList<Student> stu = new ArrayList<>();
        outside:
        while (true) {
            Scanner in = new Scanner(System.in);
            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("请输入你的选择:");
            String num = in.next();
            switch (num) {
                case "1" -> add(stu);
                case "2" -> delete(stu);
                case "3" -> revise(stu);
                case "4" -> print(stu);
                case "5" -> {
                    System.out.println("退出学生管理系统");
                    break outside;
                }
                default -> System.out.println("输入错误,请重新输入");
            }
        }
    }
}

那么关于"学生管理系统"的进阶方法也就为大家讲解完啦~如果有哪里不懂或我说的不够清楚,可以在评论区多多留言提问哦~我也会细心回答的,如果有错误也请大家多多指出,那我们下次再见啦~

相关推荐
芒果披萨3 分钟前
El表达式和JSTL
java·el
q567315234 分钟前
在 Bash 中获取 Python 模块变量列
开发语言·python·bash
白榆maple12 分钟前
(蓝桥杯C/C++)——基础算法(下)
算法
JSU_曾是此间年少16 分钟前
数据结构——线性表与链表
数据结构·c++·算法
许野平29 分钟前
Rust: 利用 chrono 库实现日期和字符串互相转换
开发语言·后端·rust·字符串·转换·日期·chrono
也无晴也无风雨32 分钟前
在JS中, 0 == [0] 吗
开发语言·javascript
狂奔solar40 分钟前
yelp数据集上识别潜在的热门商家
开发语言·python
duration~44 分钟前
Maven随笔
java·maven
zmgst1 小时前
canal1.1.7使用canal-adapter进行mysql同步数据
java·数据库·mysql
跃ZHD1 小时前
前后端分离,Jackson,Long精度丢失
java