C语言综合训练课程设计-运动会成绩管理程序设计.doc

上传人:来看看 文档编号:3257893 上传时间:2019-08-06 格式:DOC 页数:34 大小:601.54KB
返回 下载 相关 举报
C语言综合训练课程设计-运动会成绩管理程序设计.doc_第1页
第1页 / 共34页
C语言综合训练课程设计-运动会成绩管理程序设计.doc_第2页
第2页 / 共34页
C语言综合训练课程设计-运动会成绩管理程序设计.doc_第3页
第3页 / 共34页
C语言综合训练课程设计-运动会成绩管理程序设计.doc_第4页
第4页 / 共34页
C语言综合训练课程设计-运动会成绩管理程序设计.doc_第5页
第5页 / 共34页
点击查看更多>>
资源描述

《C语言综合训练课程设计-运动会成绩管理程序设计.doc》由会员分享,可在线阅读,更多相关《C语言综合训练课程设计-运动会成绩管理程序设计.doc(34页珍藏版)》请在三一文库上搜索。

1、沈航北方科技学院沈航北方科技学院 课程设计说明书课程设计说明书 课程名称课程名称 C C 语言综合训练语言综合训练 教教 学学 部部 工学一部工学一部 专专 业业 网络工程网络工程 班班 级级 B041111B041111 学学 号号 学生姓名学生姓名 指导教师指导教师 20112011 年年 9 9 月月 沈航北方科技学院沈航北方科技学院 课程设计任务书课程设计任务书 教教 学学 部部 工学一部工学一部 专业专业 网络工程网络工程 课程设计题目课程设计题目 运动会成绩管理程序设计运动会成绩管理程序设计 班级班级 B041111 学号学号 姓名姓名 课程设计时间课程设计时间: : 201120

2、11 年年 8 8 月月 2929 日至日至 20112011 年年 9 9 月月 1515 日日 课程设计的内容及要求:课程设计的内容及要求: (一)主要内容(一)主要内容 设计一个运动会成绩管理程序,主要实现以下功能: 1、检录功能,登录参赛运动员的信息; 2、记录成绩功能,每项比赛结束后记录参赛运动员的成绩; 3、针对不同比赛对运动员的成绩排名次; 4、可对运动员的信息和成绩进行修改、删除、查询操作。 (二)基本要求(二)基本要求 1、系统采用 C 程序设计语言实现; 2、独立完成系统的设计、编码和调试,通过指导教师当场验收; 3、交出完整的课程设计报告。 三)主要参考书三)主要参考书

3、1 谭浩强.C 程序设计(第三版). 北京:清华大学出版社,2005.7 2 高涛,陆丽娜.C 语言程序设计.西安西安交通大学出版社,2007.2 (四)评语(四)评语 (五)成绩(五)成绩 指导教师指导教师 史俊史俊 20112011 年年 7 7 月月 2 2 日日 负责教师负责教师 年年 月月 日日 运功会成绩管理程序设计 1 运动会成绩管理程序设计 于硕 目录 摘要.1 1.绪论1 2.系统分析1 2.1 功能需求.1 2.2 数据需求.2 2.3 性能需求.2 3.总体设计2 3.1 功能模块设计.2 3.2 系统设计方案.3 4详细设计.4 4.1 录入信息模块.4 4.2 查询信

4、息模块 5 4.3 修改信息模块.7 4.4 删除信息模块.8 4.5 成绩排名模块.9 5调试和测试.11 5.1 测试.11 5.2 调试.11 6.结论12 结束语.12 参考文献.12 附录 1用户手册13 附录 2源程序17 运功会成绩管理程序设计 2 摘要摘要 运动会是一个全民健身的活动,在运动会里可以提高人们的身体素质,培养人们的素 养。在参加运动会的过程中我们可以看到激情和友情的碰撞,人们用自己的实力来赢得 第一。开发本系统是为了更方便,在运动会中做比赛数据的记录,方便记录比赛成绩。 本系统使用 C 语言作为开发语言。实现了对运动会的结果提示以及对成绩的储存和对 成绩的排名。

5、本文从分析课题的题目背景、题目意义、题目要求等出发,分别从需求分析、总体设 计、详细设计、测试等各个方面详细介绍了系统的设计与实现过程,最后对系统的完成 情况进行了总结。 关键词:C 语言;运动会;信息管理 1.1.绪论绪论 运动会成绩管理程序设计的开发是为了方便记录比赛成绩,运动员的状况和成绩, 对比赛成绩进行排名。这个系统以快捷,简便为原则,更加方便了对运动会成绩的记录。 运动会是很早以前就有的一项组织性活动,它的存在使人们的身体得到了锻炼。运动会 是一项必不可少的活动,所以开发这个系统可以使运动会成绩的记录变的更加方便。 设计一个运动会成绩管理程序,主要实现以下功能: 1、检录功能,登录

