运动会分数统计系统数据结构课程设计

上传人:s9****2 文档编号:497549225 上传时间:2022-12-23 格式:DOCX 页数:37 大小:438.86KB
返回 下载 相关 举报
运动会分数统计系统数据结构课程设计_第1页
第1页 / 共37页
运动会分数统计系统数据结构课程设计_第2页
第2页 / 共37页
运动会分数统计系统数据结构课程设计_第3页
第3页 / 共37页
运动会分数统计系统数据结构课程设计_第4页
第4页 / 共37页
运动会分数统计系统数据结构课程设计_第5页
第5页 / 共37页
点击查看更多>>
资源描述

《运动会分数统计系统数据结构课程设计》由会员分享,可在线阅读,更多相关《运动会分数统计系统数据结构课程设计(37页珍藏版)》请在金锄头文库上搜索。

1、石家庄经济学院华信学院课程设计报告学院:专业:班级:学号:姓名:运动会分数统计系统的设计与实现一. 问题描述 大学作为一个提供学生全面发展的高等教育机构,不仅要培养学生的学习能力,而 且更要注重学生的德智体美全面发展。在大学中有很多丰富多彩的比赛和活动,例如运动会,演讲 比赛,歌唱比赛,书法比赛等,在比赛和竞争中,我们的这些素质和能力更容易得到培 养提升。 但是比赛最后的分数统计和查询往往是举办者头疼的事情,分数的统计和查询需要快速准确,因此 我们设计了这个运动会分数统计系统,以方便分数的统计查询。参加运动会的n个学校编号为1 n。比赛分成m个男子项目和w个女子项目,项目编号 分别为1 m和m

2、+1 m+w。由于各项目参加人数差别较大,有些项目取前五名,得分顺序为7, 5,3,2, 1 ;还有些项目只取前三名,得分顺序为5,3,2。写一个统计程序产生各种成绩单和得分报表。二. 需求分析系统功能描述:(1) 可以输入各个项目的前三名或前五名的成绩;(2) 能统计各学校总分;(3) 可以按学校编号或名称、学校总分、男女团体总分排序输出;(4) 可以按学校编号查询学校某个项目的情况;可以按项目编号查询取得前三或前五 名的学校。三. 概要设计3.1链表结构的ADT的定义ADT List数据对象:D=ai|aiElemSet,i=1,2,n,n 0数据关系:R仁|常,aiD,i=2,n基本操作

