C编程课程设计运动会成绩查询系统

上传人:仙*** 文档编号:37546751 上传时间:2021-11-03 格式:DOC 页数:25 大小:182.50KB
收藏 版权申诉 举报 下载
C编程课程设计运动会成绩查询系统_第1页
第1页 / 共25页
C编程课程设计运动会成绩查询系统_第2页
第2页 / 共25页
C编程课程设计运动会成绩查询系统_第3页
第3页 / 共25页
资源描述:

《C编程课程设计运动会成绩查询系统》由会员分享,可在线阅读,更多相关《C编程课程设计运动会成绩查询系统(25页珍藏版)》请在装配图网上搜索。

1、 课程设计报告书专 业:计算机科学与技术 课程设计名称:数据结构课程设计题 目:xxx班 级:xxx学号:xxx姓名:xxx同 组 人 员: xxx指 导 老 师: 完 成 时 间:2012年2月17日摘要运动会成绩查询系统是运动会管理中的一个重要内容,随着时代的进步,参加运动会的运动员数量也不断增加、项目也越来越多、运动会举办也越来越频繁,对成绩的管理要求也越来越高。如何管理好各单位、运动员的成绩的信息,对运动会成绩管理系统的要求也越来越高,所以必须要不断地更新运动会成绩管理系统,才能满足社会日益发展的需要。本文是采用VC+6.0作为前台开发工具,旨在实现对现有的运动会成绩数据库存储的基础上

2、,提供信息咨询,信息检索,信息存取等服务,在此论文中主要实现对存储在数据库中的数据表进行这些简单的操作,为提高运动会成绩查询系统的效率提供了便利。关键词:VC+6.0;运动会成绩查询;目录目录1第一章开发环境和开发工具11.1C/C+语言简介11.2 开发背景11.3 开发环境1第二章 算法思想22.1 系统需求分析22.2 系统总体设计22.2.1 系统设计目标22.2.2 开发设计思想32.2.3 系统功能模块设计42.3 算法思想描述4第三章算法实现63.1 数据结构63.2 程序模块63.3 各模块之间的调用关系63.4 源程序代码6第四章测试与分析144.1 测试数据选择144.2

3、测试结果分析15总 结20心得体会21参考文献22 第一章 开发环境和开发工具1.1 C/ C +语言简介C语言是一种计算机程序设计语言。它既具有高级语言的特点,又具有汇编语言的特点。它由美国贝尔研究所的D.M.Ritchie于1972年推出。1978后,C语言已先后被移植到大、中、小及微型机上。它可以作为工作系统设计语言,编写系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。它的应用范围广泛,具备很强的数据处理能力,不仅仅是在软件开发上,而且各类科研都需要用到C语言,适于编写系统软件,三维,二维图形和动画。1.2 开发背景 随着科学技术的不断发展,计算机科学日渐成熟,

4、其强大的功能已为人们所深刻认识,它己进入人类社会的各个领域并发挥着越来越重要的作用。采用计算机进行信息化管理已成为衡量企业管理科学化和现代化的重要标志,而人事管理的全面自动化、信息化则是其中重要的组成部分。人事管理的好坏对于企业的决策者和管理者来说都至关重要,在很大程度上影响着企业的经济效益和社会效益。因此,本文所研究的人事管理信息系统具有一定的使用价值和现实意义。1.3 开发环境本文所采用的开发环境主要是基于C语言在Microsoft Visual C+平台上开发的系统,界面友好,功能强大,调试也很方便。这是微软出的一个C语言集成开发环境(IDE),主要有:VC+6.0等,分为企业版和学生版

5、等。对于初学者VC+6.0是比较容易上手的,但其对标准支持的不好可能使人养成不良的编程习惯。 第二章 算法思想 2.1 系统需求分析数据结构不仅是一般程序设计(特别是非数值性程序设计)的基础,而且是设计和实现编译程序、操作系统、数据库系统及其他系统程序的重要基。本实验中,对不同的对象采取不同的存储结构,对参赛学校采取链式结构,而对于参赛运动员采取一个结构就可以了。本程序中主要用到线性表的一些基本操作,将各学校信息,运动员信息,项目信息都构造成线性表。具体功能通过主函数分别调用各函数实现。参考本实验的功能要求,本程序分为七个模块:主函数、信息录入函数、信息统计函数、信息查询函数,信息排序函数、存

