【java】学生管理系统功能加强控制台版

我在我原来写的学生管理系统的基础上增加了用户的登录功能,注册了之后登录成功了,才能进行,学生的信息管理,同时在每个功能的实现还加入了一些条件,我懒得细说了,最近考完试了,才把这个之前遗留下来的初学项目弄完。

学生类:

public class student {
    private String name;
    private String id;
    private String address;

    public student() {
    }

    public student(String name, String id, String address) {
        this.name = name;
        this.id = id;
        this.address = address;
    }

    /**
     * 获取
     * @return name
     */
    public String getName() {
        return name;
    }

    /**
     * 设置
     * @param name
     */
    public void setName(String name) {
        this.name = name;
    }

    /**
     * 获取
     * @return id
     */
    public String getId() {
        return id;
    }

    /**
     * 设置
     * @param id
     */
    public void setId(String id) {
        this.id = id;
    }

    /**
     * 获取
     * @return address
     */
    public String getAddress() {
        return address;
    }

    /**
     * 设置
     * @param address
     */
    public void setAddress(String address) {
        this.address = address;
    }

    public String toString() {
        return "student{name = " + name + ", id = " + id + ", address = " + address + "}";
    }
}

用户类:

public class User {
    private String name;
    private String password;
    private String ID;
    private String phonenumber;


    public User() {
    }

    public User(String name, String password, String ID, String phonenumber) {
        this.name = name;
        this.password = password;
        this.ID = ID;
        this.phonenumber = phonenumber;
    }

    /**
     * 获取
     * @return name
     */
    public String getName() {
        return name;
    }

    /**
     * 设置
     * @param name
     */
    public void setName(String name) {
        this.name = name;
    }

    /**
     * 获取
     * @return password
     */
    public String getPassword() {
        return password;
    }

    /**
     * 设置
     * @param password
     */
    public void setPassword(String password) {
        this.password = password;
    }

    /**
     * 获取
     * @return ID
     */
    public String getID() {
        return ID;
    }

    /**
     * 设置
     * @param ID
     */
    public void setID(String ID) {
        this.ID = ID;
    }

    /**
     * 获取
     * @return phonenumber
     */
    public String getPhonenumber() {
        return phonenumber;
    }

    /**
     * 设置
     * @param phonenumber
     */
    public void setPhonenumber(String phonenumber) {
        this.phonenumber = phonenumber;
    }

    public String toString() {
        return "User{name = " + name + ", password = " + password + ", ID = " + ID + ", phonenumber = " + phonenumber + "}";
    }
}

源码:

import java.util.ArrayList;
import java.util.Random;
import java.util.Scanner;

