使用Java语言制作一个简易的学生信息管理系统

本文主要实现一个简易的学生信息管理系统,共有以下八个功能:

1. 添加学生信息

2. 修改学生信息

3.删除学生信息

4.根据编号查询学生信息

5.根据姓名模糊查询学生信息

6.根据年龄查询学生信息

7.查询所有的学生信息

8.退出系统

本文实现的功能比较简单,适合初学者来练习。

下面是本程序的大概功能实现浏览:

 包和类:

步骤:

首先创建一个Student类:

package StudentManagementSystem;

public class Student {
    private int id;
    private String name;
    private String sex;
    private int age;

    public Student() {
    }

    @Override
    public String toString() { //重写toString方法
        return id+"\t"+name+"\t"+age+"\t"+sex;
    }

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

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

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

    public String getSex() {
        return sex;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }

    public int getAge() {
        return age;
    }

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

 再创建一个StudentDao功能实现类:

这个是StudentDao类的总代码

package StudentManagementSystem;

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

public class StudentDao {
    List<Student> students = new ArrayList();

    Scanner scanner = new Scanner(System.in);
    //    页面方法       ui()
    public void ui(){
        while(true){  
            System.out.println("----------------------");
            System.out.println("   学生管理系统");
            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(" 8 -- 退出系统");
            System.out.println("----------------------");
            System.out.println("请选择功能");
            int n = scanner.nextInt();
            switch (n){
                case 1:
                    add();
                    break;
                case 2:
                    update();
                    break;
                case 3:
                    delete();
                    break;
                case 4:
                    selectById();
                    break;
                case 5:
                    selectByName();
                    break;
                case 6:
                    selectByAge();
                    break;
                case 7:
                    selectAll();
                    break;
                case 8:
                    System.out.println("确定退出系统吗(Y/N)?");
                    String is = scanner.next();
                    if(is.equalsIgnoreCase("Y")){
                        System.out.println("欢迎下次光临!");
                        System.exit(0);  // 退出JVM
                    }
                    System.out.println("取消退出!");
                    break;
                default:
                    System.out.println("你选择的功能还没有开发!");
            }

        }
    }
    //    添加学生信息  add()
    public void add(){
        // 1,收集数据
        System.out.println("请输入学生学号");
        int id = scanner.nextInt();
        // 判断是否唯一
        if( !isOnly(id) ){  // 唯一
            System.out.println("请输入学生姓名");
            String name = scanner.next();
            System.out.println("请输入学生性别");
            String sex = scanner.next();
            System.out.println("请输入学生年龄");
            int age = scanner.nextInt();
            // 2,组成对象放入到集合中
            Student student = new Student(id,name,sex,age);
            boolean add = students.add(student);
            // 3,给出提示并结束
            if(add){
                System.out.println("添加成功!");
            }else{
                System.out.println("添加失败!");
            }
        }else{
            System.out.println("你输入的id已存在,请重新输入!");
            add();
        }
    }
    //    删除学生信息  delete()
    public void delete(){
        System.out.println("请输入你要删除的学生的学号");
        int id = scanner.nextInt();
        // 遍历,查询
        for(int i=0;i<students.size();i++){
            Student student = students.get(i);
            if(student.getId() == id){ // 删除
                // 数据预览
                System.out.println("你要删除的学生信息是:");
                System.out.println(student.toString());
                //
                System.out.println("确定删除吗(Y/N)?");
                String is = scanner.next();
                if(is.equalsIgnoreCase("Y")){
                    students.remove(i);  // 删除
                    System.out.println("删除成功!");
                }else{
                    System.out.println("取消删除!");
                }
                return;  // 终止整个方法体
            }
        }
        System.out.println("查无此人!");
    }
    //    修改学生信息  update()
    public void update(){
        System.out.println("请输入你要修改的学生的学号");
        int id = scanner.nextInt();
        // 遍历,查询
        for(int i=0;i<students.size();i++){
            Student student = students.get(i);
            if(student.getId() == id){ // 修改
                // 数据预览
                System.out.println("你要修改的学生信息是:");
                System.out.println(student.toString());
                //
                System.out.println("确定修改吗(Y/N)?");
                String is = scanner.next();
                if(is.equalsIgnoreCase("Y")){
                    //
                    System.out.println("请输入修改后的学生的姓名");
                    student.setName(scanner.next());
                    System.out.println("请输入修改后的学生的性别");
                    student.setSex(scanner.next());
                    System.out.println("请输入修改后的学生的年龄");
                    student.setAge(scanner.nextInt());

                    System.out.println("修改成功!");
                }else{
                    System.out.println("取消修改!");
                }
                return;  // 终止整个方法体
            }
        }
        System.out.println("查无此人!");
    }
    //    根据编号查询学生信息  selectById()
    public void selectById(){
        System.out.println("请输入你要查询的学生的编号");
        int id = scanner.nextInt();
        for(Student student : students){
            if(student.getId() == id){
                System.out.println(student.toString());
            }
        }
    }
    //    根据姓名模糊查询学生信息  selectByName()
    public void selectByName(){
        System.out.println("请输入你要查询的学生姓名关键字");
        String name = scanner.next();
        for(Student student : students){
            if(student.getName().contains(name)){
                System.out.println(student.toString());
            }
        }
    }
    //    根据年龄范围查询学生信息  selectByAge()
    public void selectByAge(){
        System.out.println("请输入你要查询的学生年龄范围(min  max)");
        int min = scanner.nextInt();
        int max = scanner.nextInt();

        for(Student student : students){
            if( student.getAge() >=min && student.getAge()<=max){
                System.out.println(student.toString());
            }
        }
    }
    //    查询学生信息  selectAll()
    public void selectAll(){
        if(students.isEmpty()){
            System.out.println("还没有数据!");
        }else{
            for(Student student : students){
                System.out.println(student.toString());
            }
        }
    }
    //    判断学生学号是否唯一  boolean  isOnly(int id)
    public boolean isOnly(int id){
        // 遍历集合,判断id是否存在
        boolean bo = false;
        // 遍历集合

        for(Student student : students){
            if(student.getId() == id){
                bo = true;
                break;
            }
        }
        return bo;
    }


