深圳大学-Java程序设计-必实验2 类的高级应用

实验目的与要求

    实验目的:熟悉面向对象编程中类的编写。

实验要求:

(1).请自行选择2023年成都大运会或2023杭州亚运会。大型运动会通常包括众多比赛项目。请通过分析,抽象它们所共有的性质,定义一个关于比赛项目的抽象类——Item。在报告中附上程序截图、运行结果截图(要求以中国队获得奖牌数量最多的三个比赛项目为例)和详细的文字说明。(10分)

(2).编写一个运动员类——Athlete。该类包含五个成员变量name、gender、age、item和medal,分别代表一个运动员的姓名、性别、年龄、最擅长的比赛项目和在2023年成都大运会或2023杭州亚运会获得的奖牌数量。在该类中重写Object类的toString()方法,当调用它重写的toString()方法时,输出这个运动员的姓名、性别、年龄、比赛项目和奖牌数量。在报告中附上程序截图、运行结果截图(要求以2023年成都大运会或2023杭州亚运会中国队前三块金牌获得者为例)和详细的文字说明。(10分)

(3).编写一个队列类——Queue,用来存储double型数据,队列中的数据是先进先出的。具体要求如下:成员变量double [] elements用来存储double型数据;成员变量int size用来表示存储的double型数据的个数;构造方法Queue在初始化队列的时候,设置队列的容量为32;方法enqueue(double v)用来往队列中添加一个double型数据;方法dequeue()从队列中删除并返回一个double型数据;方法getHead()返回队列中的第一个元素;方法getTail()返回队列中的最后一个元素;方法isEmpty()判断队列是否为空;方法isFull()判断队列是否为满;方法getSize()用来返回队列的大小。在报告中附上程序截图、运行结果截图和详细的文字说明。(20分)

(4).参考题(3),编写一个栈类——Stack。在报告中附上程序截图、运行结果截图和详细的文字说明。(10分)

(5).编写一个复数类——Complex:成员变量包括realPart和imagePart,分别代表实数部分和虚数部分;构造方法Complex()用于将实数部分和虚数部分都置为0;构造方法Complex(double r, double i)用于将实数部分置为r、虚数部分置为i;方法Complex complexAdd(Complex c)将当前复数对象与形参复数对象相加;方法Complex complexMult(Complex c)将当前复数对象与形参复数对象相乘;public String toString()把当前复数对象的实数部分和虚数部分组合成a+bi的字符串形式。在报告中附上程序截图、运行结果截图(要求输出复数3+5i和复数2+3i相加与相乘的结果)和详细的文字说明。(15分)

(6).编写一个全球计算机科学排名的类——CSRankings,要求包含public String toString()方法用于返回某一研究方向的相关信息(便于输出),其他成员变量和方法自定。要求输入相应的研究方向,能够输出相应的顶级会议名称和网址,例如,

输入:Artificial Intelligence

输出:会议名称:AAAI 网址:dblp.org/db/conf/aaai/index.html

会议名称:IJCAI 网址:dblp.org/db/conf/ijcai/index.html

要求以Artificial Intelligence、Machine Learning & Data Mining、The Web & Information Retrieval、Computer Graphics为例,在报告中附上程序截图、运行结果截图和详细的文字说明。CSRankings介绍全球计算机科学排名CSRankings。(15分)

发现抄袭(包括复制&粘贴整句话、整张图),抄袭者和被抄袭者成绩记零分

(1).请自行选择2023年成都大运会或2023杭州亚运会。大型运动会通常包括众多比赛项目。请通过分析,抽象它们所共有的性质,定义一个关于比赛项目的抽象类——Item。在报告中附上程序截图、运行结果截图(要求以中国队获得奖牌数量最多的三个比赛项目为例)和详细的文字说明。(10分)

程序截图:

结果截图:

文字说明:

定义一个关于比赛项目的抽象的类Item,定义四个属性:名称、规则、评分标准和参与者,定义一个构造方法,接受四个参数:名称、规则、评分标准和参与者,来初始化属性。定义四个访问器方法,分别来获取名称、规则、评分标准和参与者。

