- 1、本文档共20页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据结构课程设计
运动会分数统计系统
专 业:网络工程
班 级:
学 号
姓 名:
指导老师:
2012年6月29日
一、课程设计目的
本课程设计的目的就是要达到理论与实际应用相结合,使同学们能够根据数据对象的特性,学会数据组织的方法,能把现实世界中的实际问题在计算机内部表示出来,并培养基本的、良好的程序设计技能。
二、课程设计题目
任务:参加运动会有n个学校,学校编号为1……n。比赛分成m个男子项目,和w个女子项目。项目编号为男子1……m,女子m+1……m+w。不同的项目取前五名或前三名积分;取前五名的积分分别为:7、5、3、2、1,前三名的积分分别为:5、3、2;哪些取前五名或前三名由学生自己设定。(m=20,n=20)
功能要求:
1).可以输入各个项目的前三名或前五名的成绩;
2).能统计各学校总分,
3).可以按学校编号、学校总分、男女团体总分排序输出;
4).可以按学校编号查询学校某个项目的情况;可以按项目编号查询取得前三或前五名的学校。
规定:输入数据形式和范围:20以内的整数(如果做得更好可以输入学校的名称,运动项目的名称)
输出形式:有中文提示,各学校分数为整形
界面要求:有合理的提示,每个功能可以设立菜单,根据提示,可以完成相关的功能要求。
存储结构:学生自己根据系统功能要求自己设计。请在最后的上交资料中指明你用到的存储结构;
测试数据:要求使用1、全部合法数据;2、整体非法数据;3、局部非法数据。进行程序测试,以保证程序的稳定。测试数据及测试结果请在上交的资料中写明;
三、课程设计设计过程
1、数据存储方式设计
在程序中需要存储的信息有:
1)、以运动会的各项目编号为基础存储,存储第一到第三或第一到第五名学校的编号存入。
由于存储从第一到第三还第一到第五名学校编号是由项目决定的,因此在此处
我选择使用临界链表存储,数组的数据域为1表示取前三名,为0表示取前五名。
2)、用二维数组存储各学校的信息,包括学校的编号,学校的总成绩,男子总成绩,女子总成绩。
临界链表:
a(1)
1
a(2)
1
a(3)
1
a(4)
0
1
2
3
4
3
5
3
2
1
1
2
3
4
5
二维表抽象图:
学校编号
总成绩
男子团体成绩
女子团体成绩
1
2
3
程序类的设计:
class infor
{
public:
int x;
infor *p;
};
用来存储链表节点信息
链表建立关键代码:
for(int k=1;k=t;k++)
{
s=new infor;
do{
cinl;
e[k]=l;
if(lnum || l0)
{
cout本编号输入有误请重新输入:endl;
}
}while(lnum || l0);
s-x=l;
s-p=NULL;
h-p=s;
h=s;
}
四、设计思想
数据输入: 根据运动项目的序号,输入该项目取得前三名或前五名成绩的学校的编号。
数据的处理:把输入到临界链表的数据,装入存储学校信息的二维数组中。
普通输出:按学校的编号输出数据。
排序输出:分别按照总成绩、男子团体成绩、女子团体成绩从大到小的顺序输出数据。
查询输出: 可以按学校编号查询学校某个项目的情况;可以按项目编号查询取得前三或前五名的学校。
五、程序流程图:
六、程序编写
#includeiostream
using namespace std;
static int num,man,woman;
class infor
{
public:
int x;
infor *p;
};
void input(infor *a)
{
int t,z,l,m,k;
bool du;
int e[6];
infor *s,*h;
for(int i=1;i=man+woman;i++)
{
do{
cout请输入该项目的计分方式(前三名为“1”,前五名为“0”)endl;
文档评论(0)