1、I 计算机课程设计计算机课程设计 信息工程系信息工程系 题 目 网球比赛系统的设计与实现 专业班级 姓 名 学 号 指导教师 2017 年 7 月 II 目目 录录 1 项目介绍 1 1.1 项目简介 .1 1.2 项目背景与可行性分析1 1.3 术语与缩写解释 1 2 需求分析 2 2.1 系统面向的用户群体2 2.2 系统应当遵循的标准或规范 .2 2.3 系统功能性需求 2 2.3.1 功能需求 12 2.3.2 功能需求 22 2.3.3 功能需求 32 3 系统设计 3 3.1 总体设计 .3 3.2 模块命名规则 3 3.3 模块关系 .3 3.4 详细模块设计 4 3.4.1 比
2、赛流程 .6 4 系统实现 7 4.1 获取随机结果 7 4.2 选手比赛.7 5 项目总结 8 5.1 项目特色 .8 5.2 主要工作 .8 5.3 系统展望 .8 6 附录 编程日志9 1 1 1 项目介绍项目介绍 利用面向对象程序设计的方法,模拟网球公开赛 32 人男单的比赛。 1.1 1.1 项目简介项目简介 随机分配所属组队,设定 4 个组,利用 for 循环进行三盘两胜制,每盘内又分为 6 盘,每个组内进行淘汰赛决出一人,共四人参加半决赛,再决出参加决赛的人。决赛中 可得出冠军和亚军,半决赛中决出的两人对决比赛得出季军的归属者。 1.2 1.2 项目背景与可行性分析项目背景与可行
3、性分析 (1)项目背景:2017 暑期实训内容 (2)可行性分析报告:利用 VC6.0 可实现程序的编辑编译及运行。 1.3 1.3 术语与缩写解释术语与缩写解释 全文术语与缩写解释如表 1.1 所示: 术语与缩写解释 缩写、术语缩写、术语 解解 释释 Pause 让程序暂停一下,不马上退出主线程。 Break 不在执行本次循环后面的语句,跳出循环,不再执行。 Player 成员信息的录入 Match 比赛结果的运行 2 2 2 需求分析需求分析 (1) 需要 vc6.0 的程序运行环境。 (2) 需要详细模拟每场比赛过程,三盘两胜制。 (3) 需要控制的程序的运行时间,不能太长,也不能太短。
4、 2.1 2.1 系统面向的用户群体系统面向的用户群体 学习 C+面向对象的老师和学生。 2.2 2.2 系统应当遵循的标准或规范系统应当遵循的标准或规范 程序应该遵循网球比赛的规则, 每一盘 谁先胜 6 局 (净胜两局定输赢, 如果打成 6: 5,则至少还得打一局)谁赢。轮流发球(抽签决定谁先接) ,一局一发球。每局 4 个球, 净胜两球定输赢。 2.3 2.3 系统功能性需求系统功能性需求 程序的具体过程要清晰明确,比赛过程详细,类需要定义三个类 2.3.1 功能需求功能需求 1 Group 类,对 32 个成员的分组,随机选取参加小组赛,小组淘汰赛,用 for 循环进行比赛的进行。 2.
5、3.2 功能需求功能需求 2 Player 类,对成员信息的输入,打印选手信息。 2.3.3 功能需求功能需求 3 Match 类,对比赛的过程进行描述,分为单场比赛,单局比赛,单盘比赛。 每盘比赛中又分别确定不同的发球人,取随机产生的人进行比赛。 3 3 3 系统设计系统设计 3.1 3.1 总体设计总体设计 总体设计、模块命名规则、模块关系,详细模块设计和模块。 3.3.2 2 模块命名规则模块命名规则 1文件的命名: Cplayer,Cmatch,Cgroup 2类的定义: player.h group.h match.h,test.cpp (测试文件) 3.3 3.3 模块关系模块关系
6、 源程序 Test.cpp 成员信息 Player.h 成员分组 Group.h 进行比赛 Match.h 4 3.43.4 详细模块设计详细模块设计 类的成员 实现的功能 player.h 姓名 记录人员的名字 group.h 小组 记录每组的成员 match.h 比赛的函数 比赛 test.cpp 测试 测试系统 Cplayer: #include #include #include using namespace std; #ifndef _CPlayer #define _CPlayer /选手 class Player public: char name20; char nation20; Player(char*NAME,char*NATION) strcpy(name,NAME); strcpy(nation,NATION); /打印选手信息 void printPlayer() cout“姓名: “ name “ 国籍: “nationendl; ; #endif 5 运