版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、实用文档石家庄经济学院华信学院课程设计报告学院:专业:班级:学号:姓名:运动会分数统计系统的设计与实现一问题描述大学作为一个提供学生全面发展的高等教育机构,不仅要培养学生的学习能力,而且更要注重学生的德智体美全面发展。在大学中有很多丰富多彩的比赛和活动,例如运动会,演讲比赛,歌唱比赛,书法比赛等,在比赛和竞争中,我们的这些素质和能力更容易得到培养提升。 但是比赛最后的分数统计和查询往往是举办者头疼的事情,分数的统计和查询需要快速准确,因此我们设计了这个运动会分数统计系统,以方便分数的统计查询。参加运动会的n个学校编号为1n。比赛分成 m个男子项目和 w个女子项目,项 目编号分别为1m和m+1m
2、+w。由于各项目参加人数差别较大,有些项目取前五名,得 分顺序为7, 5, 3, 2, 1;还有些项目只取前三名,得分顺序为5, 3, 2。写一个统计程序产生各种成绩单和得分报表。二需求分析系统功能描述:(1)可以输入各个项目的前三名或前五名的成绩;(2)能统计各学校总分;(3) 可以按学校编号或名称、学校总分、男女团体总分排序输出;(4) 可以按学校编号查询学校某个项目的情况;可以按项目编号查询取得前三或前五 名的学校。三概要设计3.1 链表结构的ADT的定义ADT List数据对象:D=ai|a i C ElemSet,i=1,2, ,n,n > 0数据关系:R1=<ai-i
3、,a i >|a i-i ,a i C D,i=2,n 基本操作:InitList(&L) 操 作 结 果 :构 造 一 个 空 的 线 性 表 L。GetElem(L,i,&e)初始条件:线性表L已存在,1三i三ListLength(L)操作结果:用e返回L中第i个数据元素的值。LocateElem(L,e,compare()初始条件:线性表L 已存在,compare()是数 据 元 素判 定函数。操作结果:返回L中第1个与e 满 足 关系compare() 的数据元素的位序。若这样的 数 据 元素 不 存 在 ,则返回值为0。PriorElem(L,cur_e,&am
4、p;pre_e)初始条件:线性表L已存在。操 作 结 果 : 若 cur_e 是 L 的 数 据 元 素 , 且 不 是 第 一 个 , 则 用pre_e 返 回 它 的 前 驱 ,否 则 操 作 失 败 , pre_e 无 定 义。NextElem(L,cur_e,&next_e)初始条件:线性表L 已存在。操 作 结 果 :若 cur_e 是 L 的 数 据 元 素 ,且 不 是 最 后 一 个 ,则 用 next_e 返 回 它 的 后 继 , 否 则 操 作 失 败 , next_e 无 定义。ListInsert(&L,I,e)初始条件:线性表L已存在,1三i三Lis
5、tLength(L)+1操 作 结 果 : 在 L 中 第 i 个 位 置 之 前 插 入 新 的 元 素 e, L 是 表 长度加1ListTraverse(L,visit()初始条件:线性表L已存在。操 作 结 果 :依 次 对 L 的 每 个 数 据 元 素 调 用 函 数 visit() 。一 旦visit()失败,则操作失败。文案大全ADT List实用文档文案大全3.2系统功能模块设计运动会分数统计系统输入 各学 校名 称输入 男子 运动 项目输入 女子 运动 项目输入 男子 项目 的成入子目成 输女项的绩询校个目成 查某各项的绩询校个目成 查某各项的绩图3-1运动会分数统计系统功
6、能模块图句依次* 输入每 个值图3-2系统函数调用关系图3.4主界面设计为了实现运动会分数统计系统,需要设计一个含有多菜单项的主控菜单子程序,以链接系统中各个子项目的调用,为了方便用户使用本系统,本系统主控菜单的运行界面如图3-3所示。绩果成结的赛目匕、项的自心""目鱼智项序本校个程基某弟人询询柬薯一查结M. M M mJany key to centinue图3-3主菜单运行界面四.详细设计实现运动会分数统计系统的开发,采用链表结构类型存储运动会学校名称、男子女子运动项目以及男子女子项目成绩的信息。4.1 数据类型定义/每一个学校的信息typedef struct Lno
7、de / 结点char data20;/ 学校名称int da,d1,d2; 学校编号、学校总分、男女团体分struct Lnode *next;指向下一学校 Lnode,*LinkList;int sz20;/每一个项目的信息 存取typedef struct Lnode1char data20,data120,data220,data320,data420,data520;/该项目前五名学校的名称int da1,da2,da3,da4,da5; /该项目前五名学校的编号 struct Lnodel *next;指向下一项目 Lnode1,*LinkList1;4.2 系统子程序详细设计输入
8、各学校名称的算法:/按从头到尾的顺序依次建立线性链表L1共有n个节点void schoolname(LinkList &L1,int n) int i;LinkList p,q;输入头结点信息,即输入第一个学校的名字L1=(LinkList)malloc(sizeof(Lnode); / malloc 是动态开辟内存,函数返回为 void 型指针(指向开辟的内存空间);(LinkList )定义的指针的类型; (sizeof(Lnode)malloc开辟的内存空间的大小printf("请输入这d个学校的名字:n",n);p=(LinkList)malloc(size
9、of(Lnode); / 指向一个有意义的地方L1->next=p; /把p的值赋给next next指向实际的空间p时指针scanf("%s",&p->data); 修改空间的值,&取p的数据域的地址/从第二个节点开始依次输入到第n个节点信息for(i=2;i<=n;i+)/p是第一个,所以i=2从2开始 先指出第一个,然后第一个在指出剩下的q=p; /q指向p开辟的空间 即q指向p指向的地方p=(LinkList)malloc(sizeof(Lnode); / 给新开辟的空间赋值实用文档输入男子运动项目名字的算法:/ 按从头到尾的顺序依
10、次建立线性链表L2 共有 n2 个节点void mansports(LinkList1 &L2,int n2)/输入第一个节点的信息,即第一个男子项目的名字int i;LinkList1 r,s;L2=(LinkList1)malloc(sizeof(Lnode1);printf(" 请输入这%d 个项目的名字:n",n2);r=(LinkList1)malloc(sizeof(Lnode1);/把新开辟的空间data1-5 初始化for(int t=0;t<20;t+)r->data1t = '0'for( t=0;t<20;t+
11、)r->data2t = '0'for( t=0;t<20;t+)r->data3t = '0'for( t=0;t<20;t+)r->data4t = '0'for( t=0;t<20;t+)r->data5t = '0'L2->next=r;scanf("%s",&r->data);/从第二个节点开始输入到第n2 个节点的信息for(i=2;i<=n2;i+)s=r; /s 指向 r 指向的地方r=(LinkList1)malloc(siz
12、eof(Lnode1);for(int t=0;t<20;t+)r->data1t = '0'for( t=0;t<20;t+)r->data2t = '0'for( t=0;t<20;t+)r->data3t = '0'for( t=0;t<20;t+)r->data4t = '0'for( t=0;t<20;t+)文案大全实用文档文案大全r->data5t = '0;scanf("%s",&r->data); s->ne
13、xt=r;实用文档输入女子运动项目名字的算法:/按从头到尾的顺序依次建立线性链表L3共有n1个节点void womansports(LinkList1 &L3,int n1)输入第一个节点的信息,即第一个女子项目的名字int i;LinkListl r,s;L3=(LinkList1)malloc(sizeof(Lnode1);printf("请输入这%d个项目的名字:n",n1);r=(LinkList1)malloc(sizeof(Lnode1);L3->next=r;scanf("%s",&r->data);从第二个节点
14、开始依次输入到第n1个节点信息for(i=2;i<=n1;i+)s=r;r=(LinkList1)malloc(sizeof(Lnode1);scanf("%s",&r->data);s->next=r;参加比赛的学校的总分排名的算法:void schoolrankings(LinkList &L1,int n)LinkList p; 学校的数据类型上边int z,i,j,y;printf(" 参加这次比赛的学校的总分排名:n");p=L1->next; /下一个地方的指针给p p 是学校的数据类型p 是一个节点,
15、L1 下一个节点给p/先把每个学校的总分依次遍历,存放在数组sz 中。 一个一个取,一个一个找先让 p 指向一个链表for(i=0;i<=n-1;i+)szi=p->da;/节点的信息指向一个数组,data 学校总数的数据域,把所有的学校的总分p=p->next;再对数组sz用冒泡排序法进行从小到大排序for(i=1;i<=n-1;i+)for(j=1;j<=n-i;j+)if(szj-1>szj)y=szj-1;szj-1=szj;szj=y;z=1; /初始化/把线性链表L1 按项目总分从大到小的顺序排列,并打印名次for(i=n-1;i>=0;i
16、-)p=L1->next; / L1 表示一个节点,取出里面一个数据,那个数据的名字是next, next 也是一个节点,p 也是一个节点,if(i>0)/ 意义是判断下一个是不是/如果值相等则链表指针直接指向下一个,不用交换位置while(szi=szi-1) 相邻的两个数组素不素相等i-;/从大到小,从最后一个比较/在链表 L1 中找到与szi 相等的节点的位置,并打印出名次信息for(j=1;j<=n;j+) if(szi=p->da)数组里面的值从最后一个开始取printf("第d 名 s :%d 分n",z,p->data,p->
17、;da); z+;p=p->next;参加这次比赛的学校的男子项目的成绩排名的算法:/男子项目排名算法代码与上述学校总分的排名算法完全一致,其中男子项目排序的过程为比较男子项目总分void manrankings(LinkList &L1,int n)LinkList p;int z,i,j,y;printf(" 参加这次比赛的学校的男子项目的成绩排名:n");p=L1->next;/先把每个学校的男子项目总分依次遍历,存放在数组sz 中。for(i=0;i<=n-1;i+)zi=p->d1;p=p->next;/再对数组sz用冒泡排序
18、法进行从小到大排序for(i=1;i<=n-1;i+)for(j=1;j<=n-i;j+)if(szj-1>szj)y=szj-1;szj-1=szj;szj=y;z=1;/把线性链表L1 按男子项目总分从大到小的顺序排列,并打印名次for(i=n-1;i>=0;i-)p=L1->next;if(i>0)while(szi=szi-1)i-;/在链表L1 中找到与szi 相等的节点的位置,并打印出名次信息for(j=1;j<=n;j+)if(szi=p->d1)printf("第d 名$ :%d 分n",z,p->dat
19、a,p->d1);z+;p=p->next;参加这次比赛的学校的女子项目的成绩排名的算法:/女子项目排名算法代码与上述学校总分的排名算法完全一致,其中女子项目排序的过程为比较女子项目总分void womanrankings(LinkList &L1,int n)LinkList p;int z,i,j,y;printf(" 参加这次比赛的学校的女子项目的成绩排名:n");p=L1->next;先把每个学校的女子项目总分依次遍历,存放在数组sz中for(i=0;i<=n-1;i+)szi=p->d2; p=p->next;/再对数组
20、sz 用冒泡排序法进行从小到大排序for(i=1;i<=n-1;i+)for(j=1;j<=n-i;j+)if(szj-1>szj)y=szj-1;szj-1=szj;szj=y;z=1;/把线性链表L1 按女子项目总分从大到小的顺序排列,并打印名次for(i=n-1;i>=0;i-)p=L1->next;if(i>0)/如果值相等则链表指针直接指向下一个,不用交换位置while(szi=szi-1)i-;在链表L1中找到与szi相等的节点的位置,并打印出名次信息for(j=1;j<=n;j+)if(szi=p->d2)printf("
21、第 d 名$ :%d 分 n",z,p->data,p->d2);z+;p=p->next;文案大全实用文档五.编码实现及系统测试文案大全实用文档 "U:AaDebuga.eMe"*1输入基本信息*2查询某校名个项目的成绩*3查询至个项自由比赛结臬*j"x K,*- i- _|T._11r.i| I I j"x j"x j"x请选择您想进行的操作蓍输入参加这次比赛的学校的个数:量输入这5个学校的名字:E X 0 M K请输入这次比赛的男子项目的个数:请输入这2个项目的名字:A B如果此次白比赛只飒前3名的成
22、绩请输入1,若只取前5名的成绩请输入2?本输入第1名所来自的学校的名字和他该项目的成绩:露露入第2名所来自的学校的名字和他该项目的成绩:霍露入第3名所来自的学校的名字和他该项目的成绩:如果此次B比赛只飒前3名的成绩请输入1,若只取前5名的成绩请输入2?籍输入第1名所来自的学校的名字和他该项目的成绩:K 7请输入第2名所来自的学校的名字和他该项目的成绩:富露入第3名所来自的学校的名字和他该项目的成绩:富盍入第4名所来自的学校的名字和他该项目的成绩:卷篇入第5名所来自的学校的名字和他该项目的成绩: X 1请输入这次比赛的女子项目的个数:请输入这2个项目的名字:如果此次C比赛只取前3名的成绩请输入1
23、,若只取前5名的成绩请输入2?蓍输入第1名所来自的学校的名字和他该项目的成绩:需卷入第2名所来自的学校的名字和他该项目的成绩:罂认第3名所来自的学校的名字和他该项目的成绩:看卷入第4名所来自的学校的名字和他该项目的成绩:卷器入第5名所来自的学校的名字和他该项目的成绩:0 1如果此次D比赛只取前3名的成绩请输入1,若只取前5名的成绩请输入2?量输入第1名所来自的学校的名字和他该项目的成绩:霍露入第2名所来自的学校的名字和他该项目的成绩:春卷入第3名所来自的学校的名字和他该项目的成绩: E 2图5-1输入基本信息文案大全实用文档图5-3查询某校各个项目的成绩文案大全 "U:AaDebug
24、a.eMe"|参加这次比赛的空校的成绩为:E;总分:11X :总分:12 0 :总分:6子团体总分:7辛团法总分:5团体总分:4分团体总分:7分ri15:13分子团体号介:5分女子团体良介:1分 好团体总分:5弱子团体盘分:10/分K;总介:13分男子团体总分:?分女子团体总分:6 参加双次比赛的举校的总分排名:1名M2名K3名X4苕E5名015分13分12分11介 6不参加这次比赛的学校的男子项目的成绩排名:像1名E :7分>2名K :7分>3名X :5分第4名0 :5分第5名!1 :5分参加这次比赛的学校的女子项目的成绩排名:名 M :10苕X :7名K :6苕E :
25、4名0 :1El图5-2学校及项目排名c < "UzXAXaXDebugXa.exe114fJr-|IH 1T'. .-1 I I* *2善询某校看个项目的成绩* *3查询至个项自由比赛结臬* Bip_ 、JI 1 I请选择您想进行的操作 籍输入您想查寻的学校的名字:男子项目A的 房子项目B的 女子项目C的 女手翥目D的工名, 4名, 走, 3名,他该项目的成绩是:5 他该项目的成绩是:2 她该项目的成绩是:2 她该项目的成绩是:2* *1输入基本信息* *2查询某校各个项目的成绩* *3查询至个项自由比赛结臬* Bip_ _、JI 1 I请选择您想进行的操作蓍输入您想
26、查寻的学校的名字:贵茯荣廷男子项目B的第2名,他该项目的成绩是:5 贵校荣塞女子项目C的富2名,她该项目的成绩是:5 贵校荣获女子项目D的第1名,她该项目的成绩是:5实用文档文案大全某人询询.本校个r 基某重 人询询束 辑查结绩果 成结 的赛 目比 项的 自心个目辑查结图5-4查询某个项目的比赛结果图5-5结束本程序六.结果分析表6-1时间、空间复杂度操作时间复杂度空间复杂度1O(n+m)。2。3O(m)。注:m为学校个数,n为项目个数。七.学习体会通过这次数据结构课程设计,我收获了很多:一.经过这几天的学习, 进一步提升了 c语言的应用能力,巩固了数据结构上课所学 习的内容,数据结构知识的应
27、用能力有了一定的提升,并且对c语言和数据结构有了更深层次的认识。二.这次课程设计我们选的课题是运动会分数统计,涉及到线性链表以及 C语言的一些基本的知识。在以前的学习中,对知识只是掌握了大概的内容,基础知识掌握的不牢固, 所以编写程序的过程非常的困难,通过这次课程设计,让我知道基础知识非常重要。在进行概要设计的时候要注意结合问题的需求分析,函数调用要和系统功能相结合。在书写程序时,要认真细心,很多错误都是因为自己的粗心,调试程序就花费了非常多的时间。三.通过这次课程设计,让我明白了独立思考的重要性。一个东西只有经过自己的思考,自己明白了才是真的明白了。在思考的过程中,对一个问题思考的越深入,可
28、以挖掘的 东西就越多。在解决问题时要结合多方面的因素,不能只单方面思考问题。八.源程序清单#include <stdio.h>#include <malloc.h>#include <string.h> typedef struct Lnode 类型定义 char data20;/ 学校名称int da,d1,d2; 学校编号、学校总分、 男女团体分 struct Lnode *next;指向下一学校 Lnode,*LinkList;int sz20;/每一个项目的信息 typedef struct Lnode1实用文档char data20,data120
29、,data220,data320,data420,data520;/ 该项目前五名学校的名称int da1,da2,da3,da4,da5; / 该项目前五名学校的编号struct Lnode1 *next; / 指向下一项目 Lnode1,*LinkList1;输入各学校名称的算法:/按从头到尾的顺序依次建立线性链表L1共有n个节点void schoolname(LinkList &L1,int n)int i;LinkList p,q;/输入头结点信息,即输入第一个学校的名字L1=(LinkList)malloc(sizeof(Lnode);printf(" 请输入这%d
30、 个学校的名字:n",n);p=(LinkList)malloc(sizeof(Lnode);L1->next=p;scanf("%s",&p->data);/ 从第二个节点开始依次输入到第n 个节点信息for(i=2;i<=n;i+)q=p;p=(LinkList)malloc(sizeof(Lnode);scanf("%s",&p->data);q->next=p;输入男子运动项目名字的算法:/ 按从头到尾的顺序依次建立线性链表L2 共有 n2 个节点void mansports(LinkLis
31、t1 &L2,int n2)/输入第一个节点的信息,即第一个男子项目的名字int i;LinkList1 r,s;L2=(LinkList1)malloc(sizeof(Lnode1);printf(" 请输入这%d 个项目的名字:n",n2);r=(LinkList1)malloc(sizeof(Lnode1);for(int t=0;t<20;t+)r->data1t = '0'for( t=0;t<20;t+)r->data2t = '0'for( t=0;t<20;t+)r->data3t
32、= '0'for( t=0;t<20;t+)r->data4t = '0'for( t=0;t<20;t+)r->data5t = '0'L2->next=r;scanf("%s",&r->data);/从第二个节点开始输入到第n2 个节点的信息for(i=2;i<=n2;i+)s=r;r=(LinkList1)malloc(sizeof(Lnode1);for(int t=0;t<20;t+)r->data1t = '0'for( t=0;t<
33、;20;t+)r->data2t = '0'for( t=0;t<20;t+)r->data3t = '0'for( t=0;t<20;t+)r->data4t = '0'for( t=0;t<20;t+)r->data5t = '0'scanf("%s",&r->data);s->next=r;输入女子运动项目名字的算法:/ 按从头到尾的顺序依次建立线性链表L3 共有 n1 个节点void womansports(LinkList1 &L3
34、,int n1) /输入第一个节点的信息,即第一个女子项目的名字int i;LinkList1 r,s;L3=(LinkList1)malloc(sizeof(Lnode1);printf(" 请输入这%d 个项目的名字:n",n1);r=(LinkList1)malloc(sizeof(Lnode1);L3->next=r;scanf("%s",&r->data);/从第二个节点开始依次输入到第n1 个节点信息for(i=2;i<=n1;i+)s=r;r=(LinkList1)malloc(sizeof(Lnode1);sca
35、nf("%s",&r->data);s->next=r;参加比赛的学校的总分排名的算法:void schoolrankings(LinkList &L1,int n)LinkList p;int z,i,j,y;printf(" 参加这次比赛的学校的总分排名:n");p=L1->next;先把每个学校的总分依次遍历,存放在数组 sz中。for(i=0;i<=n-1;i+)szi=p->da;p=p->next;再对数组sz用冒泡排序法进行从小到大排序 for(i=1;i<=n-1;i+)for(j
36、=1;j<=n-i;j+)if(szj-1>szj)y=szj-1;szj-1=szj;szj=y;z=1;/把线性链表L1 按项目总分从大到小的顺序排列,并打印名次for(i=n-1;i>=0;i-)p=L1->next;if(i>0)/如果值相等则链表指针直接指向下一个,不用交换位置while(szi=szi-1)i-;/在链表L1 中找到与szi 相等的节点的位置,并打印出名次信息for(j=1;j<=n;j+)if(szi=p->da)printf(" 第 %d 名 %s :%d 分 n",z,p->data,p-&g
37、t;da);z+;p=p->next;参加这次比赛的学校的男子项目的成绩排名的算法:/男子项目排名算法代码与上述学校总分的排名算法完全一致,其中男子项目排序的过程为比较男子项目总分void manrankings(LinkList &L1,int n)LinkList p;int z,i,j,y;printf(" 参加这次比赛的学校的男子项目的成绩排名:n");p=L1->next;/先把每个学校的男子项目总分依次遍历,存放在数组sz 中。for(i=0;i<=n-1;i+)zi=p->d1;p=p->next;/再对数组sz用冒泡排序
38、法进行从小到大排序for(i=1;i<=n-1;i+)for(j=1;j<=n-i;j+)if(szj-1>szj)y=szj-1;szj-1=szj;szj=y;z=1;/把线性链表L1 按男子项目总分从大到小的顺序排列,并打印名次for(i=n-1;i>=0;i-)p=L1->next;if(i>0)while(szi=szi-1)i-;/在链表 L1 中找到与szi 相等的节点的位置,并打印出名次信息for(j=1;j<=n;j+)if(szi=p->d1)printf(" 第 %d 名 %s :%d 分 n",z,p-
39、>data,p->d1);z+;p=p->next;参加这次比赛的学校的女子项目的成绩排名的算法:/女子项目排名算法代码与上述学校总分的排名算法完全一致,其中女子项目排序的过程为比较女子项目总分void womanrankings(LinkList &L1,int n)LinkList p;int z,i,j,y;printf(" 参加这次比赛的学校的女子项目的成绩排名:n");p=L1->next;先把每个学校的女子项目总分依次遍历,存放在数组sz中for(i=0;i<=n-1;i+) szi=p->d2;p=p->nex
40、t;/再对数组sz 用冒泡排序法进行从小到大排序for(i=1;i<=n-1;i+)for(j=1;j<=n-i;j+)if(szj-1>szj)y=szj-1;szj-1=szj;szj=y;z=1;/把线性链表L1 按女子项目总分从大到小的顺序排列,并打印名次for(i=n-1;i>=0;i-)p=L1->next;if(i>0)/如果值相等则链表指针直接指向下一个,不用交换位置while(szi=szi-1)i-;/在链表 L1 中找到与szi 相等的节点的位置,并打印出名次信息for(j=1;j<=n;j+)if(szi=p->d2)pr
41、intf(" 第 %d 名 %s :%d 分 n",z,p->data,p->d2); z+; p=p->next;void main () int i,j,z,x,n,m,w;/声明学校链表LinkList p,q,L1;/p,q 没有实际意义,L1 是有实际意义,是储存学校信息/声明项目链表LinkList1 r,s,L2,L3; / 同上男子男子链表,女子想么链表do文案大全printf(”*n");printf("*1输入基本信息*n");printf("*2查询某校各个项目的成绩*n");prin
42、tf("*3查询某个项目的比赛结果*n");printf("*4结束本程序*n");printf(”*n");printf(" 请选择您想进行的操作n");/输入1,或 2 或 3 选择功能scanf("%d",&z);/z=2 查询某校各个项目的成绩if(z=2) r=L2->next;printf(" 请输入您想查寻的学校的名字:n");/输入待查询学校的名称s = (LinkList1)malloc(sizeof(Lnode1) ;/存储学校的名字scanf(&qu
43、ot;%s",&s->data); /输出查询结果 /输出查询信息for(i=1;i<=m;i+)/ m 为男子项目个数字符串比较里面的是否相等,相等=0,不相等不=0 第一名的成绩第一名学校if(strcmp(r->data1,s->data)=0) printf("贵校荣获男子项目%s的第1名,他该项目的成绩是:%dn",r->data,r->da1);if(strcmp(r->data2,s->data)=0) printf("贵校荣获男子项目%s的第2名,他该项目的成绩是:%dn"
44、,r->data,r->da2);if(strcmp(r->data3,s->data)=0) printf("贵校荣获男子项目%s的第3名,他该项目的成绩是:%dn",r->data,r->da3);if(strcmp(r->data4,s->data)=0) printf("贵校荣获男子项目%s的第4名,他该项目的成绩是:%dn",r->data,r->da4);if(strcmp(r->data5,s->data)=0) printf("贵校荣获男子项目%s的第5名,
45、他该项目的成绩是:%dn",r->data,r->da5);r=r->next;/男子项目的链表r=L3->next;for(i=1;i<=w;i+)if(strcmp(r->data1,s->data)=0) printf("贵校荣获女子项目%s的第1名,她该项目的成绩是:%dn",r->data,r->da1);if(strcmp(r->data2,s->data)=0) printf("贵校荣获女子项目%s的第2名,她该项目的成绩是:%dn",r->data,r-&g
46、t;da2);if(strcmp(r->data3,s->data)=0) printf("贵校荣获女子项目%s的第3名,她该项目的成绩是:%dn",r->data,r->da3);if(strcmp(r->data4,s->data)=0) printf("贵校荣获女子项目%s的第4名,她该项目的成绩是:%dn",r->data,r->da4);if(strcmp(r->data5,s->data)=0) printf("贵校荣获女子项目%s的第5名,她该项目的成绩是:%dn&quo
47、t;,r->data,r->da5);r=r->next;/查询学校结束/z=3 查询某个项目的比赛结果if(z=3)printf(" 请输入您想查寻的项目的名字:n");/输入待查询的项目名称s = (LinkList1)malloc(sizeof(Lnode1);scanf("%s",&s->data); /存 data 里r=L2->next;for(i=1;i<=m;i+)if(strcmp(r->data,s->data)=0)if(strlen(r->data4)=0) print
48、f(" 第 1 名 %s , 第 2 名 %s, 第 3 名 %sn",r->data1,r->data2,r->data3);if(strlen(r->data4)>0) printf("第 1 名 s,第 2 名 s,第 3 名 s,第 4 名$,第 5 g%sn",r->data1,r->data2,r->data3,r->data4,r->data5);r=r->next;r=L3->next;/打印项目比赛结果for(i=1;i<=w;i+)if(strcmp(r-&
49、gt;data,s->data)=0)if(strlen(r->data4)=0) printf(" 第 1 名 %s , 第 2 名 %s, 第3名 %sn",r->data1,r->data2,r->data3);/字长没有输入第四名strlen(r->data4)=0if(strlen(r->data4)>0) printf("第 1 名 s,第 2 名 s,第 3 名 s,第 4 名$,第 5 g%sn",r->data1,r->data2,r->data3,r->data4
50、,r->data5);r=r->next;if(z=1)/输入部分/输入学校的个数nprintf(" 请输入参加这次比赛的学校的个数:n");scanf("%d",&n);/构建链表L1 ,依次输入n 个学校的名称。schoolname(L1,n);q=L1->next;/把 L1 链表中的总分da 全部初始化为0for(i=1;i<=n;i+)q->da=0;/初始化q->d1=0;q->d2=0;q=q->next;/输入男子个项目总数mprintf("n 请输入这次比赛的男子项目的个
51、数:n");scanf("%d",&m);/构建男子项目链表L2 输入 m 个男子运动项目名字mansports(L2,m);r=L2->next;/依次 m 个男子项目的结果for(i=1;i<=m;i+)printf(" 如果此次%s 比赛只取前3 名的成绩请输入1 ,若只取前5名的成绩请输入2!n",r->data);/输入1 或 2 选择成绩记录的方式scanf("%d",&z);printf(" 请输入第1 名所来自的学校的名字和他该项目的成绩:n");/输入第
52、1 名学校名称和项目成绩scanf("%s%d",&r->data1,&r->da1);q=L1->next;for(j=1;j<=n;j+)if(strcmp(r->data1,q->data)=0)实用文档if(z=1) q->da=q->da+r->da1;q->d1=q->d1+r->da1; 把 项目的成绩把对应的项目的成绩加到学校里先把第一名的成绩加到对应的学校加到男子项目总分if(z=2) q->da=q->da+r->da1;q->d1=q->
53、;d1+r->da1;q=q->next;printf("请输入第2名所来自的学校的名字和他该项目的成绩:n");输入第2名学校名称和项目成绩scanf("%s%d",&r->data2,&r->da2);q=L1->next;for(j=1;j<=n;j+)if(strcmp(r->data2,q->data)=0)if(z=1) q->da=q->da+r->da2;q->d1=q->d1+r->da2;if(z=2) q->da=q->d
54、a+r->da2;q->d1=q->d1+r->da2;q=q->next;printf("请输入第3名所来自的学校的名字和他该项目的成绩:n");输入第3名学校名称和项目成绩scanf("%s%d",&r->data3,&r->da3);q=L1->next;for(j=1;j<=n;j+)if(strcmp(r->data3,q->data)=0)if(z=1) q->da=q->da+r->da3;q->d1=q->d1+r->da
55、3;if(z=2) q->da=q->da+r->da3;q->d1=q->d1+r->da3;q=q->next;/如果z=2,则继续输入第四,第五名的学校名称和项目成绩。if(z=2)printf("请输入第4名所来自的学校的名字和他该项目的成绩n");/输入第4名的学校名称和项目成绩。scanf("%s%d",&r->data4,&r->da4);q=L1->next;for(j=1;j<=n;j+)if(strcmp(r->data4,q->data)=
56、0)q->da=q->da+r->da4;q->d1=q->d1+r->da4; q=q->next;printf(" 请输入第5 名所来自的学校的名字和他该项目的成绩:n");输入第5名的学校名称和项目成绩。scanf("%s%d",&r->data5,&r->da5);q=L1->next;for(j=1;j<=n;j+)if(strcmp(r->data5,q->data)=0)q->da=q->da+r->da4;q->d1=q->d1+r->da4; q=q->next;r=r-&
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年度网络安全服务协议书
- 2024年度版权使用与授权合同
- 2024供水、供电合同范文
- 2024年建筑工程股权转让合同样本
- 2024城市轨道交通安检设备采购合同
- 文书模板-产品委外开发合作协议书
- 产业新城课件教学课件
- 2024年度企业品牌形象设计及VI手册整编合同
- 2024年度版权购买与授权合同具体内容
- 2024年废物回收居间买卖合同
- 外贸业务与国际市场培训课件
- 信创医疗工作总结
- 教师教育教学质量提升方案
- 灭火器的规格与使用培训
- 2024《中央企业安全生产治本攻坚三年行动方案(2024-2026年)》
- 纪录片《园林》解说词
- 建筑专题摄影培训课件
- 《民间文学导论》课件
- 《输血查对制度》课件
- 拳击赛策划方案
- 分离性障碍教学演示课件
评论
0/150
提交评论