【JAVASE开发】带你零基础学JAVA项目(学生管理系统篇)

 哈喽~大家好呀,先来个小项目,练练手。

 🥇个人主页:个人主页​​​​​                

🥈 系列专栏:【JAVASE开发】 

🥉与这篇相关的文章:               

还没出生呢!目前内容已经好了,后续会持续更新, 欢迎大家来多多支持~

目录

一、前言

二、Model 层界面

三、Control 层界面

四、Main 总控制台


一、前言

我们先来看看需求

 

 再来看看效果

 

 

 我这里采用了 MVC 模式 M(Model 存放数据)、V(Veiw 存放可见视图)、C(Control),

 先在 Veiw 层,创建四个界面类——FirstInterface、、SecondInterface、ThirdInterface、FourthInterface,将页面敲上去。

public void FirstInterface() {
        System.out.println("------------------------------------------------------主界面------------------------------------------------------");
        System.out.println("1、查询学生信息");
        System.out.println("2、信息统计");
        System.out.println("3、信息管理");
    }

    public void SecondInterface() {
        System.out.println("------------------查询学生信息界面------------------");
        System.out.println("1、查询全部学生信息");
        System.out.println("2、按学号查询学生信息");
        System.out.println("3、按班级查询学生信息");
        System.out.println("4、按名字模糊查询学生信息");
        System.out.println("5、返回上一界面");
    }

    public void ThirdInterface() {
        System.out.println("------------------信息统计界面------------------");
        System.out.println("1、按班级低到高,成绩高到底排序");
        System.out.println("2、统计每个班的平均分,高到低排序");
        System.out.println("3、统计每个班的最高分,最低分");
        System.out.println("4、返回上一个界面");
    }

    public void FourthInterface() {
        System.out.println("------------------信息管理界面------------------");
        System.out.println("1、添加学生");
        System.out.println("2、修改学生");
        System.out.println("3、删除学生");
        System.out.println("4、返回上一个界面");
    }

二、Model 层界面

这里很明显存放的是我们的数据,那就 new 一个StudentDataBase,声明学号(stuNo)、姓名(stuName)、班级(stuClass)、性别(stuSex)、年龄(stuSex)、分数(stuScore),有参与无参的构造方法,getter 与 setter 方法、add 方法、print(输出)方法。

public class StudentDataBase {

    private int stuNo;
    private String stuName;
    private int stuClass;
    private String stuSex;
    private int stuAge;
    private int stuScore;

    public StudentDataBase() {
    }

    public StudentDataBase(int stuNo, String stuName, int stuClass, String stuSex, int stuAge, int stuScore) {
        this.stuNo = stuNo;
        this.stuName = stuName;
        this.stuClass = stuClass;
        this.stuSex = stuSex;
        this.stuAge = stuAge;
        this.stuScore = stuScore;
    }

    public int getStuNo() {
        return stuNo;
    }

    public void setStuNo(int stuNo) {
        this.stuNo = stuNo;
    }

    public String getStuName() {
        return stuName;
    }

    public void setStuName(String stuName) {
        this.stuName = stuName;
    }

    public int getStuClass() {
        return stuClass;
    }

    public void setStuClass(int stuClass) {
        this.stuClass = stuClass;
    }

    public String getStuSex() {
        return stuSex;
    }

    public void setStuSex(String stuSex) {
        this.stuSex = stuSex;
    }

    public int getStuAge() {
        return stuAge;
    }

    public void setStuAge(int stuAge) {
        this.stuAge = stuAge;
    }

    public int getStuScore() {
        return stuScore;
    }

    public void setStuScore(int stuScore) {
        this.stuScore = stuScore;
    }


    public void add(int stuNo, String stuName, int stuClass, String stuSex, int stuAge, int stuScore) {
        this.stuNo = stuNo;
        this.stuName = stuName;
        this.stuClass = stuClass;
        this.stuSex = stuSex;
        this.stuAge = stuAge;
        this.stuScore = stuScore;
    }

    public void print() {
        System.out.println("StudentDataBase{" + "stuNo=" + stuNo + ", stuName='" + stuName + '\'' + ", stuClass='" + stuClass + "班" + '\'' + ", stuSex='" + stuSex + '\'' + ", stuAge=" + stuAge + ", stuScore=" + stuScore + '}');
    }
}