6、参赛运动员的信息; 2、记录成绩功能,每项比赛结束后记录参赛运动员的成绩; 3、针对不同比赛对运动员的成绩排名次; 4、可对运动员的信息和成绩进行修改、删除、查询操作。 2.2.系统分析系统分析 2.12.1 功能需求功能需求 本系统要求对运动员的信息进行登录修改,记录,查询,要求可以对运动员的成绩 进行单项排名。主要实现程序最初运行时运动员数据的录入以及其后的运行数据的追加 功能,实现的功能是按照号码对运动员的数据记录进行修改、记录、查询、删除,按照 题目的具体要求实现的是某项成绩的递减排序以及名次显示。 运功会成绩管理程序设计 3 2.2 数据需求数据需求 在这些函数当中,添加运动员数据函

7、数例如运动员序号、运动员名称、百米赛跑成 绩、三级跳成绩和撑杆跳成绩。 2.3 性能需求性能需求 本系统的性能需求:要求运行稳定、数据可靠、输出准确、响应速度快、可安全运行、 能很好的保存、删除、修改。可以及时保存存储删除数据,可对成绩进行排名,显示即 时成绩 3.3.总体设计总体设计 3.13.1 功能模块设计功能模块设计 经过对程序设计题目的分析可知,整个程序的设计实现大致分为 5 个模块,每一 个模块对应一个函数。在这些函数当中,添加运动员数据函数,删除数据函数,某项成 绩排序函数的实现严格按照题目的要求,而更改数据函数和显示函数属于附加功能。读 取文件函数和保存信息函数对其它函数的实现

8、起辅助作用,主函数及菜单函数控制程序 的整体运行。录入信息模块是录入运动员信息、查询信息模块是查询运动员信息的、修 改信息模块可以对运动员信息进行修改、删除模块可对运动员信息进进行删除、成绩排 名是对运动员的成绩进行排名,功能模块见图 1 所示。 运功会成绩管理程序设计 4 图图 1 1 功能模块图功能模块图 3.2 系统设计方案系统设计方案 本系统中用到了结构体数组和数据的存储。该结构体数组中包含字符串,系统的设计 方案如下: (1)数据结构 struct student char num20;/运动员号码 char name10;/运动员名字 float baimi;/百米赛跑成绩 flo

9、at sanjitiao;/三级跳成绩 float chenggantiao;/撑杆跳成绩 运功会成绩管理程序设计 5 ; (2)菜单 设计一个总菜单,0、查询运动员数据;1、添加运动员数据;2、显示运动员数据;3、 删除运动员数据;4、修改运动员数据;5、百米成绩排序;6、三级跳成绩排序;7 撑杆 跳成绩排序;8、退出;基本功能的实现都将体现在这几个菜单选项中。 (3) 函数 定义了 12 个函数 void menu(); int reads(struct student stuN);/读取运动员信息 void save(struct student stuN,int n);/储存运动员信息

10、 void search();/查询运动员信息 void add();/添加运动员信息 void del();/删除运动员信息 void sort();/ 按百米赛跑成绩查询 void keep();/按三级跳成绩查询 void sheep();/按撑杆跳成绩查询 void query();/退出程序 void show();/显示运动员信息 void change();/更改运动员信息 4 4详细设计详细设计 4.14.1 录入信息模块录入信息模块 1. 添加数据函数 添加数据分为两种情况,其一是在运动员文件(student.txt)不存在的情况下,首 先由程序创建一个新文件,并将录入的运动

