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
投稿
猜你喜欢
- java 单例的五种实现方式及其性能分析序言在23种设计模式中,单例是最简单的设计模式,但是也是很常用的设计模式。从单例的五种实现方式中我们
- 多数据源创建数据库CREATE DATABASE mybatis_plus_1;USE mybatis_plus_1;CREATE TABL
- java 并发线程个数的确定本文从控制变量的角度来谈决定线程个数的依据。模型很简单,在实际的生产环境中,情况肯定比下文要复杂的多。要充分的进
- 写在前面注:本文章使用的 SpringBoot 版本为 2.2.4.RELEASE,其 Spring 版本为 5.2.3.RELEASE前言
- 经典分布式事务,是相对互联网中的柔性分布式事务而言,其特性为ACID原则,包括原子性(Atomictiy)、一致性(Consistency)
- 单元测试是程序员对代码的自测,一般公司都会严格要求单元测试,这是对自己代码的负责,也是对代码的敬畏。一般单元测试都是测试Service层,下
- 1. List1.1 List 的常见方法方法描述boolean add(E e)尾插 evoid add(int index, E ele
- 谷歌官方推出了一种侧滑菜单的实现方式(抽屉效果),即 DrawerLayout,这个类是在Support Library里的,需要加上and
- 基本用法不说了,网上例子很多,这里主要介绍下比较特殊情况下使用的方法。1. 分组有的时候,我们对一个实体类需要有多中验证方式,在不同的情况下
- 第1部分 ArrayList介绍ArrayList 是一个数组队列,相当于 动态数组。与Java中的数组相比,它的容量能动态增长。它继承于A
- java模拟TCP通信实现客户端上传文件到服务器端,供大家参考,具体内容如下客户端package com.zr;import java.io
- 这篇文章主要介绍了springboot如何使用AOP做访问请求日志,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价
- 泛型是Java中一个非常重要的内容,对于Java进阶学习是必须要掌握的知识点之所以说这个知识点重要,如果你有过阅读过一些开源框架的代码,那你
- 业务场景我们知道在使用PageHelper分页插件时,会对执行PageHelper.startPage(pageNum, pageSize)
- 本文实例为大家分享了JAVASE系统实现抽卡功能的具体代码,供大家参考,具体内容如下先看下文件结构使用到的知识点:看下Client类的实现:
- 一:form在前台以post方式提交数据: 浏览器将数据(假设为“中国”)发送给服务器的时
- 属性问题引入前面我们已经在父工程中的dependencyManagement标签中对项目中所使用的jar包版本进行了统一的管理,但是如果在标
- 本文实例讲述了java实现单词搜索迷宫游戏。分享给大家供大家参考。具体分析如下:我们在杂志上,经常能够看到找单词的小游戏,在一个二维表格中,
- 一、简介   Seata 是一款开源的分布式事务解决方案,致力于在微服务架构下提供高性能和简单易用的分布
- // 获取国家省市区信息$(document).ready(function(){//从程序