首页 > 编程语言 >Java项目练习——学生管理系统

Java项目练习——学生管理系统

时间:2024-11-03 17:15:41浏览次数:5  
标签:Java String 管理系统 练习 System sc println return out

1. 整体结构

代码实现了基本的学生管理系统功能,包括登录、注册、忘记密码、添加、删除、修改和查询学生信息。
使用了ArrayList来存储用户和学生信息。
使用了Scanner类来处理用户输入。

2. 主要功能模块

登录 (logIn):验证用户名和密码,支持验证码校验。
注册 (register):验证用户名、密码、身份证号和手机号。
忘记密码 (forgetPassword):通过用户名、身份证号和手机号验证后修改密码。
管理学生信息 (Manage):提供添加、删除、修改和查询学生信息的功能。

如果有问题,希望大家指正,由于选择其他数或0的时候采用了整型,所以请大家严格按照提示输入,不然······程序包崩的

Student_JavaBean

package student_Management_System;

public class Student_JavaBean {
    private String id;
    private String name;
    private int age;
    private String address;

    public Student_JavaBean() {
    }

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

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

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

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

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

    /**
     * 获取
     * @return age
     */
    public int getAge() {
        return age;
    }

    /**
     * 设置
     * @param age
     */
    public void setAge(int age) {
        this.age = age;
    }

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

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

User_JavaBean

package student_Management_System;
public class User_JavaBean {
    //属性:用户名、密码、身份证号码、手机号码
    private String username;
    private String password;
    private String idCard;
    private String phone;

    public User_JavaBean() {
    }

    public User_JavaBean(String username, String password, String idCard, String phone) {
        this.username = username;
        this.password = password;
        this.idCard = idCard;
        this.phone = phone;
    }

    /**
     * 获取
     * @return username
     */
    public String getUsername() {
        return username;
    }

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

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

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

    /**
     * 获取
     * @return idCard
     */
    public String getIdCard() {
        return idCard;
    }

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

