- 1、本文档共22页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
面向对象语言与C语言课程设计
《面向对象语言与C语言》课程设计报告
【设计题目】
国际马拉松赛信息管理系统
【设计要求】
该马拉松赛比赛所需信息如下:
项目:男子全程和女子半程。两个项目同时同场地进行。
奖项:男子前五名,女子前五名,男子团体(一国一个队)前三名,女子团体(一国一个队)前三名。
团体成绩评定方法(以男队为例):某国男队的前三名运动员用时之和为该国总成绩,并以此排定名次。
该系统在磁盘上存储以下信息:
(1)运动员报名单。对于每一位报名的运动员包括:姓名、性别、年龄和国名;
(2)运动员号码单.对于每一位报名的运动员包括:姓名、性别、编号和国名;
(3)世界男子全程马拉松最好成绩,世界女子半程马拉松最好成绩;
(4)到达终点的每个运动员的号码和用时。
系统功能要求如下:
(1)比赛前输入运动员报名单并生成运动员号码单;
(2)比赛后输入到达终点的每个运动员的号码和用时;
(3)可输出男、女团体前三名的名次和国名(供颁奖用);
(4)可输出男、女个人前五名的名次和国名(供颁奖用),若有超过世界最好成绩者,应输出有关信息;
(5)可输出男子个人成绩表,按成绩从优到劣排列。表中对每个人应包括:名次、姓名、国名、成绩、是否超过世界最好成绩; ‘
(6)可输出女子个人成绩表,表的项目和排列方式同5;
(7)可输出男子50岁以上选手的成绩表,排列方式同5,表项增加年龄;
可输出女子50岁以上选手的成绩表,排列方式与表项同7。
【开发环境】
Windows XP Professional+Microsoft Visual C++ 6.0
【设计思路】
依据设计要求,须进行如下步骤已实现所需功能:
首先,创建sport.h文件,在其中定义所需的Sport类,该类包含运动员所需信息,包括对编号,姓名,性别,年龄,国家和所用时间的相关操作。
其次,创建member.cpp文件,其中定义对sport.h相关功能的实现部分,并且使用构造函数创建初始对象。
再次,创建main.cpp文件,对所需功能进行实现。
1、先使用文件流操作,判断文件是否成功创建,若不是则异常退出。
2、定义一个指向Sprot类的指针,并对每一个运动员的信息进行输入,使每一个对象指向相应的运动员。
3、使用输出流文件将输入的信息储存至相应dsw文件夹下的file.txt文件。
4、使用输入流文件file.txt将运动员各项信息输入。
5、显示一个操作菜单,提供给用户一个借口进行操作。同时记录男子最佳成绩和女子最佳成绩。为之后的比较是否超过世界纪录准备。
6、定义一个int型变来那个OperationCode并判定该操作代码是否符合要求,若符合则实现相应功能。
7.、各部分功能的具体实现: (使用if条件判断语句判断输入的操作数是否为相应操作代码,如果不是则跳出提示并退出。
(以男子个人排名为例讲解:
首先,使用for循环判定是否每个对象都进行了循环,若全部进行完成,则最后一个对应性别应为空。
其次,判定性别是否为男性,若为男性,则将其成绩存入一个数组MaleGrade中。
然后,将该数组进行排序。
之后,将该数组成绩与每个成员进行核对,若一致,则代表他为该成绩所有者,则输出他的全体信息。由于之前已经对其进行过排序,则现在可输出整体成绩,若取前五则设立for循环,只取前五即可。年龄大于50的同理,只需再加一层if条件判断语句进行判断对应年龄是否大于50即可。
(以男子全体排名为例讲解: 首先,建立一个一维数组存放国家名。
其次,建立一个二维数组,使行代表国家,列代表个人。
然后,使用for循环对每个对象的国家进行判定,若为对应一维数组国家名,则将其存入对应的二维数组对应行中。这样操作完成后即可实现每一行代表国家,每一列该代表国家运动员。
之后,对该二维数组进行排序,并取该二维数组每行前三列相加既得该国成绩(依据国家排名算法),并将该成绩存入国家排名积分榜数组中。
最后,对国家排名积分榜数组中的元素进行排序,后核对该成绩对应远二维数组第几行,即可通过一维数组输出相应国家名。
对动态分配的内存进行扫尾清理工作,删除相应内存位置。
【程序代码】
[sport.h]
#includestring
using namespace std;
class Sport
{
public:
Sport ();
void setNumber(int);
void setName(string);
void setSex(string);
void setAge(int );
void setCountry(string);
void setTime(int);
int getNumber
文档评论(0)