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]);
        }

    }

}

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

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

相关文章

  • java文件如何统计字母出现的次数和百分比

    java文件如何统计字母出现的次数和百分比

    这篇文章主要介绍了java文件如何统计字母出现的次数和百分比,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-11-11
  • Java中调用SQL Server存储过程详解

    Java中调用SQL Server存储过程详解

    这篇文章主要介绍了Java中调用SQL Server存储过程详解,本文讲解了使用不带参数的存储过程、使用带有输入参数的存储过程、使用带有输出参数的存储过程、使用带有返回状态的存储过程、使用带有更新计数的存储过程等操作实例,需要的朋友可以参考下
    2015-01-01
  • Spring之关于PropertyDescriptor的扩展剖析

    Spring之关于PropertyDescriptor的扩展剖析

    这篇文章主要介绍了Spring之关于PropertyDescriptor的扩展剖析,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-07-07
  • Java 信号量Semaphore的实现

    Java 信号量Semaphore的实现

    这篇文章主要介绍了Java 信号量Semaphore的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-09-09
  • 浅谈java面向对象的数组化信息处理

    浅谈java面向对象的数组化信息处理

    下面小编就为大家带来一篇浅谈java面向对象的数组化信息处理。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-06-06
  • 浅析Java中的 new 关键字

    浅析Java中的 new 关键字

    java中的new关键字是实例化对象,接下来本文通过一个案例给大家讲解Java中的 new 关键字,感兴趣的朋友可以参考下
    2016-08-08
  • 关于Java 获取时间戳的方法

    关于Java 获取时间戳的方法

    这篇文章主要介绍了关于Java获取时间戳的方法,Java有两个取时间戳的方法,分别是System.currentTimeMillis()和System.nanoTime()下文对两种方法进行详细介绍,需要的小伙伴可以参考一下
    2022-04-04
  • @scope("prototype") @loadbalanced注解负载均衡失效问题

    @scope("prototype") @loadbalanced注解负载均衡失效问题

    这篇文章主要为大家介绍了@scope("prototype") @loadbalanced注解负载均衡失效问题解决,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-02-02
  • 一文带你了解Java中的函数式编程

    一文带你了解Java中的函数式编程

    函数式编程的理论基础是阿隆佐·丘奇(Alonzo Church)于 1930 年代提出的 λ 演算(Lambda Calculus)。这篇文章主要为大家介绍了函数式编程的相关知识,希望对大家有所帮助
    2023-04-04
  • Java swing仿酷狗音乐播放器

    Java swing仿酷狗音乐播放器

    这篇文章主要为大家详细介绍了Java swing实现音乐播放器,Java开发图形界面程序音乐播放器仿酷狗音乐播放器,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-06-06

最新评论