(1). 2020年东京奥运会共设13种球类运动,包括足球、篮球、排球、乒乓球、羽毛球、网球、橄榄球、水球、棒球、垒球、高尔夫球、曲棍球和手球,这13种球都可以称之为“球”。请通过分析,抽象它们所共有的性质,定义一个抽象类Ball。在报告中附上程序截图、运行结果截图(要求以中国队获得奖牌数量最多的三个球类运动项目为例)和详细的文字说明。(15分)
1.定义抽象类Ball,包含私有成员变量sportName表示球类运动的名称、构造函数、抽象方法play()用于描述球类的运动行为、用于返回球类名称的方法getSport()。
2.实现继承父类Ball的羽毛球类Badminton,包含构造函数和对Ball类抽象方法的实现。
3.实现继承父类Ball的兵乓球类TableTennis,包含构造函数和对Ball类抽象方法的实现。
4.实现继承父类Ball的排球类Volleyball,包含构造函数和对Ball类抽象方法的实现。
5.在main函数中创建三个球类的对象,然后输出ball1的球类名称并调用实现后的抽象方法。
6.运行代码,结果如下图所示。
(2).编写一个Athlete类。该类包含三个成员变量name、sport和medal,分别代表一个运动员的姓名、最擅长的运动项目名称和在2020年东京奥运会获得的奖牌数量。在该类中重写Object类的toString方法,当调用它重写的toString方法时,输出这个运动员的姓名、运动项目和奖牌数量。在报告中附上程序截图、运行结果截图(要求以2020年东京奥运会中国队第一块金牌获得者为例)和详细的文字说明。(15分)
1. 定义一个 Athlete 类,表示运动员,包含成员变量name表示运动员姓名,sport表示所参加的运动项目,medal表示奖牌数量,用于初始化 Athlete 对象的属性的构造函数,以及重载后返回对象的详细信息的toString() 方法。
2.在main函数中创建一个Athlete 对象,表示东京奥运会中国首金获得者杨倩运动员,参加射击项目,共获得 2 枚奖牌。然后调用 toString() 方法打印对象的详细信息。
3.运行代码,结果如下图所示。
(3).编写一个队列类Queue,用来存储short型数据,队列中的数据是先进先出的。具体要求如下:成员变量short [] elements用来存储short型数据;成员变量int size用来表示存储的short型数据的个数;构造方法Queue在初始化队列的时候,设置队列的容量为16;方法enqueue(short v)用来往队列中添加一个short型数据;方法dequeue()用从队列中删除并返回一个short型数据;方法getSize()用来返回队列的大小。在报告中附上程序截图、运行结果截图和详细的文字说明。(20分)
1. 定义一个 Queue 类,用来存储 short 型数据,实现先进先出队列,包含私有成员变量:存储 short 型数据的数组elements、队列的大小size、队列的容量capacity。
2. 定义构造方法Queue(),初始化队列大小为 0,初始化队列容量为 16,为short 型数组分配空间以存储数据。
3. 定义向队列中添加 short 型数据的方法enqueue(),如果队列已满,输出队列已满,输出错误信息;否则将数据添加到队列尾部,更新队列大小size的值,并输出成功添加数据的提示。
4.定义从队列中删除并返回 short 型数据的方法dequeue(),如果队列内无数据,输出错误信息,否则获取队列头部的数据,将队列中的数据往前移动一位,减小队列的大小并返回被删除的数据。
5.定义返回队列大小的方法getSize(),直接返回队列的大小。
6.在main函数中新建Queue的对象queue,并添加数据和删除数据以及打印队列大小。
7.结果如下图所示,程序按预期进行插入和删除数据,并打印队列大小。
(4).编写一个复数类Complex:成员变量包括realPart和imagePart,分别代表实数部分和虚数部分;构造方法Complex()用于将实数部分和虚数部分都置为0;构造方法Complex(int r, int i)用于将实数部分置为r、虚数部分置为i;方法Complex complexADD(Complex c)将当前复数对象与形参复数对象相加;方法Complex complexSUB(Complex c)将当前复数对象与形参复数对象相减;String toString()把当前复数对象的实数部分和虚数部分组合成a+bi的字符串形式。在报告中附上程序截图、运行结果截图(要求输出复数3+5i和复数2+3i相加与相减的结果)和详细的文字说明。(15分)
1. 定义一个 Complex 复数类,包含实数部分和虚数部分、无参构造方法:用于初始化复数对象,将实数部分 r 和虚数部分 i都设为0、含参构造方法:用于初始化复数对象,传入实数部分 r 和虚数部分 i。
2.添加复数相加方法和复数相减方法,结果返回的都是Complex的对象。
3.重载toString方法,返回复数的字符串表示形式,形如 "a+bi"。
4.在main函数中创建两个复数对象,并输出复数相加和相减的结果。
5.运行代码,结果如下图所示。
(5).编写一个旅行推荐指数类TravelIndex,成员变量和方法自定。编写一个新冠疫情现状类COVID19Status,成员变量和方法自定。自行查阅累计确诊、死亡和现有确诊等数据,计算中国、日本、新加坡、美国、英国、俄罗斯的旅行推荐指数(需要说明计算的合理性)。在报告中附上程序截图、运行结果截图(要求按旅行推荐指数大小输出以上六个国家的名称和相应的数值)和详细的文字说明。(15分)
1.创建旅行推荐指数类,成员变量包括国家名字、国家人口数、新冠疫情现状类对象,再添加构方法用于初始化国家名称、人口数量和疫情数据。
2. 添加计算旅行推荐指数的方法,计算死亡率、感染率和死亡率在感染率中的比例以及旅行推荐指数,因为每个率的满值为1,三个率的满值为3,且这三个率越小越适合旅游,因此用3减去三个率之和作为旅行推荐指数。旅行推荐指数越大越适合旅游。
3.创建新冠疫情现状类,成员变量包括总感染数和总死亡数,创建构造方法用于初始化累计确诊和死亡人数。
4.添加获取累计确诊人数和累计死亡人数的方法。
5. 创建各国的疫情数据COVID19Status对象和TravelIndex 对象。
6. 创建 TravelIndex 数组来存储国家的数据,对数组进行按旅行推荐指数排序(降序排序),保留三位小数输出按旅行推荐指数排序后的国家名称和数值。
7.运行代码,结果如下图所示。
(by 归忆)