收藏 分享(赏)

C++课程设计文档.doc

上传人:精品资料 文档编号:10236186 上传时间:2019-10-23 格式:DOC 页数:13 大小:81.50KB
下载 相关 举报
C++课程设计文档.doc_第1页
第1页 / 共13页
C++课程设计文档.doc_第2页
第2页 / 共13页
C++课程设计文档.doc_第3页
第3页 / 共13页
C++课程设计文档.doc_第4页
第4页 / 共13页
C++课程设计文档.doc_第5页
第5页 / 共13页
点击查看更多>>
资源描述

1、11 项目介绍1.1 项目简介(1) 项目名称足球排名系统1.2 项目背景与可行性分析在 VC+6.0 的环境中运用 C+与 C 的知识以及足球知识,根据需求编写程序。1.3 术语与缩写解释全文术语与缩写解释如表 1.1 所示:表 1.1 术语与缩写解释缩写、术语 解 释Rand() 取随机数Srand() 避免每次取到相同的随机数GetnumberOfcoat() 获取队员球衣号GetservingOfage() 获取队员效力时间Score 比赛得分sBalls 净进球数Array() 三个数比较大小,并排序,用于小组赛的调用friend int competition() Team 类的友

2、元函数,用于实现两队之间的比赛Int bifen() 用于两球队比赛时,随机出比分22 需求分析2.1 系统面向的用户群体该系统主要面向于热爱足球的群体。2.2 系统应当遵循的标准或规范应当按照 C+的规范模式编写,2.3 系统功能性需求2.3.1 功能需求 1创建各个类,如:构造基本属性的类 person,由其派生出来的 player、coach类,还有由 player、coach 组成的 team 类,由 team 构成的小组 group,最后是进行比赛的 worldcup 类2.3.2 功能需求 2类的创建知识实现该功能的一部分,为了实现该项目,还应当在各个类中添加相应的函数,比如:为了

3、得到随机比分就应当创建一个函数来获取随机数。33 系统设计3.1 总体设计以程序运行成功为目的进行设计。对于模拟世界杯模式,首先想到的是要有完整的体系,也就是说要有构成这个体系的基本元素,要有球队这是最基本的。具有球队之后就要像实际一样进行分组,之后小组赛,四分之一,半决赛,决赛,一项一项有条不紊的进行。 (在实际中有 32 支球队,小组赛结束之后,留下 16 强进行八分之一决赛)3.2 模块命名规则类:Person ,Player ,Coach ,Team ,Group ,Worldcup变量:Person 类:Name 姓名 ,Motherland 国籍 ,Birthday 出生日期 ,

4、Sex 性别 ,Age 年龄 Player 类:ServingOfage 效力时间 ,Position 队员在场上的位置 ,NumberOfCoat 球衣号 ,Shooting 该队员的进球数Coach 类:ServingOfage 效力时间Team 类:Tname 球队名 ,Score 比赛得分 ,SBalls 净进球数 ,Goals 总进球数Group 类:Groupname 小组名称 ,Teams 组成该小组的队名 ,NumOfTeam 球队数Worldcup 类:Name 名称 ,Pteams 存放队名的数组 ,Pgroups 组名 ,Nteams 队的数量 ,Ngroups 组的数量

5、Main 函数:SW 失球数 ,ZW 总进球数 ,JW 净进球数 ,tw 存放各球队的积分 3.3 模块关系4“ ”表示公有继承PersonPlayerCoachTeamGroupWorldcup该关系图说明各个之间的继承关系53.4 详细模块设计要想模拟实现世界杯比赛系统,首先应当想到的是有球队,那么要构成这些球队,先构造他们的基本属性:Person 类、Coach 类、 Player 类。基本属性完成之后就要根据下图与模块关系图来进一步实现。三级标题自拟随机分组 小组循环赛四分之一决赛半决赛决赛64 系统实现(1)用于获取两队的比赛得分,利用 Srand()函数int bifen()int

