java实现简单的学生管理系统

 更新时间:2022年02月24日 15:28:53   作者:全群最弱的玩家  
这篇文章主要为大家详细介绍了java实现简单的学生管理系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

用Java如何实现一个用数组作为存储结构的简易的学生管理系统?

首先,我们定义一个student类,在其中添加私有化的成员变量,通过getter和setter方法进行调用

public class Students {
    // 学号,姓名,性别,年龄,成绩
    private String stuNo = " ";
    private String stuName = " ";
    private String gender = " ";
    private int age;
    private int num;

    public String getStuNo() {
        return stuNo;
    }

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

    public String getStuName() {
        return stuName;
    }

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

    public String getGender() {
        return gender;
    }

    public void setGender(String gender) {
        this.gender = gender;
    }

    public int getAge() {
        return age;
    }

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

    public int getNum() {
        return num;
    }

    public void setNum(int num) {
        this.num = num;
    }

    public String toString() {
        return "[" + stuNo + "\t|" + stuName + "\t|" + gender + "\t|" + age + "\t|" + num + "]";
    }

}

随后,我们新建一个类,直接在main方法中写学生管理系统.学生信息管理系统一般要具有增删改查四个功能,我们可以分别用方法进行实现,然后在主菜单switch中进行调用。

package com.baidu.HomeWork.Stusys;

import java.util.Scanner;

public class Main {
    static int num = 0;
    static boolean tag = true;
    static boolean tag_1 = true;
    static Students[] stu = new Students[100];
    static Scanner scan = new Scanner(System.in);

    public static void main(String[] args) {

        while (tag) { // 主菜单
            System.out.println("1.增加学生数据");
            System.out.println("2.删除学生数据");
            System.out.println("3.修改学生数据");
            System.out.println("4.查询学生数据");
            System.out.println("5.退出学生管理系统");

            int scan_num = scan.nextInt();
            switch (scan_num) { // 主菜单选择
            case 1:
                add();
                break;
            case 2:
                delete();
                break;
            case 3:
                gai();
                break;
            case 4:
                cha();
                break;
            case 5:
                tag = false;
                break;
            default:
                break;
            }

        }
    }

    static void add() { // 增加学生信息
        while (tag_1) {
            stu[num] = new Students();
            System.out.println("请依次输入学号,姓名,性别,年龄,成绩");
            stu[num].setStuNo(scan.next());
            stu[num].setStuName(scan.next());
            stu[num].setGender(scan.next());
            stu[num].setAge(scan.nextInt());
            stu[num].setNum(scan.nextInt());
            num++;
            System.out.println("继续输入请输入true,否则输入false");
            tag_1 = scan.nextBoolean();

        }
        paixu();
        cha();
    }

    static void paixu() { // 对学生信息进行排序,该方法菜单中不可选择,但会在其他方法中调用
        int l = num - 1;
        int temp;
        for (int j = 0; j < l; j++) {
            for (int i = 0; i < l - j; i++) {
                // 依次比较相邻的两个元素,使较大的那个向后移
                if (stu[i].getNum() > stu[i + 1].getNum()) {
                    temp = stu[i].getNum();
                    stu[i].setNum(stu[i + 1].getNum());
                    stu[i + 1].setNum(temp);
                }
            }
        }
    }

    static boolean kai = false;

    static void delete() { // 删除学生信息
        System.out.println("请输入你要删除的学号");
        String xuehao = scan.next();
        int i;
        for (i = 0; i < num; i++) {
            if (xuehao.equals(stu[i].getStuNo())) {
                kai = true;
                break;
            }
        }
        if (kai) {
            for (; i < num; i++) {
                stu[i].setStuNo(stu[i + 1].getStuNo());
                stu[i].setStuName(stu[i + 1].getStuName());
                stu[i].setGender(stu[i + 1].getGender());
                stu[i].setAge(stu[i + 1].getAge());
                stu[i].setNum(stu[i + 1].getNum());
            }
        } else {
            System.out.println("查无此人");
        }
        num--;
    }

    static boolean gai = false;

    static void gai() {                   // 修改学生信息
        System.out.println("请输入你要修改的学号");
        String xuehao = scan.next();
        int i;
        for (i = 0; i < num; i++) {
            if (xuehao.equals(stu[i].getStuNo())) {
                gai = true;
                break;
            }
        }
        if (gai) {
            System.out.println("请依次输入信息");
            stu[i].setStuNo(scan.next());
            stu[i].setStuName(scan.next());
            stu[i].setGender(scan.next());
            stu[i].setAge(scan.nextInt());
            stu[i].setNum(scan.nextInt());
        } else {
            System.out.println("查无此人");
        }
        paixu();
        cha();

    }

    static void cha() {                  // 遍历学生信息并打印,取代了逐一查找学生信息
        System.out.println("[学号\t|姓名 \t|性别 \t|年龄\t|成绩]");
        for (int i = 0; i < num; i++) {
            System.out.println(stu[i]);
        }

    }

}

这样一个简单的用数组实现的学生系信息管理系统就做好了,还可以向其中添加其他的方法丰富这个系统或者为这个系统做一个界面。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • 在SpringBoot中注入RedisTemplate实例异常的解决方案

    在SpringBoot中注入RedisTemplate实例异常的解决方案

    这篇文章主要介绍了在SpringBoot中注入RedisTemplate实例异常的解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-01-01
  • 9种Java单例模式详解(推荐)

    9种Java单例模式详解(推荐)

    这篇文章主要介绍了9种Java单例模式详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-03-03
  • java之assert关键字用法案例详解

    java之assert关键字用法案例详解

    这篇文章主要介绍了java之assert关键字用法案例详解,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-08-08
  • java——Byte类/包装类的使用说明

    java——Byte类/包装类的使用说明

    这篇文章主要介绍了java——Byte类/包装类的使用说明,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-02-02
  • Spring Boot中@Conditional注解介绍

    Spring Boot中@Conditional注解介绍

    @Conditional表示仅当所有指定条件都匹配时,组件才有资格注册。该@Conditional注释可以在以下任一方式使用:作为任何@Bean方法的方法级注释、作为任何类的直接或间接注释的类型级别注释@Component,包括@Configuration类、作为元注释,目的是组成自定义构造型注释
    2022-09-09
  • 一篇文章带你学会Spring MVC表单标签

    一篇文章带你学会Spring MVC表单标签

    Spring MVC表单标签是网页的可配置和可重复使用的构建块,下面这篇文章主要给大家介绍了如何通过一篇文章学会Spring MVC表单标签的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2023-03-03
  • 详解SpringBoot如何使用JWT实现身份认证和授权

    详解SpringBoot如何使用JWT实现身份认证和授权

    JSON Web Token(JWT)是一种用于在网络应用之间安全传递信息的开放标准,本文主要为大家介绍了如何在Spring Boot中使用JWT实现身份认证和授权,需要的可以了解下
    2023-10-10
  • java数组中的异常类型整理

    java数组中的异常类型整理

    在本篇文章里小编给各位分享的是一篇关于java数组中的异常类型整理内容,有兴趣的朋友们可以学习下。
    2021-02-02
  • java图片缩放实现图片填充整个屏幕

    java图片缩放实现图片填充整个屏幕

    这篇文章主要介绍了java图片缩放实现图片填充整个屏幕,本文提供了两种解决方法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-05-05
  • 轻松掌握Java工厂模式、抽象工厂模式

    轻松掌握Java工厂模式、抽象工厂模式

    这篇文章主要帮助大家轻松掌握Java工厂模式、抽象工厂模式,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-10-10

最新评论