6、盘函数、读盘函数。信息录入函数有包括学校信息录入函数(包括学校总数、学校名称等),竞赛项目录入函数(男子竞赛项目总数、女子竞赛项目总数、竞赛项目名称、取名次方法和各名次对应的分值)、比赛结果录入函数(各名次的学生信息等)。信息统计不再结果中显示出来,为了信息查询和排序输出。信息查询函数包括按学校编号查询、按学校名称查询、按项目编号查询三个子函数。信息排序函数包括按男子总分排序函数、按女子总分排序函数、按团体总分排序函数。2.2 系统总体设计2.2.1 系统设计目标 本文研究开发的运动会管理系统用于支持用于查询各个学校在运动会中的成绩。有几种目标: 支持输入各个项目的前三名或前五名的成绩;能统计

7、各学校总分;可以按学校编号或名称、学校总分、男女团体总分排序输出。可以按学校编号查询学校某个项目的情况;可以按项目编号查询取得前三或前五名的学校。数据存入文件并能随时查询 输入数据形式和范围:可以输入学校的名称,运动项目的名称;输出形式有提示,各学校分数为整形;界面要求有合理的提示,每个功能可以设立菜单,根 据提示,可以完成相关的功能要求。存储结构:学生自己根据系统功能要求自己设计,但是要求运动会的相关数据要存储在数据文件中。测试数据:要求使用全部合法数据、整体非法数据、局部非法数据。进行程序 测试,以保证程序的稳定。2.2.2 开发设计思想 基于以上系统设计目标,本文在开发运动会管理系统时遵

8、循了以下开发设计思想: 采用现有的软硬件环境及先进的管理系统开发方案,从而达到充分利用现有资源,提高系统开发水平和应用效果的目的。尽量达到操作过程中的直观、方便、实用、安全等要求。系统采用模块化程序设计方法,既便于系统功能的各种组合和修改,又便于未参与开发的技术维护人员补充、维护。系统应具备数据库维护功能,及时根据用户需求进行数据的添加、删除、修改、备份等操作。2.2.3 系统功能模块设计 本系统分为四个模块:输入成绩模块、计算成绩模块、分析排名模块、查询模块。得到如图2-1所示的系统功能模块图。输入学校信息运动会查询系统输入成绩计算成绩分析排名查询输入项目信息计算男女团成绩计算学校总成绩学校

9、排名男女团排名得分查询项目查询图2-1系统功能模块图2.3 算法思想描述本实验中,对不同的对象采取不同的存储结构,对参赛学校采取链式结构,而对于参赛运动员采取一个结构就可以了。本程序中主要用到线性表的一些基本操作,将各学校信息,运动员信息,项目信息都构造成线性表。具体功能通过主函数分别调用各函数实现。参考本实验的功能要求,本程序分为七个模块:主函数、信息录入函数、信息统计函数、信息查询函数,信息排序函数、存盘函数、读盘函数。信息录入函数有包括学校信息录入函数(包括学校总数、学校名称等),竞赛项目录入函数(男子竞赛项目总数、女子竞赛项目总数、竞赛项目名称、取名次方法和各名次对应的分值)、比赛结果

10、录入函数(各名次的学生信息等)。信息统计不再结果中显示出来,为了信息查询和排序输出。信息查询函数包括按学校编号查询、按学校名称查询、按项目编号查询三个子函数。信息排序函数包括按男子总分排序函数、按女子总分排序函数、按团体总分排序函数。第三章 算法实现3.1 数据结构运动会管理系统是一个数据库应用系统,各个学校的所有信息都保存在数据库中。 3.2 程序模块程序分为四个模块:输入成绩模块、计算成绩模块、分析排名模块、查询模块。3.3 各模块之间的调用关系l 输入成绩模块:让用户输入学校信息,比赛项目信息,比赛成绩信息。l 计算成绩模块:计算用户输入的比赛成绩,计算男团分数、男团分数、总分。l 分析

11、排名模块:对学校的男团分、女团分和总分进行排名。l 查询模块:让用户查询各学校成绩,男团排名,女团排名,总排名和各项目的前几名。l 模块调用关系:计算成绩模块调用输入成绩模块,分析排名模块调用计算成绩模块,查询模块调用计算成绩模块、分析排名模块。函数 函数功能 时间复杂度 Void information 输入信息建立系统 O(n*n)Void output 输出信息 O(n*n)Void inquiry 查询信息 O(n*n)Void main 输入主界面 ,调用各个函数 O(n*n)3.4 源程序代码#include#include#include #include #define n 3

12、/学校数目 #define m 2/男子项目数目 #define w 1/女子项目数目#define null 0typedef struct int itemnum; /项目编号 int top; /取名次的数目 int range5; /名次 int mark5; /分数itemnode; /定义项目结点的类型typedef structint dai;int schoolname;int schoolnum; /学校编号 int score; /学校总分 int mscore; /男团体总分 int wscore; /女团体总分 itemnode cm+w; /项目数组headnode;

