ImageVerifierCode 换一换
格式:DOCX , 页数:29 ,大小:57.30KB ,
资源ID:19061289      下载积分:12 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/19061289.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(数据结构课程设计运动会分数统计C语言版Word格式文档下载.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

数据结构课程设计运动会分数统计C语言版Word格式文档下载.docx

1、前三名的积分分别为:5、3、2。(m、w=20,n=10)。目标:1.可以输入各个项目的前三名或前五名的成绩;2.能统计各学校总分;3.可以按学校编号、学校总分、男女团体总分排序输出;4.可以按学校编号查询学校某个项目的情况;可以按项目编号查询取得前三或前五名的学校。规定:输入数据形式和范围:20以内的整数(如果做得更好可以输入学校的名称,运动项目的名称)。第二章 运动会分数统计系统的需求分析2.1功能需求运动会分数统计方案适合采用结构体数组,为了实现系统功能,主要应实现以下几部分:比赛成绩输入、比赛成绩输出、查询比赛成绩和调用统计结果。2.2功能模块根据分析整个系统主要划分为4个功能模块,分

2、别执行要求中的功能。该系统分为比赛成绩输入、比赛成绩输出、查询比赛成绩和调用统计结果。比赛成绩输出模块有四个子模块,分别是:按学校编号输出模块、按学校总分输出模块、安南员总分输出模块和按女团总分输出模块;查询比赛成绩模块分为按学校编号查询模块河岸项目编号查询两个子模块。功能模块图如图2-1所示。 图2-1功能模块图(1) 比赛成绩输入模块:比赛成绩输入模块分为:创建信息部分,该部分需输入学校编号,项目编号,取得的名次,以及哪些名次;算法部分,得到排序结果。 (2) 比赛成绩输出模块:将以输入的数据按照输出比赛菜单的选择输出相应的数据。(3) 查询比赛成绩模块:按照查询比赛结果菜单和其查询方式子

3、菜单查询需要的数据。(4) 调用统计结果:将输入的各学校运动会成绩排序输出。2.3数据需求需要输入学校编号,项目编号,取得的名次,以及哪些名次。2.4性能需求本程序在运行期间,为了避免在运行大量数据时不会出错,并且能够在很短的时间内将运行结果稳定输出,就需要系统达到安全性能好,可靠性高,稳定性强,处理数据迅速等特点。第三章 系统开发工具及关键技术3.1 系统开发工具3.1.1 Code:BlocksCode:Blocks是一个开放源码的全功能的跨平C/C+集成开发环境。Blocks是开放源码软件。Blocks由纯粹的C+语言开发完成,它使用了蓍名的图形界面库wxWidgets(2.6.2 un

4、icode)版。对于追求完美的C+程序员,再也不必忍受Eclipse的缓慢,再也不必忍受VS.NET的庞大和高昂的价格。3.2 关键技术3.2.1 C语言C语言是一种计算机程序设计语言它既具有高级语言的特点,又具有汇编语言的特点。它由美国贝尔研究所的D.M.Ritchie于1972年推出。1978后,C语言已先后被移植到大、中、小及微型机上。它可以作为工作系统设计语言,编写系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。它的应用范围广泛,具备很强的数据处理能力,不仅仅是在软件开发上,而且各类科研都需要用到C语言,适于编写系统软件,三维,二维图形和动画。具体应用比如单片

5、机以及嵌入式系统开发。3.2.2 数组数组是在程序设计中,为了处理方便,把具有相同类型的若干变量按有序的形式组织起来的一种形式。这些按序排列的同类数据元素的集合称为数组。在C语言中, 数组属于构造数据类型。一个数组可以分解为多个数组元素,这些数组元素可以是基本数据类型或是构造类型。因此按数组元素的类型不同,数组又可分为数值数组、字符数组、指针数组、结构数组等各种类别。3.2.3 链表链表(Linked list)是一种常见的基础数据结构,是一种线性表,但是并不会按线性的顺序存储数据,而是在每一个节点里存到下一个节点的指针(Pointer)。由于不必须按顺序存储,链表在插入的时候可以达到O(1)

6、的复杂度,比另一种线性表顺序表快得多,但是查找一个节点或者访问特定编号的节点则需要O(n)的时间,而顺序表相应的时间复杂度分别是O(logn)和O(1)。使用链表结构可以克服数组链表需要预先知道数据大小的缺点,链表结构可以充分利用计算机内存空间,实现灵活的内存动态管理。但是链表失去了数组随机读取的优点,同时链表由于增加了结点的指针域,空间开销比较大。链表可以在多种编程语言中实现。像Lisp和Scheme这样的语言的内建数据类型中就包含了链表的存取和操作。程序语言或面向对象语言,如C/C+和Java依靠易变工具来生成链表。第四章 运动会分数统计系统的实现4.1数据结构设计学校的存储结构为链表,P

7、rev school1 next头结点Prev school(最后) next其中school类为:class school:public athlete /*学校*/ public: int item; /*学校获奖数*/ int school; /*学校编号*/ int boys; /*男团体总分*/ int girls; /*女团体总分*/ int score; /*学校总分*/ athlete athMaxSize; /*获奖运动员信息数组,包括分数,名次,项目*/ school *prev;/前指针 school *next; /后指针其中部分主要的函数:添加操作add(school

8、* &head)查询操作checkFunc(school *head,int &n)文件保存save(school *head)总分快速排序tquicksort(vector& v, int first, int last)总分基数排序 tbaseSort(vector v, int d) 4.2结构体定义typedef struct node1 int record; /*项目成绩*/ struct node1 *next; /*链域*/ Schools;typedef struct /*项目编号*/ Schools *firstschool; /*链域指向链表中第一个结点*/ ITEM;

9、int z; /* 项目总数 */ ITEM aMAX; ALLitems;typedef struct node2 /*该学校获奖的项目*/ struct node2 *next; Items; Items *firstitem; /*链域指向链表中第一个获奖项目的结点*/ SCHNode; int n; /* 学校总数 */ SCHNode bMAX; ALLNode;4.3 系统界面的实现4.3.1主菜单窗口图4-14.3.2. 输入各个项目成绩并存储文件请选择(08):1进入输入各个项目成绩并存储文件图4-21.输入男子项目总数m;1 2.输入男子项目总数m;1 3.输入参加运动会的学

10、校总数3图4-3输入 项目:1 请选择1(1.前三名2.前五名)第3名:学校3第2名:2第1名:1项目:2 请选择1(1.前三名2.前五名)3 请选择1(1.前三名2.前五名)图4-4然后输入项目:0 返回到菜单主页面图4-54.3.3. 统计各学校总分2进入统计各学校总分图4-64.3.4 按学校编号排序输出按按任意键继续 返回到菜单主界面 请选择(08):3 图4-74.3.5. 按学校总分排序输出4图4-84.3.6. 按男团体总分排序输出5图4-94.3.7. 按女团体总分排序输出6图4-104.3.8. 按学校编号查询学校某个项目情7图4-114.3.9. 按项目编号查询取得名次的学

11、校8图4-12第五章 结束语5.1 课程设计总结经过此次的课程设计,可以很明确的了解到自己哪些知识点掌握的比较好,哪些知识点运用的还不够熟练。通过此次课程设计也学会综合运用理论知识来分析和解决实际问题的能力、养成严谨的科学态度和良好的程序设计习惯,实现由知识向智能的初步转化;学会遵循软件开发过程的基本规范,运用结构化程序设计的方法,按照课程设计的题目要求,并与同组成员共同完成设计、编写、调试和测试应用程序及编写文档的任务。5.2 致谢本设计的完成是在我们的导师李菁老师的细心指导下进行的。在每次设计遇到问题时老师不辞辛苦的讲解才使得我的设计顺利的进行。从设计的选题到资料的搜集直至最后设计的修改的

12、整个过程中,花费了郭老师很多的宝贵时间和精力,在此向导师表示衷心地感谢!导师严谨的治学态度,开拓进取的精神和高度的责任心都将使学生受益终生!还要感谢帮助我的几位同学,是你们在我平时设计中和我一起探讨问题,并指出我设计上的误区,使我能及时的发现问题把设计顺利的进行下去,没有你们的帮助我不可能这样顺利地结稿,在此表示深深的谢意。参考文献:1 严蔚敏 吴伟民著.数据结构(C语言版)M.北京:清华大学出版社. 1997.4.;2 苏小红 陈惠鹏等著.C语言大学实用教程(第2版)M.北京:电子工业出版社;3 苏小红 陈惠鹏等著.C语言大学实用教程学习指导(第2版).电子工业出版社。附录详细代码:#inc

13、lude stdlib.hstring.hio.h/#include /*屏幕操作函数*/ #define MAX 50 /#define NULL 0 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)

14、; 输入男子项目总数m: scanf(%d,&m); if(m20) 输入有误,m是20以内的整数,请重新输入: 输入女子项目总数w:w); if(w printf( 输入有误,w是20以内的整数,请重新输入: 输入参加运动会的学校总数n:g2-n); if(g2-nn 输入有误,n是20以内的整数,请重新输入: g1-z=m+w; 则项目编号为男子1-%d,女子%d-%d,m,m+1,g1-z);nn *记录运动会成绩*nn (输入0标志结束)n for(k=1;kz;k+) g1-ak.item=k;ak.firstschool=NULL;=g2-n;bk.school=k; g2-bk.

15、firstitem=0;bk.score=0; g2-bk.boys=0; g2-bk.girls=0;b0.score=0;b0.boys=0;b0.girls=0; while(i!=0) n 项目:i); if(i! 1.前三名 2.前五名n 请选择:j); if(j!=1&j!=2) 输入有误,请重新选择: if(j=1) h=3; do printf( 第%d名:学校(学校编号为数字),h);x);p1=(Schools *)malloc(sizeof(Schools); p1-school=x;p2=(Items *)malloc(sizeof(Items); p2-item=i;

16、 if(h=3) p2-record=p1-record=2; if(h=2) p2-record=3; if(h=1) p2-record=5;next=g1-ai.firstschool;ai.firstschool=p1;next=g2-bx.firstitem;bx.firstitem=p2;bx.score=g2-bx.score+p2-record; /* 累计总分 */ if(ibx.boys=g2-bx.boys+p2- /* 累计男团体总分 */ else g2-bx.girls=g2-bx.girls+p2- /* 累计女团体总分 */ h-; while(x!=0&h!=

17、0); if(j=2) h=5; do if(h=5) p2-record=1; if(h=4) p2-record=7; void save() FILE *fp1,*fp2; fp1=(FILE *)malloc(sizeof(FILE); fp2=(FILE *)malloc(sizeof(FILE); if(fp1=fopen(sports1,wb)=NULL) cannot open file.n return; if(fwrite(g1,sizeof(ALLitems),1,fp1)!=1) error.n fclose(fp1); if(fp2=fopen(sports2 pri

18、ntf( if(fwrite(g2,sizeof(ALLNode),1,fp2)!=1) fclose(fp2);void funct2(ALLNode *g2) /* 输出各学校总分 */ int k;nn * 输出各学校总分 *n 学校编号t 总分 n %dttt %dn,k,g2-bk.score);n system(pause 按任意键返回主菜单. getchar();void funct3(ALLNode *g2) /* 按学校编号排序输出 */ nn * 按学校编号排序输出 *n 学校编号ttt获奖情况 nk);tttttt%dt,k); p2=g2-bk.firstitem; while(p2!=NULL) 项目%d:得%d分 ,p2-item,p2-record); p2=p2-next;

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1