Java实训:学生信息管理系统

Posted ༺雾༒爱༻

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java实训:学生信息管理系统相关的知识,希望对你有一定的参考价值。

文章目录

一、程序功能

功能概述

  • 利用Java完成一个学生信息程序的简单改动。
  • 添加学生信息
  • 修改学生信息
  • 查询学生信息
  • 删除学生信息

二、程序包括的学生信息

1.学号
2.姓名
3.班级
4.专业
5.电话号码

  • 当然,这只是简单的包括几个信息,其他的信息,如果也想要可以自己加入

三、编程实现

1.建立学生实体类

  • 在test包里建立student(学生实体类)

2.学生实体类代码编写

(1)无参构造方法

(2)有参构造方法

  • 我采用的是有参构造方法

(3)完整的代码

/**
 * 功能:学生实体类
 * 作者:孤梦
 * 日期:2022年05月26日
 */
public class Student 
    private String id;
    private String name;
    private String classes;
    private String major;
    private String telephone;

    /**
     * 无参构造方法
     */

    public Student() 
    

    /**
     * 有参构造方法
     * @param id
     * @param name
     * @param classes
     * @param major
     * @param telephone
     */
    public Student(String id, String name, String classes, String major, String telephone) 
        this.id = id;
        this.name = name;
        this.classes = classes;
        this.major = major;
        this.telephone = telephone;
    

    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 String getClasses() 
        return classes;
    

    public void setClasses(String classes) 
        this.classes = classes;
    

    public String getMajor() 
        return major;
    

    public void setMajor(String major) 
        this.major = major;
    

    public String getTelephone() 
        return telephone;
    

    public void setTelephone(String telephone) 
        this.telephone = telephone;
    

    @Override
    public String toString() 
        return "Card" +
                "id='" + id + '\\'' +
                ", name='" + name + '\\'' +
                ", classes='" + classes + '\\'' +
                ", major='" + major + '\\'' +
                ", telephone='" + telephone + '\\'' +
                '';
    


2.建立学生信息管理

  • 继续在test包里创建----StudentManagement(学生信息管理)

3.建立学生数组列表对象

private  static ArrayList<Student> students = new ArrayList<>();
    
    public static void main(String[] args) 
        // 声明部分
        int mc1;
        Scanner sc = new Scanner(System.in);
        boolean isRunning = true; // 循环控制变量

        while (isRunning) 
            // 绘制一级菜单
            System.out.println("  学生信息管理系统");
            System.out.println("================");
            System.out.println("   1. 登录");
            System.out.println("   0. 退出");
            System.out.println("================");
            System.out.print("输入菜单编号[1,0]:");
            mc1 = sc.nextInt();
            // 根据用户选择进行相应的操作
            switch (mc1) 
                case 1:
                    // 调用登录方法
                    login();
                    break;
                case 0:
                    System.out.println("谢谢使用~再见~");
                    isRunning = false; // 结束循环
                    break;
                default:
                    System.out.println("输入的菜单编号有误!");
            
        
    

-创建好了列表,下面就该解决如何登录了

4.登录方法

 /**
     * 登录方法
     */
    private static void login() 
        String username, password;
        Scanner sc = new Scanner(System.in);

        System.out.print("用户名:");
        username = sc.next();
        System.out.print("密  码:");
        password = sc.next();

        if (username.equals("gumeng") && password.equals("1314520")) 
            System.out.println("登录成功~");
            // 调用学生信息管理方法
            studentManagement();
         else 
            System.out.println("用户名或密码有误,登录失败~");
        
    

  • 这里的登录账号是:gumneg ,登录密码是:1314520
  • 登录账号和密码随自己的喜好设置

5.学生信息管理方法

(1)一级菜单

  • 在上面我们已经建立了一级菜单

(2)二级菜单

  • 下面我们绘制二级菜单,二级菜单是我们成功登录进去后的功能面板
  • 总共有七个功能面板
    1、添加学生信息
    2、修改学生信息
    3、查询学生信息
    4、删除学生信息
    5、读取学生信息
    6、保存学生信息
    7、返回上级菜单
  • 分别对每个功能面板进行编写

(3)完整学生管理方法代码

 /**
     * 学生信息管理方法
     */
    private static void studentManagement() 
        int mc2;
        Scanner sc = new Scanner(System.in);
        boolean isRunning = true; // 循环控制变量

        while (isRunning) 
            // 绘制二级菜单
            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("  7. 返回上级");
            System.out.println("=======================");
            System.out.print("输入菜单编号[1,2,3,4,5,6,7]:");
            mc2 = sc.nextInt();

            switch (mc2) 
                case 1:
                    System.out.println("执行添学生信息功能~");
                    break;
                case 2:
                    System.out.println("执行修改学生信息功能~");
                    break;
                case 3:
                    System.out.println("执行查询学生信息功能~");
                    break;
                case 4:
                    System.out.println("执行删除学生信息功能~");
                    break;
                case 5:
                    System.out.println("读取学生信息文件到学生数组列表~");
                    break;
                case 6:
                    System.out.println("将学生信息数组列表写入名片文件~");
                    break;
                case 7:
                    isRunning = false; // 结束二级菜单循环
                    break;
                default:
                    System.out.println("输入的菜单编号有误!");
            
        
    