13、/定义头结点类型headnode hn;/定义一个头结点数组void inputinformation() /输入信息,建立系统int i,j,k,s; for(i=0;in;i+) hi.score=0; hi.mscore=0; hi.wscore=0; /初始化头结点 for(i=0;in;i+) printf(*学校名称:); scanf(%s,&hi.schoolname);printf(*学校编号:); scanf(%d,&hi.schoolnum); /输入头结点信息 for(j=0;jm+w;j+) printf(*项目编号:); scanf(%d,&hi.cj.itemnum

14、); printf(*取前3名or前5名:); scanf(%d,&hi.cj.top); printf(*获得几个名次:); scanf(%d,&k); /输入项目信息 for(s=0;s5;s+) hi.cj.ranges=0, hi.cj.marks=0; /初始化排名和分数 for(s=0;sk;s+) printf(*名次:); scanf(%d,&hi.cj.ranges); /输入所获名次信息 if(hi.cj.top=3) switch(hi.cj.ranges) case 0: hi.cj.marks=0; break; case 1: hi.cj.marks=5; brea

15、k; case 2: hi.cj.marks=3; break; case 3: hi.cj.marks=2; break; else switch(hi.cj.ranges) case 0: hi.cj.marks=0; break; case 1: hi.cj.marks=7; break; case 2: hi.cj.marks=5; break; case 3: hi.cj.marks=3; break; case 4: hi.cj.marks=2; break; case 5: hi.cj.marks=1; break; hi.score=hi.score+hi.cj.marks;/

16、按取前三名还是取前五名分别记分 if(j=m-1)hi.mscore=hi.mscore+hi.cj.marks;/是男子项目则记到男子分数里面去 else hi.wscore=hi.wscore+hi.cj.marks;/是女子项目则记到女子项目里面去 printf(n); void output() /输出函数 int choice,i,j,k; int sign; do printf(*1.按学校编号输出.*n); printf(*2.按学校名称输出.*n); printf(*3.按学校总分输出.*n); printf(*4.按男团总分输出.*n); printf(*5.按女团总分输出.

17、*n); printf(nn* 请选择编号*nn:); scanf(%d,&choice); switch(choice) case 1: printf(学校编号 学校名称 学校总分 男团总分 女团总分n); for(i=0;in;i+) printf(%8d %8s %8d %8d %8dn,hi.schoolnum,hi.schoolname,hi.score,hi.mscore,hi.wscore); /按编号顺序输出 break; case 2: printf(学校名称 学校编号 学校总分 男团总分 女团总分n); for(i=0;in;i+) printf(%8s %8d %8d %

18、8d %8dn,hi.schoolname,hi.schoolnum,hi.score,hi.mscore,hi.wscore); /按学校名称输出 break; case 3: printf(学校名次 学校总分 学校名称 学校编号 男团总分 女团总分n); for(i=0;in;i+) hi.dai=hi.score; for(i=0;in;i+) for(j=0;jn-i;j+) if(hj.daihj+1.dai) k=hj.dai;hj.dai=hj+1.dai;hj+1.dai=k; for(i=0;in;i+) for(j=0;jn;j+) if(hj.score=hi.dai)

19、printf(第%d名 %12d %8s %8d %8d %8d n,i+1,hj.score,hj.schoolname,hj.schoolnum,hj.mscore,hj.wscore); /按学校总分输出 break; case 4: printf(学校名次 男团总分 学校名称 学校编号 学校总分 女团总分n); for(i=0;in;i+) hi.dai=hi.mscore; for(i=0;in;i+) for(j=0;jn-i;j+) if(hj.daihj+1.dai) k=hj.dai;hj.dai=hj+1.dai;hj+1.dai=k; for(i=0;in;i+) for

20、(j=0;jn;j+) if(hj.mscore=hi.dai) printf(第%d名 %12d %8s %8d %8d %8d n,i+1,hj.mscore,hj.schoolname,hj.schoolnum,hj.score,hj.wscore); /按男团总分输出 break; case 5: printf(学校名次 女团总分 学校名称 学校编号 学校总分 男团总分n); for(i=0;in;i+) hi.dai=hi.wscore; for(i=0;in;i+) for(j=0;jn-i;j+) if(hj.daihj+1.dai) k=hj.dai;hj.dai=hj+1.d

