4-2 jmu-java-m04-Person、Teacher与Student (10分)
该程序包含

Person类:
属性:int id, String name, LocalDate birthDate。注意:定义时需按照顺序从上到下定义。
方法:构造方法(id, name, year, month, dayOfMonth), id与birthDate的getter方法, name的getter/setter方法,Eclipse自动生成的tostring。

Student类继承自Person:
属性:int enrollmentYear, String clazzName。
方法:构造方法(id, name, year, month, dayOfMonth, enrollmentYear, clazzName),建议使用super复用Person的构造函数。toString方法(包含两行,第一行为父类的toString方法,第二行为Student类自身属性的toString方法,具体格式见输出样例)

Teacher类继承自Person:
属性:String department, double salary。
方法:构造方法(id, name, year, month, dayOfMonth, department, salary),建议使用super复用Person的构造函数。toString方法(包含两行,第一行为父类的toString方法,第二行为Teacher类自身属性的toString方法,具体格式见输出样例)

main方法:

public static void main(String[] args) {
String[] types = {“Student”,“Teacher”};
//输入种子seed,并用其初始化Random对象
//输入对象生成数量n
//以下是生成n个对象的循环
//使用random.nextInt(2)从types数组中随机选取元素x并输出
//根据x选择输入相应的参数
//n个对象的"id,name,birthdate"
//输出数组中的每个对象的toString
}

输入格式:
随机数种子seed
产生对象数量n
n行,每行是每个对象的信息信息。
如果要生成Student对象则依次输入:姓名 年 月 日 入学年份 班级
如果要生成Teacher对象则依次输入:姓名 年 月 日 系 薪水

注意:每个对象的id为每次循环的序数,依次从0到n-1

输出格式:
n个对象的类型
n个对象"id,name,birthDate"
n个对象的toString

输入样例:
3
6
Liz 1986 10 10 CS 2000
Tom 1978 5 7 CS 2500.5
Sally 2000 1 3 2018 Net01
Jerry 1988 6 7 Mechanical 1990
Eliza 2001 2 5 2019 Software02
Li 1978 5 7 cs 2400

输出样例:
Teacher
Teacher
Student
Teacher
Student
Teacher
0,Liz,1986-10-10
1,Tom,1978-05-07
2,Sally,2000-01-03
3,Jerry,1988-06-07
4,Eliza,2001-02-05
5,Li,1978-05-07
Person [id=0, name=Liz, birthDate=1986-10-10]
Teacher [department=CS, salary=2000.0]
Person [id=1, name=Tom, birthDate=1978-05-07]
Teacher [department=CS, salary=2500.5]
Person [id=2, name=Sally, birthDate=2000-01-03]
Student [enrollmentYear=2018, clazzName=Net01]
Person [id=3, name=Jerry, birthDate=1988-06-07]
Teacher [department=Mechanical, salary=1990.0]
Person [id=4, name=Eliza, birthDate=2001-02-05]
Student [enrollmentYear=2019, clazzName=Software02]
Person [id=5, name=Li, birthDate=1978-05-07]
Teacher [department=cs, salary=2400.0]

作者
郑如滨
单位
集美大学
代码长度限制
16 KB
时间限制
400 ms
内存限制
64 MB

