实验目的与要求:
实验目的:熟悉面向对象编程中类的编写。
实验要求:
(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对象,并初始化它们,再依次打印出项目名称、规则、评分标准和参与者。
程序截图: 运行结果截图: 文字说明: 定义了一个运动员类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为例,输入相应的研究方向,能够输出相应的顶级会议名称和网址。 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 其他(例如感想、建议等等)。 |