    /**
     * 获取
     * @return phone
     */
    public String getPhone() {
        return phone;
    }

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

主函数

package student_Management_System;

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

public class Student {
    public static void main(String[] args) {

        ArrayList<Student_JavaBean>list=new ArrayList<>();
        ArrayList<User_JavaBean> user=new ArrayList<>();
        Scanner sc=new Scanner(System.in);
        while(true) {
            System.out.println("欢迎来到学生管理系统");
            System.out.println("请选择操作1登录 2注册 3忘记密码 4退出");
            int choose_up = sc.nextInt();
            switch (choose_up) {
                case 1: {
                    logIn(user,list);
                    break;
                }
                case 2:
                    register(user);
                    searchUsername(user);
                    break;

                case 3:
                    //       1,键盘录入用户名,判断当前用户名是否存在,如不存在,直接结束方法,并提示:未注册
                    //      2,键盘录入身份证号码和手机号码
                    //	    3,判断当前用户的身份证号码和手机号码是否一致,
                    //			如果一致,则提示输入密码,进行修改。
                    //			如果不一致,则提示:账号信息不匹配,修改失败。
                    forgetPassword(user);
                    break;
                case 4:
                    return;
                default:
                    System.out.println("输入错误");
                    break;
            }
        }
    }
    public static void logIn(ArrayList<User_JavaBean>user,ArrayList<Student_JavaBean>list) {
        //用户名如果未注册,直接结束方法,并提示:用户名未注册,请先注册
        //判断验证码是否正确,如不正确,重新输入
        //再判断用户名和密码是否正确,有3次机会
        Scanner sc = new Scanner(System.in);
        while (true) {
            System.out.println("请输入用户名");
            String username = sc.next();
            boolean flag = checkHava(user,username);
            if (flag) {
                int count = 2;
                while (count >= 0) {
                    System.out.println("请输入密码");
                    String password = sc.next();
                    int flag2 = (index(user, username));
                    if (flag2 >= 0) {
                        if (user.get(index(user, username)).getPassword().equals(password)) {
                            break;
                        }
                        System.out.println("密码错误还有" + count + "次机会");
                        if (count == 0) {
                            return;
                        }
                        count--;
                    }
                }
                break;
            }
            else {
                System.out.println("登录失败,用户名不存在,请按下其它数字键重新输入,按下0退出程序");
                int temp = sc.nextInt();
                if (temp == 0) {
                    return;
                }
            }
        }
        while (true) {
                System.out.println("请输入验证码");
                String newVerificationCode = verificationCode();
                System.out.println(newVerificationCode);
                String verificationCode = sc.next();
                if (verificationCode.equals(newVerificationCode)) {
                    break;
                }
            }
        System.out.println("登录成功");
            Manage(list);
    }
    public static void Manage(ArrayList<Student_JavaBean>list){
        Scanner sc=new Scanner(System.in);
        while (true) {
            int choose = menu(sc);
            switch (choose) {
                case 1:
                    add(list);
                    break;
                case 2:
                    delete(list);
                    break;
                case 3:
                    upData(list);
                    break;
                case 4:
                    search(list);
                    break;
                case 5:
                    System.out.println("退出");
                    return;
                default:
                    System.out.println("输入错误重新输入");
                    break;
            }
        }
    }
       public static void forgetPassword(ArrayList<User_JavaBean> user) {
       Scanner sc = new Scanner(System.in);
       while (true) {
           System.out.println("请输入用户名");
           String username = sc.next();
           int index = index(user, username);
           if (index == -1) {
               System.out.println("用户名不存在,请按下其它数字键重新输入,按下0退出程序");
               int temp = sc.nextInt();
               if (temp == 0) {
                   return;
               }
               continue;
           }

           while (true) {
               System.out.println("输入用户的身份证号");
               String IdCard = sc.next();
               if (user.get(index).getIdCard().equals(IdCard)) {
                   break;
               } else {
                   System.out.println("身份证号不匹配,请按下其它数字键重新输入,按下0退出程序");
                   int temp = sc.nextInt();
                   if (temp == 0) {
                       return;
                   }
               }
           }

           while (true) {
               System.out.println("请输入用户的手机号");
               String phone = sc.next();
               if (user.get(index).getPhone().equals(phone)) {
                   break;
               } else {
                   System.out.println("手机号不匹配,请按下其它数字键重新输入,按下0退出程序");
                   int temp = sc.nextInt();
                   if (temp == 0) {
                   return;
                   }
               }
           }
           System.out.println("请输入新密码");
           String newPassword = sc.next();
           user.get(index).setPassword(newPassword);
           System.out.println("修改成功");
           return;
       }
   }
    public static int index(ArrayList<User_JavaBean>user,String temp){
        for (int i = 0; i < user.size(); i++) {
            if(user.get(i).getUsername().equals(temp)){
                return i;
            }
        }
        return -1;
    }
    public static boolean checkHava(ArrayList<User_JavaBean>user,String username)
    {

        for (int i = 0; i < user.size(); i++) {
            if(user.get(i).getUsername().equals(username)){
                return true;
            }
        }
        System.out.println("用户未注册,请先注册");
        return false;
    }
    public static String verificationCode()
    {
        Random random=new Random();
        char[] zLen =new char[5];
        for (int i = 0; i < zLen.length-1; i++) {
            int flag=random.nextInt(2);
            if(flag==0) {
                zLen[i] = (char) (random.nextInt(25) + 65);
            }
            else{
                zLen[i] = (char) (random.nextInt(26) + 97);
            }
        }
        zLen[zLen.length-1]=(char)(random.nextInt(10)+'0');
        for (int i = 0; i < zLen.length; i++) {
            char temp=zLen[i];
            int j=random.nextInt(zLen.length);
            zLen[i]=zLen[j];
            zLen[j]=temp;
        }
        return new String(zLen);
    }
    public static void searchUsername(ArrayList<User_JavaBean>user){
        System.out.println("用户名     身份证号\t\t\t 密码\t  手机\t");
        for (int i = 0; i < user.size(); i++) {
            System.out.println(user.get(i).getUsername()+" "+user.get(i).getIdCard()+" "+user.get(i).getPassword()+"    "+user.get(i).getPhone());
        }
    }
    public static void register(ArrayList<User_JavaBean>user){
        //用户名长度必须在3~15位之间
        //只能是字母加数字的组合,但是不能是纯数字
        //	2,密码键盘输入两次,两次一致才可以进行注册。
        //	3,身份证号码需要验证。
        //		验证要求:
        //			长度为18位
        //			不能以0为开头
        //			前17位,必须都是数字
        //			最为一位可以是数字,也可以是大写X或小写x
        //	4,手机号验证。
        //		验证要求:
        //			长度为11位
        //			不能以0为开头
        //			必须都是数字
        Scanner sc=new Scanner(System.in);
        User_JavaBean uj=new User_JavaBean();
        while(true) {
            System.out.println("请输入用户名(3-15位之间,只能字母加数字,但不能是纯数字)");
            String username = sc.next();
            boolean flag = checkUsername(username);
            if(flag){
                if (hava(user, username)) {
                    System.out.println("用户名重复,请重新输入");
                    continue;

                }

            }
            if (flag) {
                uj.setUsername(username);
                break;
            } else {
            System.out.println("注册失败,用户名输入错误,请按下其它数字键重新输入,按下0退出程序");
            if(sc.nextInt()==0){
                return;
            }
            }
        }
        while(true){
            System.out.println("输入密码");
           String password=sc.next();
           if(checkPassword(password)){
               uj.setPassword(password);
               break;
           }
           else{
               System.out.println("两次密码输入不相同,请按下其它数字键重新输入,按下0退出程序");
               if(sc.nextInt()==0){
                   return;
               }
           }
        }
        while(true){
            System.out.println("输入身份证号");
            String inCard=sc.next();
            if(checkInCard(inCard)){
                uj.setIdCard(inCard);
                break;
            }
            else{
                System.out.println("身份证号输入格式错误,请按下其它数字键重新输入,按下0退出程序");
                if(sc.nextInt()==0){
                    return;
                }
            }
        }
        while(true){
            System.out.println("输入手机号");
            String phone=sc.next();
            if(checkPhone(phone))
            {
                uj.setPhone(phone);
                break;
            }
            else{
                System.out.println("手机号输入格式错误,请按下其它数字键重新输入,按下0退出程序");
                if(sc.nextInt()==0){
                    return;
                }
            }
        }
        user.add(uj);
        System.out.println("注册成功!");
    }

