Java实现简单班级管理系统

 更新时间:2022年02月25日 12:12:05   作者:LYQyzwds  
这篇文章主要为大家详细介绍了Java实现简单班级管理系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

 本文设计一个简单的班级管理系统,满足如下要求:

1、设计学生类Student,包含学号(String型)、姓名(String型)、性别(‘M’/'F’代表男/女)、年龄(int型)、是否党员(boolean型)、语文(double型)、数学(double型)等信息,要能够方便输出学生信息;

2、设计班级类BanJi,其中创建班级时可指定班级的最大容量。可向班级中批量增加学生信息,以及打印输出班级中所有学生的信息。

import java.util.Scanner;
class Student{
    String id,name; char sex; int age; boolean isDy; double chinese,math;
    Student(String i,String n,char s,int a,boolean Dy,double c,double m){
        id=i; name=n; sex=s; age=a; isDy=Dy; chinese=c; math=m;
    }
    public String toString(){ //此函数在用System.out.print(s)打印Student型对象s时,会被自动调用
        String sex1 = "未知";//即此处控制如何输出学生信息
        if(sex=='M' || sex=='m')
            sex1 = "男";
        else if(sex=='F' || sex=='f')
            sex1 = "女";
        String isDy1 = "未知";
        if(isDy == true)
            isDy1 = "党员";
        else
            isDy1 = "非党员";
        return id+" "+name+" "+sex1+" "+age+" "+isDy1+" "+chinese+" "+math;
    }
    void print() {
        System.out.print(this);
    }
}
class BanJi{ //班级类,实际上是存储学生的顺序表,数组+表长
     Student [] s; // 此处并未创建数组对象,仅是数组的引用
     int len;
     BanJi(int x){ s = new Student[x];} //此处创建【数组】对象,而非Student对象,用[]而不是()!
     void append() { // 向班级中批量增加学生元素
         int i=0;
         String id,name; char sex; int age; boolean isDy; double chinese,math;
         System.out.print("按如下格式输入:\n");
         System.out.print("000 张三 F 20 true 33.44 66\n");
         System.out.print("请输入:\n");
         Scanner sc = new Scanner(System.in);
         while(sc.hasNext() == true) {
             id = sc.next();
             name = sc.next();
             String xb = sc.next(); sex = xb.charAt(0);// 不能直接读取char型,xb.charAt(0)取字符串xb的第一个字符
             age = sc.nextInt();
             isDy = sc.nextBoolean();
             chinese = sc.nextDouble();
             math = sc.nextDouble();
             //必须创建一个Student型对象,并将其填入数组s
             s[i] = new Student(id,name,sex,age,isDy,chinese,math);
             i++;
         }//end-while 必须输入结束符才能使hasNext()为假
         len = i;
     }
     void print() {
         for(int i=0;i<len;i++)
             System.out.print(s[i]+"\n");
     }
}
class App{
    public static void main(String [] args) {
        BanJi h = new BanJi(50);
        h.append();
        h.print();
    }
}

//本例掌握:

1、系统性地学习了Scanner读取不同类型数据、读取未知数量的数据(haxNext()–面向String型、hasNextInt()、hasNextDouble())、如何结束输入(ctrl+Z);

2、重点: Student[] s=new Student[100]; 创建的是一个数组对象,而非Student对象
注:s是 一个Student[]型 数组对象,内有100个空指针(即null),
如果希望使用st[i].show(); ,s[i]必须先创建对象,然后才能使用。即:s[i]=new Student(…); //注此处使用圆括号,即调用了Student的构造函数
否则,将会产生空指针引用异常。

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

相关文章

  • Java结构型模式中的组合模式详解

    Java结构型模式中的组合模式详解

    组合模式,又叫部分整体模式,它创建了对象组的数据结构组合模式使得用户对单个对象和组合对象的访问具有一致性。本文将通过示例为大家详细介绍一下组合模式,需要的可以参考一下
    2023-02-02
  • SpringBoot常用注解@RestControllerAdvice详解

    SpringBoot常用注解@RestControllerAdvice详解

    这篇文章主要介绍了SpringBoot常用注解@RestControllerAdvice详解,@RestControllerAdvice是一个组合注解,由@ControllerAdvice、@ResponseBody组成,而@ControllerAdvice继承了@Component,因此@RestControllerAdvice本质上是个Component,需要的朋友可以参考下
    2024-01-01
  • Java中ArrayList类用法详解

    Java中ArrayList类用法详解

    这篇文章主要给大家介绍了关于Java中ArrayList类用法的相关资料,ArrayList是Java中的一种常见的数据结构,它实现了List接口,是线程不安全的动态数组,需要的朋友可以参考下
    2023-09-09
  • Skywalking改成适配阿里云等带Http Basic的Elasticsearch服务

    Skywalking改成适配阿里云等带Http Basic的Elasticsearch服务

    这篇文章主要介绍了改造Skywalking支持阿里云等带Http Basic的Elasticsearch服务
    2022-02-02
  • SpringBoot使用Redis Stream实现轻量消息队列的示例代码

    SpringBoot使用Redis Stream实现轻量消息队列的示例代码

    Redis Stream 是 Redis 5.0 引入的一种数据结构,用于处理日志类型的数据,它提供了高效、可靠的方式来处理和存储时间序列数据,如事件、消息等,本文介绍了SpringBoot使用Redis Stream实现轻量消息队列,需要的朋友可以参考下
    2024-08-08
  • SpringCloud使用Feign文件上传、下载

    SpringCloud使用Feign文件上传、下载

    这篇文章主要为大家详细介绍了SpringCloud使用Feign文件上传、下载功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-04-04
  • Java 读取PDF中的文本和图片的方法

    Java 读取PDF中的文本和图片的方法

    本文将介绍通过Java程序来读取PDF文档中的文本和图片的方法。分别调用方法extractText()和extractImages()来读取,需要的朋友可以参考下
    2019-07-07
  • SpringCloud Nacos + Ribbon 调用服务的实现方式(两种)

    SpringCloud Nacos + Ribbon 调用服务的实现方式(两种)

    这篇文章主要介绍了SpringCloud Nacos + Ribbon 调用服务的两种方法,分别是通过代码的方式调用服务和通过注解方式调用服务,每种方式给大家介绍的非常详细,需要的朋友可以参考下
    2022-03-03
  • 完美解决springboot项目出现”java: 错误: 无效的源发行版:17“问题(图文详解)

    完美解决springboot项目出现”java: 错误: 无效的源发行版:17“问题(图文详解)

    这篇文章主要介绍了完美解决springboot项目出现”java: 错误: 无效的源发行版:17“问题,本文通过图文并茂的形式给大家介绍的非常详细,需要的朋友可以参考下
    2023-04-04
  • java开发时各类工具的使用规范

    java开发时各类工具的使用规范

    这篇文章主要介绍了java编码时各类工具的使用规范,多人协作、共同开发一个项目,如果没有统一的代码规范的话,项目中的每个人都按照自己的习惯率性而为,就会导致整个项目的代码看上去杂乱无章,可读性非常差,并且持续增加后续的维护成本。对此感兴趣可以来了解一下
    2020-07-07

最新评论