    public static void main(String[] args) {
        new StudentDao().ui();
    }
}

 各个功能的实现:

ui界面功能

代码:

 //    页面方法       ui()
    public void ui(){
        while(true){  
            System.out.println("----------------------");
            System.out.println("   学生管理系统");
            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(" 8 -- 退出系统");
            System.out.println("----------------------");
            System.out.println("请选择功能");
            int n = scanner.nextInt();
            switch (n){
                case 1:
                    add();
                    break;
                case 2:
                    update();
                    break;
                case 3:
                    delete();
                    break;
                case 4:
                    selectById();
                    break;
                case 5:
                    selectByName();
                    break;
                case 6:
                    selectByAge();
                    break;
                case 7:
                    selectAll();
                    break;
                case 8:
                    System.out.println("确定退出系统吗(Y/N)?");
                    String is = scanner.next();
                    if(is.equalsIgnoreCase("Y")){
                        System.out.println("欢迎下次光临!");
                        System.exit(0);  // 退出JVM
                    }
                    System.out.println("取消退出!");
                    break;
                default:
                    System.out.println("你选择的功能还没有开发!");
            }

        }
    }

效果图:

 把ui界面功能信息放在while循环里,让其能够一直循环出现,选择8-退出系统功能时,结束循环,终止程序。

1. 添加学生信息

代码:

 //    添加学生信息  add()
    public void add(){
        // 1,收集数据
        System.out.println("请输入学生学号");
        int id = scanner.nextInt();
        // 判断是否唯一
        if( !isOnly(id) ){  // 唯一
            System.out.println("请输入学生姓名");
            String name = scanner.next();
            System.out.println("请输入学生性别");
            String sex = scanner.next();
            System.out.println("请输入学生年龄");
            int age = scanner.nextInt();
            // 2,组成对象放入到集合中
            Student student = new Student(id,name,sex,age);
            boolean add = students.add(student);
            // 3,给出提示并结束
            if(add){
                System.out.println("添加成功!");
            }else{
                System.out.println("添加失败!");
            }
        }else{
            System.out.println("你输入的id已存在,请重新输入!");
            add();
        }
    }

效果图: 

 

 先添加三个学生信息(张三,李四,王五),这里就不一一截图了

7.查询所有的学生信息

代码:

 //    查询学生信息  selectAll()
    public void selectAll(){
        if(students.isEmpty()){
            System.out.println("还没有数据!");
        }else{
            for(Student student : students){
                System.out.println(student.toString());
            }
        }
    }

效果图:

 添加后先查询一下所有学生信息,看看是否添加成功,所以我先把查询功能放在这里

 2. 修改学生信息

代码:

  //    修改学生信息  update()
    public void update(){
        System.out.println("请输入你要修改的学生的学号");
        int id = scanner.nextInt();
        // 遍历,查询
        for(int i=0;i<students.size();i++){
            Student student = students.get(i);
            if(student.getId() == id){ // 修改
                // 数据预览
                System.out.println("你要修改的学生信息是:");
                System.out.println(student.toString());
                //
                System.out.println("确定修改吗(Y/N)?");
                String is = scanner.next();
                if(is.equalsIgnoreCase("Y")){
                    //
                    System.out.println("请输入修改后的学生的姓名");
                    student.setName(scanner.next());
                    System.out.println("请输入修改后的学生的性别");
                    student.setSex(scanner.next());
                    System.out.println("请输入修改后的学生的年龄");
                    student.setAge(scanner.nextInt());

                    System.out.println("修改成功!");
                }else{
                    System.out.println("取消修改!");
                }
                return;  // 终止整个方法体
            }
        }
        System.out.println("查无此人!");
    }

效果图:

 修改功能是按照学生编号来识别要修改的学生信息,修改后,查询一下所有学生信息,看看是否修改成功。

3.删除学生信息

代码:

 //    删除学生信息  delete()
    public void delete(){
        System.out.println("请输入你要删除的学生的学号");
        int id = scanner.nextInt();
        // 遍历,查询
        for(int i=0;i<students.size();i++){
            Student student = students.get(i);
            if(student.getId() == id){ // 删除
                // 数据预览
                System.out.println("你要删除的学生信息是:");
                System.out.println(student.toString());
                //
                System.out.println("确定删除吗(Y/N)?");
                String is = scanner.next();
                if(is.equalsIgnoreCase("Y")){
                    students.remove(i);  // 删除
                    System.out.println("删除成功!");
                }else{
                    System.out.println("取消删除!");
                }
                return;  // 终止整个方法体
            }
        }
        System.out.println("查无此人!");
    }

效果图:

 

 删除功能也是按照学生编号来识别要删除的学生信息,删除后,查询一下所有学生信息,看看是否删除成功。  

4.根据编号查询学生信息

代码:

 //    根据编号查询学生信息  selectById()
    public void selectById(){
        System.out.println("请输入你要查询的学生的编号");
        int id = scanner.nextInt();
        for(Student student : students){
            if(student.getId() == id){
                System.out.println(student.toString());
            }
        }
    }

效果图:

 

 根据编号查询学生信息是查看单个学生的信息

5.根据姓名模糊查询学生信息

代码:

//    根据姓名模糊查询学生信息  selectByName()
    public void selectByName(){
        System.out.println("请输入你要查询的学生姓名关键字");
        String name = scanner.next();
        for(Student student : students){
            if(student.getName().contains(name)){
                System.out.println(student.toString());
            }
        }
    }

效果图:

 

 根据姓名模糊查询学生信息是输入学生姓名的某一个字或多个字来查询符合要求的学生信息。

6.根据年龄查询学生信息

代码:

  //    根据年龄范围查询学生信息  selectByAge()
    public void selectByAge(){
        System.out.println("请输入你要查询的学生年龄范围(min  max)");
        int min = scanner.nextInt();
        int max = scanner.nextInt();

        for(Student student : students){
            if( student.getAge() >=min && student.getAge()<=max){
                System.out.println(student.toString());
            }
        }
    }

效果图:

 根据年龄来查询学生信息

8.退出系统

代码:

  System.out.println("确定退出系统吗(Y/N)?");
                    String is = scanner.next();
                    if(is.equalsIgnoreCase("Y")){
                        System.out.println("欢迎下次光临!");
                        System.exit(0);  // 退出JVM
                    }
                    System.out.println("取消退出!");

效果图:

 

 选择退出系统功能,判断一下是否要退出,如果输入y或Y就退出系统,终止程序。退出功能实在界面ui()方法里面,详细的可以看ui()界面部分。

总结:

本程序是一个简易的学生信息管理系统,主要就是创建方法来实现各个功能。

1, 定义一个Student学生类,拥有以下私有的属性,并提供公共的get、set方法,有参和无参的构造器

编号id    姓名name    性别sex    年龄age

重写toString方法,用来展示所有的信息 ,格式: iid+"\t"+name+"\t"+age+"\t"+sex;

2, 定义一个学生StudentDao操作类.有以下方法:

页面方法 ui()

添加学生信息 add()

删除学生信息 delete()

修改学生信息 update()

查询学生信息 select()

定义全局的学生信息集合: List<Student> students = new ArrayList();

3, 效果 [ 无限循环进行 ] main方法进入,默认调用ui()方法,实现以下页面的无限循环打印:

*******************

学生信息管理系统

*******************

1- 添加学生信息

2- 修改学生信息

3- 删除学生信息

4- 查看学生信息

5- 退出系统

*******************

请输入你的选择:

以上就是本文的全部内容,希望能帮助你们。