import java.util.*;
import java.time.LocalDate;public class Main {public static void main(String[] args) {Scanner sc=new Scanner(System.in);String[] types = {"Student","Teacher"};int seed=sc.nextInt();Random r = new Random(seed);//输入种子seed,并用其初始化Random对象int n=sc.nextInt();//输入对象生成数量nPerson[] p = new Person[n];String[] strr = new String[n];for(int i=0;i<n;i++)//以下是生成n个对象的循环{String str =types[r.nextInt(2)];//使用random.nextInt(2)从types数组中随机选取元素x并输出strr[i]=str;/////根据x选择输入相应的参数if(str.equals("Student")){String name=sc.next();int year=sc.nextInt();int month=sc.nextInt();int dayOfMonth=sc.nextInt();int enrollmentYear=sc.nextInt();String clazzName=sc.next();Student s = new Student(i,name,year,month,dayOfMonth,enrollmentYear,clazzName); p[i]=s;}else if(str.equals("Teacher")){String name=sc.next();int year=sc.nextInt();int month=sc.nextInt();int dayOfMonth=sc.nextInt();String department=sc.next();double salary=sc.nextDouble();Teacher t = new Teacher(i,name,year,month,dayOfMonth,department,salary);p[i]=t;}}for(String f:strr){System.out.println(f);}for(Person x:p){System.out.println(x.getId()+","+x.getName()+","+x.getBirthDate());}for(Person x:p){System.out.println(x);}}}
class Person
{int id;String name; LocalDate birthDate;int year;int month;int dayOfMonth;public Person(int id,String name,int year,int month,int dayOfMonth){this.id=id;this.name=name;this.year=year;this.month=month;this.dayOfMonth=dayOfMonth;this.birthDate=LocalDate.of(this.year,this.month,this.dayOfMonth);}public int getId() {return id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public LocalDate getBirthDate() {return birthDate;}public String toString() {return "Person [id=" + id + ", name=" + name + ", birthDate=" + birthDate +  "]";}}class Student extends Person
{int enrollmentYear;String clazzName;public Student(int id,String name,int year,int month,int dayOfMonth,int enrollmentYear,String clazzName){super(id,name,year,month,dayOfMonth);//使用super复用Person的构造函数this.enrollmentYear=enrollmentYear;this.clazzName=clazzName;}public String toString(){return super.toString()+"\n"+ "Student [enrollmentYear="+enrollmentYear+", clazzName="+clazzName+"]";}
}
class Teacher extends Person
{String department;double salary;public Teacher(int id,String name,int year,int month,int dayOfMonth,String department,double salary){super(id,name,year,month,dayOfMonth);this.department=department;this.salary=salary;}public String toString(){return super.toString()+"\n"+"Teacher [department="+department+", salary="+salary+"]";     }
}

4-2 jmu-java-m04-Person、Teacher与Student (10分)相关推荐

  1. JAVA类的继承 Teacher和Student

    JAVA类的继承 Teacher和Student 题目描述 定义一个Teacher类和一个Student类,二者有部分数据成员是相同的,例如num,name,sex. 学生有分数score,而教师有薪 ...

  2. Java程序员应该知道的10个调试技巧

    摘要:调试不仅可以查找到应用程序缺陷所在,还可以解决缺陷.对于Java程序员来说,他们不仅要学会如何在Eclipse里面开发像样的程序,更需要学会如何调试程序.本文介绍了Java程序员必知的10个调试 ...

  3. 作为Java程序员应该掌握的10项技能

    本文详细罗列了作为Java程序员应该掌握的10项技能.分享给大家供大家参考.具体如下: 1.语法:必须比较熟悉,在写代码的时候IDE的编辑器对某一行报错应该能够根据报错信息知道是什么样的语法错误并且知 ...

  4. Java中关于String类型的10个问题

    转载自   Java中关于String类型的10个问题 1. 如何比较两个字符串?用"="还是equals 简单来说,"=="是用来检测俩引用是不是指向内存中的 ...

  5. Java架构师必看的10本书

    转载自 Java架构师必看的10本书 1.大型网站系统与JAVA中间件实践 本书围绕大型网站和支撑大型网站架构的Java中间件的实践展开介绍. 从分布式系统的知识切入,让读者对分布式系统有基本的了解: ...

  6. Java:关于main方法的10道面试题

    转载自 Java:关于main方法的10道面试题 1.main方法是做什么用的? 2.不用main方法如何运行一个类? 3.main方法如何传递参数?传递参数的类型是什么?能不能改变该参数类型? 4. ...

  7. Think in Java第四版 读书笔记10 第16章 数组

    Think in Java第四版 读书笔记10 第16章 数组 数组和容器很像 但他们有一些差别 16.1 数组为什么特殊 数组与容器的区别主要在效率和存储类型 效率:数组是简单的线性序列 使得数组的 ...

  8. T5 根据派生类写出基类(Java) (10分)

    6-1 根据派生类写出基类(Java) (10分) 裁判测试程序样例中展示的是一段定义基类People.派生类Student以及测试两个类的相关Java代码,其中缺失了部分代码,请补充完整,以保证测试 ...

  9. 用Java实现I am a student逆序输出为student a am I,不借助split方法和StringBuffer!

    用Java实现I am a student逆序输出为student a am I,不使用split方法和StringBuffer,只用最原始的数组 总体思路:先整体后局部 public class R ...

  10. JAVA编写PTA(10分)

    L1-007 念数字 (10 分) 输入一个整数,输出每个数字对应的拼音.当整数为负数时,先输出fu字.十个数字对应的拼音如下: 0: ling 1: yi 2: er 3: san 4: si 5: ...

最新文章

  1. 基于TCP(面向连接)的Socket编程
  2. 内联汇编 - 从头开始
  3. 单片机large模式_对单片机存储分配新的认识
  4. memcache运行机制(转)
  5. 402.移掉K位数字,使得剩下数字最小
  6. Mybatis中的一级缓存
  7. Pytorch(四) --基于Pytorch实现线性回归
  8. Markdown编辑器模板
  9. VB用记录集填充表格函数
  10. 灾备行业最全常用术语
  11. Java开发企业微信功能
  12. 鸿蒙车载智慧屏评测,荣耀智慧屏体验评测:鸿蒙系统的智慧
  13. 石油化工行业智能供应链管理系统解决方案:数智化供应链平台推动企业转型智能化发展
  14. 假期培训总结——初三寒假
  15. Java语言这些年的发展
  16. 工厂模式总结——三个工厂
  17. SNMP协议——网络管理概述
  18. 盘点最常见的5个编程语言排行榜、排名逻辑最新榜单。
  19. Java程序设计(2021春)——第三章类的重用笔记与思考
  20. UE4 Unlua源码解析12 - Lua与UE4的混合GC

热门文章

  1. 使用树形笔记,构建一个清晰高效、可以不断积累进步的知识系统
  2. QQ拼音输入法使用评价
  3. android res编辑器,Android Apk编辑器(ApkModifier) V3.6.0
  4. flex属性-flex:1到底是什么
  5. storm风暴英雄 tempo_Tempostorm战队攻略:新版本下的终结者天赋
  6. adb工具的使用方法详解
  7. c语言输出字符串需要取地址吗,char *str;……printf(%p,str);是输出地址吗?还是只与str说占空间大 - C语言论坛 - 编程论坛...
  8. 技术人应该如何提升影响力
  9. 图画日记怎么画_一年级数学图画日记
  10. java前端框架b_B-JUI