    private static boolean hava(ArrayList<User_JavaBean> user, String username) {
        for (int i = 0; i < user.size(); i++) {
            if(user.get(i).getUsername().equals(username)){
                return true;
            }
        }
        return false;
    }

    public static boolean checkPassword(String password){
        Scanner sc=new Scanner(System.in);
        System.out.println("请再次输入密码");
        String newPassword=sc.next();
        if(password.equals(newPassword)){
            return true;
        }
        System.out.println("两次输入不相同");
        return false;
    }
    public static boolean checkPhone(String Phone){
        //4,手机号验证。
        //		验证要求:
        //			长度为11位
        //			不能以0为开头
        //			必须都是数字
        char first=Phone.charAt(0);
        char []temp=new char[Phone.length()];
        int count=0;
        if(Phone.length()==11)
        {
            if(first!='0')
            {
                for (int i = 0; i < Phone.length(); i++) {
                    temp[i]=Phone.charAt(i);
                    if(temp[i]>='0'&&temp[i]<='9')
                    {
                        count++;
                    }
                }
                return count == 11;
            }
        }
        return false;
    }
    public static boolean checkInCard(String inCard){
        //		验证要求:
        //			长度为18位
        //			不能以0为开头
        //			前17位,必须都是数字
        //			最为一位可以是数字,也可以是大写X或小写x
        if(inCard.length()==18)
        {
            char first=inCard.charAt(0);
            char []temp=new char[inCard.length()];
            char end=inCard.charAt(17);
            if(first!='0'){
                for (int i = 0; i < inCard.length()-1; i++) {
                    temp[i]=inCard.charAt(i);
                    if(temp[i]>='0'&&temp[i]<='9')
                    {
                        if(end>='0'&&end<='9'||end=='x'||end=='X'){
                            return true;
                        }
                    }
                }
            }
        }
        System.out.println("身份证输入有误");
        return false;
    }
    public static boolean checkUsername(String pwd)
    {
        Scanner sc=new Scanner(System.in);
        int len=pwd.length();
        if(len<3||len>15)
        {
            return false;
        }
        int count=0;
        for (int i = 0; i < pwd.length(); i++) {
            char c=pwd.charAt(i);
            if(!(c >= 'A' && c <= 'Z' || c >= 'a' && c <= 'z' || c >= '0' && c <= '9'))//判断是否是在允许的范围内
            {
                System.out.println("范围不正确");
            return false;
            }
        }
        for (int i = 0; i < pwd.length(); i++) {
            char c=pwd.charAt(i);//判断是否是纯数字
            if(c>='0'&&c<='9'){
                count++;
            }
            }
        if(count==pwd.length()){
            System.out.println("不能是纯数字");
            return false;
        }
        return true;
        }

