文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

java对象数组实现学生信息管理系统

2024-04-02 19:55

关注

本文实例为大家分享了Java实现学生信息管理系统,供大家参考,具体内容如下

一、功能需求

case 10:添加学生
case 11:查找一个学生
case 12:根据编号更新学生基本信息
case 13:根据编号删除学生
case 14:根据编号录入成绩
case 15:根据某门成绩排序
case 16:根据总成绩排序
case 99:退出系统

二、代码框架

一共有三个文件:

1、Student.java(学生类) //学生的基本信息
2、StudentAdmin.java(学生管理类) //用于对学生数组操作
3、StudentTest.java(主程序)

三、代码

下面为具体的代码:

1.学生类 Student.java


package com.studentadmin.test;

public class Student {
    private int number;
    private String name;
    private int age;
    private int python;
    private int java;
    private int linux;
    private int sql;
    private int sum;
    private int avg;

    public int getNumber() {
        return number;
    }

    public void setNumber(int number) {
        this.number = number;
    }

    public String getName() {
        return name;
    }

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

    public int getAge(){
        return age;
    }

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

    public int getPython() {
        return python;
    }

    public void setPython(int python) {
        this.python = python;
    }

    public int getJava() {
        return java;
    }

    public void setJava(int java) {
        this.java = java;
    }

    public int getLinux() {
        return linux;
    }

    public void setLinux(int linux) {
        this.linux = linux;
    }

    public int getSql() {
        return sql;
    }

    public void setSql(int sql) {
        this.sql = sql;
    }

    public int getSum() {
        return sum;
    }

    public void setSum() {
        this.sum = this.python+this.java+this.linux+this.sql;
    }

    public int getAvg() {
        return avg;
    }

    public void setAvg() {
        this.avg = this.sum/4;
    }

    public String toString(){ //学生信息
        String str="\t\t"+this.number+"\t\t"+this.name+"\t\t"+this.age+"\t\t"+this.python+"\t\t"
                +this.java+"\t\t"+this.linux+"\t\t"+this.sql+"\t\t"+this.sum+"\t\t"+this.avg;
        return str;
    }
}

2.学生管理类 StudentAdmin.java


package com.studentadmin.test;

public class StudentAdmin {
    static String msg="\t\t编号\t\t姓名\t\t年龄\t\tpython\tjava\tlinux\tsql\t\t总分\t\t平均分";
    //功能菜单:
    public void menu(){
        System.out.println("-----请选择你要执行的功能-----");
        System.out.println("10:添加一个学生");
        System.out.println("11:查找一个学生");
        System.out.println("12:根据学生编号更新学生基本信息");
        System.out.println("13:根据学生编号删除学生");
        System.out.println("14:根据学生编号输入学生各门成绩");
        System.out.println("15:根据某门成绩进行排序");
        System.out.println("16:根据总分进行排序");
        System.out.println("99:退出系统");
        System.out.println("----------------------------");
    }

    //返回数组中元素为空的下标
    public int index(Student[] arr){
            for(int i=0;i<arr.length;i++){
                if(arr[i]==null){
                    return i;//新学生的编号
                }
            }
            return 999; //学生已满员
    }

    //打印所有学生的信息
    public void print(Student[] arr){
        System.out.println(msg);
        for(int i=0;i<arr.length;i++){
            if(arr[i]!=null){
                System.out.println(arr[i]);
            }
        }
    }

    //10:添加学生
    public void create(String name,int age,Student[] arr){
        int index=index(arr);  //获取新学生的位置
        if(index!=999) { //如果还有空位置,可以添加学生
            Student stu = new Student();
            stu.setName(name);
            stu.setAge(age);
            stu.setNumber(index);
            arr[index] = stu;
            System.out.println("添加学生成功");
            this.print(arr);
        }else{
            System.out.println("班级学生已满,无法再添加学生了");
        }
    }
    //11:查找学生
    public void select(int number,Student[] arr){
        for(int i=0;i<arr.length;i++){
            if(arr[i]!=null){
                if(arr[i].getNumber()==number){
                    System.out.println(msg);
                    System.out.println(arr[i]);
                    return;
                }
            }
        }
        System.out.println("没有这个编号的学生");
    }
    //12:根据编号更新学生
    public void update(int number,String name,int age,Student[] arr){
        for(int i=0;i<arr.length;i++){
            if(arr[i]!=null){
                if(arr[i].getNumber()==number){
                    arr[i].setName(name);
                    arr[i].setAge(age);
                    System.out.println("更新学生信息成功");
                    this.print(arr);
                    return;
                }
            }
        }
        System.out.println("没有这个学生");
    }

    //13:根据编号删除学生
    public void delete(int number,Student[] arr){
        for(int i=0;i<arr.length;i++){
            if(arr[i]!=null){
                if(arr[i].getNumber()==number){
                    arr[i]=null;
                    System.out.println("删除成功");
                    this.print(arr);
                    return;
                }
            }
        }
        System.out.println("没有这个编号的学生");
    }

