Java练习——学生信息管理系统升级版

package 学生管理系统;
import java.util.ArrayList;
import java.util.Scanner;
public class demo1 {
    public static void main(String[] args) {
        ArrayList<Student> list = new ArrayList<>();
        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("请输入您的选择");
            Scanner sc = new Scanner(System.in);
            int choose;

            if (sc.hasNextInt()) {
                choose = sc.nextInt();
                int flag = 1;
                switch (choose) {
                    case 1:
                        //添加学生
                        System.out.println(addStudent(list));
                        break;
                    case 2:
                        //删除学生
                        int result = delStudent(list);
                        if (result == 1) {
                            System.out.println("该学生信息已成功删除");
                        } else {
                            System.out.println("该学生id不存在");
                        }
                        break;
                    case 3:
                        //修改学生
                        System.out.println(modStudent(list));
                        break;
                    case 4:
                        //查询学生
                        queStudent(list);
                        break;
                    case 5:
                        //退出
                        flag = 0;
                        break;
                }
                if (flag == 0) {
                    break;
                }
            } else {
                System.out.println("输入不合法,请重新输入。");
            }
        }
    }
    public static String addStudent(ArrayList<Student> list) {
        Scanner sa = new Scanner(System.in);
        String id = "";
        while (true) {
            System.out.println("请输入学生的id");
            id = sa.next();
            int flag = 1;
            //如果学生id不唯一,那么返回“学生id已存在,请重新输入”
            for (int i = 0; i < list.size(); i++) {
                Student t = list.get(i);
                if (t.getId().equals(id)) {
//                    System.out.println("学生id已存在,请重新输入");
//                    flag = 0;
                    return "学生id已存在,请重新输入";
                }
            }
            if (flag == 1) {
                break;
            }
        }
        System.out.println("请输入学生的姓名");
        String name = sa.next();
        int age;

        while (true) {
            Scanner sc = new Scanner(System.in);
            System.out.println("请输入学生的年龄");
            if (sc.hasNextInt()) {
                age = sc.nextInt();
                break;
            } else {
                System.out.println("您输入的年龄不符合要求,请重新输入");
                continue;
            }

        }
        System.out.println("请输入学生的家庭住址");
        String homeAddress = sa.next();
        Student s = new Student(id, name, age, homeAddress);
        list.add(s);
        String result = "学生信息添加成功";
        return result;
    }
    public static int delStudent(ArrayList<Student> list) {
        Scanner sa = new Scanner(System.in);
        String id = "";
        System.out.println("请输入要删除学生的id");
        id = sa.next();
        for (int i = 0; i < list.size(); i++) {
            Student t = list.get(i);
            if (t.getId().equals(id)) {
                list.remove(i);
//                return "该学生信息已成功删除";
                return 1;
            }
        }
//        return  "该学生id不存在";
        return 2;
    }
    public static String modStudent(ArrayList<Student> list) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入要修改的学生id");
        String id = sc.next();
        for (int i = 0; i < list.size(); i++) {
            Student s = list.get(i);
            if (s.getId().equals(id)) {
                System.out.println("请输入学生的姓名");
                String name = sc.next();
                int age = 0;
                while (true) {
                    Scanner sa = new Scanner(System.in);
                    System.out.println("请输入学生的年龄");
                    if (sa.hasNextInt()) {
                        age = sa.nextInt();
                        break;
                    } else {
                        System.out.println("您输入的年龄不符合要求,请重新输入");
                    }
                }
                System.out.println("请输入学生的家庭住址");
                String homeAddress = sc.next();
                Student t = new Student(id, name, age, homeAddress);
                list.set(i, t);
                return "学生信息已修改完成";
            }
        }
        return "学生信息不存在";
    }
    public static void queStudent(ArrayList<Student> list){
        if(list.size() == 0) {
            System.out.println(list.size());
            System.out.println("当前无学生信息,请添加后再查询");
        }else {
            System.out.println("id\t\t\t姓名\t年龄\t家庭住址");
            for(int i = 0;i< list.size();i++){
                Student s = list.get(i);
                System.out.print(s.getId()+"\t");
                System.out.print(s.getName()+"\t\t");
                System.out.print(s.getAge()+"\t\t");
                System.out.println(s.getHomeAddress()+"\t");
            }
        }
    }
}
package 面向对象进阶.demo1;

public class Student {
    //属性:姓名,性别,年龄
    private String name;
    private int age;
    private String gender;

    public static String teacherName;

    public Student() {
    }