  • 76
    点赞
  • 58
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
面向对象程序设计实践教学环节任务书 一、题目:学生信息管理系统 二、目的与要求 1. 目的: (1) 掌握面向对象程序设计的基本思路和方法; (2) 了解系统开发的需求分析、类层次设计、模块分解、编码测试、模块组装与整体调试的全过程; (3) 进一步熟悉C++中类的概念、类的封装、继承的实现方式; (4) 学会分析简单的实际问题,并能利用所学的知识建立系统的逻辑结构,学会简单的调试技巧和方法。逐步熟悉面向对象程序设计的方法,养成良好的编程习惯。 2. 要求 基本要求: (1) 要求利用C++面向对象的编程思想来完成系统的设计; (2) 进行简单界面设计,能够实现友好的交互; (3) 具有清晰的程序流程图和数据结构的详细定义; (4) 熟练掌握C++对文件的各种操作。 三、信息描述 有关该系统基本信息的描述(如:学号、姓名、系别、班级和各科成绩等)。 四、功能描述 1. 添加、删除 系统将提示用户输入新添加学生信息;由用户输入要删除的学生的学号,然后调用删除函数,删除该名学生的资料。 2. 查找 首先由用户输入要查找的学生的学号,系统用查找函数查找,然后系统就调用输出函数。 3. 修改 首先由用户输入要修改的学生的学号,然后系统用修改函数查找,显示该名学生的资料,然后系统提示用户输入需要修改的项目和新的资料。 4. 界面要求 开始登录管理界面、主要提示菜单界面(提示用户执行何种操作)等。 五、解决方案 1. 分析程序的功能要求,划分程序功能模块。 2. 画出系统流程图。 3. 代码的编写、程序的功能调试。 4. 完成系统总结报告以及使用说明书 六、进度安排 此次课程设计时间为一周或两周,分四个阶段完成: 1. 分析设计阶段。指导教师应积极引导学生自主学习和钻研问题,明确设计要求,找出实现方法,按照需求分析、总体设计、详细设计这几个步骤进行。 2. 编码调试阶段:根据设计分析方案编写代码,然后调试该代码,实现课题要求的功能。 3. 总结报告阶段:总结设计工作,写出课程设计说明书,要求学生写出需求分析、总体设计、详细设计、编码、测试的步骤和内容。 4. 考核阶段。 七、撰写课程设计报告或课程设计总结 总结报告包括需求分析、总体设计、详细设计、编码(详细写出编程步骤)、测试的步骤和内容、课程设计总结、参考资料等,不符合以上要求者,则本次设计以不及格记。 八、参考资料 《C++语言程序设计教程》 网上相关资料(....略)
制作一个简单的学生成绩管理系统,需要按照以下步骤进行: 1. 设计数据结构 首先,需要设计数据结构来存储学生信息和成绩。可以使用一个学生类来表示每个学生,其中包含姓名、学号、班级、成绩等属性。 2. 实现界面 其次,需要实现一个界面来展示学生信息和成绩。可以使用Java Swing或JavaFX来实现界面。 3. 实现功能 最后,需要实现以下功能: - 添加学生:将新学生添加到系统中。 - 删除学生:从系统中删除学生。 - 修改学生信息:修改学生的姓名、学号、班级等信息。 - 添加成绩:为学生添加成绩。 - 修改成绩:修改学生的成绩。 - 查询学生信息:根据姓名、学号等条件查询学生信息。 - 统计成绩:计算学生的平均成绩、最高分、最低分等统计信息。 参考代码如下: ```java import javax.swing.*; import java.awt.*; import java.awt.event.*; import java.util.ArrayList; public class StudentManagementSystem extends JFrame implements ActionListener { private JTextField nameField, idField, classField, scoreField; private JButton addButton, deleteButton, modifyButton, queryButton, statButton; private JTextArea resultArea; private ArrayList<Student> studentList; public StudentManagementSystem() { super("学生成绩管理系统"); setSize(600, 400); setLocationRelativeTo(null); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); studentList = new ArrayList<Student>(); JPanel inputPanel = new JPanel(new GridLayout(5, 2)); inputPanel.add(new JLabel("姓名:")); nameField = new JTextField(20); inputPanel.add(nameField); inputPanel.add(new JLabel("学号:")); idField = new JTextField(20); inputPanel.add(idField); inputPanel.add(new JLabel("班级:")); classField = new JTextField(20); inputPanel.add(classField); inputPanel.add(new JLabel("成绩:")); scoreField = new JTextField(20); inputPanel.add(scoreField); addButton = new JButton("添加"); addButton.addActionListener(this); inputPanel.add(addButton); deleteButton = new JButton("删除"); deleteButton.addActionListener(this); inputPanel.add(deleteButton); modifyButton = new JButton("修改"); modifyButton.addActionListener(this); inputPanel.add(modifyButton); queryButton = new JButton("查询"); queryButton.addActionListener(this); inputPanel.add(queryButton); statButton = new JButton("统计"); statButton.addActionListener(this); inputPanel.add(statButton); resultArea = new JTextArea(10, 40); resultArea.setEditable(false); Container contentPane = getContentPane(); contentPane.add(inputPanel, BorderLayout.NORTH); contentPane.add(new JScrollPane(resultArea), BorderLayout.CENTER); } public void actionPerformed(ActionEvent e) { if (e.getSource() == addButton) { String name = nameField.getText().trim(); String id = idField.getText().trim(); String className = classField.getText().trim(); String scoreStr = scoreField.getText().trim(); if (name.equals("") || id.equals("") || className.equals("") || scoreStr.equals("")) { JOptionPane.showMessageDialog(this, "请输入完整信息", "错误", JOptionPane.ERROR_MESSAGE); return; } try { double score = Double.parseDouble(scoreStr); Student student = new Student(name, id, className, score); studentList.add(student); resultArea.setText("添加成功\n" + student.toString()); } catch (NumberFormatException ex) { JOptionPane.showMessageDialog(this, "成绩格式错误", "错误", JOptionPane.ERROR_MESSAGE); } } else if (e.getSource() == deleteButton) { String id = idField.getText().trim(); boolean deleted = false; for (int i = 0; i < studentList.size(); i++) { Student student = studentList.get(i); if (student.getId().equals(id)) { studentList.remove(i); deleted = true; break; } } if (deleted) { resultArea.setText("删除成功"); } else { resultArea.setText("未找到该学生"); } } else if (e.getSource() == modifyButton) { String id = idField.getText().trim(); boolean modified = false; for (int i = 0; i < studentList.size(); i++) { Student student = studentList.get(i); if (student.getId().equals(id)) { String name = nameField.getText().trim(); String className = classField.getText().trim(); String scoreStr = scoreField.getText().trim(); if (!name.equals("")) { student.setName(name); } if (!className.equals("")) { student.setClassName(className); } if (!scoreStr.equals("")) { try { double score = Double.parseDouble(scoreStr); student.setScore(score); } catch (NumberFormatException ex) { JOptionPane.showMessageDialog(this, "成绩格式错误", "错误", JOptionPane.ERROR_MESSAGE); } } modified = true; break; } } if (modified) { resultArea.setText("修改成功"); } else { resultArea.setText("未找到该学生"); } } else if (e.getSource() == queryButton) { String name = nameField.getText().trim(); String id = idField.getText().trim(); if (!name.equals("")) { boolean found = false; for (Student student : studentList) { if (student.getName().equals(name)) { resultArea.setText(student.toString()); found = true; break; } } if (!found) { resultArea.setText("未找到该学生"); } } else if (!id.equals("")) { boolean found = false; for (Student student : studentList) { if (student.getId().equals(id)) { resultArea.setText(student.toString()); found = true; break; } } if (!found) { resultArea.setText("未找到该学生"); } } else { resultArea.setText("请输入姓名或学号"); } } else if (e.getSource() == statButton) { double sum = 0; double max = Double.MIN_VALUE; double min = Double.MAX_VALUE; int count = studentList.size(); for (Student student : studentList) { double score = student.getScore(); sum += score; max = Math.max(max, score); min = Math.min(min, score); } double average = sum / count; resultArea.setText("平均成绩:" + average + "\n最高分:" + max + "\n最低分:" + min); } } public static void main(String[] args) { StudentManagementSystem system = new StudentManagementSystem(); system.setVisible(true); } } class Student { private String name; private String id; private String className; private double score; public Student(String name, String id, String className, double score) { this.name = name; this.id = id; this.className = className; this.score = score; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getId() { return id; } public void setId(String id) { this.id = id; } public String getClassName() { return className; } public void setClassName(String className) { this.className = className; } public double getScore() { return score; } public void setScore(double score) { this.score = score; } public String toString() { return "姓名:" + name + "\n学号:" + id + "\n班级:" + className + "\n成绩:" + score; } } ``` 注意:这只是一个简单的实现,还可以根据实际需求进行扩展。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

不太会敲代码的搬砖工程师

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

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

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

打赏作者

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

抵扣说明:

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

余额充值