运动会分数统计系统
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课程设计评审表
课程设计作品验收表
注:1. 除“验收情况”栏外,其余各栏均由学生在作品验收前填写。
2. “验收情况”栏由验收小组按实际验收的情况如实填写。
目录
1 问题描述与分析..................................................................... (1)
课程设计的目的............................................................. (1)
系统需求分析 (1)
2 概要设计…………….……………………………………………………………. ..2
系统功能设计 (2)
函数构造 (2)
3 详细设计 (3)
3.1 数据类型及重要变量的定义 (3)
3.2 函数的设计和实现 (4)
4 测试 (7)
5 课程设计总结 (11)
5.1 调试中遇到的较重要问题的回忆 (11)
5.2 算法的效率及改良思想 (12)
5.3 心得体会 (12)
参考文献 (13)
附录 (13)
运动会分数统计系统
1 问题描述与分析
1.1 课程设计目的
为了稳固我们数据结构知识,加强我们的实际动手能力和提高我们综合素质,提高我们对电脑软件工程的认识学院组织我们进行了数据结构课程设计。此次课程设计要到达以下几点目的:
〔1〕了解并掌握数据结构与算法的设计方法,具备初步的独立分析和设计能力。
〔2〕提高程序设计和调试能力。学生通过上机实习,验证自己设计的算法的正确性。学会有效利用基本调试方法,迅速找出程序代码中的错误并且修改。
〔3〕培养算法分析能力。分析所设计算法的时间复杂度和空间复杂度,进一步提高程序设计水平。
〔4〕初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能。
1.2 系统需求分析
问题描述:参加运动会有n个学校,学校编号为1……n。比赛分成m个男子项目,和w个女子项目。项目编号为男子1……m,女子m+1……m+w。不同的项目取前五名或前三名积分;取前五名的积分分别为:7、5、3、2、1,前三名的积分分别为:5、3、2;哪些取前五名或前三名由学生自己设定。〔m<=20,n<=20〕。
功能要求:
1) 可以输入各个学校各个项目的前三名或前五名的成绩;
2) 能统计各学校总分;
3) 可以按学校编号或名称、学校总分、男女团体总分排序输出;
4) 可以按学校编号查询学校某个项目的情况;可以按项目编号查询取得前三或前五名的学校;
5) 数据存入文件并能随时查询;
6) 规定:输入数据形式和范围:可以输入学校的名称,运动项目的名称。
输出形式:有中文提示,各学校分数为整形。
界面要求:有合理的提示,每个功能可以设立菜单,根据提示,可以完成相关的功能要求。
2 概要设计
2.1 系统功能设计
根据运动会分数统计系统问题的分析和设计要求,可以将该系统可以分为三个模块:信息统计模块、信息输出模块、信息查询模块,其系统功能结构图如图1所示。
〔1〕信息统计模实现信息的输入、统计、存档。
〔2〕信息输出模块,实现信息的输出。
〔3〕信息查询实现信息的查询。
图1 系统功能结构图
2.2 函数构造
根据系统功能结构图的描述,可以构造出该系统的几个基本的函数,其方法名和功能如表1所示。
表1 函数功能表
3 详细设计
3.1 数据类型及重要变量的定义
〔1〕定义运动项目数据类型,用于存放运动项目,包括项目编号、项目所取名次
数、名次、分数。
〔2〕定义学校数据类型,用来存储参赛学校信息,包括学校编号、学校总分、男
团总分、女团总分、项目数组。
//定义学校结点类型
〔3〕定义学校数组schoolnode h[n]。采用数组结构有利于随机的存储和查询。定义全局标志变量int flag1、flag2,分别用以标志是否已经向系统输入了信息和标志系统中是否已经存在信息。定义文件指针FILE * report,用来指向存档的文件。
函数的设计和实现
在概要设计中已经对该系统涉及的抽象数据类型和函数及其功能做了说明,这里就不在对每个函数进行一一说明,只对其中比较重要的功能模块进行描述。
〔1〕信息输入及分数统计功能
void inputinformation( )为输入信息及分数统计函数。在输入信息的同时进行分数的统计。可以输入各个学校各项目前三名或前五名的成绩。在输入学校的参赛项目时,结果取前三名还是前五名自己定,用一个选择语句实现。利用swith语句前三名的分数赋为5、3、2,前五名的成绩赋为7,5、3、2、1,未取得成绩则赋为0。并统计团体总分,男团总分和女团总分。其主要功能代码如下:
〔2〕信息输出功能
void output( )为输出函数。列出一个输出目录利用swich语句使函数按学校编号输出或按学校总分、男团总分、女团总分由高到低排序输出。利用辅助数组remember[]和冒泡排序的方法使之按分数的由高到低输出。利用循环语句do while( )当输入2时返回输出目录,输入0是跳出循环返回主菜单。其流程图如图2所示。
图2 输出信息模块流程图
〔3〕信息查询功能
void inquiry( )为查询函数。列车一个查询目录利用swich 语句使函数按学校编号或项目编号查询,输出某学校的某个项目的得分情况或某个项目的前几名的学校。再利用