1、摘要运动会管理系统是典型的信息管理系统,该系统属简易类型,可以完成运动会管理中的基本操作,包括数据信息的录入、数据的修改、数据的删除和数据的显示。本文中的系统程序合理,简单易懂。同时,对系统的开发原理,系统的功能特点和设计方案进行了介绍。通过流程图和截图说明了系统的运行情况,接着又进行数据测试,得到结果进行分析,得出本系统的优点和不足。根据更高的需求,可以在这简易系统的原理下,可以进一步增加数据,提高实用性。关键词:运动会;管理系统;c语言AbstractGames management system is typical of information management systems,
2、we made this system is a simple type, you can complete the games management the basic operations, including data entry, data modification, data deletion and data display. This article first to use VC+6.0 to write programming tools, the program reasonable, simple and understandable. At the same time,
3、 principles of system development, system characteristics and design features were introduced. Provides flow diagrams and screenshots illustrate the operation of the system; data went on to have a test, analyze results and concluded that the strengths and weaknesses of the system. According to the h
4、igher demand, can in principle with this simple system, data can be further increased, improving usability.Keywords: sports competition;management system ;c language目 录1概述11.1设计题目及要求11.2系统功能需求分析12总体设计32.1系统功能模块图33详细设计43.1工作流程图43.1.1 添加运动员数据函数43.1.2显示运动员数据函数63.1.3删除运动员数据函数73.1.4更改运动员数据函数84调试分析104.1测试
5、数据及其结果分析104.2源程序135总结23参考文献24致谢251概述本运动会管理系统是典型的信息管理系统,我们所做的该系统属简易类型,可以完成运动会管理中的基本操作,可以帮助裁判员记录和分析运动员的成绩以及排名情况,有效的减少裁判员的工作压力,还可以减少不必要的错误出现。1.1设计题目及要求1.运动会成绩管理系统的界面为汉字界面,输出输入均用汉字,并有操作提示,让用户如何操作;2.添加运动员数据:录入运动员信息,录入参赛运动员数量、编号、姓名等;3. 录入成绩:录入运动员各项目的成绩;4.查询所有运动员信息:并可自定义规则进行排序;5. 删除运动员数据:可删除各个运动员的信息;6. 修改运
6、动员数据:可以修改运动员的数据。1.2系统功能需求分析 对程序设计题目的分析可知,整个程序的设计实现大致分为十一个模块,每一个模块对应一个函数。在这些函数当中,添加运动员数据函数,删除数据函数,修改数据函数和显示数据函数是严格按照题目的要求,而按某项成绩排序函数属于附加功能。读取文件函数和保存信息函数对其它函数的实现起辅助作用,主函数及菜单函数控制程序的整体运行。1.添加运动员数据函数 :主要实现程序最初运行时运动员数据的录入以及其后的运行中运动员数据的追加功能;2. 删除运动员数据函数:实现的功能是按照号码对运动员的数据记录进行删除;3 .排序函数 :按照题目的具体要求实现的是某项成绩的递减
7、排序以及名次显示,其中总成绩相同者名次相同;4. 更改数据函数:可以实现对运动员的各项信息进行修改;5. 显示函数:实现的是显示目前所有的有效运动员记录信息。除上面介绍的功能之外,程序还具有退出功能,可以在程序的一次运行当中循环执行所有的功能,并根据需要终止程序的执行。每一个运动员记录都包含号码、姓名,以及百米赛跑、铅球、跳高和跳远四门成绩,在程序当中,将运动员记录类型定义为结构体类型,添加以及追加的运动员信息直接写入E盘的student.txt文件中,其它函数每次对运动员记录的访问,其数据来源都是student.txt文件,这样做不但可以保证运动员数据的一致性,而且可以对运动员数据进行永久保
8、存,保证每次运行程序都可以采用原来的数据。2总体设计2.1系统功能模块图:运动会成绩管理系统主要由四部分管理模块组成,分别是添加模块、显示模块、删除模块和更改模块,图示如下:运动会成绩管理系统添加运动员数据显示运动员数据删除运动员数据更改运动员数据图2.1系统功能模块图3详细设计3.1工作流程图显示一系列功能选项输入n,判断n是否是1-9根据n的值调用各模块函数本程序主要由11个自定义函数和一个主函数组成,其中主函数以菜单的形式调用其它函数来实现要求的所有功能。在这些函数当中,添加运动员数据函数、删除数据函数、更改数据函数、显示数据函数是程序中较为核心的部分,此外还可以对运动员的成绩进行排序。
9、下面分别进行说明。 N Y 图3.1主函数数据工作流程图Y 输入n判断n添加数据函数开始选择其他操作N3.1.1添加运动员数据函数 图3.1添加数据流程图具体程序段如下: FILE *fp; int n,i; struct student stu; if(fp=fopen(e:student.txt,a)=NULL) /如果文件已经存在,可以追加学生信息 if(fp=fopen(e:student.txt,w)=NULL) / 文件不存在时,创建新文件,输入学生信息 printf(文件打开失败!n); return; printf(请输入要添加的运动员数量,按回车键确认:); scanf(%d
10、,&n); for(i=1;i=n;i+) printf(n请输入第%d个运动员的号码、姓名,用空格分开,并按回车键确认:n,i); scanf(%s%s,stu.num,stu.name); printf(n请输入第%d个运动员的百米赛跑、铅球、跳高和跳远四项成绩,用空格分开,并按回车键确认:n,i); scanf(%f%f%f%f,&stu.baimi,&stu.qianqiu,&stu.tiaogao,&stu.tiaoyuan);fprintf(fp,%s %s %f %f %f %fn,stu.num,stu.name,stu.baimi,stu.qianqiu,stu.tiaoga
11、o,stu.tiaoyuan); fclose(fp);输入n 判断n显示运动员数据开始选择其他操作N3.1.2显示运动员数据函数 Y 图3.2显示数据流程图shhhkjjjjkkjshufvhbvjxvfjiioszjioziokfjdskdfjvkkdkliuliuchengDDSCDCKJHKKJCKDCNMNMKKLIUCHENGTU具体程序段如下:struct student stuN;int i,n;n=reads(stu);printf(*所有的学生信息如下*nn);printf( 序号 号码 姓名 百米赛跑 铅球 跳高 跳远 n);printf(*n); for(i=0;in;
12、i+)printf(n%3d%12s%11s%11.2f%12.2f%11.2f%11.2fn,i+1,stui.num,stui.name,stui.baimi,stui.qianqiu,stui.tiaogao,stui.tiaoyuan);getch();3.1.3删除运动员数据函数输入n判断n删除运动员数据开始选择其他操作 NY 图3.3删除数据流程图具体程序段如下:struct student stuN;char number20;int n,i,j;n=reads(stu);printf(n请输入要删除信息运动员号码,按回车键确认:);scanf(%s,number);for(i=
13、0;i=n)printf(没有找到该运动员信息!n);return;elsefor(j=i+1;jn;j+)stuj-1=stuj;save(stu,n-1);printf(删除成功!n);3.1.4 更改运动员数据函数输入n判断n更改运动员数据开始选择其他操作Y N 图3.4更改数据流程图具体程序段如下: struct student stuN; int n,i; char number20; printf(n请输入要更改信息的学生学号,按回车键确认:); scanf(%s,number); n=reads(stu); for(i=0;i=n) printf(无此学生信息!); return
14、; printf(n请输入更改后学生的号码,姓名,百米赛跑、铅球、跳高、跳远四门成绩,按回车键确认:n);scanf(%s%s%f%f%f%f,stui.num,stui.name,&stui.baimi,&stui.qianqiu,&stui.tiaogao,&stui.tiaoyuan); save(stu,n);4调试分析4.1测试数据及结果分析图4.1主菜单函数界面图4.2数据录入 图4.3 数据显示 图4.4 数据更改 图4.5 数据排序按照测试结果初步分析可见,当n值的输入符合预先设定在19之间时,将会执行相对应的函数模块;当n值不在这个范围内时程序将会出现错误提示,主界面将会再次
15、弹出,用户需重新输入。总的来说,本程序基本符合设计要求,可以实现设计要求的各项操作。本系统操作比较简单,提示清晰。但是本系统还是存在一些不足,如界面比较简单等,具有一定的局限性。4.2源程序:#include#include#includeconio.h#define N 20struct studentchar num20; char name10; float baimi; float qianqiu; float tiaogao; float tiaoyuan;void menu();int reads(struct student stuN);void save(struct stud
16、ent stuN,int n);void add();void del();void sort(); void kdie();void keep();void sheep();void query();void show();void change();void main() int n; while(1) menu();printf(n 请输入您要选择的操作序号,按回车键确认:); scanf(%d,&n); switch(n) case 1: add();break; case 2: show();break; case 3: del();break; case 4: change();b
17、reak; case 5: sort();break; case 6:kdie();break; case 7: keep();break; case 8 :sheep();break; case 9: exit(0); default: printf(输入错误,请输入列表中存在的序号!n ); void menu() printf(n * 运动员成绩管理系统*); printf(n * 1 添加运动员数据 *); printf(n * 2 显示运动员数据 *); printf(n * 3 删除运动员数据 *); printf(n * 4 更改运动员数据 *); printf(n * 5 百米
18、成绩排序 *); printf(n * 6 铅球成绩排序 *); printf(n * 7 跳高成绩排序 *); printf(n * 8 跳远成绩排序 *); printf(n * 9 退出 *); printf(n*);int reads(struct student stuN) / 读取运动员文件中的内容 FILE *fp; int i=0; if(fp=fopen(e:student.txt,r)=NULL) printf(文件打开失败!n); return 0; elsefor(i=0;!feof(fp);i+)scanf(fp,%s %s %f %f %f %fn,stui.num
19、,stui.name,&stui.baimi,&stui.qianqiu,&stui.tiaogao,&stui.tiaoyuan); fclose(fp); return i;void save(struct student stuN,int n) / 运动员信息改变后更新文件 FILE *fp; int i=0;if(fp=fopen(e:student.txt,w)=NULL) printf(文件打开失败!n); return ; elsefor(i=0;in;i+) fprintf(fp,%s %s %f %f %f %fn,stui.num,stui.name,stui.baimi,
20、&stui.qianqiu,stui.tiaogao,stui.tiaoyuan); fclose(fp);void add()/*添加运动员信息*/ FILE *fp; int n,i; struct student stu; if(fp=fopen(e:student.txt,a)=NULL) /如果文件已经存在,可以追加学生信息 if(fp=fopen(e:student.txt,w)=NULL) / 文件不存在时,创建新文件,输入学生信息 printf(文件打开失败!n); return; printf(请输入要添加的运动员数量,按回车键确认:); scanf(%d,&n);for(i
21、=1;i=n;i+) printf(n请输入第%d个运动员的号码、姓名,用空格分开,并按回车键确认:n,i); scanf(%s%s,stu.num,stu.name); printf(n请输入第%d个运动员的百米赛跑、铅球、跳高和跳远四项成绩,用空格分开,并按回车键确认:n,i); scanf(%f%f%f%f,&stu.baimi,&stu.qianqiu,&stu.tiaogao,&stu.tiaoyuan); fprintf(fp,%s %s %f %f %f %fn,stu.num,stu.name,stu.baimi,stu.qianqiu,stu.tiaogao,stu.tiao
22、yuan); fclose(fp);void show() / 运动员信息显示函数 struct student stuN; int i,n;n=reads(stu);printf(*所有的学生信息如下*nn);printf( 序号 号码 姓名 百米赛跑 铅球 跳高 跳远 n);printf(*n); for(i=0;in;i+)printf(n%3d%12s%11s%11.2f%12.2f%11.2f%11.2fn,i+1,stui.num,stui.name,stui.baimi,stui.qianqiu,stui.tiaogao,stui.tiaoyuan); getch();void
23、del() /*运动员信息删除函数*/ struct student stuN; char number20; int n,i,j; n=reads(stu); printf(n请输入要删除信息运动员号码,按回车键确认:); scanf(%s,number); for(i=0;i=n) printf(没有找到该运动员信息!n); return; else for(j=i+1;jn;j+) stuj-1=stuj; save(stu,n-1); printf(删除成功!n);void change() /学生信息更改 struct student stuN; int n,i; char numb
24、er20; printf(n请输入要更改信息的学生学号,按回车键确认:); scanf(%s,number); n=reads(stu); for(i=0;i=n) printf(无此学生信息!); return; printf(n请输入更改后学生的号码,姓名,百米赛跑、铅球、跳高、跳远四门成绩,按回车键确认:n);scanf(%s%s%f%f%f%f,stui.num,stui.name,&stui.baimi,&stui.qianqiu,&stui.tiaogao,&stui.tiaoyuan); save(stu,n);void sort() / 按百米赛跑成绩排名struct stud
25、ent stuN,temp;int i,j,n;n=reads(stu);for(i=0;in-1;i+)for(j=0;jn-1;j+)if(stuj.baimistuj+1.baimi)temp=stuj;stuj=stuj+1;stuj+1=temp;save(stu,n); j=1 ; printf(*百米赛跑成绩排序结果如下*nn);printf( 名次 号码 姓名 百米赛跑 成绩 n);printf(*n); for(i=0;in;i+) / 输出结果并排名 if(stui.baimi=stui+1.baimi)printf(n%3d%12s%11s%11.2f%11.2f%11.
26、2f%11.2fn,j,stui.num,stui.name,stui.baimi,stui.baimi);elseprintf(n%3d%12s%11s%11.2f%11.2f%11.2f%11.2fn,j+,stui.num,stui.name,stui.baimi,stui.baimi); getch();void kdie() / 按铅球成绩排名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.qianqiustuj+1.qianqiu)temp=stuj;st
27、uj=stuj+1;stuj+1=temp;save(stu,n); j=1 ;printf(*铅球成绩排序结果如下*nn); printf( 名次 号码 姓名 铅球 成绩 n);printf(*n); for(i=0;in;i+) / 输出结果并排名 if(stui.baimi=stui+1.qianqiu)printf(n%3d%12s%11s%11.2f%11.2f%11.2f%11.2fn,j,stui.num,stui.name,stui.qianqiu,stui.qianqiu); elseprintf(n%3d%12s%11s%11.2f%11.2f%11.2f%11.2fn,j
28、+,stui.num,stui.name,stui.qianqiu,stui.qianqiu); 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.tiaogaostuj+1.tiaogao)temp=stuj;stuj=stuj+1;stuj+1=temp;save(stu,n); j=1 ;printf(*跳高成绩排序结果如下*nn); printf( 名次 号码 姓名 跳高 成绩 n);printf(*n)
29、; for(i=0;in;i+) / 输出结果并排名 if(stui.tiaogao=stui+1.tiaogao)printf(n%3d%12s%11s%11.2f%11.2f%11.2f%11.2fn,j,stui.num,stui.name,stui.tiaogao,stui.tiaogao); elseprintf(n%3d%12s%11s%11.2f%11.2f%11.2f%11.2fn,j+,stui.num,stui.name,stui.tiaogao,stui.tiaogao); getch();void sheep() / 跳远成绩远排名struct student stuN
30、,temp;int i,j,n;n=reads(stu);for(i=0;in-1;i+)for(j=0;jn-1;j+)if(stuj.tiaoyuanstuj+1.tiaoyuan)temp=stuj;stuj=stuj+1;stuj+1=temp;save(stu,n); j=1 ;printf(*跳远成绩排序结果如下*nn);printf( 名次 号码 姓名 跳远 成绩 n);printf(*n); for(i=0;in;i+) / 输出结果并排名 if(stui.tiaoyuan=stui+1.tiaoyuan)printf(n%3d%12s%11s%11.2f%11.2f%11.2
31、f%11.2fn,j,stui.num,stui.name,stui.tiaoyuan,stui.tiaoyuan);elseprintf(n%3d%12s%11s%11.2f%11.2f%11.2f%11.2fn,j+,stui.num,stui.name,stui.tiaoyuan,stui.tiaoyuan);getch();5总结这是大学以来的第一次上课程设计,感受很多,收获也很多。其中最重要的是做什么事都要自己动手,动脑。C语言课程设计在基本知识的基础上由老师引导,自己很多都靠自学,不明白的问老师,但由此自学能力得到了很大的培养。在设计过程中,我感觉到一点,程序是不能一气呵成的,至少
32、一气呵成的程序不会尽善尽美,程序编写要一步一步的完成。我认为编写程序,首先对于要编的程序要有一个总体思路,要明确想要什么,只要把思路理清楚了,程序就好编写了,把程序分割成几个块,即多个函数,一块一块的编写;然后将分散的函数用另外的函数连接起来或者用main函数连接,到这一步,程序也就初步编成了,之后便是调试,检查错误;最后对已经编写好的程序进行一些修改添加,使它更加人性化。系统的成功完成也不能离开老师和同学的帮助,体会到了团队合作的重要性。系统设计的过程也是一个不断摸索的过程。只有对所作题目有了清楚的认识和理解,有了思想上的充分准备,才能在设计过程中“胸有成竹“。当实际操作过程中遇到这样那样的
33、困难,就通过查看资料、上网等方式解决。在整个过程中,需要不断的调试,更改代码。当中,我遇到了很多棘手问题。在不断思考、调试后,不仅锻炼了我的实际动手能力,更锻炼了我发现问题、分析问题的能力。参考文献1科钦.C语言程序设计.北京:电子工业出版社,1987:56-582徐君毅.C语言程序设计基础.上海:复旦大学出版社,1992:87-98 3李成付.C语言程序设计基础.北京:科学出版社,1992:42-67 4郝玉洁.C语言程序设计.北京:机械工业出版社,2000:63-88 5钱启平.C语言程序设计基础.北京:中国铁道出版社,2000:91-99 6李大友.C语言程序设计基础.北京:清华大学出版
34、社,1999:58-98 7黄迪明.C语言程序设计.北京:电子科技大学出版社,1998:78-98 8姜仲秋.C语言程序设计基础.南京:南京大学出版社,1998:16-100 9李国昌.C语言程序设计基础.北京:科学出版社,1998:78-120 10谭浩强.C语言程序设计.北京:清华大学出版社,2000:74-129致 谢在本次课程设计中,我非常感谢在我遇到问题时耐心给我讲解和解决问题的老师和同学们。在老师的帮助下我不但完成了课程设计,而且也学到了很多知识,让我掌握了学习方法。同学之间的帮助,相互鼓励,以及相互探讨,给了我很大的信心,以及跨越式的进步。在课程设计即将完成之际,回顾紧张但又充实的制作过程
©2010-2024 宁波自信网络信息技术有限公司 版权所有
客服电话:4008-655-100 投诉/维权电话:4009-655-100