public class system {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        ArrayList<student> s = new ArrayList<>();
        ArrayList<User> d =new ArrayList<>();
        User u1=new User("qinluoyu06","qly123456789","452224200009034016","18278227871");
        d.add(u1);
        boolean x=true;
        while (x){
            sign_main();
            int c=sc.nextInt();
            switch (c){
                case 1:
                    if (sign(d)){
                        xueshengxitong(s);
                    }
                    break;
                case 2:
                    NEW(d);
                    break;
                case 3:
                    forget_password(d);
                    break;
                    case 4:
                    x=false;
                    break;
                default:
                    System.out.println("没有这个选项");
                    break;
            }

        }
    }
    public static void jiemian(){
        System.out.println("----------kinroy学生管理系统----------");
        System.out.println("1:添加学生信息");
        System.out.println("2:删除学生信息");
        System.out.println("3:修改学生信息");
        System.out.println("4:查询学生信息");
        System.out.println("5:退出系统");
        System.out.println("请输入序号开始操作:");
    }
    public static void add_student(ArrayList<student>s){
        Scanner sc=new Scanner(System.in);
        student stu=new student();
        System.out.println("请输入学生的id:");
        String s1=sc.next();
        stu.setId(s1);
        //判断学号是否唯一
        for (int i = 0; i < s.size(); i++) {
            if (stu.getId().equals(s.get(i).getId())){
                System.out.println("您输入的id已存在,请重新输入:");
                add_student(s);
                return;
            }
        }

        System.out.println("请输入学生的姓名:");
       String s2=sc.next();
       stu.setName(s2);
        System.out.println("请输入学生的住址:");
        String s3=sc.next();
        stu.setAddress(s3);
        s.add(stu);


    }
    public static void del_student(ArrayList<student>s){
        Scanner sc=new Scanner(System.in);
        System.out.println("请输入要删除的学生id:");
        String id=sc.next();
        for (int i = 0; i < s.size(); i++) {
            if (s.get(i).getId().equals(id)){
                s.remove(i);
                System.out.println("删除成功!");
                return;
            }
        }
        System.out.println("你输入的id不存在");
    }
    public static void mod_student(ArrayList<student>s){
        Scanner sc=new Scanner(System.in);
        System.out.println("请输入要修改信息的学生的ID:");
        String mod=sc.next();
        for (int i = 0; i < s.size(); i++) {
            if (s.get(i).getId().equals(mod)){
                System.out.println("修改id---扣1   修改名字---扣2   修改地址---扣3   全部要改---扣4");
                int n= sc.nextInt();
                switch (n){
                    case 1:
                        System.out.println("请输入新id:");
                        String id=sc.next();
                        s.get(i).setId(id);
                        System.out.println("修改成功!");
                        break;
                    case 2:
                        System.out.println("请输入新名字:");
                        String name= sc.next();
                        s.get(i).setName(name);
                        System.out.println("修改成功!");
                        break;
                    case 3:
                        System.out.println("请输入新地址:");
                        String addres=sc.next();
                        s.get(i).setAddress(addres);
                        System.out.println("修改成功!");
                        break;
                    case 4:
                        System.out.println("请输入新id:");
                        String id1=sc.next();
                        s.get(i).setId(id1);
                        System.out.println("请输入新名字:");
                        String name1= sc.next();
                        s.get(i).setName(name1);
                        System.out.println("请输入新地址:");
                        String addres1=sc.next();
                        s.get(i).setAddress(addres1);
                        System.out.println("修改成功!");
                        break;
                }
                return;
            }

        }
        System.out.println("您输入的id不存在");
    }
    public static void chack_student(ArrayList<student>s){
        Scanner sc=new Scanner(System.in);
        System.out.println("显示所以学生信息---扣1   查询单个学生信息---扣2");
        int n= sc.nextInt();
        switch (n){
            case 1:
                System.out.println("ID          姓名          住址          ");
                System.out.println("----------------------------------------");
                for (int i = 0; i < s.size(); i++) {
                    System.out.println(s.get(i).getId()+"       "+s.get(i).getName()+"       "+s.get(i).getAddress());
                }
                return;
            case 2:
                System.out.println("输入你要查询的学生ID:");
                String id=sc.next();
                for (int j = 0; j < s.size(); j++) {
                    if (s.get(j).getId().equals(id)){
                        System.out.println("ID          姓名          住址          ");
                        System.out.println("----------------------------------------");
                        System.out.println(s.get(j).getId()+"       "+s.get(j).getName()+"       "+s.get(j).getAddress());
                    }
                }
                return;
        }
    }
    public static void sign_main(){
        System.out.println("---------欢迎来到kinroy学生管理系统---------");
        System.out.println("请选择操作:");
        System.out.println("1:登录     2:注册     3:忘记密码");
    }
    public static void NEW(ArrayList<User>d){
        Scanner sc=new Scanner(System.in);
        User u=new User();
        System.out.println("请输入弄要创建的用户名:");
        String name= sc.next();
        if (name.length()>15||name.length()<3){
            System.out.println("用户名超出最大限度!");
            NEW(d);
            return;
        }
        char []arr=name.toCharArray();
        int n=0;
        for (int i = 0; i < arr.length; i++) {
            if (arr[i]<='9'&&arr[i]>='0'){
                n++;
            }
        }
        if (n==name.length()){
            System.out.println("用户名不能全为数字!");
            NEW(d);
            return;
        }
        for (int i = 0; i < d.size(); i++) {
            if (d.get(i).getName().equals(name)){
                System.out.println("你输入的用户名已存在!");
                NEW(d);
                return;
            }
        }
        u.setName(name);
       String password1=new String();
        boolean c=false;
        while (!c){
            System.out.println("请输入你的密码:");
            String password=sc.next();
            System.out.println("请再次输入你的密码:");
            String repassword=sc.next();
            if (password.equals(repassword)){
                password1=password;
            }
            else{
                System.out.println("你前后输入的密码不一致");
            }
            c=password.equals(repassword);
        }
        u.setPassword(password1);

        String id=new String();
        id=id(id);
        u.setID(id);

        String phonenumber=new String();
         phonenumber=phonenumber(phonenumber);
        u.setPhonenumber(phonenumber);
      d.add(u);
    }
    public static String id(String id){
        Scanner sc=new Scanner(System.in);
        System.out.println("请输入你的身份证:");
        String id1=sc.next();
        if (id1.length()!=18){
            System.out.println("你输入的身份证有误1");
            id(id);

        }
        if (id1.charAt(0)=='0'){
            System.out.println("你输入的身份证有误2");
            id(id);

        }
        char[]arr=id1.toCharArray();
        for (int i = 0; i < arr.length-1; i++) {
            if (arr[i]>'9'||arr[i]<'0'){
                System.out.println("你输入的身份证有误3");
                id(id);

            }
        }
        if (id1.charAt(17)>'9'&&id1.charAt(17)<'0'){
            System.out.println("你输入的身份有误4");
            id(id);

        }
        id=id1;
      return id;
    }
    public static String phonenumber(String phonenumber){
        Scanner sc=new Scanner(System.in);
        System.out.println("请输入你的手机号码:");
        String phone1=sc.next();
        if (phone1.length()!=11){
            System.out.println("你输入的手机号码有误");
            phonenumber(phonenumber);

        }
        if (phone1.charAt(0)=='0'){
            System.out.println("你输入的手机号码有误");
            phonenumber(phonenumber);

        }
        char[]arr=phone1.toCharArray();
        for (int i = 0; i < arr.length; i++) {
            if (arr[i]>'9'||arr[i]<'0'){
                System.out.println("你输入的手机号码有误");
                phonenumber(phonenumber);

            }
        }
        phonenumber=phone1;
        return phonenumber;
    }
    public static boolean sign(ArrayList<User>d){
        Scanner sc=new Scanner(System.in);
        System.out.println("用户名:");
        String name=sc.next();
        System.out.println("密码:");
        String password= sc.next();
        for (int i = 0; i < d.size(); i++) {
            if (d.get(i).getName().equals(name)){
                 boolean c=check_password(password,d.get(i).getPassword());
                return c;
            }
        }
        System.out.println("用户名不存在,请先注册");
        return false;
    }
    public static boolean check_password(String password,String real){
       Scanner sc=new Scanner(System.in);
       if (real.equals(password)==true){
           System.out.println("密码正确");
       return true;
        }
       else if (real.equals(password)==false){
            System.out.println("你输入的密码有误!");
            for (int i = 3; i >0 ; i--) {
               System.out.println("你还有"+i+"次机会"+",请重新输入密码:");
               String p= sc.next();
               if (p.equals(real)){
                   return true;
               }
           }
        }
       return false;
}
    public static void xueshengxitong(ArrayList<student>s){
    Scanner sc=new Scanner(System.in);
    boolean c=true;
    while (c) {
        jiemian();
        int n = sc.nextInt();
        switch (n) {
            case 1:
                add_student(s);
                System.out.println("录入完成!");
                break;
            case 2:
                del_student(s);
                break;
            case 3:
                mod_student(s);
                break;
            case 4:
                chack_student(s);
                break;
            case 5:
                c=false;
                break;
        }
    }
}
    public static void forget_password(ArrayList<User>d){
        Scanner sc=new Scanner(System.in);
    System.out.println("请输入你的用户名:");
    String name=sc.next();
    System.out.println("请输入你注册时的电话号码:");
    String number=sc.next();
    for (int i = 0; i < d.size(); i++) {
        if (d.get(i).getName().equals(name)&&d.get(i).getPhonenumber().equals(number)){
            System.out.println("输入你的新密码:");
            String new_password=sc.next();
            d.get(i).setPassword(new_password);
        return;
        }
    }
    System.out.println("你输入的信息有误!");
}
}

写得有一点乱,但是功能实现了。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

一支猫咔qly

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

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

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

打赏作者

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

抵扣说明:

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

余额充值