【Java每日一题】——第三十题:班级管理程序设计

简介: 【Java每日一题】——第三十题:班级管理程序设计

🎯问题:


(1)需求分析:


                        (a)学生有姓名、年龄属性,并有显示学生信息的方法;


                        (b)班级有班级名称、学生数组、学生数量属性和显示班级所有学生信息的方法。


       (2)设计步骤:


                        (a)定义学生类Student,定义成员变量:学生姓名(String name),年龄(int age),定义对应的getXxx()/setXxx()方法,定义无参构造方法和带参构造方法,以及一个显示所有成员信息的toString()方法;


                        (b)定义学生班级类StudentClass,定义成员变量:班级名称(String name),学生数量(int  number),学生名单数组(Student[]  member = new Student[50]);定义以上成员变量对应的getXxx()/setXxx()方法,定义无参构造方法和带参构造方法;


                        (c)在StudentClass类中定义addStudent(Student s)方法,用于向班级添加学生,如果学生数组(Student[]  member)中的人数小于number,则学生对象(Student s)加入到学生数组,学生数量number++,否则显示“本班已经有50名学生,无法添加。”的信息;


                        (d)在StudentClass类中定义showMsg()方法,用于显示班级学生信息:使用输出语句分别输出班级名称、班级学生人数信息,遍历学生数组(Student[]  member),输出数组中每个学生对象的信息((member[i].toString());


                        (e)定义一个测试类Test02测试功能,具体如下:调用StudentClass类的无参构造方法创建学生班级对象sc,设置班级名称,调用Student类的无参构造方法创建学生对象s1,设置学生姓名和年龄,调用Student类的带参构造方法创建学生对象s2、s3,学生班级对象sc调用addStudent()方法向学生数组添加学生对象s1、s2、s3,最后学生班级对象sc调用showMsg()方法显示班级学生信息。测试结果如下:

081641e4599f34233c617763ce2ca504_11f1e14a15014caabb75a92e5882a34a.png


🎯 代码:

package file3;
 
public class Student {
private String name;
private int age;
public String getName() {
  return name;
}
public void setName(String name) {
  this.name = name;
}
public int getAge() {
  return age;
}
public void setAge(int age) {
  this.age = age;
}
public Student(String name, int age) {
  super();
  this.name = name;
  this.age = age;
}
public Student() {
  super();
}
@Override
public String toString() {
  return "Student [name=" + name + ", age=" + age + "]";
}
public static class StudentClass{
  private  String name;
  private int number;
  private Student[]member=new Student[50];
  public String getName() {
    return name;
  }
  public void setName(String name) {
    this.name = name;
  }
  public int getNumber() {
    return number;
  }
  public void setNumber(int number) {
    this.number = number;
  }
  public Student[] getMember() {
    return member;
  }
  public void setMember(Student[] member) {
    this.member = member;
  }
  public StudentClass(String name, int number, Student[] member) {
    super();
    this.name = name;
    this.number = number;
    this.member = member;
  }
  public StudentClass() {
    super();
  }
  public void addStudent(Student s) {
    if(number<50) {
      member[number]=s;
      number++;
    }
    else
      System.out.println("本班已经有50名学生,无法添加");
  }
public void showMsy() {
    System.out.println("班级名称:"+name);
    System.out.println("班级学生人数"+number);
    for(int i=0;i<number;i++) {
      System.out.println(member[i].toString());
    }
  }
 
public static void main(String[] args) {
    StudentClass sc=new StudentClass();
    sc.setName("软工2205班");
    Student s1=new Student();
    s1.setName("你好");
    s1.setAge(18);
    Student s2=new Student("闫桑",19);
    Student s3=new Student("刘桑",18);
    sc.addStudent(s1);
    sc.addStudent(s2);
    sc.addStudent(s3);
    sc.showMsy();
  }
}
} 
 


💛废话文学:

Java的优势:


跨平台性: Java是一种跨平台的编程语言,即一次编写,到处运行。Java程序在不同的操作系统上具有很高的移植性,这使得开发人员能够通过Java开发应用程序,无需担心底层操作系统的差异。


面向对象: Java是一种面向对象的编程语言,支持封装、继承和多态等面向对象的特性。这种编程范式使得代码可以更加模块化、可重用,并且有助于提高代码的可维护性和可扩展性。


强大的生态系统: Java拥有丰富的标准库和第三方库,提供了各种功能强大的工具和框架,如Spring、Hibernate和JUnit等。这些工具和框架使得Java开发人员能够更加高效地开发应用程序,并提供了解决特定问题的解决方案。


多线程支持: Java内置了对多线程编程的支持,使得开发人员可以轻松地创建并发应用程序。多线程编程可以有效地利用多核处理器的性能,并提高程序的响应速度和吞吐量。


安全性: Java拥有严格的安全机制,包括字节码验证、安全管理器和安全沙箱等,可以防止恶意代码对系统的破坏。这使得Java成为开发安全性要求较高的应用程序的理想选择。

相关文章
|
4月前
|
Java 测试技术 开发者
💡Java 零基础:彻底掌握 for 循环,打造高效程序设计
【10月更文挑战第15天】本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
146 63
|
8月前
|
数据采集 监控 前端开发
JAVA公立医院绩效考核管理系统源码-对接HIS数据
在医院的工作和管理上,院领导需要对院内工作人员的工作情况进行了解、评价和监控。 下面将对医院绩效管理系统的HIS数据流程加以阐述。
66 1
JAVA公立医院绩效考核管理系统源码-对接HIS数据
|
7月前
|
JavaScript Java 测试技术
基于Java的人事管理系统设计和实现(源码+LW+部署讲解)
基于Java的人事管理系统设计和实现(源码+LW+部署讲解)
133 7
|
7月前
|
JavaScript Java 测试技术
基于Java的儿童福利院管理系统设计和实现(源码+LW+部署讲解)
基于Java的儿童福利院管理系统设计和实现(源码+LW+部署讲解)
127 7
|
7月前
|
缓存 安全 Java
Java中线程池如何管理?
【7月更文挑战第11天】Java中线程池如何管理?
71 2
|
7月前
|
存储 监控 算法
Java中如何管理内存?
【7月更文挑战第10天】Java中如何管理内存?
73 2
|
7月前
|
设计模式 缓存 安全
Java面试题:工厂模式与内存泄漏防范?线程安全与volatile关键字的适用性?并发集合与线程池管理问题
Java面试题:工厂模式与内存泄漏防范?线程安全与volatile关键字的适用性?并发集合与线程池管理问题
84 1
|
7月前
|
Java 关系型数据库 MySQL
班级通讯录管理系统(Java+MySQL)
构建了一个Java Swing应用,搭配MySQL,实现班级通讯录管理。系统具备管理员登录、班级与学生信息的增删改查功能,每个班级窗口独立且自适应布局。利用GBK编码处理中文,JDBC连接数据库,优化窗口复用和代码结构,数据变更实时同步。示例截图展示详细界面。
班级通讯录管理系统(Java+MySQL)
|
7月前
|
JavaScript 前端开发 Java
Java数字化产科管理系统源码,多家医院应用案例,可直接上项目
Java开发的数字化产科管理系统,已在多家医院实施,支持直接部署。系统涵盖孕产全程,包括门诊、住院、统计和移动服务,整合高危管理、智能提醒、档案追踪等功能,与HIS等系统对接。采用前后端分离架构,Java语言,Vue前端,若依框架,MySQL数据库。优势在于提升就诊效率,降低漏检率,自动报表生成,减少重复工作,支持数据研究,并实现医院与卫计委平台的数据互通,打造全生育周期健康服务。
85 4
|
7月前
|
SQL XML JavaScript
【若依Java】15分钟玩转若依二次开发,新手小白半小时实现前后端分离项目,springboot+vue3+Element Plus+vite实现Java项目和管理后台网站功能
摘要: 本文档详细介绍了如何使用若依框架快速搭建一个基于SpringBoot和Vue3的前后端分离的Java管理后台。教程涵盖了技术点、准备工作、启动项目、自动生成代码、数据库配置、菜单管理、代码下载和导入、自定义主题样式、代码生成、启动Vue3项目、修改代码、以及对代码进行自定义和扩展,例如单表和主子表的代码生成、树形表的实现、商品列表和分类列表的改造等。整个过程详细地指导了如何从下载项目到配置数据库,再到生成Java和Vue3代码,最后实现前后端的运行和功能定制。此外,还提供了关于软件安装、环境变量配置和代码自动生成的注意事项。
6332 5