Java实现简单班级管理系统

网友投稿 266 2022-08-25


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 = PkLbjuRsc.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

System.out.print(s[i]+"\n");

}

}

class App{

public static void main(String [] args) {

BanJi h = new BanJi(50)http://;

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的构造函数否则,将会产生空指针引用异常。

System.out.print(s[i]+"\n");

}

}

class App{

public static void main(String [] args) {

BanJi h = new BanJi(50)http://;

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的构造函数否则,将会产生空指针引用异常。


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Python标准库datetime之time模块详解(python使用datetime库)
下一篇:os.getcwd 和os.path.abspath解读(os.getcwd()函数的作用是)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~