3、:InitList(&L)操作结果:构造一个空的线性表L。GetElem(L,i,&e)初始条件:线性表L已存在,1 w i w ListLength(L)操作结 果: 用e返回L中第i个数据元素的值。LocateElem(L,e,compare()初始条件:线性表L已存在,compare()是数据元素判定函数。操作结果:返回L中第1个与e满足关系compare()的数据元素的 位序。若这样的数据元素不存在,则返回值为0。PriorElem(L,cur_e,&pre_e)则用初始条件:线性表L已存在。操作结果:若cur_e是L的数据元素,且不是第一个,pre_e返回它的前驱,否则操作失败,pr

4、e_e无定义。NextElem(L,cur_e,&next_e)初始条件:线性表L已存在。操作结果: 若cur_e是L的数据元素,且不是最后一个,则用 next_e返回它的后继,否则操作失败,next_e无 定义。ListInsert(&L,I,e)初始条件: 线性表L已存在,1 w i w ListLength(L)+1操作结果: 在l中第i个位置之前插入新的元素e,L是表长度加1ListTraverse(L,visit()初始条件:线性表L已存在。操作结果: 依次对L的每个数据元素调用函数visit()。一旦visit() 失败,则操作失败。ADT List3.2系统功能模块设计运动会分数

5、统计系统输 各 校 称输女、一运项图3-1运动会分数统计系统功能模块图3.3 K要函数调用关系图ListTraverse(L, visit()schooln&L,iname(Li nkListwomansports(LinkLi输入每 个值mansports(Lin* kLiStLJrit图3-2系统函数调用关系图3.4主界面设计为了实现运动会分数统计系统,需要设计一个含有多菜单项的主控菜单子程序,以链接系统中各个子项目的调用,为了方便用户使用本系统,本系统主控菜单的运行界面如图 3-3所示。tTWXProgram FileAMicrosoFt Visual StudioMyPro jects

6、 1 Debug 1 .eMe*Jnl xl入其本他自士口询基校各心项目的成绩 询某个项个的匕赛结呆 束寸程序目any key to continue图3-3主菜单运行界面四. 详细设计实现运动会分数统计系统的开发,采用链表结构类型存储运动会学校名称、男子女子运动项目以及男子女子项目成绩的信息。4.1数据类型定义每一个学校的信息typedef struct Lnode / 结点( char data20;/ 学校名称int da,d1,d2;学校编号、学校总分、男女团体分struct Ln ode *n ext; / 指向下一学校 Ln ode,*L in kList;int sz20;每一个

7、项目的信息存取typedef struct Lno de1(char data20,data120,data220,data320,data420,data520;该项目前五名学校的名称int da1,da2,da3,da4,da5; 该项目前五名学校的编号struct Lnodel *next; /指向下一项目 Ln ode1,*Li nkListl;4.2系统子程序详细设计输入各学校名称的算法:/按从头到尾的顺序依次建立线性链表L1共有n个节点void scho oln ame(L in kList &L1,i nt n)(int i;Lin kList p,q;输入头结点信息,即输入第一

8、个学校的名字L仁(LinkList)malloc(sizeof(Lnode); / malloc 是动态开辟内存,函数返回为void型指针(指向开辟的内存空间);(LinkList)定义的指针的类型;(sizeof(Lnode)malloc开辟的内存空间的大小printf(-请输入这d个学校的名字:n,n);p=(LinkList)malloc(sizeof(Lnode);/ 指向一个有意义的地方L1-next=p; 把p的值赋给next next指向实际的空间p时指针scanf(%s, &p-data); /修改空间的值,&取p的数据域的地址/从第二个节点开始依次输入到第n个节点信息for(

9、i=2;idata);q-next=p;Y输入男子运动项目名字的算法:/按从头到尾的顺序依次建立线性链表L2共有n2个节点voidmansports(LinkList1 &L2,int n2)(输入第一个节点的信息,即第一个男子项目的名字int i;LinkListl r,s;L2=(LinkList1)malloc(sizeof(Lnode1);printf(-请输入这%d个项目的名字:n,n2);r=(LinkList1)malloc(sizeof(Lnode1);/把新开辟的空间data1-5初始化for(int t=0;tdata1t = 0;for( t=0;tdata2t = 0;

10、for( t=0;tdata3t = 0;for( t=0;tdata4t = 0;for( t=0;tdata5t = 0;L2-next=r;scanf(%s,&r-data);/从第二个节点开始输入到第n2个节点的信息for(i=2;i=n2;i+)(s=r; s指向r指向的地方r=(LinkList1)malloc(sizeof(Lnode1);for(int t=0;tdata1t = 0;for( t=0;tdata2t = 0;for( t=0;tdata3t = 0;for( t=0;tdata4t = 0;for( t=0;tdata5t = 0 :scan f(%s, &r

11、-data); s-n ext=r;/按从头到尾的顺序依次建立线性链表L3共有n1个节点void woma nsports(L in kListl &L3,i nt n1)(输入第一个节点的信息,即第一个女子项目的名字int i;Li nkListl r,s;L3=(Li nkList1)malloc(sizeof(L nodel);printf(-请输入这d个项目的名字:n,n 1);r=(L in kList1)malloc(sizeof(L no de1);L3-n ext=r;sca nf(%s, &r-data);/从第二个节点开始依次输入到第n1个节点信息for(i=2;idata);s-n ext=r;开始输入n个女子 项日的名字将第i个结点加入链表Lvoid schoolrankings(LinkList &L1,int n)(LinkList p;学校的数据类型 上边int z,i,j,y;printf(-参加这次比赛的学校的总分排名:n);p=L1-next; /下一个地方的指针给p p是学校的数据类型p是一个节点,L1下一个节 点给p/先把每个学校的总分依次遍历,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号