




已阅读5页,还剩23页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要运动会管理系统是典型的信息管理系统,该系统属简易类型,可以完成运动会管理中的基本操作,包括数据信息的录入、数据的修改、数据的删除和数据的显示。本文中的系统程序合理,简单易懂。同时,对系统的开发原理,系统的功能特点和设计方案进行了介绍。通过流程图和截图说明了系统的运行情况,接着又进行数据测试,得到结果进行分析,得出本系统的优点和不足。根据更高的需求,可以在这简易系统的原理下,可以进一步增加数据,提高实用性。关键词:运动会;管理系统;c语言abstractgames management system is typical of information management systems, 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, 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 higher 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测试数据及其结果分析104.2源程序135总结23参考文献24致谢251概述本运动会管理系统是典型的信息管理系统,我们所做的该系统属简易类型,可以完成运动会管理中的基本操作,可以帮助裁判员记录和分析运动员的成绩以及排名情况,有效的减少裁判员的工作压力,还可以减少不必要的错误出现。1.1设计题目及要求1.运动会成绩管理系统的界面为汉字界面,输出输入均用汉字,并有操作提示,让用户如何操作;2.添加运动员数据:录入运动员信息,录入参赛运动员数量、编号、姓名等;3. 录入成绩:录入运动员各项目的成绩;4.查询所有运动员信息:并可自定义规则进行排序;5. 删除运动员数据:可删除各个运动员的信息;6. 修改运动员数据:可以修改运动员的数据。1.2系统功能需求分析 对程序设计题目的分析可知,整个程序的设计实现大致分为十一个模块,每一个模块对应一个函数。在这些函数当中,添加运动员数据函数,删除数据函数,修改数据函数和显示数据函数是严格按照题目的要求,而按某项成绩排序函数属于附加功能。读取文件函数和保存信息函数对其它函数的实现起辅助作用,主函数及菜单函数控制程序的整体运行。1.添加运动员数据函数 :主要实现程序最初运行时运动员数据的录入以及其后的运行中运动员数据的追加功能;2. 删除运动员数据函数:实现的功能是按照号码对运动员的数据记录进行删除;3 .排序函数 :按照题目的具体要求实现的是某项成绩的递减排序以及名次显示,其中总成绩相同者名次相同;4. 更改数据函数:可以实现对运动员的各项信息进行修改;5. 显示函数:实现的是显示目前所有的有效运动员记录信息。除上面介绍的功能之外,程序还具有退出功能,可以在程序的一次运行当中循环执行所有的功能,并根据需要终止程序的执行。每一个运动员记录都包含号码、姓名,以及百米赛跑、铅球、跳高和跳远四门成绩,在程序当中,将运动员记录类型定义为结构体类型,添加以及追加的运动员信息直接写入e盘的student.txt文件中,其它函数每次对运动员记录的访问,其数据来源都是student.txt文件,这样做不但可以保证运动员数据的一致性,而且可以对运动员数据进行永久保存,保证每次运行程序都可以采用原来的数据。2总体设计2.1系统功能模块图:运动会成绩管理系统主要由四部分管理模块组成,分别是添加模块、显示模块、删除模块和更改模块,图示如下:运动会成绩管理系统添加运动员数据显示运动员数据删除运动员数据更改运动员数据图2.1系统功能模块图3详细设计3.1工作流程图显示一系列功能选项输入n,判断n是否是1-9根据n的值调用各模块函数本程序主要由11个自定义函数和一个主函数组成,其中主函数以菜单的形式调用其它函数来实现要求的所有功能。在这些函数当中,添加运动员数据函数、删除数据函数、更改数据函数、显示数据函数是程序中较为核心的部分,此外还可以对运动员的成绩进行排序。下面分别进行说明。 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,&n); for(i=1;i=n;i+) printf(n请输入第%d个运动员的号码、姓名,用空格分开,并按回车键确认:n,i); scanf(%s%s,stu.num,); 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.baimi,stu.qianqiu,stu.tiaogao,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;i+)printf(n%3d%12s%11s%11.2f%12.2f%11.2f%11.2fn,i+1,stui.num,,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=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; printf(n请输入更改后学生的号码,姓名,百米赛跑、铅球、跳高、跳远四门成绩,按回车键确认:n);scanf(%s%s%f%f%f%f,stui.num,,&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值不在这个范围内时程序将会出现错误提示,主界面将会再次弹出,用户需重新输入。总的来说,本程序基本符合设计要求,可以实现设计要求的各项操作。本系统操作比较简单,提示清晰。但是本系统还是存在一些不足,如界面比较简单等,具有一定的局限性。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 student 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();break; 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 百米成绩排序 *); 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,,&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.baimi,&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=1;i=n;i+) printf(n请输入第%d个运动员的号码、姓名,用空格分开,并按回车键确认:n,i); scanf(%s%s,stu.num,); 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.baimi,stu.qianqiu,stu.tiaogao,stu.tiaoyuan); 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.baimi,stui.qianqiu,stui.tiaogao,stui.tiaoyuan); getch();void 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 number20; 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.baimi,&stui.qianqiu,&stui.tiaogao,&stui.tiaoyuan); save(stu,n);void sort() / 按百米赛跑成绩排名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.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.2f%11.2fn,j,stui.num,,stui.baimi,stui.baimi);elseprintf(n%3d%12s%11s%11.2f%11.2f%11.2f%11.2fn,j+,stui.num,,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;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.qianqiu)printf(n%3d%12s%11s%11.2f%11.2f%11.2f%11.2fn,j,stui.num,,stui.qianqiu,stui.qianqiu); elseprintf(n%3d%12s%11s%11.2f%11.2f%11.2f%11.2fn,j+,stui.num,,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); 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.tiaogao,stui.tiaogao); elseprintf(n%3d%12s%11s%11.2f%11.2f%11.2f%11.2fn,j+,stui.num,,stui.tiaogao,stui.tiaogao); 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+)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.2f%11.2fn,j,stui.num,,stui.tiaoyuan,stui.tiaoyuan);elseprintf(n%3d%12s%11s%11.2f%11.2f%11.2f%11.2fn,j+,stui.num,,stui.tiaoyuan,stui.tiaoyuan);getch();5总结这是大学以来的第一次上课程设计,感受很多,收获也很多。其中最重要的是做什么事都要自己动手,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 情侣编舞基础知识培训课件
- 2025年秋季部编版初中数学教学设计八年级上册13.1.1 轴对称
- 幼儿园才艺秀活动方案
- 有关学前教育宣传月的设计活动策划方案
- 北京市十五中2026届高二化学第一学期期末监测模拟试题含答案
- 福建闽侯第六中学2026届化学高二第一学期期末考试试题含答案
- 河北省衡水市桃城区武邑中学2026届高三上化学期中学业水平测试试题含解析
- 家电公司解除合同执行细则
- 放学口语考试题及答案
- 大专造价面试题及答案
- 广州南方学院(原中山大学南方学院)学校办公室新闻宣传中心新闻管理岗招聘公开引进高层次人才和急需紧缺人才笔试参考题库(共500题)答案详解版
- 儿童呼吸机基本使用
- 起重机械安全日管控、周排查、月调度制度
- 派出所民警心理健康辅导
- 民事诉讼法课件
- 管理学基础(第3版)全套教学课件
- 柿子醋生产技术规程
- 脊髓损伤病人的护理查房课件
- 经典安徒生童话故事100篇
- 劳务服务施工组织方案
- 汽车租赁服务投标方案
评论
0/150
提交评论