    public Student(String name, int age, String gender) {
        this.name = name;
        this.age = age;
        this.gender = gender;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public void study(){
        System.out.println(name+"正在学习");
    }

    public void show(){
        System.out.println(name+","+age+","+gender+","+teacherName);
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public String getGender() {
        return gender;
    }

    public void setGender(String gender) {
        this.gender = gender;
    }
}

以上为普通版,接下来为升级版

需求:

为学生管理系统书写一个登陆、注册、忘记密码的功能。

只有用户登录成功之后,才能进入到学生管理系统中进行增删改查操作。

package 学生管理系统;
import java.util.ArrayList;
import java.util.Random;
import java.util.Scanner;
public class demo2 {
    public static void main(String[] args) {
        ArrayList<studentPlus> list = new ArrayList<>();
        while (true){
            System.out.println("欢迎来到学生管理系统");
            System.out.println("请选择操作1登录 2注册 3忘记密码 4退出");
            Scanner sc = new Scanner(System.in);
            int choose = sc.nextInt();
            int flag=1;
            switch(choose){
                case 1:
                    //登录
                    login(list);
                    break;
                case 2:
                    //注册
                    register(list);
                    break;
                case 3:
                    //忘记密码
                    forPassword(list);
                    break;
                case 4:
                    //退出
                    flag=0;
                    break;
            }
            if(flag==0){
                break;
            }
        }

    }
    public static void register(ArrayList<studentPlus> list){
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入用户名");
        String username = sc.next();
        String password;
        String perWord;
        String phoneWord;

        while (true){
            System.out.println("请输入密码");
            password = sc.next();
            System.out.println("请再次输入密码验证");
            String password1 = sc.next();
            if(password1.equals(password)){
                break;
            }else {
                System.out.println("两次输入的密码不一致,请重新输入");
            }
        }

        while (true){
            System.out.println("请输入身份证号");
            perWord = sc.next();
            if (perWord.length() == 18&&perWord.charAt(0)!=0){
                String digits = perWord.substring(0, 17);
                String lastCharacter = perWord.substring(17);

                boolean isAllDigits = digits.matches("\\d+");
                boolean isLastCharacterValid = lastCharacter.matches("[0-9Xx]");

                if (isAllDigits && isLastCharacterValid) {
                    System.out.println("输入合法");
                    break;
                } else {
                    System.out.println("输入不合法,请重新输入!");
                    System.out.println("请重新输入!");
                }
            }else {
                System.out.println("输入不合法,请重新输入!");
            }
        }


        while (true){
            System.out.println("请输入手机号");
            phoneWord = sc.next();

            if(phoneWord.length() == 11&&phoneWord.charAt(0)!=0){
                boolean isAllDigits = phoneWord.matches("\\d{11}");

                if (isAllDigits) {
                    System.out.println("输入合法");
                    break;
                } else {
                    System.out.println("输入不合法,请重新输入!");
                }
            }
        }
        studentPlus s=new studentPlus(username,password,perWord,phoneWord);
        list.add(s);
        System.out.println("注册成功!");
    }
    public static void login(ArrayList<studentPlus> list){
        Scanner sc = new Scanner(System.in);
        int flag = 1;
        studentPlus s=new studentPlus();
        String password;
        System.out.println("请输入用户名");
        String username = sc.next();

        for (int i = 0; i < list.size(); i++) {
            s=list.get(i);
            if(s.getUserName().equals(username)){
                flag=0;
                System.out.println("用户存在");
                break;
            }
        }
        if (flag==0){
            //存在用户
            int flag1=0;
            for (int i = 0; i < 3; i++) {
                System.out.println("请输入密码:");
                password = sc.next();
                if(s.getPassWord().equals(password)){
                    System.out.println("密码正确");
                    flag1=1;
                    break;
                }else {
                    System.out.println("输入的密码不正确,请重新输入");
                }
            }

            if(flag1 == 0){
                System.out.println("错误次数超过三次,请重新选择");
                System.exit(0);
            }

            while (true){
                System.out.println("请输入以下验证码");

                StringBuilder code = new StringBuilder();
                Random random = new Random();
                for (int j = 0; j < 4; j++) {
                    int digit = random.nextInt(10); // 生成0到9之间的随机数
                    code.append(digit);
                }
                System.out.println(code);
                String scCode= sc.next();
                if(code.toString().equals(scCode)){
                    System.out.println("登录成功");
                    break;
                }else {
                    System.out.println("输入的验证码不正确,请重新输入");
                }
            }
        }else {
            System.out.println("该用户不存在,请重新输入");
        }
    }

    public static void forPassword(ArrayList<studentPlus>list){
        System.out.println("请输入用户名");
        Scanner sc = new Scanner(System.in);
        String username = sc.next();
        studentPlus s=new studentPlus();
        int flag =1;
        for (int i = 0; i < list.size(); i++) {
            s=list.get(i);
            if(s.getUserName().equals(username));
            flag=0;
            break;
        }
        if (flag==0) {
            //存在用户
            System.out.println("用户存在");
            System.out.println("请输入身份证号码");
            String perPassword = sc.next();
            System.out.println("请输入手机号");
            String phonePassword = sc.next();
            if (s.getPerWord().equals(perPassword)&&s.getPhoneWord().equals(phonePassword)){
                System.out.println("请输入要修改的密码");
                String password = sc.next();
                s.setPassWord(password);
                System.out.println("修改成功");
            }else {
                System.out.println("账号信息不匹配,修改失败");
            }
        }
    }
}
package 面向对象进阶.demo1;

public class StudentTest {
    public static void main(String[] args) {
        //1.创建一个学生对象

        Student.teacherName = "阿伟老师";

        Student s1 = new Student();
        s1.setName("张三");
        s1.setAge(23);
        s1.setGender("男");

//        s1.teacherName = "阿伟老师";

        s1.study();
        s1.show();

        //1.创建二个学生对象
        Student s2 = new Student();
        s2.setName("李四");
        s2.setAge(24);
        s2.setGender("女");

        s2.study();
        s2.show();
    }
}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

北国137

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值