数据结构课程设计-运动会分数统计(C语言版)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
目录
第一章绪论 (1)
运动会分数统计系统的背景 (1)
运动会分数统计系统的任务和目标 (1)
第二章运动会分数统计系统的需求分析 (2)
功能需求 (2)
功能模块 (2)
数据要求 (3)
性能要求 (3)
第三章系统开发工具及关键技术 (4)
系统开发工具 (4)
3.1.1 CodeBlocks (4)
关键技术 (4)
3.2.1 C语言 (4)
3.2.2 数组 (4)
3.2.3 链表 (4)
第四章运动会分数统计系统的实现 (5)
数据结构设计 (5)
结构定义 (5)
系统界面的实现 (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)
课程设计总结 (11)
致谢 (11)
参考文献 (12)
附录 (13)
第一章绪论
运动会分数统计系统的背景
在信息技术已经深入人类工作生活的今天,计算机软件得到了广泛的应用,越来越多的政府和企业将其业务纳入计算机软件系统。
随着社会进步,体育事业的发展,为了提高运动会成绩统计准确,减少设计者们的工作量,开发了本系统。
运动会分数统计系统的任务和目标
任务:参加运动会有n个学校,学校编号为1……n。比赛分成m个男子项目,和w个女子项目。项目编号为男子1……m,女子m+1……m+w。不同的项目取前前三名积分;前三名的积分分别为:5、3、2。(m、w<=20,n<=10)。
目标:
1.可以输入各个项目的前三名或前五名的成绩;
2.能统计各学校总分;
3.可以按学校编号、学校总分、男女团体总分排序输出;
4.可以按学校编号查询学校某个项目的情况;可以按项目编号查询取得前三或前五名的学校。
规定:输入数据形式和范围:20以内的整数(如果做得更好可以输入学校的名称,运动项目的名称)。
第二章运动会分数统计系统的需求分析
功能需求
运动会分数统计方案适合采用结构体数组,为了实现系统功能,主要应实现以下几部分:比赛成绩输入、比赛成绩输出、查询比赛成绩和调用统计结果。
功能模块
根据分析整个系统主要划分为4个功能模块,分别执行要求中的功能。该系统分为比赛成绩输入、比赛成绩输出、查询比赛成绩和调用统计结果。比赛成绩输出模块有四个子模块,分别是:按学校编号输出模块、按学校总分输出模块、安南员总分输出模块和按女团总分输出模块;查询比赛成绩模块分为按学校编号查询模块河岸项目编号查询两个子模块。
功能模块图如图2-1所示。
图2-1功能模块图
(1)比赛成绩输入模块:比赛成绩输入模块分为:创建信息部分,该部分需输入
学校编号,项目编号,取得的名次,以及哪些名次;算法部分,得到排序结
果。
(2)比赛成绩输出模块:将以输入的数据按照输出比赛菜单的选择输出相应的数
据。
(3)查询比赛成绩模块:按照查询比赛结果菜单和其查询方式子菜单查询需要的
数据。
(4)调用统计结果:将输入的各学校运动会成绩排序输出。
数据需求
需要输入学校编号,项目编号,取得的名次,以及哪些名次。
性能需求
本程序在运行期间,为了避免在运行大量数据时不会出错,并且能够在很短的时间内将运行结果稳定输出,就需要系统达到安全性能好,可靠性高,稳定性强,处理数据迅速等特点。
第三章系统开发工具及关键技术
系统开发工具
3.1.1 Code::Blocks
Code::Blocks是一个开放源码的全功能的跨平C/C++集成开发环境。Code::Blocks是开放源码软件。Code::Blocks由纯粹的C++语言开发完成,它使用了蓍名的图形界面库wxWidgets(2.6.2 unicode)版。对于追求完美的C++程序员,再也不必忍受Eclipse的缓慢,再也不必忍受的庞大和高昂的价格。
关键技术
3.2.1 C语言
C语言是一种计算机程序设计语言它既具有高级语言的特点,又具有汇编语言的特点。它由美国贝尔研究所的于1972年推出。1978后,C语言已先后被移植到大、中、小及微型机上。它可以作为工作系统设计语言,编写系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。它的应用范围广泛,具备很强的数据处理能力,不仅仅是在软件开发上,而且各类科研都需要用到C语言,适于编写系统软件,三维,二维图形和动画。具体应用比如单片机以及嵌入式系统开发。
3.2.2 数组
数组是在程序设计中,为了处理方便,把具有相同类型的若干变量按有序的形式组织起来的一种形式。这些按序排列的同类数据元素的集合称为数组。在C语言中,数组属于构造数据类型。一个数组可以分解为多个数组元素,这些数组元素可以是基本数据类型或是构造类型。因此按数组元素的类型不同,数组又可分为数值数组、字符数组、指针数组、结构数组等各种类别。
3.2.3 链表
链表(Linked list)是一种常见的基础数据结构,是一种线性表,但是并不会按线性的顺序存储数据,而是在每一个节点里存到下一个节点的指针(Pointer)。由于不必须按顺序存储,链表在插入的时候可以达到O(1)的复杂度,比另一种线性表顺序表快得多,但是查找一个节点或者访问特定编号的节点则需要O(n)的时间,而顺序表相应的时间复杂度分别是O(logn)和O(1)。
使用链表结构可以克服数组链表需要预先知道数据大小的缺点,链表结构可以充分利用计算机内存空间,实现灵活的内存动态管理。但是链表失去了数组随机读取的优点,同时链表由于增加了结点的指针域,空间开销比较大。
链表可以在多种编程语言中实现。像Lisp和Scheme这样的语言的内建数据类型中就包含了链表的存取和操作。程序语言或面向对象语言,如C/C++和Java依靠易变工具来生成链表。