运动会分数统计系统 数据结构课程设计_第1页
运动会分数统计系统 数据结构课程设计_第2页
运动会分数统计系统 数据结构课程设计_第3页
运动会分数统计系统 数据结构课程设计_第4页
运动会分数统计系统 数据结构课程设计_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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

2、m+1m+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,n0 数据关系:R1=<ai-1,ai>|ai-1,aiD

3、,i=2,n 基本操作: InitList(&L) 操作结果:构造一个空的线性表L。 GetElem(L,i,&e) 初始条件:线性表L已存在,1iListLength(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的数据元素,且不是第一个

4、,则用pre_e返回它的前驱,否则操作失败,pre_e无定义。 NextElem(L,cur_e,&next_e) 初始条件:线性表L已存在。 操作结果:若cur_e是L的数据元素,且不是最后一个,则用next_e返回它的后继,否则操作失败,next_e无定义。 ListInsert(&L,I,e) 初始条件:线性表L已存在,1iListLength(L)+1 操作结果:在L中第i个位置之前插入新的元素e,L是表长度加1 ListTraverse(L,visit() 初始条件:线性表L已存在。 操作结果:依次对L的每个数据元素调用函数visit()。一旦visit()失败,则操

5、作失败。ADT List3.2系统功能模块设计运动会分数统计系统输入各学校名称输入男子运动项目 输入女子运动项目输入男子项目的成绩输入女子项目的成绩查询某校各个项目的成绩查询某校各个项目的成绩图 3-1运动会分数统计系统功能模块图 main()womansports(LinkList &L,int n) 循环语句依次输入每个值 ListTraverse(L,visit() schoolname(LinkList &L,int n) mansports(LinkList &L,int n) 循环语句依次输入每个值

6、 ListTraverse(L,visit() ListTraverse(L,visit() ListTraverse(L,visit() 3.3主要函数调用关系图图 3-2系统函数调用关系图3.4主界面设计为了实现运动会分数统计系统,需要设计一个含有多菜单项的主控菜单子程序,以链接系统中各个子项目的调用,为了方便用户使用本系统,本系统主控菜单的运行界面如图3-3所示。图 3-3主菜单运行界面 四详细设计实现运动会分数统计系统的开发,采用链表结构类型存储运动会学校名称、男子女子运动项目以及男子女子项目成绩的信息。4.1数据类型定义/每一个学校的信息typedef struct Lnode/结点

7、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 Lnode1 *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(sizeof(Lnod

9、e);/指向一个有意义的地方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);/给新开辟的空间赋值开始输入n个学校的名字i=0i>n将第i个结点加入链表L结束NYsc

10、anf("%s",&p->data);q->next=p;输入男子运动项目名字的算法:/按从头到尾的顺序依次建立线性链表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初始

11、化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'L2->next=r;scanf("%s",&r->data);/从第二个节点开始输入到第

12、n2个节点的信息for(i=2;i<=n2;i+)s=r; /s指向r指向的地方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 = '0'for( t=0;t<20;t+)r->data4t = '0'for( t=0;t<20;t+)r->data5t =

13、'0'scanf("%s",&r->data);s->next=r;开始输入n个男子项目的名字i=0i>n将第i个结点加入链表L结束NY输入女子运动项目名字的算法:/按从头到尾的顺序依次建立线性链表L3共有n1个节点void womansports(LinkList1 &L3,int n1) /输入第一个节点的信息,即第一个女子项目的名字int i;LinkList1 r,s;L3=(LinkList1)malloc(sizeof(Lnode1);printf("请输入这%d 个项目的名字:n",n1);

14、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);scanf("%s",&r->data);s->next=r;开始输入n个女子项目的名字i=0i>n将第i个结点加入链表L结束NY参加比赛的学校的总分排名的算法:void schoolrankings(LinkList

15、 &L1,int n)LinkList p; 学校的数据类型 上边int z,i,j,y; printf("参加这次比赛的学校的总分排名:n");p=L1->next; /下一个地方的指针给p p是学校的数据类型 p是一个节点,L1下一个节点给p/先把每个学校的总分依次遍历,存放在数组sz中。 一个一个取,一个一个找先让p指向一个链表for(i=0;i<=n-1;i+)szi=p->da; /节点的信息指向一个数组,data学校总数的数据域, 把所有的学校的总分p=p->next;/再对数组sz用冒泡排序法进行从小到大排序for(i=1;i&

16、lt;=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; / L1表示一个节点,取出里面一个数据,那个数据的名字是next,next也是一个节点,p也是一个节点,if(i>0) / 意义是判断下一个是不是/如果值相等则链表指针直接指向下一个,不用交换位置while(szi=szi-1) 相邻的两个数组素不素相等i-; /从大到小,从最后一个比较/在链表L1中找

17、到与szi 相等的节点的位置,并打印出名次信息for(j=1;j<=n;j+) if(szi=p->da) /数组里面的值从最后一个开始取 printf("第%d 名%s :%d 分n",z,p->data,p->da);z+;p=p->next;开始结束i=0i+i>nYN将每个学校的总分赋给数组szn对数组szn进行冒泡排序遍历链表L找到与szi相等的结点并输出总分参加这次比赛的学校的男子项目的成绩排名的算法:/男子项目排名算法代码与上述学校总分的排名算法完全一致,其中男子项目排序的过程为比较男子项目总分void manranking

18、s(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用冒泡排序法进行从小到大排序 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按男子项目总

19、分从大到小的顺序排列,并打印名次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->data,p->d1);z+;p=p->next;开始结束i=0i+i>nYN将男子项目的总分赋给数组szn对数组szn进行冒泡排序遍历链表L找到与szi相等的结点并输出总分参加这次比赛的学校的女子项目的成

20、绩排名的算法:/女子项目排名算法代码与上述学校总分的排名算法完全一致,其中女子项目排序的过程为比较女子项目总分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;/再对数组sz用冒泡排序法进行从小到大排序for(i=1;i<=n-1;i+)for(j=1;

21、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("第%d 名%s :%d 分n",z,p->data,p->d2);z

22、+;p=p->next; 开始结束i=0i+i>nYN将女子项目的总分赋给数组szn对数组szn进行冒泡排序遍历链表L找到与szi相等的结点并输出总分五编码实现及系统测试图 5-1输入基本信息图 5-2学校及项目排名图 5-3查询某校各个项目的成绩图 5-4查询某个项目的比赛结果图 5-5结束本程序六结果分析表 6-1时间、空间复杂度 操作时间复杂度空间复杂度1O(n+m)O(1)2O(n)O(1)3O(m)O(1)注:m为学校个数,n为项目个数。七学习体会 通过这次数据结构课程设计,我收获了很多: 一经过这几天的学习,进一步提升了C语言的应用能力,巩固了数据结构上课所学习的内容,

23、数据结构知识的应用能力有了一定的提升,并且对C语言和数据结构有了更深层次的认识。 二这次课程设计我们选的课题是运动会分数统计,涉及到线性链表以及C语言的一些基本的知识。在以前的学习中,对知识只是掌握了大概的内容,基础知识掌握的不牢固,所以编写程序的过程非常的困难,通过这次课程设计,让我知道基础知识非常重要。在进行概要设计的时候要注意结合问题的需求分析,函数调用要和系统功能相结合。在书写程序时,要认真细心,很多错误都是因为自己的粗心,调试程序就花费了非常多的时间。 三通过这次课程设计,让我明白了独立思考的重要性。一个东西只有经过自己的思考,自己明白了才是真的明白了。在思考的过程中,对一个问题思考

24、的越深入,可以挖掘的东西就越多。在解决问题时要结合多方面的因素,不能只单方面思考问题。八源程序清单#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 Lnode1char data20,data120,d

25、ata220,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 个学校的名

26、字: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(LinkList1 &L2,i

27、nt 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 = '0'

28、;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<20;t+)r->

29、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,int n1) /输入第一个节点

30、的信息,即第一个女子项目的名字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);scanf("%s",&

31、amp;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=1;j<=n-i;j+)if(s

32、zj-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->da);z+;p=p->next;参加这次

33、比赛的学校的男子项目的成绩排名的算法:/男子项目排名算法代码与上述学校总分的排名算法完全一致,其中男子项目排序的过程为比较男子项目总分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用冒泡排序法进行从小到大排序 for(i=1;i<=n-1;

34、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->data,p->d1);z+;p=p->next

35、;参加这次比赛的学校的女子项目的成绩排名的算法:/女子项目排名算法代码与上述学校总分的排名算法完全一致,其中女子项目排序的过程为比较女子项目总分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;/再对数组sz用冒泡排序法进行从小到大排序for(i=1;i<

36、;=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("第%d 名%s :%d 分n",z,p->

37、;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; / 同上 男子男子链表,女子想么链表doprintf("*n");printf("*1 输入基本信息 *n");printf("*2 查询某校各个项目的成绩 *n");printf("*3 查询某个项目的比赛结果 *n");printf

38、("*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("%s",&s->data);/输出查询结果/输出

39、查询信息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",r->data,r->da2);if(strcmp(r-&g

40、t;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",r->data,r-&g

41、t;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->da2);if(strcmp(r->data3,s

42、->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",r->data,r->da5);r=

43、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) printf("第1名%s ,第2名%s,第3名%sn&quo

44、t;,r->data1,r->data2,r->data3);if(strlen(r->data4)>0) printf("第1名%s ,第2名%s,第3名%s,第4名%s,第5名%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->data,s->data)=0)if(strlen(r->data4)=0) pri

45、ntf("第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名%s,第5名%sn",r->data1,r->data2,r->data3,r->data4,r->data5);r=r->next;if(z=1)/输入部分 /输入学校的个数nprintf("请输入参

46、加这次比赛的学校的个数: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请输入这次比赛的男子项目的个数:n");scanf("%d",&m);/构建男子项目链表L2输入m个男子运动项目名字mansport

47、s(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");/输入第1名学校名称和项目成绩scanf("%s%d",&r->data1,&r->da1);q=L1->next;fo

48、r(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->d1+r->da1;q=q->next;printf("请输入第2名所来自的学校的名字和他该项目的成绩:n");/输入第2名学校名称和项目

49、成绩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->da+r->da2;q->d1=q->d1+r->da2;q=q->next;printf("请输入第3名所来自的学校的名字和他该

50、项目的成绩: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->da3;if(z=2) q->da=q->da+r->da3;q->d1=q->d1+r->da3;q=q->next; /如果

51、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)=0) q->da=q->da+r->da4;q->d1=q->d1+r->da4;q=q->next;printf(&qu

52、ot;请输入第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->next;/输入男子项目完毕printf("n请输入这次比赛的女子项目的个数:

53、n");/输入女子项目的的个数wscanf("%d",&w);/构建链表L3,输入w个项目名称womansports(L3,w);r=L3->next;/依次对w个女子项目进行结果记录for(i=1;i<=w;i+)printf("如果此次%s 比赛只取前3名的成绩请输入1,若只取前5名的成绩请输入2!n",r->data);/输入1或2 选择记录的个数scanf("%d",&x);printf("请输入第1名所来自的学校的名字和他该项目的成绩:n");/输入第 1 名所来自的学校的名字和他该项目的成绩scanf("%s%d",&r->data1,&r->da1);q=L1->next;for(j=1;j<=n;j+)if(strcmp(r->data1,q->da

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论