数据结构课程设计报告(运动会分数统计系统)Word下载.doc
- 文档编号:6869383
- 上传时间:2023-05-07
- 格式:DOC
- 页数:23
- 大小:248.50KB
数据结构课程设计报告(运动会分数统计系统)Word下载.doc
《数据结构课程设计报告(运动会分数统计系统)Word下载.doc》由会员分享,可在线阅读,更多相关《数据结构课程设计报告(运动会分数统计系统)Word下载.doc(23页珍藏版)》请在冰点文库上搜索。
6)任务及具体要求
任务:
参加运动会的n个学校编号为1~n。
比赛分成m个男子项目和w个女子项目,项目编号分别为1~m和m+1~m+w。
由于各项目参加人数差别较大,有些项目取前五名,得分顺序为7,5,3,2,1;
还有些项目只取前三名,得分顺序为5,3,2。
写一个统计程序产生各种成绩单和得分报表。
要求:
产生各学校的成绩单,内容包括各学校所取得的每项成绩的项目号、名次(成绩)、姓名和得分;
产生团体总分报表,内容包括校号、男子团体总分、女子团体总分和团体总分。
学生签名:
2010年12月27日
课程设计(论文)评审意见
(1)任务难易及设计思路:
优( )、良( )、中( )、一般( )、差( )
(2)动手调试能力评价 :
(3)任务完成情况评价 :
(4)论文撰写水平及规范性评价:
(5)考勤和态度:
评阅人:
职称:
讲师
2011年1月3日
课程设计报告
目 录
1绪论 2
2需求分析与概要设计 3
2.1需求分析 3
2.1.1问题描述 3
2.1.2基本要求 3
2.2概要设计 3
2.2.1数据结构 3
2.2.2程序模块及之间的调用关系 4
3详细设计与编码实现 5
3.1目的结果 5
3.2变量关系 5
数据类型及重要变量的定义 5
3.3编码实现 6
3.3.1信息输入及分数统计功能 6
3.3.2信息输出查询功能 6
3.3.3主函数 7
4调试分析与结果 8
4.1运行界面 8
输入各项信息 8
4.2查询 10
5总结体会 12
6参考文献 13
附录:
源程序代码 14
1绪论
近年来,在计算机软件业,面向对象程序设计的思想已经被越来越多的软件设计人员所接受。
不仅因为它是一种最先进的,新颖的计算机程序设计思想,最主要的是这种新的思想更接近人的思维活动,人们利用这种思想进行程序设计时,可以很大程度地提高编程能力,减少软件维护的开销。
面向对象程序设计方法是通过增加软件的可扩充性和可重用性来提高程序员的编程能力。
随着计算机在我国广泛而深入的应用,在分析和开发计算机系统软件和应用软件的过程中,迫切需要掌握各种数据结构的描述方法以及相应的处理算法。
因此面向对象程序设计知识是计算机相关科学的学生和从事计算机应用的技术人员必备的专业基础知识。
著名的瑞士计算机科学家沃思提出:
对象+消息=程序。
2需求分析与概要设计
2.1需求分析
2.1.1问题描述
2.1.2基本要求
2.2概要设计
2.2.1数据结构
1)学校:
名称,编号,男子团体总分,女子固体总分。
2)运动项目:
项目编号,名称,男子项目,女子项目,前三名,前五名,第一名学校的编号,第二名学校的编号,第三名学校的编号,第四名学校的编号,第五名学校的编号。
2.2.2程序模块及之间的调用关系
开始---初始化
N
输入
YY
输入学校及男女项目范围
输入某项目各名次成绩
Y
继续输入
查询团体总分
Case2
成绩查询
Case3
继续
Case1
查询各学校成绩
输出查询学校成绩
结束—退出
图2.1:
模块之间的调用关系
3详细设计与编码实现
3.1目的结果
本课程设计主要解决在运动会上,将各个比赛项目所有获得名次的同学的成绩输入;
成绩查询;
成绩修改;
成绩删除;
以及成绩输出。
该程序用于运动会上,涉及到比赛项目成绩的录入,某个学校在某个项目中获得成绩的查询,某个学校在某个运动项目中获得的成绩的修改,某个学校在某个运动项目中获得的成绩的删除,以及某个学校所有获得成绩的得分报表以及团体成绩的得分报表。
其中比赛成绩的录入可以按照运动项目举行的次序输入,也可以输入自己指定的运动项目的成绩;
自己扩展的功能是“某个学校在某个项目中获得成绩的查询,某个学校在某个运动项目中获得的成绩的修改,某个学校在某个运动项目中获得的成绩的删除”三项,这三项都要求输入学校以及运动项目编号,通过这两项作为参数具体的函数可以查询、修改成绩或者是删除某项成绩记录,进而影响到最后得分报表的输出。
3.2变量关系
数据类型及重要变量的定义
(1)定义运动项目数据类型,用于存放运动项目,包括项目编号、项目所取名次数、名次、分数。
intn;
//n个学校
intm;
//m个男子项目
intw;
//w个女子项目
structpro//表示项目的结构体
(2)定义学校数据类型,用来存储参赛学校信息,包括学校编号、学校总分、男团总分、女团总分、项目数组。
//定义学校结点类型
intnum;
stringname;
//学校名称
intscore;
//学校总分
intmale;
//男子总分
intfemale;
//女子总分
3.3编码实现
3.3.1信息输入及分数统计功能
voidinput()为输入信息及分数统计函数。
在输入信息的同时进行分数的统计。
可以输入各个学校各项目前三名或前五名的成绩。
在输入学校的参赛项目时,结果取前三名还是前五名自己定,用一个选择语句实现。
其主要功能代码如下:
intintegral[5]={7,5,3,2,1};
//前五名得分
intintegraly[3]={7,5,3};
//三名得分
for(i=1;
i<
=m+w;
i++)
{
printf("
输入第%d个项目的名称:
\n"
i);
cin>
>
p[i].name;
该项目取前三名选0,取前5名选1:
"
);
scanf("
%d"
&
q);
3.3.2信息输出查询功能
1)voidoutput()为输出函数。
列出一个输出目录利用swich语句使函数按学校编号输出或按学校总分、男团总分、女团总分由高到低排序输出。
利用辅助数组remember[]和冒泡排序的方法使之按分数的由高到低输出。
利用循环语句dowhile()当输入2时返回输出目录,输入0是跳出循环返回主菜单。
voidprint(inti)
{
cout<
<
sch[i].num<
setw(10)<
sch[i].name<
setw(8)<
sch[i].score<
setw(9)
<
sch[i].male<
sch[i].female<
endl;
}
2)voidcxxm()为查询函数。
列车一个查询目录利用swich语句使函数按学校编号或项目编号查询,输出某学校的某个项目的得分情况或某个项目的前几名的学校。
再利用循环语句dowhile()当输入2是返回查询目录,输入0时跳出循环返回主菜单。
3.3.3主函数
voidmain()是主函数。
列出主菜单,利用switch语句调用以上函数实现各个菜单的功能。
想在每次查询结束想返回主菜单进行其它项时,应在main()函数中调用其它函数时再调用main()函数。
4调试分析与结果
4.1运行界面
输入各项信息
图4.1:
输入各项信息的界面
(1)
图4.2:
选择前几名的界面
图4.3:
输入各项信息的界面
(2)
图4.4:
各项信息输入完毕的界面
4.2查询
可以按多个指标查询
图4.5:
查询界面
(1)
图4.6:
查询界面
(2)
5总结体会
本次课程设计,使我对数据结构线性表,栈的设计方法、步骤、思路、有一定的了解与认识。
它相当于实际设计工作的模拟。
在课程设计过程中,基本能按照规定的程序进行,先针对表达式算法为背景,通过调研、分析现有的管理模式和已有的管理软件,建立系统模型;
收集、调查有关资料,然后进入草案阶段,其间与指导教师进行几次方案的讨论、修改,再讨论、再修改,最后定案。
通过此次课程设计,我了解了编写应用软件的一般步骤,获得了很多宝贵的经验。
特别是怎么样通过理论与实践相结合,把书本上的内容应用到我们做的程序上去。
怎样使各个子模块实施其的详细功能,特别是各个子模块之间的接口,一定要相当清晰,达到相互协调的作用其次,我熟悉了数据结构知识。
学会了很多关于程序设计的经验和技巧,明白了程序的使用性和通用性是程序生存周期长短的关键,学会了调试程序的一般方法。
重要的是,通过这次设计,逐步我具备了走向程序员的基本素质。
知道应如何在困难重重中一步一步细心的发现问题,解决问题。
并深刻体会到了团体合作精神的重要性,知道了在软件设计中对界面和功能如何平衡,如何达到相对的完美。
6参考文献
[1]严蔚敏,吴伟民.数据结构(C语言版)[M].北京:
清华大学出版社,2007.
[2]张国峰.C++程序设计实用教程.北京:
清华大学出版社,1996.
[3]张松梅.C++语言教程.电子科技大学出版社,1993.
[4]阎龙.C程序员的C++指南.北京航空航天大学出版社,1992.
[5]王博.面向对象的建模、设计技术与方法.北京希望电脑公司,1990.
[6]汪成为.面向对象分析、设计及应用.国防工业出版社,1992.
[7]江明德.面向对象程序设计.电子工业出版社,1993.
[8]吕凤翥.C++语言程序设计.电子工业出版社,2001.
源程序代码
#include<
iostream>
string>
iomanip>
fstream>
usingnamespacestd;
//项目名称
intsnum[6];
//前5名学校的编号
intsnumy[4];
//前3名学校的编号
}p[21];
structschool//表示学校的结构体
intnum;
//女子总分
}sch[21];
//前三名得
voidinput()
inti,j,y,x,q;
printf("
输入学校数目:
y=0;
while
(1)
n);
//n:
学校数目
if(n>
=1&
&
n<
=20)y=1;
if(y)break;
elseprintf("
输入数据有误,请重新输入:
}
for(i=1;
=n;
输入第%d个学校的名称:
sch[i].name;
//给学校结构体的成员初始化为
sch[i].score=0;
sch[i].female=0;
sch[i].male=0;
sch[i].num=i;
输入男子项目数和女子项目数:
%d%d"
m,&
w);
if(m<
=20&
m>
w<
w>
=1)y=1;
if(q==1)
{
printf("
输入第%d个项目的前5名的学校编号:
for(j=1;
j<
=5;
j++)
{
y=0;
while
(1)
{
scanf("
x);
//学校编号
if(x>
x<
if(y)break;
elseprintf("
}
p[i].snum[j]=x;
//给项目结构体的成员赋值
sch[x].score+=integral[j-1];
//给学校结构体成员赋值
if(i<
=m)sch[x].male+=integral[j-1];
//学校结构体赋值,男子总分
elsesch[x].female+=integral[j-1];
//学校结构体赋值,女子总分
}
}
if(q==0)
输入第%d个项目的前3名的学校编号:
=3;
{
y=0;
while
(1)
scanf("
if(x>
if(y)break;
elseprintf("
}
p[i].snumy[j]=x;
sch[x].score+=integraly[j-1];
if(i<
=m)sch[x].male+=integraly[j-1];
//学校结构体赋值
elsesch[x].female+=integraly[j-1];
}
}
voidbianhao()//按编号排序
inti,j;
schoolt;
n;
for(j=i;
if(sch[i].num>
sch[j].num)
t=sch[i];
sch[i]=sch[j];
sch[j]=t;
\n按编号排列:
编号学校名称总分男子总分女子总分\n"
for(i=1;
print(i);
voidzongfen()//按学校总分排序
if(sch[i].score<
sch[j].score)
{t=sch[i];
\n按学校总分排列:
ofstreamfout;
fout.open("
运动会分数统计.txt"
fout<
编号学校名称总分男子总分女子总分"
{
fout<
setw(13)<
<
}
fout.close();
voidmalezf()//按学校男总分排序
if(sch[i].male<
sch[j].male)
\n按学校男子总分排列:
print(i);
voidfemalezf()//按学校女总分排序
if(sch[i].female<
sch[j].female)
\n按学校女子总分排列:
voidcxsch()//查询学校信息
inti,y,s;
输入需要查
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 课程设计 报告 运动会 分数 统计 系统
![提示](https://static.bingdoc.com/images/bang_tan.gif)