21、ai;hj+1.dai=k; for(i=0;in;i+) for(j=0;jn)printf(错误:这个学校没有参加此次运动会!nnn); elseprintf(要查询的项目编号:); scanf(%d,&j); if(jm+w|j=0) printf(此次运动会没有这个项目nnn);/学校编号超出范围,则输出警告 else printf(这个项目取前 %d名,该学校的成绩如下:n, h0.cj-1.top); for(k=0;km+w|s=0)printf(此次运动会不包括这个项目.nnn);/项目编号超出范围则输出警告elseprintf(该项目取前 %d名,取得名次的学校n,h0.cs

22、-1.top);for(i=0; in;i+) for(j=0;j5;j+) if(hi.cs-1.rangej!=0) printf(学校编号:%d,名次:%dn,hi.schoolnum,hi.cs-1.rangej); /输出该项目取得名次学校的成绩 printf(nnn继续 2,跳出 0n);scanf(%d,&i);printf(nnn);while(i=2); break;void main() int choice;printf(=欢迎使用=n); printf(nn*运动会分数统计系统*n); printf(nn*1.输入信息*n);printf(*2.输出信息*n);prin

23、tf(*3.查询信息*n); printf(*4.退出系统*nnn);printf(=nn);printf(*请选择要实现步骤的编号:nn);scanf(%d,&choice);switch(choice) case 1: inputinformation();main(); case 2: output();main(); case 3: inquiry();main(); case 4: exit(0); default: printf(输入错误请重新输入!); 第四章 分析和测试4.1:测试数据选择学校:11代号:1项目 名次1 12 13 1学校:22代号:2项目 名次1 2 2 23

24、 2学校:33代号:3项目 名次1 32 33 3其中项目1、2为男子项目 项目3为女之项目。4.2 测试结果分析 图1 界面 图 2 输入信息 图 3 按学校编号输出 图 4 按学校名称输出 图 5 按学校总分输出 图 6 按男团总分输出 图 7 按女团总分输出 图 9 查询系统总 结在今后的工作、学习中我将认真总结经验教训,努力使自己成为一名技术过硬、工作严谨、思维活跃的工程人员,为提高人们的生活质量做出更大的贡献。本文所述运动会查询系统特色在于能输入各个项目的前三名或前五名的成绩,能统计各学校总分,可以按学校编号或名称、学校总分、男女团体总分排序输出,可以按学校编号查询学校某个项目的情况

25、;可以按项目编号查询取得前三或前五名的学校,数据存入文件并能随时查询。当然,这个运动会查询系统也有很多不足之处,例如不能具体到个体,不能查询各个学生的成绩,存储结构不太完美,算法也不能说是最完美的。运动会分数统计系统,时间和空间复杂度都比较复杂,运动会在调试的时候出现的问题最多,头文件就有很多问题,因为用stdio.h又有stdlib.b,所以问题比较多,编程过程中,文件头不能混合使用,运动会涉及到文件的输入输出,这里也碰到很多问题,首先是文件不能正常的读出,以及一些格式的错误,最后也得到解决。心得体会因为在理论学习中没有好好的掌握,现在要独立完成一个较复杂的程序编写,确实有困难。只有通过和同

26、学一起努力,借助于网上资料,图书馆资料,才实现了这次课程设计。通过这次课程设计,我明白了很多,知识是通过自己积累的来的,即使别人把程序编好,可是自己肚子里没知识,在研究别人的程序时候很吃力,问问这个同学,问问那个同学,感觉到好别人还是有一定差距的,谁然都是借鉴别人的程序,可有的同学研究之后,能够改出自己的程序,这就是水平,自己不肯动手动脑,感觉即使弄出来一个也不应比别人的好,这次课程设计暴露出一个最大的问题不肯思考。问题本身并不是很难,难的事如何克服为难心理,只要你下定决心一定能行,另外,本次课程设计还暴露出另外一个问题,那就是不能很好地利用现有的资源。比如说,当问题出现以后第一时间应该去的是

27、学校的图书馆,那里面有我们需要的一切资料,应该学找去查找相关论题,看看有没有别人做过类似的题目,不然自己最后做出来的可能别人已经做过,会造成很大的损失。现在是二十一世纪,是属于我们计算机的,作为一名计算机系的学生会有很大的机遇和挑战,所以今后我必需扎实基础理论、认真思考,而且要践行我的承诺,一步一个脚印的走下去,才可以达到我预期的彼岸!学校图书馆是个好地方,以后要好好的利用,只要肯去攀登!只要把自己逼上绝路,自己才会去思考,才会成功!参考文献 1. 数据结构构 (C语言版),严蔚敏等编著,清华大学出版社 20072. 数据结构课程设计, 苏仕华 等编著, 机械工业出版社;3. C语言,谭浩强 等编著,清华大学出版社;。

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!