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

  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 = "党员";elseisDy1 = "非党员";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型对象,并将其填入数组ss[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 设计简单班级管理系统相关推荐

  1. java班级管理系统用到数据库_java班级管理课程设计报告--班级管理系统.docx

    java班级管理课程设计报告--班级管理系统 <Java程序设计>课程设计报告课设题目: 班级管理系统 学院:信息技术工程学院 专 业:计算机科学与技术 目 录1 引言11.1 开发背景及 ...

  2. java做一个客房管理系统定制_管理皮孩子很难?来,教你一个java设计简单的学生管理系统...

    前言: 孩子不听话,那就系统的管理起来,啊哈哈哈哈 学生成绩管理系统 要求: 完善Student类,Student类包含学号.姓名.年级.专业.三门功课的成绩(英语.高数.计算机)的成员变量,完善成绩 ...

  3. 使用Java设计简单的画图工具

    一.步骤: 1.显示绘图界面,包括一些功能按钮: 2.设置监听器,这里是鼠标监听器: 3.添加画笔:显示绘制内容. 1.显示绘图界面: JFrame jf = new JFrame(); jf.set ...

  4. 基于java设计的图书管理系统

    小编在学java的期间,经过查阅资料经修改,实现的一些简单功能: 1.登录界面: 用户可以选择登录或注册账号,如果初始没有账号,可以通过注册按钮进行注册,然后在进行登录: 代码: public cla ...

  5. Java设计学生成绩管理系统

    1.1 题目与要求 设计一个学生成绩排名系统 实现以下功能: (1) 具备对成绩的管理功能(添加.删除.排序): (2) 具备对成绩的统计功能(最高分,最低分,平均分,及格率等): (3) 具备按学号 ...

  6. Java实现简单图书馆管理系统

    编写图书馆管理系统 源码https://github.com/Hu1Wence/Learn_Java/tree/master/BookManage 思路 要编写这个程序我们首相要清楚这个程序中有哪些对 ...

  7. JAVA设计驾驶员信息管理系统_基于jsp的大连驾驶员信息查询-JavaEE实现大连驾驶员信息查询 - java项目源码...

    基于jsp+servlet+pojo+mysql实现一个javaee/javaweb的大连驾驶员信息查询, 该项目可用各类java课程设计大作业中, 大连驾驶员信息查询的系统架构分为前后台两部分, 最 ...

  8. 学生档案信息管理系统java_基于JAVA的简单档案管理系统

    基于java的档案管理系统 项目技术组成:(Spring+SpringMVC+MyBatis+shiro+vue等等) [if !supportLists]1. [endif]系统管理 [if !su ...

  9. 基于mybatis设计简单信息管理系统1

    驼峰式命名法 骆驼式命名法就是当变量名或函数名是由一个或多个单词连结在一起,而构成的唯一识别字时,第一个单词以小写字母开始:第二个单词的首字母大写或每一个单词的首字母都采用大写字母,例如:myFirs ...

  10. Java实现简单航班查询系统

    #java实现简单航班管理系统 题目要求:声明一个Flight(航班)类,该类包含private域航班号(如:CA1430),起飞时间(如:10:15AM),到达时间(如:2:30PM).为该类声明合 ...

最新文章

  1. JavaScript--正则
  2. vim 7.4同时支持python 2.x和3.x问题调研
  3. python写文件读文件-Python 实例:读写文件
  4. Java NIO ———— Buffer 缓冲区详解
  5. 优化算法笔记|萤火虫算法理解及实现
  6. android 小红点自动显示,Android应用图标上的小红点Badge实践代码
  7. 前端项目集成 stylelint
  8. 计算机文化基础在线作业答案,地大《计算机文化基础》在线作业一答案.doc
  9. 开课吧Java课堂:如何使用迭代函数
  10. java 字符串排序_Java控制台输入字符串及字符串比较
  11. html5手机的注册页面,H5页面结合vue实现登录注册组件
  12. deepin安装maven
  13. mysql mcafee audit_ libaudit
  14. dota2服务器切换账号,DOTA2怎么改成国服 教你三步完成设置
  15. 「京东白条」的数据架构进化之路!
  16. plc云网关与串口服务器区别,plc智能网关和传统工业路由器有什么区别
  17. 设计模式-工厂模式的3中不同实现[JAVA]
  18. 学生一族必备热门手机应用软件大汇集
  19. Rust交叉编译开发环境的搭建
  20. Python爬虫学习笔记 (9) [初级] 小练习 爬取慕课网课程清单

热门文章

  1. Android开发的经典入门教材和学习路线
  2. 机器人机构学的数学基础——绪论
  3. 论文(0):下载ieee期刊会议杂志论文模板流程--以IEEE RA-L为例
  4. 基于android的电子词典设计_基于安卓Android的电子词典的设计与实现
  5. mysql 数据库设计实例_一个简单数据库设计例子
  6. [转载]《Linux Kernel Development》读书笔记 - 蔚蓝海岸 - C++博客
  7. openvpen最新安卓中文版_ins下载官方安卓最新版-ins下载安卓版中文版下载v2.5.46 手机版-西西软件下载...
  8. 《人工智能 智能系统指南》
  9. 2021年上半年数据库系统工程师下午真题及答案解析
  10. 在VFP里玩SQL查询