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

news2024/10/23 11:21:03

实验目的与要求

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

实验要求:

(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为例,输入相应的研究方向,能够输出相应的顶级会议名称和网址。

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2211561.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

点评项目-6-缓存更新策略、缓存穿透、雪崩

缓存更新策略 使用 redis 缓存记录的信息,有可能在数据库被信息被修改导致信息不一致,使用缓存更新来解决这个问题 缓存更新策略主要有三种: 1.内存淘汰(redis默认开启) 2.超时剔除(给key添加TTL时间) 3.主动更新(编写业务逻辑) 主动更新策…

网络通信与并发编程(一)网络通信、osi五层模型、tcp协议的三次握手与四次挥手

网络通信、osi五层模型、tcp协议的三次握手与四次挥手 文章目录 网络通信、osi五层模型、tcp协议的三次握手与四次挥手一、网络通信二、osi五层模型1.物理层2.数据链路层3.网络层4.传输层5.应用层 三、tcp协议的三次握手与四次挥手 一、网络通信 网络通信是指在网络中的两个或…

Java ==> 数组(入门)

文章目录 前言一、一维数组1.入门操作2.何为null?3.数组可以作为函数的参数4.数组可以作为函数的返回值 二、二维数组1.基础操作2.不规则的二维数组 总结 前言 在Java语言当中,数组是一种基本的数据结构,它存储了固定大小的同类型元素的集合…

告别卡顿!五款Windows录屏工具,让每一帧都清晰流畅

小伙伴们,是不是在寻找一款好用、实用的Windows录屏工具呢?别担心,这次我给大家带来了一款热门录屏工具的详细评测和使用感受,包括福昕录屏、转转录屏、爱拍录屏、OBS录屏和EV录屏。快来看看哪款最适合你吧! 一、福昕录…

反射的学习

1、什么是反射 反射允许对封装类的字段,方法和构造函数的信息进行编程访问。 也就是: 反射允许对成员变量,成员方法和构造方法的信息进行编程访问。 2、获取class对象 获取一个类的字节码文件对象: 方式1:Class.…

linux 环境运行 jenkins.war包,有可能会出现字体问题,jdk版本:11 jenkins 版本:2.420

jenkins的目录: /usr/jenkins 启动命令 java -Djava.awt.headlesstrue sudo timedatectl set-timezone Asia/Shanghai-Xmx1024m -jar jenkins.war --httpPort8090 任意目录启动: nohup java -Djava.awt.headlesstrue -Xms1024m -Xmx1024m -jar /usr/j…

基于opencv答题卡识别判卷

我们是一个深度学习领域的独立工作室。团队成员有:中科大硕士、纽约大学硕士、浙江大学硕士、华东理工博士等,曾在腾讯、百度、德勤等担任算法工程师/产品经理。全网20多万粉丝,拥有2篇国家级人工智能发明专利。 社区特色:深度实…

Excel使用技巧:数据-》分列:处理log数据,把有用的信息提取出来;查找Ctrl+F,替换Ctrl+H;通配符

Excel的正确用法: Excel是个数据库,不要随意合并单元格。 数据输入的时候一定要按照行列输入,中间不要留空,不然就没有关联。 数据-》分列:处理log数据,把有用的信息提取出来。 按照向导一步一步操作。…

D36【python 接口自动化学习】- python基础之函数

day36 函数的定义 学习日期:20241013 学习目标:输入输出与文件操作﹣-49 函数定义:如何优雅地反复引用同一段代码? 学习笔记: 函数的用途 定义函数 调用函数 # 定义函数 def foo():print(foo)print(foo …

数据传送指令

文章目录 MOVXCHGPUSH和POPIN和OUTXLATLEA LDS LESLEALDSLES LAHF SAHFPUSHF POPF总结 MOV MOV dst, src ; dst <-- src可以进行8位或16位数据的传送源操作数可为立即数、寄存器、存储器操作数目的操作数不可为立即数&#xff0c;CS、IP寄存器两操作数必有一个寄…

Hi3244 应用指导

Hi3244 是一款DIP8封装高性能、多模式工作的原边控制功率开关。Hi3244内高精度的恒流、恒压控制机制结合完备的保护功能&#xff0c;使其适用于小功率离线式电源应用中。在恒压输出模式中&#xff0c;Hi3244 采用多模式工作方式&#xff0c;即调幅控制&#xff08;AM&#xff0…

LLM - 配置 ModelScope SWIFT 环境与 Qwen2-VL 模型推理 教程 (1)

欢迎关注我的CSDN&#xff1a;https://spike.blog.csdn.net/ 本文地址&#xff1a;https://spike.blog.csdn.net/article/details/142827217 免责声明&#xff1a;本文来源于个人知识与公开资料&#xff0c;仅用于学术交流&#xff0c;欢迎讨论&#xff0c;不支持转载。 SWIFT …

AI 工具大比拼:ChatGPT 与豆包的魅力与未来展望

&#x1f9d1; 博主简介&#xff1a;历代文学网&#xff08;PC端可以访问&#xff1a;https://literature.sinhy.com/#/literature?__c1000&#xff0c;移动端可微信小程序搜索“历代文学”&#xff09;总架构师&#xff0c;15年工作经验&#xff0c;精通Java编程&#xff0c;…

C++的类和动态内存分配(深拷贝与浅拷贝)并实现自己的string类

首先&#xff0c;我们先写一个并不完美的类&#xff1a; #include<iostream> #include<cstring> using namespace std;class Mystring{private:char *p;int len;static int num;friend ostream& operator<<(ostream& os, const Mystring& c);pu…

QT开发--多线程

第十四章 多线程 QThread 是 Qt 中实现多线程编程的核心类&#xff0c;提供跨平台线程管理。 使用 QThread 有两种方法&#xff1a; 1、 继承 QThread&#xff1a;重写 run() 方法&#xff0c;实现线程的具体操作。Qt4.8 之前较常用。 2、 使用 QObject 和 moveToThread()&…

2024-10-13 NO.1 Quest3 激活教程

文章目录 1 下载 Occlus 助手2 打开 quest 热点3 Quest3 连接 wifi4 详细文档5 参考教程 1 下载 Occlus 助手 ​ 网址&#xff1a;https://ochelper.xlemon.cn/home.html。 2 打开 quest 热点 ​ 下载 Occlus 助手后&#xff0c;双击 exe 文件打开。 ​ 过程中按照程序提示执…

各类排序详解

前言 本篇博客将为大家介绍各类排序算法&#xff0c;大家知道&#xff0c;在我们生活中&#xff0c;排序其实是一件很重要的事&#xff0c;我们在网上购物&#xff0c;需要根据不同的需求进行排序&#xff0c;异或是我们在高考完报志愿时&#xff0c;需要看看院校的排名&#…

【动手学深度学习】6.2 图像卷积(个人向笔记)

1. 互相关运算 严格来说&#xff0c;卷积层是一个错误的叫法&#xff0c;因为它本质上是互相关运算而不是卷积运算。我们暂时忽略通道看看二维图像数据和隐藏表示。那么输出大小可以表示为 我们自己实现一个二维互相关运算 2. 卷积层 卷积层中有两个参数&#xff1a;卷积核权…

Medieval Kingdom UI 中世纪王国AAA级UI游戏界面

这款中世纪王国风格的大型素材包包含大量绘图、图标、用户界面(UI)元素、完整的世界地图和文明图标。它将助您打造一款游戏,或为您的3D游戏增添亮点。您还可以为对话制作国王的动画,为4K游戏创建独特的面板和窗口。提供两种独特皮肤:经典(冷色调)和白金(暖色调)。 素…

国家基本药物目录数据库查询3种方法(2018、2012、2009年版)

国家基本药物目录是一份由国家卫生健康委员会等相关部门制定的药品清单&#xff0c;旨在满足国家公共卫生需求&#xff0c;保障基本医疗服务。该目录包括了多种药品&#xff0c;覆盖了不同的疾病治疗领域&#xff0c;如抗生素、心血管药物、神经系统药物、抗肿瘤药物、维生素和…