    public static boolean checkId(ArrayList<Student_JavaBean>list,String id)
    {
        for (int i = 0; i < list.size(); i++) {
            if(list.get(i).getId().equals(id)){
                return true;
            }
        }
        return false;
    }
    public static void delete(ArrayList<Student_JavaBean>list)
    {
        Scanner sc=new Scanner(System.in);
        System.out.println("请输入需要删除的id");
        String id=sc.next();
        boolean flag=checkId(list,id);
        if(!flag){
            System.out.println("该id不存在");
            return;
        }
        for (int i = 0; i < list.size(); i++) {
            if(list.get(i).getId().equals(id)){
                list.remove(i);
                break;
            }
        }
        System.out.println("删除成功");
    }
    public static void upData(ArrayList<Student_JavaBean>list) {
        Scanner sc = new Scanner(System.in);
        Student_JavaBean sj=new Student_JavaBean();
        System.out.println("请输入需要修改的id");
        String id = sc.next();
        boolean flag=checkId(list,id);
        if(!flag){
            System.out.println("不存在该id");
            return;
        }
        System.out.println("请输入修改类型:1.id 2.姓名 3.年龄 4.地址");
        int type=sc.nextInt();
        switch (type) {
            case 1: {
                for (int i = 0; i < list.size(); i++) {
                    if (list.get(i).getId().equals(id)) {
                        System.out.println("输入新的id");
                        String newId = sc.next();
                        sj.setId(newId);
                        list.get(i).setId(newId);
                        System.out.println("修改成功");
                        break;
                    }
                }
                break;
            }
            case 2: {
                for (int i = 0; i < list.size(); i++) {
                    if (list.get(i).getId().equals(id)) {
                        System.out.println("输入新的姓名");
                        String newName = sc.next();
                        sj.setName(newName);
                        list.get(i).setName(newName);
                        System.out.println("修改成功");
                        break;
                    }
                }
                break;
            }
            case 3: {
                for (int i = 0; i < list.size(); i++) {
                    if (list.get(i).getId().equals(id)) {
                        System.out.println("输入新的年龄");
                        int newAge = sc.nextInt();
                        sj.setAge(newAge);
                        list.get(i).setAge(newAge);
                        System.out.println("修改成功");
                        break;
                    }
                }
                break;
            }
            case 4:
            {
                for (int i = 0; i < list.size(); i++) {
                    if (list.get(i).getId().equals(id)) {
                        System.out.println("输入新的地址");
                        String newAddress = sc.next();
                        sj.setAddress(newAddress);
                        list.get(i).setAddress(newAddress);
                        System.out.println("修改成功");
                        break;
                    }
                }
                break;
            }
            default:
                System.out.println("输入有误");
                break;
        }
    }
    public static void search(ArrayList<Student_JavaBean> list)
    {
        if(list.size()==0)
        {
            System.out.println("当前无学生信息,请添加后再查询");
        }
        else{
            System.out.println("id\t\t姓名\t年龄\t地址\t");
        for (int i = 0; i < list.size(); i++) {
            Student_JavaBean su=list.get(i);
            System.out.println(su.getId()+"\t"+su.getName()+"\t"+su.getAge()+"\t"+su.getAddress()+"\t");
        }
        }
    }
    public static void add(ArrayList<Student_JavaBean>list){
        Student_JavaBean s=new Student_JavaBean();
        Scanner sc=new Scanner(System.in);

        System.out.println("输入id:");
        String id=sc.next();
        s.setId(id);
        boolean flag=checkId(list,id);
        if(flag){
            System.out.println("该id已存在");
            return;
        }

        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 int menu(Scanner sc)
    {
        int choose;
        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.print("\"请输入您的选择:\"");
        choose=sc.nextInt();
        return choose;
    }

}


}

标签:Java,String,管理系统,练习,System,sc,println,return,out
From: https://blog.csdn.net/2301_82086893/article/details/143378677

相关文章