11、员信息写入该文件当中;其二是在运动员文 件(student.txt)已经存在的情况下,此时文件以追加的方式打开,这样才可以保证以 前已经存在的数据不丢失。 运功会成绩管理程序设计 6 开始 Fp=fopen(“c:student.txt”a ”)=NULL FILE*fp;int n,I; struct student stu; Fp=fopen(“c:student.txt”,”w ”)=NULL “文件打开失败!n” 输入要添加 运动员数量 i=1 Scanf(”%s%s”,stu.num, stu.name); Scanf(“%f%f%f”, Fprintf(fp,”%s%s%f%f%f

12、n”,stu.n um,stu.name,stu.baimi,stu.sanjitiao ,stu.chenggantiao); i+ i=n 没有找到该 运动员信息 J=i+1 Stuj-1 stuj; Save(stu,n-1); J+J #include #include #include“conio.h“ #define N 20 struct student char num20; char name10; float baimi; float sanjitiao; float chenggantiao; ; void menu(); int reads(struct student

13、 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(); int reads(struct student stuN) / 读取运动员文件中的内容 运功会成绩管理程序设计 20 FILE *fp; int i=0; if(fp=fopen(“c:student.txt“,“r“)=NULL) printf(“文件打开失败!

14、n“); return 0; else for(i=0;!feof(fp);i+) fscanf(fp,“%s %s %f %f %fn“,stui.num,stui.name, fclose(fp); return i; void save(struct student stuN,int n) / 运动员信息改变后更新文件 FILE *fp; int i=0; if(fp=fopen(“c:student.txt“,“w“)=NULL) printf(“文件打开失败!n“); return ; else 运功会成绩管理程序设计 21 for(i=0;i=n) printf(“没有找到该运动员

15、信息!n“); return; else for(j=i+1;j=n) printf(“无此学生信息!“); 运功会成绩管理程序设计 25 return; printf(“n 请输入更改后学生的号码,姓名,百米赛跑、三级跳、撑杆跳三门成绩, 按回车键确认:n“); scanf(“%s%s%f%f%f“,stui.num,stui.name, save(stu,n); void sort() / 按百米赛跑成绩排名 struct student stuN,temp; int i,j,n; n=reads(stu); for(i=0;istuj+1.baimi) temp=stuj; stuj=s

16、tuj+1; stuj+1=temp; save(stu,n); j=1 ; printf(“*百米赛跑成绩排序结果如下 *nn“); printf(“ 名次 号码 姓名 百米赛跑 成绩 n“); 运功会成绩管理程序设计 26 printf(“* *n“); for(i=0;in;i+) / 输出结果并排名 if(stui.baimi=stui+1.baimi) if(stui.baimi!=0) printf(“n%3d%12s%11s%11.2f%11.2fn“,j,stui.num,stui.name,stui.baimi,s tui.baimi); else printf(“n%3d%

17、12s%11sttttn“,j,stui.num,stui.name); else printf(“n%3d%12s%11s%11.2f%11.2fn“,j+,stui.num,stui.name,stui.baimi, stui.baimi); getch(); void keep() / 按三级跳成绩排名 struct student stuN,temp; int i,j,n; n=reads(stu); for(i=0;in-1;i+) for(j=0;jn-1;j+) if(stuj.sanjitiaostuj+1.sanjitiao)temp=stuj;stuj=stuj+1;stu

18、j+1= temp; 运功会成绩管理程序设计 27 save(stu,n); j=1 ; printf(“*三级跳成绩排序结果如下 *nn“); printf(“ 名次 号码 姓名 三级跳 成绩 n“); printf(“* *n“); for(i=0;in;i+) / 输出结果并排名 if(stui.sanjitiao=stui+1.sanjitiao) printf(“n%3d%12s%11s%11.2f%11.2fn“,j,stui.num,stui.name,stui.sanjitia o,stui.sanjitiao); else printf(“n%3d%12s%11s%11.2f

19、%11.2fn“,j+,stui.num,stui.name,stui.sanjit iao,stui.sanjitiao); getch(); void sheep() / 按三级跳成绩排名 struct student stuN,temp; int i,j,n; n=reads(stu); for(i=0;in-1;i+) for(j=0;jn-1;j+) 运功会成绩管理程序设计 28 if(stuj.chenggantiaostuj+1.chenggantiao)temp=stuj;stuj=stuj+1;s tuj+1=temp; save(stu,n); j=1 ; printf(“

20、*撑杆跳成绩排序结果如下 *nn“); printf(“ 名次 号码 姓名 三级跳 成绩 n“); printf(“* *n“); for(i=0;in;i+) / 输出结果并排名 if(stui.chenggantiao=stui+1.chenggantiao) printf(“n%3d%12s%11s%11.2f%11.2fn“,j,stui.num,stui.name,stui.chenggan tiao,stui.chenggantiao); else printf(“n%3d%12s%11s%11.2f%11.2fn“,j+,stui.num,stui.name,stui.cheng

21、g antiao,stui.chenggantiao); getch(); void menu() printf(“n * 运动员成绩管理系统 * “); 运功会成绩管理程序设计 29 printf(“n * 0 查询运动员数据 *“); printf(“n * 1 添加运动员数据 *“); printf(“n * 2 显示运动员数据 *“); printf(“n * 3 删除运动员数据 *“); printf(“n * 4 更改运动员数据 *“); printf(“n * 5 百米成绩排序 *“); printf(“n * 6 三级跳成绩排序 *“); printf(“n * 7 撑杆跳成绩

22、排序 *“); printf(“n * 8 退出 *“); printf(“ n *“); void main() int n; while(1) menu(); printf(“n 请输入您要选择的操作序号,按回车键确认:“); scanf(“%d“, 运功会成绩管理程序设计 30 switch(n) case 0:search();break; case 1: add();break; case 2: show();break; case 3: del();break; case 4: change();break; case 5: sort();break; case 6: keep();break; case 7 :sheep();break; case 8: exit(0); default: printf(“输入错误,请输入列表中存在的序号!n “); 运功会成绩管理程序设计 31 11.11.完稿日期完稿日期 20112011 年年 9 9 月月 1515

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 研究报告 > 信息产业


经营许可证编号:宁ICP备18001539号-1