【深圳大学java程序设计】实验2 类的高级应用

本文介绍了如何设计抽象类Ball来表示奥运会球类运动,通过子类羽毛球、乒乓球和排球的实现,以及Athlete类模拟运动员和奖牌情况。同时,展示了队列类Queue的操作和复数类Complex的使用。最后,结合COVID19数据计算各国旅行推荐指数,并按指数进行排序。
摘要由CSDN通过智能技术生成

(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类。该类包含三个成员变量namesportmedal,分别代表一个运动员的姓名、最擅长的运动项目名称和在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:成员变量包括realPartimagePart,分别代表实数部分和虚数部分;构造方法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 归忆)

  • 20
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

归忆_AC

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值