三、Control 层界面

首先我们模拟数据库肯定要添加,要添加就要有添加方法,在 Veiw 层建一个 Operate 类,里面存放我们的操作方法,一个 AddStudentInformation ,在上面的需求看到的是学号要是唯一的,那么就要在新建这里加上去重了,性别那里只能是两种情况(男或女),成功之后就遍历输出,失败就重新再来。

    // 添加学生信息
    int flag = 0; // 去重的开关
    int[] deduplication = new int[100]; // 去重数组,存放学号,只能出现一次
    public void AddStudentInformation(int stuNo, String stuName, int stuClass, String stuSex, int stuAge, int stuScore, ArrayList<StudentDataBase> arrayList) {

        StudentDataBase studentDataBase = new StudentDataBase();

        studentDataBase.setStuNo(stuNo);
        studentDataBase.setStuName(stuName);
        studentDataBase.setStuClass(stuClass);

        studentDataBase.setStuSex(stuSex);
        studentDataBase.setStuAge(stuAge);
        studentDataBase.setStuScore(stuScore);

        if (Objects.equals(studentDataBase.getStuSex(), "男") || Objects.equals(studentDataBase.getStuSex(), "女")){

            deduplication[arrayList.size()] = studentDataBase.getStuNo();


            for (int i = 0; i < arrayList.size(); i++) {
                if (deduplication[i] == stuNo){
                    flag ++;
                }
            }

            if (flag <= 0){
                arrayList.add(studentDataBase);
                System.out.println("添加成功,现在的信息是:");
                PrintStudentInformation(arrayList);

            }else {
                System.out.println("添加失败,学号重复,请重新输入:");
                flag --;
            }
        }else {
            System.out.println("性别有误,请重新输入!");
        }


    }

这里说到遍历输出了,那么我们看到有个需求查询所有学生信息,这里就要来一个方法了——PrintStudentInformation。

public static void PrintStudentInformation(ArrayList<StudentDataBase> arrayList) {
        if (arrayList.size() == 0) {
            System.out.println("目前数据库为空,暂时没有数据呢,请添加数据!");
        }
        for (int i = 0; i < arrayList.size(); i++) {
            StudentDataBase s = arrayList.get(i);
            System.out.println("学生信息{" + "学号:" + s.getStuNo() + ", 姓名:'" + s.getStuName() +
                    '\'' + ", 班级:'" + s.getStuClass() + '班' + '\'' + ", 性别:'" + s.getStuSex() + '\'' + ", 年龄:"
                    + s.getStuAge() + ", 分数:" + s.getStuScore() + '}');

        }
    }

按学号查询,for 循环在里面来判断下输入的学号是否与模拟的数据库里面的学号是否相等,相等就输出。

public static void QueryStuNo(ArrayList<StudentDataBase> arrayList, int stuNo) {
        if (arrayList.size() == 0) {
            System.out.println("目前数据库为空,暂时没有数据呢,请添加数据!");
        }
        for (int i = 0; i < arrayList.size(); i++) {
            StudentDataBase s = arrayList.get(i);
            if (s.getStuNo() == stuNo) {
                System.out.println("学生信息{" + "学号:" + s.getStuNo() + ", 姓名:'" + s.getStuName() +
                        '\'' + ", 班级:'" + s.getStuClass() + '\'' + ", 性别:'" + s.getStuSex() + '\'' + ", 年龄:"
                        + s.getStuAge() + ", 分数:" + s.getStuScore() + '}');
            }

        }
    }

这里先讲删除,删除也一样,找到学号了(因为学号是唯一的),就删掉去(调用remove)

public static void DeleteStudentInformation(int stuNo, ArrayList<StudentDataBase> arrayList) {

        if (arrayList.size() == 0) {
            System.out.println("目前数据库为空,暂时没有数据呢,请添加数据!");
        }

        for (int i = 0; i < arrayList.size(); i++) {
            StudentDataBase s = arrayList.get(i);
            if (arrayList.get(i).getStuNo() == stuNo){
                arrayList.remove(s);
            }
        }

    }

