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

2024-01-09 18:24:01

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

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- 退出系统

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

请输入你的选择:

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

文章来源:https://blog.csdn.net/z1561599530b/article/details/135416399
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。