《C语言综合训练课程设计运动会成绩管理程序设计》由会员分享,可在线阅读,更多相关《C语言综合训练课程设计运动会成绩管理程序设计(33页珍藏版)》请在金锄头文库上搜索。
1、沈航北方科技学院课程设计说明书 课程名称 C语言综合训练 教 学 部 工学一部 专 业 网络工程 班 级 B041111 学 号 学生姓名 指导教师 2011年9月沈航北方科技学院课程设计任务书教 学 部 工学一部 专业 网络工程 课程设计题目 运动会成绩管理程序设计 班级 B041111 学号 姓名 课程设计时间: 2011 年 8 月 29 日至 2011 年 9月 15 日课程设计的内容及要求: (一)主要内容设计一个运动会成绩管理程序,主要实现以下功能:1、 检录功能,登录参赛运动员的信息;2、 记录成绩功能,每项比赛结束后记录参赛运动员的成绩;3、 针对不同比赛对运动员的成绩排名次;
2、4、 可对运动员的信息和成绩进行修改、删除、查询操作。 (二)基本要求1、 系统采用C程序设计语言实现;2、 独立完成系统的设计、编码和调试,通过指导教师当场验收;3、 交出完整的课程设计报告。三)主要参考书1 谭浩强.C程序设计(第三版). 北京:清华大学出版社,2005.72 高涛,陆丽娜.C语言程序设计.西安西安交通大学出版社,2007.2(四)评语 (五)成绩指导教师 史俊 2011 年 7 月 2 日负责教师 年 月 日运功会成绩管理程序设计运动会成绩管理程序设计于硕目录摘要11.绪论12.系统分析12.1功能需求12.2数据需求22.3性能需求23.总体设计23.1功能模块设计23
3、.2系统设计方案34详细设计44.1录入信息模块44.2查询信息模块54.3修改信息模块74.4删除信息模块84.5成绩排名模块95调试和测试115.1测试115.2调试116.结论12结束语12参考文献12附录1用户手册13附录2源程序17摘要运动会是一个全民健身的活动,在运动会里可以提高人们的身体素质,培养人们的素养。在参加运动会的过程中我们可以看到激情和友情的碰撞,人们用自己的实力来赢得第一。开发本系统是为了更方便,在运动会中做比赛数据的记录,方便记录比赛成绩。本系统使用C语言作为开发语言。实现了对运动会的结果提示以及对成绩的储存和对成绩的排名。本文从分析课题的题目背景、题目意义、题目要
4、求等出发,分别从需求分析、总体设计、详细设计、测试等各个方面详细介绍了系统的设计与实现过程,最后对系统的完成情况进行了总结。关键词:C语言;运动会;信息管理 1.绪论运动会成绩管理程序设计的开发是为了方便记录比赛成绩,运动员的状况和成绩,对比赛成绩进行排名。这个系统以快捷,简便为原则,更加方便了对运动会成绩的记录。运动会是很早以前就有的一项组织性活动,它的存在使人们的身体得到了锻炼。运动会是一项必不可少的活动,所以开发这个系统可以使运动会成绩的记录变的更加方便。设计一个运动会成绩管理程序,主要实现以下功能:1、检录功能,登录参赛运动员的信息;2、记录成绩功能,每项比赛结束后记录参赛运动员的成绩
5、;3、针对不同比赛对运动员的成绩排名次;4、可对运动员的信息和成绩进行修改、删除、查询操作。2.系统分析2.1功能需求 本系统要求对运动员的信息进行登录修改,记录,查询,要求可以对运动员的成绩进行单项排名。主要实现程序最初运行时运动员数据的录入以及其后的运行数据的追加功能,实现的功能是按照号码对运动员的数据记录进行修改、记录、查询、删除,按照题目的具体要求实现的是某项成绩的递减排序以及名次显示。 2.2数据需求在这些函数当中,添加运动员数据函数例如运动员序号、运动员名称、百米赛跑成绩、三级跳成绩和撑杆跳成绩。 2.3性能需求本系统的性能需求:要求运行稳定、数据可靠、输出准确、响应速度快、可安全
6、运行、能很好的保存、删除、修改。可以及时保存存储删除数据,可对成绩进行排名,显示即时成绩3.总体设计3.1功能模块设计经过对程序设计题目的分析可知,整个程序的设计实现大致分为5个模块,每一个模块对应一个函数。在这些函数当中,添加运动员数据函数,删除数据函数,某项成绩排序函数的实现严格按照题目的要求,而更改数据函数和显示函数属于附加功能。读取文件函数和保存信息函数对其它函数的实现起辅助作用,主函数及菜单函数控制程序的整体运行。录入信息模块是录入运动员信息、查询信息模块是查询运动员信息的、修改信息模块可以对运动员信息进行修改、删除模块可对运动员信息进进行删除、成绩排名是对运动员的成绩进行排名,功能
7、模块见图1所示。图1 功能模块图3.2系统设计方案本系统中用到了结构体数组和数据的存储。该结构体数组中包含字符串,系统的设计方案如下:(1)数据结构struct studentchar num20;/运动员号码 char name10;/运动员名字 float baimi;/百米赛跑成绩 float sanjitiao;/三级跳成绩 float chenggantiao;/撑杆跳成绩;(2)菜单设计一个总菜单,0、查询运动员数据;1、添加运动员数据;2、显示运动员数据;3、删除运动员数据;4、修改运动员数据;5、百米成绩排序;6、三级跳成绩排序;7撑杆跳成绩排序;8、退出;基本功能的实现都将体
8、现在这几个菜单选项中。(3) 函数定义了12个函数void menu();int reads(struct student stuN);/读取运动员信息void save(struct student stuN,int n);/储存运动员信息void search();/查询运动员信息void add();/添加运动员信息void del();/删除运动员信息void sort();/ 按百米赛跑成绩查询void keep();/按三级跳成绩查询void sheep();/按撑杆跳成绩查询void query();/退出程序void show();/显示运动员信息void change();/
9、更改运动员信息4详细设计4.1录入信息模块1. 添加数据函数添加数据分为两种情况,其一是在运动员文件(student.txt)不存在的情况下,首先由程序创建一个新文件,并将录入的运动员信息写入该文件当中;其二是在运动员文件(student.txt)已经存在的情况下,此时文件以追加的方式打开,这样才可以保证以前已经存在的数据不丢失。 图2录入信息流程图4.2查询信息模块查询文件是在以存的运动员信息中进行查询,可对运动员信息进行查询显示运动员信息。通过录入运动员号码num ,与stui.num做比较,结果相同进行m+,m=reads(stu);来提取文件中的数据图3查询信息流程图4.3修改信息模块
10、修改信息是对运动员信息进行修改,通过输入number与stui.num比较,如果相同进行 n=reads(stu)来提取信息在对信息进行修改。 图4修改信息流程图4.4删除信息模块该函数的核心内容是删除算法以及最终对源文件的更新。该函数执行时,首先调用reads函数将文件中的运动员信息读入数组当中,并由用户输入待删除运动员的号码,而后按照该号码进行查找,如果文件中存在该运动员的数据,则采用删除算法删除,否则输出运动员信息不存在的提示信息。对运动员信息的具体删除算法是在结构体数组中实现的,当运动员的信息被找到后,位于数组中该学生后面的运动员记录依次向前移动一个元素的位置,这些操作完成后,要删除运
11、动员信息就被后面的数组元素覆盖掉了,也就实现了删除。 图5删除信息流程图4.5成绩排名模块对于某项的排序采用的排序算法是冒泡法排序,整个排序过程在结构体数组stu中实现,由于排序算法涉及到两个数组元素的信息交换,因此还需要定义一个中间变量来协助。排序函数使运动员数据的排列顺序发生了变化,因此也需要对源文件进行更新。此外,对于运动员排序后名次的确定,仅在结果输出时予以显示,并未将名次信息写入源文件。具体的程序段如下(由于各项成绩排序函数相同,所以只给出百米赛跑排名程序): 图6成绩排名流程图5调试和测试5.1测试 测试是在完成某一部分功能和全部功能后,根据功能和性能的需求,看看系统有没有实现要求
12、中的功能,是否达到性能要求。系统测试是软件生存期中的一个重要阶段,系统质量保证的关键步骤从用户的角度来看,普遍希望通过软件测试暴露软件中隐藏的错误和缺陷,所以系统测试应该是“为了发现错误而执行程序的过程”。或者说,系统测试应该根据程序开发各阶段的规格说明和程序的内部结构而精心设计一批测试用例(即输入数据及其预期的输出结果),并利用这些测试用例去运行程序,以发现程序错误或缺陷。过度测试则会浪费许多宝贵的资源。到测试后期,即使找到了错误,然而付出了过高的代价。测试数据过程如下。当运动员成绩管理系统进行对运动员数据的添加数据 号码 1 姓名 zhanglinlin 百米赛跑 10 三级跳 9 撑杆跳
13、 4.5 号码 2 姓名 yushuo 百米赛跑 9.8 三级跳 7 撑杆跳 4。显示信息即显示添加的数据 ,修改数据,查询数据,现在测试系统是否能够正确显示录入的所有运动员信息,当系统中已存入一定的运动员信息当执行浏览功能时,系统会将运动员信息全部列出,当系统未存入任何信息是显示无运动员信息 。测试成功,显示正确,完成测试。5.2调试 调试是程序编写中的一个重要环节,也是最复杂,对程序编写者来说是一项艰巨的任务。调试的任务就是及时改正测试过程中发现的错误。具体地说,调试过程由两个步骤组成,它是从程序中存在错误的某种迹象开始的。首先是确定错误的准确位置,也就是找出是哪个模块或哪个语句引起的错误。然后仔细研究推断代码以确定问题的原因,并设法改正。调试过程主要是运行编制好的程