在主方法中分别创建三个Item对象,并初始化它们,再依次打印出项目名称、规则、评分标准和参与者。

  1. .编写一个运动员类——Athlete。该类包含五个成员变量name、gender、age、item和medal,分别代表一个运动员的姓名、性别、年龄、最擅长的比赛项目和在2023年成都大运会或2023杭州亚运会获得的奖牌数量。在该类中重写Object类的toString()方法,当调用它重写的toString()方法时,输出这个运动员的姓名、性别、年龄、比赛项目和奖牌数量。在报告中附上程序截图、运行结果截图(要求以2023年成都大运会或2023杭州亚运会中国队前三块金牌获得者为例)和详细的文字说明。(10分)

程序截图:

运行结果截图:

文字说明:

定义了一个运动员类Athlete。再定义五个成员变量name、gender、age、item和medal,分别代表一个运动员的姓名、性别、年龄、最擅长的比赛项目和在2023年成都大运会获得的奖牌数量。在该类中定义了一个构造方法,接收这五个参数,然后定义五个访问器方法,用来传递信息。重写Object类的toString()方法,用来输出这个运动员的姓名、性别、年龄、比赛项目和奖牌数量。

(3). 编写一个队列类——Queue,用来存储double型数据,队列中的数据是先进先出的。具体要求如下:成员变量double [] elements用来存储double型数据;成员变量int size用来表示存储的double型数据的个数;构造方法Queue在初始化队列的时候,设置队列的容量为32;方法enqueue(double v)用来往队列中添加一个double型数据;方法dequeue()从队列中删除并返回一个double型数据;方法getHead()返回队列中的第一个元素;方法getTail()返回队列中的最后一个元素;方法isEmpty()判断队列是否为空;方法isFull()判断队列是否为满;方法getSize()用来返回队列的大小。在报告中附上程序截图、运行结果截图和详细的文字说明。(20分)

程序截图:​​​​​​​

运行结果截图:

文字说明:

先定义一个队列类Queue,在里面定义两个成员变量:一个数组用来存储double型数据,一个int型变量表示存储的double型数据个数。定义一个构造方法Queue,在初始化队列的时候,设置队列的容量为32;定义一个方法enqueue,用来往队列中添加一个double型数据,先判断队列是否为满,如果为满输出队列已满,如果不满在数组末尾添加一个元素,并更新大小;定义一个方法dequeue(),先判断队列是否为空,如果为空输出队列已空,获取数组第一个元素赋给a,通过循环将数组元素向前移动一位,实现元素的删除,更新数组大小,并返回第一个元素;定义一个方法getHead(),先判断队列是否为空,如果为空输出队列已空,否则返回队列中的第一个元素;定义一个方法getTail(),先判断队列是否为空,如果为空输出队列已空,否则返回队列中的最后一个元素;方法isEmpty()判断队列是否为空,如果大小为0,返回true,否则返回false;方法isFull()判断队列是否为满,如果大小为0,返回true,否则返回false ;定义一个方法getSize(),用来返回队列的大小。

    创建一个queue对象q1,用enqueue方法将四个数据传入q1,然后用dequeue删除并返回一个元素,然后用isEmpty 和isFull判断并输出队列情况。调用剩下三个方法分别打印出队列的第一个元素、最后一个元素、队列大小。

(4).参考题(3),编写一个栈类——Stack。在报告中附上程序截图、运行结果截图和详细的文字说明。(10分)

程序截图:

运行结果截图:

文字说明:

先定义一个栈类Queue,在里面定义两个成员变量:一个数组用来存储double型数据,一个int型变量表示存储的double型数据个数。定义一个构造方法,在初始化栈的时候,设置栈的容量为32;定义一个方法push(),用来往栈中添加一个double型数据,先判断栈是否为满,如果为满输出栈已满,如果不满在数组末尾添加一个元素,并更新大小;定义一个方法pop(),先判断栈是否为空,如果为空输出栈已空,获取数组第一个元素赋给a,通过循环将数组元素向前移动一位,实现元素的删除,更新数组大小,并返回第一个元素;定义一个方法getHead(),先判断栈是否为空,如果为空输出栈已空,否则返回栈中的第一个元素;定义一个方法getTail(),先判断栈是否为空,如果为空输出栈已空,否则返回栈中的最后一个元素;方法isEmpty()判断栈是否为空,如果大小为0,返回true,否则返回false;方法isFull()判断栈是否为满,如果大小为0,返回true,否则返回false ;定义一个方法getSize(),用来返回栈的大小。

    创建一个queue对象q1,用enqueue方法将四个数据传入q1,然后用dequeue删除并返回一个元素,然后用isEmpty 和isFull判断并输出栈情况。调用剩下三个方法分别打印出栈的第一个元素、最后一个元素、栈大小。

(5). 编写一个复数类——Complex:成员变量包括realPart和imagePart,分别代表实数部分和虚数部分;构造方法Complex()用于将实数部分和虚数部分都置为0;构造方法Complex(double r, double i)用于将实数部分置为r、虚数部分置为i;方法Complex complexAdd(Complex c)将当前复数对象与形参复数对象相加;方法Complex complexMult(Complex c)将当前复数对象与形参复数对象相乘;public String toString()把当前复数对象的实数部分和虚数部分组合成a+bi的字符串形式。在报告中附上程序截图、运行结果截图(要求输出复数3+5i和复数2+3i相加与相乘的结果)和详细的文字说明。(15分)

程序截图:​​​​​​​

运行结果截图:

文字说明:

定义一个复数类Complex,定义两个成员变量:realPart和imagePart,分别代表复数的实数部分和虚数部分;  定义一个无参构造方法Complex(),将实数部分和虚数部分都置为0;定义一个有参构造方法Complex(double r, double i),将实数部分置为r、虚数部分置为i; 定义一个方法Complex complexAdd(Complex c),创建一个新的复数对象,将两个复数对象的实数部分相加,并赋值给新的复数对象的实数部分,将两个复数对象的虚数部分相加,并赋值给新的复数对象的虚数部分,最后返回新的复数对象; 方法Complex complexMult(Complex c)创建一个新的复数对象,再根据复数乘法公式,计算两个复数对象相乘的结果,并赋值给新的复数对象,最后返回新的复数对象;定义public String toString()方法,把当前复数对象的实数部分和虚数部分组合成a+bi的字符串形式,并返回该字符串。

在主方法中创建两个复数对象,分别代表3+5i和2+3i,调用complexAdd方法,计算两个复数对象相加的结果,并输出,再调用complexMult方法,计算两个复数对象相乘的结果,并输出。

(6).编写一个全球计算机科学排名的类——CSRankings,要求包含public String toString()方法用于返回某一研究方向的相关信息(便于输出),其他成员变量和方法自定。要求输入相应的研究方向,能够输出相应的顶级会议名称和网址,例如,

输入:Artificial Intelligence

输出:会议名称:AAAI 网址:dblp.org/db/conf/aaai/index.html

会议名称:IJCAI 网址:dblp.org/db/conf/ijcai/index.html

要求以Artificial Intelligence、Machine Learning & Data Mining、The Web & Information Retrieval、Computer Graphics为例,在报告中附上程序截图、运行结果截图和详细的文字说明。CSRankings介绍全球计算机科学排名CSRankings。(15分)

程序截图:

运行结果截图:

文字说明:

首先定义一个全球计算机科学排名的类CSRankings,定义成员变量map 来存储研究领域及其对应的顶级会议。 定义一个构造方法,用一些预定义的数据初始化映射。定义一个方法,返回给定研究领域的顶级会议。定义一个方法,返回给定会议名称的会议网站。定义public String toString()方法,如果预设中没有该研究方向,则输出“抱歉没有找到该研究方向的相关会议”,否则返回某一研究方向的相关信息。

实现以Artificial Intelligence、Machine Learning & Data Mining、The Web & Information Retrieval、Computer Graphics为例,输入相应的研究方向,能够输出相应的顶级会议名称和网址。

++++++++++++++++++++++++++++++++++++++++++++++++++++++

其他(例如感想、建议等等)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值