然后是修改功能,思路:先查询学号,根据学号来修改信息,查到学号之后先删除这条信息,然后在调用添加,就能实现修改效果。

    public static void ReviseStudentInformation(int stuNo, String stuName, int stuClass, String stuSex, int stuAge, int stuScore, ArrayList<StudentDataBase> arrayList) {

        if (arrayList.size() == 0) {
            System.out.println("目前数据库为空,暂时没有数据呢,请添加数据!");
        }

        StudentDataBase studentDataBase = new StudentDataBase();

        studentDataBase.setStuNo(stuNo);
        studentDataBase.setStuName(stuName);
        studentDataBase.setStuClass(stuClass);
        studentDataBase.setStuSex(stuSex);
        studentDataBase.setStuAge(stuAge);
        studentDataBase.setStuScore(stuScore);

        DeleteStudentInformation(stuNo,arrayList);
        arrayList.add(studentDataBase);


//        QueryStuNo(arrayList,stuNo);
        System.out.println("修改之后的数据:");
        PrintStudentInformation(arrayList);

    }

后面的各个功能原理是一样的,像查询班级学生信息,就是当输入的信息与模拟数据库的信息相等时,就输出,模糊查询判断输入的是否被包含在模拟数据库的信息,包含就输出。这里就不一一显示了。

四、Main 总控制台

像输入的数据要不停的输进去那么就要使用到死循环了,while 里面加上 true,想退出加上个 break。 

源码获取:本人主页右侧关注公众号回复“学生管理系统”获取源码

 (求关注)持续更新中……

  • 41
    点赞
  • 53
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 29
    评论
以下是一个简单的Java生信息管理系统的代码示例,包括添加生、查询生和删除生三个基本功能。您可以根据需要进行修改和完善。 ```java import java.util.ArrayList; import java.util.Scanner; public class StudentInfoSystem { private ArrayList<Student> students; public StudentInfoSystem() { students = new ArrayList<Student>(); } public void addStudent(Student student) { students.add(student); } public void removeStudent(int id) { for (int i = 0; i < students.size(); i++) { if (students.get(i).getId() == id) { students.remove(i); System.out.println("删除成功!"); return; } } System.out.println("未找到该生!"); } public void queryStudent(int id) { for (int i = 0; i < students.size(); i++) { if (students.get(i).getId() == id) { System.out.println(students.get(i).toString()); return; } } System.out.println("未找到该生!"); } public void showAllStudents() { for (int i = 0; i < students.size(); i++) { System.out.println(students.get(i).toString()); } } public static void main(String[] args) { StudentInfoSystem sis = new StudentInfoSystem(); Scanner scanner = new Scanner(System.in); while (true) { System.out.println("请选择操作:1.添加生 2.删除生 3.查询生 4.显示所有生 5.退出"); int choice = scanner.nextInt(); switch (choice) { case 1: System.out.println("请输入生ID:"); int id = scanner.nextInt(); System.out.println("请输入生姓名:"); String name = scanner.next(); System.out.println("请输入生年龄:"); int age = scanner.nextInt(); System.out.println("请输入生性别:"); String gender = scanner.next(); Student student = new Student(id, name, age, gender); sis.addStudent(student); System.out.println("添加成功!"); break; case 2: System.out.println("请输入要删除的生ID:"); int id2 = scanner.nextInt(); sis.removeStudent(id2); break; case 3: System.out.println("请输入要查询的生ID:"); int id3 = scanner.nextInt(); sis.queryStudent(id3); break; case 4: sis.showAllStudents(); break; case 5: System.exit(0); default: System.out.println("输入有误,请重新输入!"); break; } } } } class Student { private int id; private String name; private int age; private String gender; public Student(int id, String name, int age, String gender) { this.id = id; this.name = name; this.age = age; this.gender = gender; } public int getId() { return id; } public String getName() { return name; } public int getAge() { return age; } public String getGender() { return gender; } public String toString() { return "ID:" + id + " 姓名:" + name + " 年龄:" + age + " 性别:" + gender; } } ```

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

程序猿追

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

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

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

打赏作者

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

抵扣说明:

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

余额充值