  • java+vue计算机毕设电商小程序【开题+程序+论文+源码】
    本系统(程序+源码)带文档lw万字以上文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着互联网技术的飞速发展,电子商务已成为现代社会不可或缺的一部分。电商小程序作为移动端电商的一种新型形态,凭借其便捷性、即时性和轻量化的特点,迅......
  • java+vue计算机毕设大学校园后勤移动报修系统【开题+程序+论文+源码】
    本系统(程序+源码)带文档lw万字以上文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着信息技术的飞速发展和智能手机的普及,移动应用已成为人们日常生活和工作中的重要组成部分。在大学校园环境中,后勤管理作为保障教学与生活秩序的关......
  • java全栈day07-后端Web基础-Maven基础
    一、什么是MavenMaven是一款用于管理和构建Java项目的工具。作用:(提供jar包,跨平台,不同软件使用(IDEA、Eclipse等))导入jar包方式不同简单来说:(1)方便的依赖管理(2)统一的项目结构(3)标准的项目构建流程二、IDEA集成Maven首先需要配置Maven环境(全局)再创建项目(......
  • java计算机毕业设计城市养老服务预约系统(开题+程序+论文)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容一、研究背景随着社会的快速发展,人口老龄化现象日益严重,城市养老服务面临巨大挑战。传统的养老服务方式在服务预约、信息管理等方面存在诸多不便,难以满足老年......
  • Java 编程:强大的跨平台开发语言
    Java是一种广泛使用的面向对象的编程语言,由SunMicrosystems公司(现已被Oracle公司收购)于1995年发布。Java的设计目标是“一次编写,到处运行”(WriteOnce,RunAnywhere),这使得它成为一种非常强大且灵活的编程语言,尤其适合企业级应用和互联网开发。  Java的特点1.*......
  • JAVA--java的转义字符(6个常用的 DAY 4*拌面版
    前言:今天,我们来了解一下java语言中常用的6个转义字符(最后附有完整代码)------------------------------分割线--------------------------------------OS:记得每次输入新代码要保存并重新编译一下哦~,(而且是要重新打开控制台编译的)源代码如下: 1.\t:一个制表位,实现对齐的功......
  • java计算机毕业设计电影院订票管理系统(开题+程序+论文)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容一、研究背景随着现代社会人们生活水平的提高,电影已经成为大众娱乐消费的重要组成部分。电影院的规模不断扩大,观影人数日益增多,传统的人工售票和管理方式面临......
  • Java--内部类
    在外部类中,内部类定义位置与外部类成员所处的位置相同,因此称为成员内部类1.1 实例内部类即未被static修饰的成员内部类publicclassOutClass{privateinta;staticintb;intc;publicvoidmethodA(){a=10;......
  • Java并发编程
    目录Java并发编程原子性可见性有序性导致并发程序的根本原因是什么原子性和锁区别,加锁是为了什么为什么要加锁锁问题死锁(DeadLock)无锁有锁Synchronized对象在内存中的实现偏向锁/轻量级锁/重量级锁锁升级如何实现可重入性不可中断性同步方法同步代码缺......