6.添加学生信息方法

/**
     * 添加学生信息方法
     */
    private static void addStudent() 
        // 声明变量
        String id;
        String name;
        String classes;
        String major;
        String telephone;
        Scanner sc = new Scanner(System.in);

        // 输入学生信息
        System.out.print("学号:");
        id = sc.next();
        System.out.print("姓名:");
        name = sc.next();
        System.out.print("班级:");
        classes = sc.next();
        System.out.print("专业:");
        major = sc.next();
        System.out.print("手机号码:");
        telephone = sc.next();

        // 创建学生对象
        Student student = new Student(id, name, classes, major,telephone);

        // 将学生信息添加到学生数组列表
        students.add(student);
    

  • 将学生添加到学生数组列表
  • 添加学生总不能不保存,所以下面我们要将学生信息保存到文件

7.将学生信息保存到文件

(1)文件名


这是学生信息将要保存的文件名,当然文件可以随便自己设置

(2)完整代码

/**
     * 保存学生信息到文件
     */
    private static void saveStudents() 
        try 
            // 创建文件字符输出流
            FileWriter fw = new FileWriter("students.txt");
            // 创建学生容器字符串缓冲对象
            StringBuffer cardsBuffer = new StringBuffer();
            // 用增强for循坏遍历学生数组列表
            for (Student student : students) 
                // 输出学生对象
                System.out.println(student);
                // 创建学生字符串缓冲对象
                StringBuffer buffer = new StringBuffer();
                // 添加学生字段信息(空格作为分隔符)
                buffer.append(student.getId() + " ");
                buffer.append(student.getName() + " ");
                buffer.append(student.getClasses() + " ");
                buffer.append(student.getMajor() + " ");
                buffer.append(student.getTelephone());
                // 将学生信息写入名片容器字符串缓冲对象
                cardsBuffer.append(buffer.toString() + "\\n");
            
            // 将学生容器字符串缓冲对象的数据写入文件
            fw.write(students.toString());
            // 关闭文件字符输出流
            fw.close();
            // 提示用户写入成功
            System.out.println("恭喜,学生信息数据写入文件成功~");
         catch (IOException e) 
            e.printStackTrace();
        
    

(3)调用学生信息保存方法

  • 写好了要在保存学生信息功能面板上调用

8.读取学生信息并保存到学生数组列表

(1)读取源

  • 你是从哪个文件读取的学生信息,这里读取名和上面的保存名要一致,不然读取不到学生信息

(2)读取学生信息完整代码

  • 在这里还有一个问题,如果文件名没有问题,但是你要读取的学生不存在的话程序要出错,所以我们正在这里要把好关
/**
     * 读取学生信息文件,保存到学生数组列表
     */
    private static void readStudentFile() 
        // 创建文件字符输入流
        try 
            FileReader fr = new FileReader("students.txt");
            // 创建缓冲字符输入流
            BufferedReader br = new BufferedReader(fr);
            // 定义行变量
            String nextLine = " ";
            // 通过循坏读取名片文件
            while ((nextLine = br.readLine()) != null) 
                // 拆分行字符串得到字段数值
                String[] fields = nextLine.split(" ");
                // 创建学生对象
                Student student = new Student();
                // 用字段数值设置对象属性
                student.setId(fields[0]);
                student.setName(fields[1]);
                student.setClasses(fields[2]);
                student.setMajor(fields[3]);
                student.setTelephone(fields[4]);
                // 输出学生对象
                System.out.println("添加"  + student + "到学生数组列表");
                // 将学生对象添加到学生数组列表
                students.add(student);
            
            // 关闭缓冲字符输入流
            br.close();
            // 关闭文件字符输入流
            fr.close();
         catch (FileNotFoundException e) 
            System.out.println("温馨提示:学生文件不存在~");
         catch (IOException e) 
            e.printStackTrace();
        
    

(3)调用读取学生信息方法

9.查询学生信息

(1)判断按哪种查询

  • 怎样查询学生信息呢?是按学号查询还是按姓名查询呢?还是一起查询?
// 判断用户按哪种方式查询学生信息
        if (id.equals("")) 
            if (name.equals(""))  // 查询全部学生
                // 遍历名片数组列表
                for (Student student : students) 
                    System.out.println(student.getId() + " "
                            + student.getName() + " " + student.getClasses() + " "
                            + student.getMajor() + " " + student.getTelephone());
                

(2)按学生姓名查询

System.out.println("~按姓名查询学生信息~");
                boolean found = false;
                // 遍历学生数组列表,按姓名来找
      

以上是关于Java实训:学生信息管理系统的主要内容,如果未能解决你的问题,请参考以下文章

C语言实训

学生信息管理系统java测试报告

2020年Java实训项目GUI学生信息管理系统目录

java 编写的 学生信息管理系统

C语言程序设计--班级档案管理系统

C# 设计一个学生信息管理程序(控制台程序)