学校运动会记分系统.docx
- 文档编号:23131679
- 上传时间:2023-05-08
- 格式:DOCX
- 页数:13
- 大小:171.23KB
学校运动会记分系统.docx
《学校运动会记分系统.docx》由会员分享,可在线阅读,更多相关《学校运动会记分系统.docx(13页珍藏版)》请在冰豆网上搜索。
学校运动会记分系统
学校运动会记分系统
【摘要】本人基于软件开发基础上设计、实现了一个简单的运动会记分系统。
该系统可以在VC或TC环境下运行生成可执行文件,以顺序存储结构储存数据,能统计各学校总分,可以按学校编号,学校总分、男女团队总分排序输出。
按学校编号查询学校某个项目的情况,按项目编号查询取得前三名的学校等功能,从而实现运动会记分信息化。
【关键词】C语言运动会数据结构男女比赛项目
1需求分析
(1)可以输入各项目前三名的成绩。
(2)能统计各学校总分。
(3)可以按学校编号,学校总分、男女团队总分排序输出。
(4)可以按学校编号查询学校某个项目的情况,可以按项目编号查询取得前三名的学校。
(5)输出形式:
有中文提示,各学校分数为整形。
界面要求:
有合理的提示,每个功能可以设立菜单,根据提示,可以完成相关的功能。
(6)储存结构:
以顺序存储结构储存数据
(7)系统开发工具:
C语言
C语言是一种结构化语言。
它层次清晰,便于按模块化方式组织程序,易于调试和维护。
C语言的表现能力和处理能力极强。
它不仅具有丰富的运算符和数据类型,便于实现各类复杂的数据结构。
它还可以直接访问内存的物理地址,进行位(bit)一级的操作。
由于C语言实现了对硬件的编程操作,因此C语言集高级语言和低级语言的功能于一体。
既可用于系统软件的开发,也适合于应用软件的开发。
此外,C语言还具有效率高,可移植性强等特点。
因此广泛地移植到了各类各型计算机上。
2.概要设计
2.1数据类型定义
structscorelist
{
intscore;/*分数*/
charschoolnum[5];/*学校编号*/
intitemnum[5];/*项目编号*/
};/*定义分数结构体类型*/
structSchool
{
charschoolnum[5];/*学校编号*/
structscorelistlist[M];/*定义scorelist类型的结构体变量*/
intteamscore;/*学校分数*/
intmscore;/*男队分数*/
intgscore;/*女队分数*/
};/*定义学校结构体类型*/
structSchoolschool[M];/*定义School类型的结构体数组*/
2.2、系统功能的实现
(1)、求学校总分,男队总分,女队总分函数:
voidsum();
本算法实现学校总分,男队总分,女队总分,并分别保存到各学校的teamscore,mscore,gscore结构体成员中。
(2)、按学校总分排序输出函数
voidsort_teamsore();
本算法实现学校总分排序输出。
(3)、按男队总分排序输出
voidsort_mscore();
(4)按女队总分排序输出
voidsort_gscore();
(5)按学校编号查找查询某学校的分数情况
voidSearch_byschnum();
本算法实现用户输入某学校编号,可以输出该学校的分数情况,包括学校总分,男队总分,女队总分信息。
(6)按学校编号查找查询学校某项目分数
voidSearch_item();
本算法实现用户输入学校编号,及某一项目编号后,可以输出该该学校该项目的分数。
(7)按项目编号查询获得前三名的学校*
voidSearch_head3();
本算法实现用户输入某项目编号,可以输出该项目前三名的学校及该项目对应的分数。
3详细设计
下面我将对上面提到的部分函数进行介绍:
voidsum();
这个函数的主要功能是求出学校的学校总分,男队总分,女队总分.学校的总分通过teamscore这个结构体来实现。
通过voidsum()函数中的teamscore用户可以看到学校的总分。
同样的通过voidsum()函数中的mscore,gscore结构体可以看到男队团体和女队团体的总分。
求学校总分,男队总分,女队总分函数流程图:
校全购—大学生购物网
图3-1
按学校总分排序输出函数流程图:
通过voidsort_teamsore()函数可以实现学校总分排序输出。
在该函数中的排序选用了冒泡排序。
冒泡排序具有稳定性,这种稳定性是其他排序方法所不具备的。
冒泡排序最好的时间复杂度为O(n), 最坏时间复杂度为O(n2)。
算法的平均时间复杂度为O(n2).
图3-2
按学校编号查找查询学校某项目分数流程图:
Search_item()
图3-3
本论文中所有的流程图都使用了传统型流程图,这是因为传统型流程图更能够清楚的表达出程序的本意。
而N-S型的流程图虽然简单,但却不具备这种优势。
在流程图3-3的判断框中我用到了一个atoi函数,这个函数的主要功能是把字符串转换成长整型数。
因为我们从的数据是从键盘输入的,在程序执行过程中需要将字符转换成数值。
用法:
intatoi(constchar*nptr);
从第二行开始,一行内容代表某个学校的信息。
部分运行程序结果截图:
校全购—大学生购物网
1
测试该系统是否能正确输出全部学校总分,男女团队总分。
编译运行后,
图1
在该图中可以看到标准的界面。
选择1选项,结果如下:
图2
结果正确。
测试结果:
该系统能正确输出全部学校总分,男女团队总分。
3
测试该系统能否按学校总分排序输出。
在1的基础上选项2选项,结果如下:
图3
结果正确。
测试结果:
该系统能按学校总分排序输出。
该段函数如下所示:
voidsort_teamsore(){/*按学校总分排序输出函数*/
inti,j;
structscorelistlist1[M];/*定义scorelist类型的结构体变量用来暂存学校编号,学校总分信息*/
structscorelisttemp;/*定义scorelist类型的结构体变量temp,在数据交换时做暂存过度作用*/
4
图4
结果正确。
测试结果:
该系统能正确按学校男队分数排序输出。
该段函数如下所示:
voidsort_mscore(){/*按男队总分排序输出*/
inti,j;
structscorelistlist1[M];/*定义scorelist类型的结构体变量用来暂存学校编号,学校总分信息*/
structscorelisttemp;/*定义scorelist类型的结构体变量temp,在数据交换时做暂存过度作用*/
5
测试该系统能否按学校女队分数排序输出。
在1的基础上选项4选项,结果如下
图5
结果正确。
测试结果:
该系统能正确按学校女队总分排序输出。
:
该段函数如下所示:
voidsort_gscore(){/*按女队总分排序输出*/
inti,j;
structscorelistlist1[M];/*定义scorelist类型的结构体变量用来暂存学校编号,学校总分信息*/
structscorelisttemp;/*定义scorelist类型的结构体变量temp,在数据交换时做暂存过度作用*/
6
测试该系统能否按学校编号查找查询某学校的分数情况。
在1的基础上选项6选项,结果如下:
该段函数如下所示:
图7
结果正确。
测试结果:
该系统能正确按学校编号查找查询某学校的分数情况。
函数如下所示:
voidSearch_byschnum()/*按学校编号查找查询某学校的分数情况*/
7
测试该系统能否按项目编号查询获得前三名的学校。
在1的基础上选项7选项,结果如下:
结果正确。
测试结果:
该系统能正确按项目编号查询获得前三名的学校。
参考文献
[1]谭浩强.C语言程序设计(第三版)[M](清华大学出版社)出版
[2]李大友彭波.数据结构[M](清华大学出版社)出版
致谢
通过这次的系统的开发,我发现作为一个计算机专业的毕业生,要做成一个正确的软件的不容易。
但同时也为能够做出这样的一个软件而使学校运动会记分可以用机器进行操作感到满意。
在事例开发过程中,我学到了很多从前没有学到的东西,也用到了许多以前在学校学到的知识。
本软件操作容易,数据结构易懂,具有一定的实用性。
但是还是有不足之处,它的数据库小,只能进行小型的运动会记分。
一旦数据较大,那么系统就有瘫痪的可能。
希望在今后的日子里能够用更好的开发工具对这个软件进行进一步的完善和功能的强化。
在事例开发过程中,我学到了很多同前没有学到的东西同时也用到了许多以前在学校学到的知识。
同时也遇到了许多的困难和挫折。
主要是由于自己平时积累的知识相对贫乏。
在此,我要感谢我的指导教师对我的指导,还有同学的互相帮助。
没有他们的宝贵意见,是很难做好这个毕业论文的。
再次对他们的帮助表示感谢!
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 学校 运动会 记分 系统