6、 z;Sleep(600);srand(time(NULL);z=rand()%5;return z;(2) 实现分组for(int y=0;yMatch();cout“ “;if(y%3=2)coutendl;定义两个 Team 类型的数组,一个用于存放 12 支球队的名称,一个用于空着,用于赋值。75 项目总结5.1 项目特色C+与 C 相结合,面向对象的方式程序环环相扣,层层递进5.2 主要工作编写组成实现项目的各个类及测试函数 Main()函数编写这段程序思路很重要5.3 系统展望在模拟世界杯比赛的基础上,还可以将原有的 12 支球队拓展为 32 支球队,结合运用这个模拟系统,增加八分

7、之一决赛,来实现真正的世界杯 。除了模拟世界杯之外,还可以模拟篮球赛、冰球、羽毛球等等。在模拟其他比赛时,首要是了解这些这些比赛的规则。以篮球为例:每支队的人员相对足球有所减少,比赛的比分相对足球增大。86 附录 编程日志程序名称 足球赛排名系统功能描述 分组以及部分类的编写开发者 起止日期 2011-7-41. 如何来进行分组:利用循环结合team类和group类,还得利用 srand()函数。加入计数变量。给12队手动赋值,也就是将法国 德国 英格兰 美国 巴西 阿根廷 意大利 丹麦 荷兰 葡萄牙 西班牙 南非这些队名写入后再起别名, (此处可以利用循环) 。再定义一个数组。从而实现分组。

8、2. person类中首先想到的是应该分国籍(只分国籍就好) 。然后编写构造函数,以及一个输出函数,我觉得对于一个基类而言足以。由基类派生出的coach和player,这两个类在person的基础上把各自的职位附上去。3. team类中包含1个教练和1个队员,由此类推到group类, group类中含有12个team并含有分组的内容。程序名称 足球赛排名系统功能描述 对于各个类内容的编写开发者 起止日期 2011-7-51. 今天的主要任务是对昨天编写的 Person 类的修改和补充。Person 类中补充了更多的个人信息。对于 Birthday 可以定义为 char 型,也可以重新定义一个

9、Date 类,但过于繁琐,所以定义为 char 型。再定义一个私有成员 age,用于在 getage()函数中获取 age。2. Player 类是由 person 类派生出来的。在 player 类中定义 bool 型的一个变量用于判断该队员是否为队长。 (bool 类型可以等于 bool 类型)3. Goal 类主要用于进球方面。该类含有内嵌对象,为 player 类的内嵌对象,它的构造函数要接收赋给 Gplayer 成员的 player 类的对象。 (就是一个内嵌对象为 goal 类和 player 类建立了千丝万缕的关系,用于输出进球人的各项信息) 。编写 team 类不仅要用到内嵌对

10、象,还要使用静态数据成员。作为一个队应当包含有教练 Coach 和队员 Player,所以内嵌对象主要是来完善 team 类。使用静态数据成员,来对该队的总进球数进行统计。从而为系统筛选进入八强的队伍。4. 在 group 类中将进行重头戏,对这 12 支球队进行分组。程序名称 足球赛排名系统9功能描述 类的编写开发者 起止日期 2011-7-61. 今天依旧是在编写与修改中完成一个个类。修改了 Person 这个基类,给它新增加了几个get 函数,使得它的派生类中可以将私有成员直接继承过来。2. 在 team 类中的 int versus(team &t)函数通过利用*this 指针来实现两

11、队的比赛,以及 srand()函数随机输出两支球队的比赛进球数。通过自增自减来实现对总进球数,和净进球数的计数(也考虑过采用静态数据成员与静态成员函数进行计数,但是觉得这样也可以所以就未采用) 。3. 其实之前的的认识都是错误的,并不是在 group 类中实现对 12 支球队的分组,而是在worldcup 中实现的。4. 各个类的雏形已完成,其成员函数大多已编写完成。总之今天的收获较小。程序名称 足球排名系统功能描述 类的编写开发者 起止日期 2011-7-71. 今天依旧是在对编写的各个类不断的完善、修改。在 Team 类里加入友元函数 friend int competition(team

12、 &a,team &b)(因为会用到 Team 类的私有成员) ,该友元函数的主要功能是实现两只队伍的比赛。这个函数的作用很大,为以后的小组赛,八分之一决赛,四分之一决赛,半决赛,决赛做铺垫。2. 还是未将分组的程序想出来,依旧在缓慢的编写,修改程序。参考网上的一段分组程序对其进行修改,来实现分组。通过老师的讲解明白了 group 类的成员函数 int addTeam(team &t)的作用(对它的定义仍是任重而道远) 。group 类中实现 3 支球队的比赛,也就是实现小组赛,可以调用 team 类中的competition()函数。程序名称 足球排名系统功能描述 类、主函数的编写开发者 起

13、止日期 2011-7-111 今天主要是对 group、team 、worldcup 类的补充和修改。存在的问题仍然比较大。就比如说,在小组赛时,每支球队比两场,对于同一支球队它的 score、sballs 、totalballs 该如何记录,这是个比较大的问题。2 在 worldcup 里,分组函数的编写是参照网上流传甚广的一段程序编写的。3 个人认为 addteam()似乎是没有必要。四分之一决赛这段程序的编写,可以这样:调用 group 类中的 getTeamoftop()函数获取 ABCD四个组中的前两名,然后 A 组第一与 B 组第二比,A 组第二与 B 组第一比,就这样交叉比赛。同理,进行后面的半决赛。10足球排名系统最后的修改起止日期 2011-7-12程序名称 足球排名系统功能描述 实现程序开发者 起止日期 2011-7-13111213

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报