《2022年数据结构课程设计-运动会分数统计 2》由会员分享,可在线阅读,更多相关《2022年数据结构课程设计-运动会分数统计 2(21页珍藏版)》请在金锄头文库上搜索。
1、I 目录第一章绪论. . 1 1.1 运动会分数统计系统的背景. . 1 1.2 运动会分数统计系统的任务和目标. . 1 第二章运动会分数统计系统的需求分析. . 2 2.1 功能需求 . . 2 2.2 功能模块 . . 2 2.3 数据要求 . . 3 2.4 性能要求 . . 3 第三章系统开发工具及关键技术. . 4 3.1 系统开发工具 . . 4 3.1.1 CodeBlocks . . 4 3.2 关键技术 . . 4 3.2.1 C语言 . 4 3.2.2 数组 . . 4 3.2.3 链表 . . 4 第四章运动会分数统计系统的实现. . 5 4.1 数据结构设计 . .
2、5 4.2 结构定义 . . 5 4.3 系统界面的实现 . . 6 4.3.1 主菜单窗口 . . 6 4.3.2 输入各个项目成绩并存储文件. . 6 4.3.3 统计各学校总分 . . 8 4.3.4 按学校编号排序输出 . . 8 4.3.5 按学校总分排序输出 . . 8 4.3.6 按男团体总分排序输出. . 9 4.3.7 按女团体总分排序输出. . 9 4.3.8 按学校编号查询学校某个项目情况. . 10 4.3.9 按项目编号查询取得名次的学校. . 10 第五章结束语 . . 11 5.1 课程设计总结 . . 11 5.2 致谢 . . 11 参考文献 . . 12 附
3、录 . . 13 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 21 页 - - - - - - - - - 琼州学院电子信息工程学院2010 级本科生数据结构课程设计1 第一章绪论1.1 运动会分数统计系统的背景在信息技术已经深入人类工作生活的今天,计算机软件得到了广泛的应用,越来越多的政府和企业将其业务纳入计算机软件系统。随着社会进步,体育事业的发展,为了提高运动会成绩统计准确,减少设计者们的工作量,开发了本系统。1.2 运动会分数统计系统的任务和目标任务:参加运动
4、会有 n 个学校,学校编号为1n。比赛分成 m个男子项目,和w个女子项目。项目编号为男子1m ,女子 m+1 m+w 。不同的项目取前前三名积分;前三名的积分分别为:5、3、2。 (m 、w=20,n=10) 。目标:1. 可以输入各个项目的前三名或前五名的成绩;2. 能统计各学校总分;3. 可以按学校编号、学校总分、男女团体总分排序输出;4. 可以按学校编号查询学校某个项目的情况;可以按项目编号查询取得前三或前五名的学校。规定:输入数据形式和范围:20 以内的整数(如果做得更好可以输入学校的名称,运动项目的名称)。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - -
5、- - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 21 页 - - - - - - - - - 琼州学院电子信息工程学院2010 级本科生数据结构课程设计2 第二章 运动会分数统计系统的需求分析2.1 功能需求运动会分数统计方案适合采用结构体数组,为了实现系统功能, 主要应实现以下几部分:比赛成绩输入、比赛成绩输出、查询比赛成绩和调用统计结果。2.2 功能模块根据分析整个系统主要划分为4 个功能模块, 分别执行要求中的功能。 该系统分为比赛成绩输入、比赛成绩输出、查询比赛成绩和调用统计结果。比赛成绩输出模块有四个子模块,分别是:按学校编号输出模块、按
6、学校总分输出模块、安南员总分输出模块和按女团总分输出模块; 查询比赛成绩模块分为按学校编号查询模块河岸项目编号查询两个子模块。功能模块图如图 2-1 所示。运动运分数统计程序比赛成绩输入模块比赛成绩输出模块查询比赛成绩模块调用统计结果模块按学校编号输出模块按学校总分输出模块按男团总分输出模块按女团总分输出模块按项目编号查询模块按学校编号查询模块图 2-1 功能模块图(1) 比赛成绩输入模块: 比赛成绩输入模块分为: 创建信息部分, 该部分需输入学校编号,项目编号,取得的名次,以及哪些名次;算法部分,得到排序结果。(2) 比赛成绩输出模块 : 将以输入的数据按照输出比赛菜单的选择输出相应的数据。
7、(3) 查询比赛成绩模块 : 按照查询比赛结果菜单和其查询方式子菜单查询需要的数据。(4) 调用统计结果 :将输入的各学校运动会成绩排序输出。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 21 页 - - - - - - - - - 琼州学院电子信息工程学院2010 级本科生数据结构课程设计3 2.3 数据需求需要输入学校编号,项目编号,取得的名次,以及哪些名次。2.4 性能需求本程序在运行期间, 为了避免在运行大量数据时不会出错,并且能够在很短的时间内将运行结果稳定输
8、出,就需要系统达到安全性能好,可靠性高,稳定性强,处理数据迅速等特点。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 21 页 - - - - - - - - - 琼州学院电子信息工程学院2010 级本科生数据结构课程设计4 第三章系统开发工具及关键技术3.1 系统开发工具3.1.1 Code:Blocks Code:Blocks 是一个开放源码的全功能的跨平C/C+集成开发环境。 Code:Blocks是开放源码软件。 Code:Blocks由纯粹的 C+语言开发完成,
9、它使用了蓍名的图形界面库 wxWidgets(2.6.2 unicode)版。对于追求完美的C+程序员,再也不必忍受Eclipse 的缓慢,再也不必忍受VS.NET 的庞大和高昂的价格。3.2 关键技术3.2.1 C语言C 语言是一种计算机程序设计语言它既具有高级语言的特点,又具有汇编语言的特点。它由美国贝尔研究所的D.M.Ritchie 于 1972 年推出。1978 后,C 语言已先后被移植到大、中、小及微型机上。它可以作为工作系统设计语言,编写系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。它的应用范围广泛,具备很强的数据处理能力, 不仅仅是在软件开发上, 而且
10、各类科研都需要用到C 语言,适于编写系统软件,三维,二维图形和动画。具体应用比如单片机以及嵌入式系统开发。3.2.2 数组数组是在程序设计中, 为了处理方便, 把具有相同类型的若干变量按有序的形式组织起来的一种形式。这些按序排列的同类数据元素的集合称为数组。在C 语言中,数组属于构造数据类型。 一个数组可以分解为多个数组元素,这些数组元素可以是基本数据类型或是构造类型。 因此按数组元素的类型不同, 数组又可分为数值数组、 字符数组、指针数组、结构数组等各种类别。3.2.3 链表链表( Linked list)是一种常见的基础数据结构,是一种线性表,但是并不会按线性的顺序存储数据,而是在每一个节
11、点里存到下一个节点的指针(Pointer)。由于不必须按顺序存储,链表在插入的时候可以达到O(1)的复杂度,比另一种线性表顺序表快得多,但是查找一个节点或者访问特定编号的节点则需要O(n)的时间,而顺序表相应的时间复杂度分别是 O(logn)和 O(1)。使用链表结构可以克服数组链表需要预先知道数据大小的缺点,链表结构可以充分利用计算机内存空间, 实现灵活的内存动态管理。 但是链表失去了数组随机读取的优点,同时链表由于增加了结点的指针域,空间开销比较大。链表可以在多种编程语言中实现。像 Lisp 和 Scheme这样的语言的内建数据类型中就包含了链表的存取和操作。 程序语言或面向对象语言, 如
12、 C/C+和 Java依靠易变工具来生成链表。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 21 页 - - - - - - - - - 琼州学院电子信息工程学院2010 级本科生数据结构课程设计5 第四章运动会分数统计系统的实现4.1 数据结构设计学校的存储结构为链表,其中school 类为:class school:public athlete /*学校*/ public: int item; /*学校获奖数 */ int school; /*学校编号 */ int
13、 boys; /*男团体总分 */ int girls; /*女团体总分 */ int score; /*学校总分 */ athlete athMaxSize; /*获奖运动员信息数组,包括分数,名次,项目*/ school *prev;/前指针 school *next; /后指针 其中部分主要的函数:添加操作 add(school* &head) 查询操作 checkFunc(school *head,int &n) 文件保存 save(school *head) 总分快速排序 tquicksort(vector& v, int first, int last) 总分基数排序 tbaseS
14、ort(vector& v, int d) 4.2 结构体定义typedef struct node1 int school; /*学校编号 */ int record; /*项目成绩 */ struct node1 *next; /*链域*/ Schools; typedef struct int item; /*项目编号 */ Schools *firstschool; /*链域指向链表中第一个结点*/ ITEM; typedef struct int z; /* 项目总数 */ ITEM aMAX; Prev school1 next 头结点Prev school(最后)next 名师资
15、料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 21 页 - - - - - - - - - 琼州学院电子信息工程学院2010 级本科生数据结构课程设计6 ALLitems; typedef struct node2 int item; /*该学校获奖的项目 */ int record; /*项目成绩 */ struct node2 *next; /*链域*/ Items; typedef struct int school; /*学校编号 */ int score; /*学校
16、总分 */ int boys; /*男团体总分 */ int girls; /*女团体总分 */ Items *firstitem; /*链域指向链表中第一个获奖项目的结点*/ SCHNode; typedef struct int n; /* 学校总数 */ SCHNode bMAX; ALLNode; 4.3 系统界面的实现4.3.1 主菜单窗口图 4-1 4.3.2. 输入各个项目成绩并存储文件请选择( 08) :1 进入输入各个项目成绩并存储文件图 4-2 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 -
17、 - - - - - - 第 7 页,共 21 页 - - - - - - - - - 琼州学院电子信息工程学院2010 级本科生数据结构课程设计7 1.输入男子项目总数m;1 2.输入男子项目总数m;1 3.输入参加运动会的学校总数 3 图 4-3输入项目: 1 请选择 1(1.前三名 2.前五名)第 3 名:学校 3 第 2 名:学校 2 第 1 名:学校 1 项目: 2 请选择 1(1.前三名 2.前五名)第 3 名:学校 1 第 2 名:学校 2 第 1 名:学校 3 项目: 3 请选择 1(1.前三名 2.前五名)第 3 名:学校 1 第 2 名:学校 3 第 1 名:学校 2 图
18、4-4 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 21 页 - - - - - - - - - 琼州学院电子信息工程学院2010 级本科生数据结构课程设计8 然后输入项目: 0 返回到菜单主页面图 4-5 4.3.3. 统计各学校总分请选择( 08) :2 进入统计各学校总分图 4-6 4.3.4 按学校编号排序输出按按任意键继续返回到菜单主界面请选择( 08) :3 图 4-7 4.3.5. 按学校总分排序输出按按任意键继续返回到菜单主界面请选择( 08) :4
19、名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 21 页 - - - - - - - - - 琼州学院电子信息工程学院2010 级本科生数据结构课程设计9 图 4-84.3.6. 按男团体总分排序输出按按任意键继续返回到菜单主界面请选择( 08) :5 图 4-9 4.3.7. 按女团体总分排序输出按按任意键继续返回到菜单主界面请选择( 08) :6 图 4-10 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - -
20、 - 名师精心整理 - - - - - - - 第 10 页,共 21 页 - - - - - - - - - 琼州学院电子信息工程学院2010 级本科生数据结构课程设计10 4.3.8. 按学校编号查询学校某个项目情按按任意键继续返回到菜单主界面请选择( 08) :7 图 4-11 4.3.9. 按项目编号查询取得名次的学校按按任意键继续返回到菜单主界面请选择( 08) :8 图 4-12 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 11 页,共 21 页 - - - - -
21、- - - - 琼州学院电子信息工程学院2010 级本科生数据结构课程设计11 第五章结束语5.1 课程设计总结经过此次的课程设计,可以很明确的了解到自己哪些知识点掌握的比较好,哪些知识点运用的还不够熟练。通过此次课程设计也学会综合运用理论知识来分析和解决实际问题的能力、养成严谨的科学态度和良好的程序设计习惯,实现由知识向智能的初步转化;学会遵循软件开发过程的基本规范,运用结构化程序设计的方法,按照课程设计的题目要求,并与同组成员共同完成设计、编写、调试和测试应用程序及编写文档的任务。5.2 致谢本设计的完成是在我们的导师李菁老师的细心指导下进行的。在每次设计遇到问题时老师不辞辛苦的讲解才使得
22、我的设计顺利的进行。从设计的选题到资料的搜集直至最后设计的修改的整个过程中,花费了郭老师很多的宝贵时间和精力,在此向导师表示衷心地感谢!导师严谨的治学态度, 开拓进取的精神和高度的责任心都将使学生受益终生!还要感谢帮助我的几位同学,是你们在我平时设计中和我一起探讨问题,并指出我设计上的误区, 使我能及时的发现问题把设计顺利的进行下去,没有你们的帮助我不可能这样顺利地结稿,在此表示深深的谢意。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 12 页,共 21 页 - - - - - -
23、 - - - 琼州学院电子信息工程学院2010 级本科生数据结构课程设计12 参考文献:1 严蔚敏 吴伟民著 .数据结构( C 语言版) M.北京:清华大学出版社 . 1997.4.;2 苏小红 陈惠鹏等著 .C 语言大学实用教程(第2 版) M.北京 :电子工业出版社;3 苏小红 陈惠鹏等著 .C 语言大学实用教程学习指导(第2 版) .电子工业出版社。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 13 页,共 21 页 - - - - - - - - - 琼州学院电子信息工程学
24、院2010 级本科生数据结构课程设计13 附录详细代码:#include #include #include #include /#include /*屏幕操作函数 */ #define MAX 50 /#define NULL 0 typedef struct node1 int school; /*学校编号 */ int record; /*项目成绩 */ struct node1 *next; /*链域 */ Schools; typedef struct int item; /*项目编号 */ Schools *firstschool; /*链域指向链表中第一个结点*/ ITEM; t
25、ypedef struct int z; /* 项目总数*/ ITEM aMAX; ALLitems; typedef struct node2 int item; /*该学校获奖的项目*/ int record; /*项目成绩 */ struct node2 *next; /*链域 */ Items; typedef struct int school; /*学校编号 */ int score; /*学校总分 */ int boys; /*男团体总分 */ int girls; /*女团体总分 */ Items *firstitem; /*链域指向链表中第一个获奖项目的结点*/ SCHNod
26、e; typedef struct int n; /* 学校总数*/ SCHNode bMAX; ALLNode; ALLitems *g1; ALLNode *g2; void funct1(ALLitems *g1,ALLNode *g2) Schools *p1; Items *p2; int i,j,k,m,w,h,x; p1=(Schools *)malloc(sizeof(Schools); p2=(Items *)malloc(sizeof(Items); if(!p1|!p2) exit(1); printf(n * 输入各个项目信息* nn); 名师资料总结 - - -精品资
27、料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 14 页,共 21 页 - - - - - - - - - 琼州学院电子信息工程学院2010 级本科生数据结构课程设计14 printf( 输入男子项目总数m:); scanf(%d,&m); if(m20) printf( 输入有误 ,m 是 20 以内的整数 ,请重新输入 :); scanf(%d,&m); printf( 输入女子项目总数w:); scanf(%d,&w); if(w20) printf( 输入有误 ,w 是 20 以内的整数 ,请重新输入 :
28、); scanf(%d,&w); printf( 输入参加运动会的学校总数n:); scanf(%d,&g2-n); if(g2-nn20) printf( 输入有误 ,n 是 20 以内的整数 ,请重新输入 :); scanf(%d,&g2-n); g1-z=m+w; printf( 则项目编号为男子1-%d, 女子 %d-%d,m,m+1,g1-z); printf(nn * 记录运动会成绩 *); printf(nn (输入 0 标志结束 )n); for(k=1;kz;k+) g1-ak.item=k; g1-ak.firstschool=NULL; for(k=1;kn;k+) g2
29、-bk.school=k; g2-bk.firstitem=0; g2-bk.score=0; g2-bk.boys=0; g2-bk.girls=0; g2-b0.score=0; g2-b0.boys=0; g2-b0.girls=0; while(i!=0) printf(n 项目 :); scanf(%d,&i); if(i!=0) printf( 1.前三名2.前五名 n); printf( 请选择 :); scanf(%d,&j); if(j!=1&j!=2) printf( 输入有误 ,请重新选择 :); scanf(%d,&j); if(j=1) h=3; do printf(
30、 第%d 名:学校 (学校编号为数字 ),h); scanf(%d,&x); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 15 页,共 21 页 - - - - - - - - - 琼州学院电子信息工程学院2010 级本科生数据结构课程设计15 p1=(Schools *)malloc(sizeof(Schools); p1-school=x; p2=(Items *)malloc(sizeof(Items); p2-item=i; if(h=3) p2-record=p1-re
31、cord=2; if(h=2) p2-record=p1-record=3; if(h=1) p2-record=p1-record=5; p1-next=g1-ai.firstschool; g1-ai.firstschool=p1; p2-next=g2-bx.firstitem; g2-bx.firstitem=p2; g2-bx.score=g2-bx.score+p2-record; /* 累计总分*/ if(ibx.boys=g2-bx.boys+p2-record; /* 累计男团体总分*/ else g2-bx.girls=g2-bx.girls+p2-record; /* 累
32、计女团体总分*/ h-; while(x!=0&h!=0); if(j=2) h=5; do printf( 第%d 名:学校(学校编号为数字 ),h); scanf(%d,&x); p1=(Schools *)malloc(sizeof(Schools); p1-school=x; p2=(Items *)malloc(sizeof(Items); p2-item=i; if(h=5) p2-record=p1-record=1; if(h=4) p2-record=p1-record=2; if(h=3) p2-record=p1-record=3; if(h=2) p2-record=p
33、1-record=5; if(h=1) p2-record=p1-record=7; p1-next=g1-ai.firstschool; g1-ai.firstschool=p1; p2-next=g2-bx.firstitem; g2-bx.firstitem=p2; g2-bx.score=g2-bx.score+p2-record; /* 累计总分*/ if(ibx.boys=g2-bx.boys+p2-record; /* 累计男团体总分*/ else g2-bx.girls=g2-bx.girls+p2-record; /* 累计女团体总分*/ h-; while(x!=0&h!=
34、0); void save() FILE *fp1,*fp2; fp1=(FILE *)malloc(sizeof(FILE); fp2=(FILE *)malloc(sizeof(FILE); if(fp1=fopen(sports1,wb)=NULL) printf(cannot open file.n); return; if(fwrite(g1,sizeof(ALLitems),1,fp1)!=1) printf(file write error.n); fclose(fp1); if(fp2=fopen(sports2,wb)=NULL) printf(cannot open fil
35、e.n); return; if(fwrite(g2,sizeof(ALLNode),1,fp2)!=1) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 16 页,共 21 页 - - - - - - - - - 琼州学院电子信息工程学院2010 级本科生数据结构课程设计16 printf(file write error.n); fclose(fp2); void funct2(ALLNode *g2) /* 输出各学校总分*/ int k; printf(nn * 输出各学校总
36、分*n); printf( 学校编号 t 总分n); for(k=1;kn;k+) printf( %dttt %dn,k,g2-bk.score); printf(n); system(pause); printf( 按任意键返回主菜单.); getchar(); void funct3(ALLNode *g2) /* 按学校编号排序输出*/ int k; Items *p2; p2=(Items *)malloc(sizeof(Items); printf(nn * 按学校编号排序输出*n); printf( 学校编号 ttt 获奖情况n); scanf(%d,&k); for(k=1;k
37、n;k+) printf(tttttt%dt,k); p2=g2-bk.firstitem; while(p2!=NULL) printf( 项目 %d: 得%d 分 ,p2-item,p2-record); p2=p2-next; printf(n); printf(n); system(pause); printf( 按任意键返回主菜单.); getchar(); void funct4(ALLNode *g2) /* 按学校总分排序输出*/ int i,j,k; Items *p2; printf(nn * 按学校总分排序输出*n); printf( 学校编号 tt 总分n); scan
38、f(%d,&k); /printf( 输入要查询的项目编号:); for(i=2;in;i+) printf(%dt,k); p2=g2-bk.firstitem; while(p2!=NULL) printf(%d tt%dn,g2-bk.school,g2-bk.score); p2=p2-next; printf(n); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 17 页,共 21 页 - - - - - - - - - 琼州学院电子信息工程学院2010 级本科生数据结构
39、课程设计17 g2-b0.score=g2-bi.score; g2-b0.boys=g2-bi.boys; g2-b0.girls=g2-bi.girls; g2-b0.school=g2-bi.school; j=i-1; while(g2-b0.scorebj.score&j0) g2-bj+1.score=g2-bj.score; g2-bj+1.boys=g2-bj.boys; g2-bj+1.girls=g2-bj.girls; g2-bj+1.school=g2-bj.school; j-; g2-bj+1.score=g2-b0.score; g2-bj+1.boys=g2-b
40、0.boys; g2-bj+1.girls=g2-b0.girls; g2-bj+1.school=g2-b0.school; for(k=1;kn;k+) printf(%d tt%dn,g2-bk.school,g2-bk.score); system(pause); printf( 按任意键返回主菜单.); getchar(); void funct5(ALLNode *g2) /* 按男团体总分排序输出*/ int i,j,k; Items *p2; p2=(Items *)malloc(sizeof(Items); printf(nn * 按男团体总分排序输出*n); printf(
41、 学校编号 tt 男团体总分n); scanf(%d,&k); /printf( 输入要查询的学校编号:); for(i=2;in;i+) printf(%dt,k); p2=g2-bk.firstitem; while(p2!=NULL) printf(%dtt %dn,g2-bk.school,g2-bk.boys); p2=p2-next; printf(n); g2-b0.score=g2-bi.score; g2-b0.boys=g2-bi.boys; g2-b0.girls=g2-bi.girls; g2-b0.school=g2-bi.school; j=i-1; while(g
42、2-b0.boysbj.boys&j0) g2-bj+1.score=g2-bj.score; g2-bj+1.boys=g2-bj.boys; g2-bj+1.girls=g2-bj.girls; g2-bj+1.school=g2-bj.school; j-; g2-bj+1.score=g2-b0.score; g2-bj+1.boys=g2-b0.boys; g2-bj+1.girls=g2-b0.girls; g2-bj+1.school=g2-b0.school; for(k=1;kn;k+) printf(%dtt %dn,g2-bk.school,g2-bk.boys); 名师
43、资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 18 页,共 21 页 - - - - - - - - - 琼州学院电子信息工程学院2010 级本科生数据结构课程设计18 system(pause); / 暂停等待printf( 按任意键返回主菜单.); getchar(); void funct6(ALLNode *g2) /* 按女团体总分排序输出*/ int i,j,k; Items *p2; p2=(Items *)malloc(sizeof(Items); printf(nn
44、* 按女团体总分排序输出*n); printf( 学校编号 tt 女团体总分n); scanf(%d,&k); / printf( 输入要查询的项目编号:); for(i=2;in;i+) printf(%dt,k); p2=g2-bk.firstitem; while(p2!=NULL) printf(%dtt %dn,g2-bk.school,g2-bk.girls); p2=p2-next; printf(n); g2-b0.score=g2-bi.score; g2-b0.boys=g2-bi.boys; g2-b0.girls=g2-bi.girls; g2-b0.school=g2
45、-bi.school; j=i-1; while(g2-b0.girlsbj.girls&j0) g2-bj+1.score=g2-bj.score; g2-bj+1.boys=g2-bj.boys; g2-bj+1.girls=g2-bj.girls; g2-bj+1.school=g2-bj.school; j-; g2-bj+1.score=g2-b0.score; g2-bj+1.boys=g2-b0.boys; g2-bj+1.girls=g2-b0.girls; g2-bj+1.school=g2-b0.school; for(k=1;kn;k+) printf(%dtt %dn,
46、g2-bk.school,g2-bk.girls); system(pause); printf( 按任意键返回主菜单.); getchar(); void funct7(ALLNode *g2) /* 按学校编号查询学校某个项目情况*/ int i,j; Items *p2; printf(n * 按学校编号查询学校某个项目情况*n); printf( 输入要查询的学校编号:); scanf(%d,&i); printf( 输入要查询的项目编号:); scanf(%d,&j); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - -
47、名师精心整理 - - - - - - - 第 19 页,共 21 页 - - - - - - - - - 琼州学院电子信息工程学院2010 级本科生数据结构课程设计19 p2=g2-bi.firstitem; while(p2!=NULL) if(p2-item=j) printf( 学校编号 :%dt 项目 %d: 得%d 分n,i,p2-item,p2-record); p2=p2-next; printf(n); system(pause); printf( 按任意键返回主菜单.); getchar(); void funct8(ALLitems *g1) /* 按项目编号查询取得名次的
48、学校*/ int i; Schools *p1; printf(n* 按项目编号查询取得名次的学校*n); printf( 输入要查询的项目编号:); scanf(%d,&i); printf( 项目编号 ttt 取得名次的学校n); printf(%dt,i); p1=g1-ai.firstschool; while(p1!=NULL) printf( 学校 %d:得 %d 分,p1-school,p1-record); p1=p1-next; printf(nn); system(pause); printf( 按任意键返回主菜单.); getchar(); void main() int
49、 t; g2=(ALLNode*)malloc(sizeof(ALLNode); g1=(ALLitems*)malloc(sizeof(ALLitems); if(!g2|!g1) exit(1); /textcolor(WHITE); /textbackground(BLUE); /clrscr(); system(cls); for(;) printf(tt* * * * * * * * * * * * * * * * * * * * * * *n); printf(tt 运动会分数统计系统n); printf(tt* * * * * * * * * * * * * * * * * *
50、* * * * *n); printf(tt* 1.输入各个项目成绩并存储文件*t n); printf(tt* 2.统计各学校总分*t n); printf(tt* 3.按学校编号排序输出*t n); printf(tt* 4.按学校总分排序输出*t n); printf(tt* 5.按男团体总分排序输出*t n); printf(tt* 6.按女团体总分排序输出*t n); printf(tt* 7.按学校编号查询学校某个项目情况*t n); printf(tt* 8.按项目编号查询取得名次的学校*n); printf(tt* 0.退出*n); 名师资料总结 - - -精品资料欢迎下载 -
51、 - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 20 页,共 21 页 - - - - - - - - - 琼州学院电子信息工程学院2010 级本科生数据结构课程设计20 printf(tt* * * * * * * * * * * * * * * * * * * * * * *n); printf(tt n); printf(tt n); printf(tt n); printf(tt 请选择 (0-8):); loop:scanf(%d,&t); system(cls); switch(t) case 1:funct1(g
52、1,g2);save();break; case 2:funct2(g2);break; case 3:funct3(g2);break; case 4:funct4(g2);break; case 5:funct5(g2);break; case 6:funct6(g2);break; case 7:funct7(g2);break; case 8:funct8(g1);break; case 0:exit(0); default: printf(输入有误 ,请重新选择 :); goto loop; /clrscr(); system(cls); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 21 页,共 21 页 - - - - - - - - -