Java实现简单班级管理系统
作者:LYQyzwds 发布时间:2023-01-07 16:20:29
标签: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的构造函数
否则,将会产生空指针引用异常。
来源:https://blog.csdn.net/m0_46527503/article/details/109405359
0
投稿
猜你喜欢
- 1、在Windows下用CMD netstat命令可以获得当前进程监听端口号的信息,如netstat -ano可以看到IP、port、状态和
- 点九图片的拉伸区域不难理解,显示内容区域是怎样的?.9 ,是andriod平台的应用软件开发里的一种特殊的图片形式,文件扩展名为:.9.pn
- 功能描述上传照片文件名及是系统要识别标签或是照片的名称(人物标识)提取照片脸部特征值(调用 facemesh模型)保存特征值添加样本(调用
- 方法一public static boolean isTablet(Context context) {
- 有时候我们需要在一个ArrayList的for循环中动态删除元素的需求, 废话不多说看代码List<Integer> list
- 标准c++中string类函数介绍注意不是CString之所以抛弃char*的字符串而选用C++标准程序库中的string类,是因为他和前者
- 在进行详解之前,我想先声明一下,本次我们进行讲解说明的是 Kafka 消息存储的信息文件内容,不是所谓的 Kafka 服务器运行产生的日志文
- Android中SQLite 使用方法详解现在的主流移动设备像android、iPhone等都使用SQLite作为复杂数据的存储引擎,在我们
- 题目:求1+2!+3!+...+20!的和程序分析:此程序只是把累加变成了累乘。程序设计:public class Ex21 {  
- 本文实例为大家分享了java生成字母验证码的具体代码,供大家参考,具体内容如下import java.awt.BasicStroke;imp
- 具体可见http://developer.android.com/tools/debugging/ddms.html。 DDMS为IDE和e
- 在Android开发中,我们不光可以使用已有的实现方式,而且,我们还可以利用Android这个智能手机平台,实现一些比较有特色的功能。本篇文
- 1.前提:已安装JDK14,可以到jdk官网下载,或加QQ群835259695,快速免费下载2.不说没用的直接上jdk14环境下的jpack
- 前言:在 Spring 中, IOC 是很重要的概念,其本质就是 map 结构,存储容器和业务 Be
- Nacos获取不到配置的值namespace设计真实一个奇特的东西。用spring-cloud-starter-alibaba-nacos-
- 第一步:整合pom文件,在Spring Cloud中添加XXL-Job的依赖<!-- xxl-job-core --><d
- 时间轴,顾名思义就是将发生的事件按照时间顺序罗列起来,给用户带来一种更加直观的体验。京东和淘宝的物流顺序就是一个时间轴,想必大家都不陌生,如
- 实现过滤器很简单,只需要继承ZuulFilter,并实现ZuulFilter中的抽象方法。filterType():定义过滤器的类型,它有4
- 这篇文章主要介绍了SpringBoot加载外部依赖过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要
- Maven打包没有指定主类在使用IDEA开发项目的时候经常会遇到使用Maven打包项目(打成jar包或者zip包),但是之前不太清楚打包插件