1、 “C语言程序”课程设计 足球联赛积分应用系统 系 别: 机电工程系 专 业:14电气工程及其自动化 班 级: 2班 姓 名: 许博健 陈国梁 林钟源 学 号: 32号 1号 18号 指导教师: 曹 敏 日 期: 2015年12月25号
2、目录 1、课程设计目的 - 2 - 2、需求分析 - 2 - 2.1、问题描述 - 2 - 2.2、基本要求 - 3 - 3、总体设计思想及分析说明 - 3 - 3.1、总体思想 - 3 - 3.2、图表分析 - 3 - 3.3 、流程图 - 4 - 3.4、系统功能模块图解 - 5 - 3.5、用户使用说明 - 5 - 4、源程序代码 - 5 - 5、程序调试及运行结果 - 18 - 5.1、调试分析 - 18 - 5.2、程序运行结果 - 18 - 6、心得体会 - 22 - 7、参考文献 - 22 - 成绩评定 - 22 - 成绩: - 22 - 教
3、师签字: - 22 - 1、课程设计目的 随着社会发展,人类的生产生活越来越离不开信息。谁拥有了更多更有效的信息,谁就将在竞争中处于有利地位。信息产业正在成为一个国家的支柱。只有拥有了先进的数据库技术,才能有效地管理好浩如烟海的数据,并从中提取出对自己有用的信息来加以利用。 作为计算机应用的一部分,使用计算机对信息进行管理,具有手工管理所无法比拟的优点。例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高管理的效率,也是正规化管理与世界接轨的重要条件。 本学期我们学习了一门重要的计算机课程——《C++面向对象程序设计》。《C++面向对
4、象程序设计》是计算机专业中一门重要的专业课。这门课程语言为基础,通过完成一些程序设计,运用所学理论知识掌握面向对象程序设计的基本方法和编程技巧,巩固所学理论知识,使理论与实际相结合。从而提高自我分析问题、解决问题的能力。: 在这里我们将利用本学期学习的c++知识编写一个足球联赛积分系统,借此来检验我们的学习成果,我们也会得到一些锻: 1.进一步加深我们对所学知识的理解、分析以及运用的灵活性。全面提高我们的综合能力,解决问题的能力。 2.理论与实际相互交涉,既检验了对理论的掌握又检验了理论与实际相结合使用的能力。这不仅可以使我们充分理解理论,还可以提高我们的思考能力。 3.掌握类与对象的
5、知识,熟练使用数组。 4.掌握面向对象程序的设计方法。 5.进一步掌握编写、调试、运行各种能力的综合运用。 2、需求分析 2.1、问题描述 足球联赛采用主客场双循环赛制,胜一场得3分,平局各得1分,负一场得0分,联赛排名以积分多者在前,当两队(或多队)积分相同时,则净胜球(即进球数与失球数之差)多者在前,若净胜球相同,则进球数多者在前,若仍相同,则抽签或踢附加赛决定名次(这在联赛结束后进行,联赛未结束则两队名次并列,本程序不做这方面要求)。试编一程序统计最近一轮比赛后,各队积分及排名。 2.2、基本要求 设积分表结构如下:队名(不超过15个字符)已比赛的场数,赢的场数,平的
6、场数,负的场数,进球数,失球数,积分。积分表放在正文文件中。最近一轮的结果从键盘输入,其形式为:主队名(可用代码),客队名(可用代码),主队得分(即进球数),客队得分(即进球数)。程序应根据此轮结果修改各队的积分和名次,所得的最新记分表仍在原积分文件中并同时在屏幕上显示。 选做内容:篮球联赛(如NBA)往往采用胜率来决定名次,胜率就是取胜的场数比赛场数之比。若胜率相同,再由净胜球及进球数来决定名次,通过继承性完成上述要求。 3、总体设计思想及分析说明 3.1、总体思想 根据要求,设计一个球队类TEAM其中包含了该类对象的私有数据成员,即:已比赛场数,赢的场数,平的场数,负的场数,进
7、球数,失球数,积分。公有成员方面,除了定义该类构造函数外,还将球队名定义为公有的,目的是便于被类外函数调用。除此之外,由于该程序针对单个对象即某个球队进行的操作,故将诸如排名、更新球队数据、排序后输出等函数定义为普通函数。又因为需要调用该类对象的某些私有数据成员,于是将此等函数声明为类的友元函数。 3.2、图表分析 表1——1 类与对象 表1——2 函数 3.3 、流程图 图1——1流程图 3.4、系统功能模块图解 图1——2功能表 3.5、用户使用说明 根据提示操作即可,具体为: 1、程序运行时,首先要求初始化参赛队总
8、数,各队队名等;
2、按提示操作,即可选择性修改最近一轮比赛中主客队得分,也可查看当前各队积分排名。
注意:请输入与程序要求相应的选择以及正确的格式,不要超出程序给定的范围!
4、源程序代码
#include
9、int ball_win; int ball_lose; int score; public: char *name; TEAM(); friend void rank(TEAM array[],int size); friend void rewrite_data(TEAM Team[],int size); friend void print(TEAM array[],int size); friend void print_af_rank(TEAM array[],int size); };
10、void project(TEAM T[],int size); TEAM::TEAM() { name="0"; race_num=0; win_num=0; peace_num=0; lose_num=0; ball_win=0; ball_lose=0; score=0; } void initical_name(TEAM S[],int size) { if(S[0].name=="0") { cout<<"Caution:当前无参赛队伍,请建立!(y/n)__"; string s;
11、
cin>>s;
if(s=="y"||s=="Y")
{
cout<<" _______________________________________________________________________ "<
12、 cout<<"Caution:您的输入有误,请重新输入!"< 13、t<<"____数据初始化成功! ";
cout<<" ________________________________________________________________________ "< 14、<<<<<<<<<<<<"< 15、 1.查看当前球队排名 "< 16、 "< 17、 rank(T,size);
print_af_rank(T,size);
break;
case 0:
cout<<">>>>>>>>>>>>>>>>>>>>>>>>>>> 谢谢使用,祝您愉快!再见!<<<<<<<<<<<<<<<<<<<<<<<<<<"< 18、0);
return;
}
void rank(TEAM array[],int size)
{
TEAM temp;
int L=0,k=0;
for(k=0;k 19、{
if(array[j].score>array[j+1].score){}
else if(array[j].score 20、lose)>(array[j+1].ball_win-array[j+1].ball_lose)){}
else if((array[j].ball_win-array[j].ball_lose)<(array[j+1].ball_win-array[j+1].ball_lose))
{
temp=array[j];
array[j]=array[j+1];
array[j+1]=temp;
}
else if((array[j].ball_win-a 21、rray[j].ball_lose)==(array[j+1].ball_win-array[j+1].ball_lose))
{
if(array[j].ball_win>array[j+1].ball_win){}
else if(array[j].ball_win 22、 }
else if(array[j].ball_win=array[j+1].ball_win){}
}
}
}
}
return;
}
void print_af_rank(TEAM array[],int size)
{
int n;
cout<<" ________________________________________________________________________ "< 23、 当前各队积分排名 "< 24、[n].lose_num<<"\t"< 25、size)
{
int m;
int ht_num,at_num,ht_ball_win,at_ball_win;
cout<<" ________________________________________________________________________ "< 26、
}
cout<<" ________________________________________________________________________ "< 27、<<">>> 请输入主队"<<"""< 28、at_ball_win;
Team[ht_num-1].ball_lose+=at_ball_win;
if(ht_ball_win>at_ball_win)
{
Team[ht_num-1].win_num++;
Team[at_num-1].lose_num++;
Team[ht_num-1].score=3*Team[ht_num-1].win_num+1*Team[ht_num-1].peace_num;
}
else if(ht_ball_win 29、
Team[ht_num-1].lose_num++;
Team[at_num-1].score=3*Team[at_num-1].win_num+1*Team[at_num-1].peace_num;
}
else if(ht_ball_win==at_ball_win)
{
Team[at_num-1].peace_num++;
Team[ht_num-1].peace_num++;
Team[at_num-1].score+=1;
Team[ht_num-1].score+=1;
}
return;
}
int m 30、ain()
{
int c=1234;
int m=2345;
int a;
int n;int i;int s;
for(i=0;i<3;i++)
{ cout<<"请输入用户名:"< 31、l;}
TEAM team[18];
cout< 32、 ☆★ "< 33、 * * * * * * ☆★ "< 34、" ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ "< 35、利的完成各项功能,能够显示谁赢谁输,还是平局及进球数、失球数、净胜球数、积分。可建立2—18只球队,操作方便。
5.2、程序运行结果
图1——3登陆用户名密码输入界面
图1——4主界面
图1——5建立球队
图1——6查看排名
图1——7设置主客队
图1——8设置主客队及进、失球数
图1——9数据更新
6、心得体会
经过一个多星期的设计和开发,系统基本开发完毕。在本次课程设计中困难遇到不少,比如重新开始,弹出自己创建的对话框,回放等。由于设计时间较短,所以该系统还有许多不尽如人意的地方,如输入姓名的对话框不够美观、回放不能重 36、复两次等多方面问题。在这次系统开发的过程中,我深深体会到了做一个系统,首先进行需求分析的重要性,了解了一个系统的制作,从功能分析到功能模块分析、与其他系统的关系,这些都有待以后进一步改进。通过实践对于我以后的学习是一笔不小的财富!当然最重要的是学会了团队合作。
7、参考文献
教材:龚静、李娟芳主编.《C++语言程序设计》.西北工业大学出版社.2013
参考资料:
[1]郑莉,傅仕星编,《C++面向对象程序设计》,清华大学出版社,2003年9月出
[2]谭浩强编,《C++面向对象程序设计》,清华大学出版社,2005年7月出版 [3]李师贤等译,《C++精髓》,机械工业出版社,2002年8月出版
[4]Davis Chapman,《学用Visual c++ 6.0》,清华大学出版社,2001年7月出版
[5]郑莉,傅仕星编,C++语言面向对象程序设计习题与实验指导,清华大学出版社,2003年9月出版
成绩评定
成绩:
教师签字:
- 23 -
©2010-2025 宁波自信网络信息技术有限公司 版权所有
客服电话:4009-655-100 投诉/维权电话:18658249818