    //14:根据编号录入成绩
    public void input(int number, int python,int java,int linux,int sql,Student[] arr){
        for(int i=0;i<arr.length;i++) {
            if (arr[i] != null) {
                if (arr[i].getNumber() == number) {
                    arr[number].setPython(python);
                    arr[number].setJava(java);
                    arr[number].setLinux(linux);
                    arr[number].setSql(sql);
                    arr[number].setSum();
                    arr[number].setAvg();
                    System.out.println("录入成绩成功");
                    this.print(arr);
                    return;
                }
            }
        }
        System.out.println("不存在这个学生");
    }

    //15:根据某门成绩排序
    public void courseSort(int number,Student[] arr){
        switch (number) {
            case 1:
                for (int i = 0; i < arr.length - 1; i++) {
                    for (int j = i + 1; j < arr.length; j++) {
                    if (arr[i] != null && arr[j] != null) {
                        if (arr[i].getPython() < arr[j].getPython()) {
                            Student temp = arr[i];//比较某门成绩,交换学生
                            arr[i] = arr[j];
                            arr[j] = temp;
                        }
                    }
                }
            }
            break;
            case 2:
                for (int i = 0; i < arr.length - 1; i++) {
                    for (int j = i + 1; j < arr.length; j++) {
                        if (arr[i] != null && arr[j] != null) {
                            if (arr[i].getJava() < arr[j].getJava()) {
                                Student temp = arr[i];
                                arr[i] = arr[j];
                                arr[j] = temp;
                            }
                        }
                    }
                }
                break;
            case 3:
                for (int i = 0; i < arr.length - 1; i++) {
                    for (int j = i + 1; j < arr.length; j++) {
                        if (arr[i] != null && arr[j] != null) {
                            if (arr[i].getLinux() < arr[j].getLinux()) {
                                Student temp = arr[i];
                                arr[i] = arr[j];
                                arr[j] = temp;
                            }
                        }
                    }
                }
                break;
            case 4:
                for (int i = 0; i < arr.length - 1; i++) {
                    for (int j = i + 1; j < arr.length; j++) {
                        if (arr[i] != null && arr[j] != null) {
                            if (arr[i].getSql() < arr[j].getSql()) {
                                Student temp = arr[i];
                                arr[i] = arr[j];
                                arr[j] = temp;
                            }
                        }
                    }
                }
                break;
        }
        this.print(arr);
    }

    //16:根据总分排序
    public void sumSort(Student[] arr){
        for (int i = 0; i < arr.length - 1; i++) {
            for (int j = i + 1; j < arr.length; j++) {
                if (arr[i] != null && arr[j] != null) {
                    if (arr[i].getSum() < arr[j].getSum()) {
                        Student temp = arr[i];
                        arr[i] = arr[j];
                        arr[j] = temp;
                    }
                }
            }
        }
        this.print(arr);
    }

}

3.主程序 StudentTest.java


package com.studentadmin.test;
import java.util.Scanner;

public class StudentTest {
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        System.out.println("请定义学生人数");
        int stuNum=sc.nextInt(); //定义学生人数
        Student[] stuArr=new Student[stuNum]; //定义一个学生数组
        StudentAdmin admin=new StudentAdmin(); //定义一个管理对象,用来调用管理学生的方法
        while(true){
            admin.menu();//功能菜单
            int number=sc.nextInt();  //选择的菜单选项
            if(number==10){ //10:添加一个学生
                System.out.println("请输入学生姓名");
                String name=sc.next();
                System.out.println("请输入学生年龄");
                int age=sc.nextInt();
                admin.create(name,age,stuArr);
            }else if(number==11){//11:查找一个学生
                System.out.println("请输入你要查找的学生的编号");
                int num=sc.nextInt();
                admin.select(num,stuArr);
            }else if(number==12){//12:根据学生编号更新学生基本信息
                System.out.println("请输入你要更新的学生的编号");
                int num=sc.nextInt();
                System.out.println("请输入学生姓名");
                String name=sc.next();
                System.out.println("请输入学生年龄");
                int age=sc.nextInt();
                admin.update(num,name,age,stuArr);
            }else if(number==13){//13:根据学生编号删除学生
                System.out.println("请输入你要删除的学生编号");
                int num=sc.nextInt();
                admin.delete(num,stuArr);
            }else if(number==14){//14:根据编号输入学生各门成绩
                System.out.println("请输入学生编号");
                int num=sc.nextInt();
                System.out.println("请输入学生python成绩");
                int python=sc.nextInt();
                System.out.println("请输入学生java成绩");
                int java=sc.nextInt();
                System.out.println("请输入学生linux成绩");
                int linux=sc.nextInt();
                System.out.println("请输入学生sql成绩");
                int sql=sc.nextInt();
                admin.input(num,python,java,linux,sql,stuArr);
            }else if (number==15){//15:根据某门成绩进行排序
                System.out.println("请选择你要排序的课程(1:python 2:java 3:linux 4:sql)");
                int courseNum=sc.nextInt();
                admin.courseSort(courseNum,stuArr);
            }else if (number==16){//16:根据总分进行排序
                admin.sumSort(stuArr);
            }else if(number==99){//99:退出系统
                System.exit(0);
            }else{
                System.out.println("请重新输入");
            }
        }
    }

}

四、运行结果

1.添加学生功能

2.查找学生功能

3.根据编号更新学生基本信息功能

4.根据学生编号删除学生功能

5.根据学生编号录入学生各门成绩

6.根据某门成绩进行排序

7.根据总分进行排序

8.退出系统

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

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