ImageVerifierCode 换一换
格式:DOCX , 页数:19 ,大小:124.75KB ,
资源ID:7468293      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/7468293.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(运动会成绩管理系统.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

运动会成绩管理系统.docx

1、运动会成绩管理系统沈 阳 航 空 工 业 学 院 课程设计 学 号 200704021019班 级 7402101姓 名 李辰指导教师 吴杰宏2008年 9 月 8日沈阳航空工业学院课程设计任务书院系:电子信息工程 专业:电子信息工程 班级:7402101学号:200704021019 题目:运动会成绩管理系统(1)一、课程设计时间200809第1学期第2周,共计1周,20学时。二、课程设计内容用C语言编写软件完成以下任务:1录入运动员信息;2按所参加的项目添加成绩;3某一项目按成绩排名。三、课程设计要求1. 程序质量: 贯彻结构化的程序设计思想。 用户界面友好,功能明确,操作方便。 用户界面

2、中的菜单至少应包括“运动员信息录入”、“按项目添加成绩”、“按成绩排名(某一项目)”、“退出”4项。 代码应适当缩进,并给出必要的注释,以增强程序的可读性。2. 课程设计说明书:课程结束后,上交课程设计说明书和源程序。课程设计说明书的格式和内容参见提供的模板。四、指导教师和学生签字指导教师:_ 学生签名:_五、说明书成绩六、教师评语 目录一、需求分析 1二、程序流程图 1三、核心技术的实现说明及相应程序段 2四、个人总结 5五、参考文献 12六、源程序 12一、需求分析经过对程序设计题目的分析可知,整个程序的实现大致分为三个模块,其中每一个模块对应一个或多个函数,他们的功能分别是:添加运动员信

3、息(add),排序函数(sort) ,添加运动员成绩(change)。这三个功能分别对应题目的三个要求:1、添加运动员信息函数 主要实现程序最初运行时运动员信息的录入;2、排序函数 按照题目的具体要求实现的是单项成绩的排序以及名次显示,其中总成绩相同者名次相同;3、添加运动员成绩函数 可以实现对运动员按项目添加成绩除上面介绍的功能之外,程序还具有退出功能,可以在程序的一次运行当中循环执行所有的功能,并根据需要终止程序的执行。每一个运动员的记录都包括序号、系别、姓名、年龄、性别以及短跑、跳高和游泳三项比赛成绩,在程序当中,将运动员记录类型定义为结构体类型,添加的运动员信息直接写入E盘的stude

4、nt.dat文件中,其他函数每次对运动员记录的访问,其数据来源都是student.dat文件,这样做不但可以保证运动员数据的一致性,而且可以对运动员数据进行永久保存,保证每次运行程序都可以采用原来的数据。二、程序流程图1、程序总体结构图2、具体功能框图(1)添加学生数据函数add()图2 添加学生数据函数(2)读取学生数据reads图3读取运动员数据(4)按总分排序函数sort()图5单项成绩排序函数三、核心技术的实现说明及相应程序段本程序主要由九个自定义函数和一个主函数组成,其中主函数以主菜单的形式调用其他函数来实现要求的所有功能。在这些函数当中,添加运动员信息函数、添加运动员成绩函数和排序

5、函数是程序中的核心部分,下面分别进行说明。1、 添加信息数据函数add()添加信息数据函数是按照运动员来添加信息,先将运动员编号,然后依次输入系别、姓名、年龄和性别,并且输入的信息将被储存在E盘的student.dat文件中,不会丢失。具体的程序段如下:void add()/*添加学生信息*/FILE *fp; int n,i,j; struct student stu; if(fp=fopen(e:student.dat,rb+)!=NULL) /*读写方式打开文件*/ j=getw(fp); rewind(fp); printf(请输入要添加的运动员数量,按回车键确认:); scanf(%

6、d,&n); putw(j+n,fp); fseek(fp,0L,2); for(i=1;i=n;i+) printf(n请输入第%d个运动员的序号、系别、姓名、性别、年龄,用空格分开,并按回车键确认:n,i);scanf(%s%s%s%s%f,&stu.num,&stu.xibie,&stu.name,&stu.sex,&stu.age); fwrite(&stu,sizeof(struct student),1,fp); else if(fp=fopen(e:student.dat,wb)!=NULL) printf(请输入要添加的运动员数量,按回车键确认:); scanf(%d,&n);

7、 putw(n,fp); for(i=1;i=n;i+) printf(n请输入第%d个运动员的序号、系别、姓名、性别、年龄,用空格分开,并按回车键确认:n,i);scanf(%s%s%s%s%f,&stu.num,&stu.xibie,&stu.name,&stu.sex,&stu.age); fwrite(&stu,sizeof(struct student),1,fp); fclose(fp);2添加运动员成绩函数change()此函数的作用为添加短跑、跳高和游泳三项比赛成绩,数据同样会被存入student.dat文件中。具体的程序段如下:void change()struct stud

8、ent stuN,temp; int n,i; FILE *fp; printf(n请输入要输入信息的运动员的序号,按回车键确认:); scanf(%s,&temp.num); reads(stu,&n); for(i=0;i=n) printf(无此运动员信息!n); return; printf(n请输入运动员的短跑、跳高和游泳三项成绩,按回车键确认:n); scanf(%f%f%f,&temp.race,&temp.jump,&temp.swimming); strcpy(stui.name,temp.name); stui.race=temp.race; stui.jump=temp.

9、jump; stui.swimming=temp.swimming; if(fp=fopen(e:student.dat,wb)=NULL) printf(打开文件失败!); return; putw(n,fp); for(i=0;in;i+) fwrite(&stui,sizeof(struct student),1,fp); fclose(fp);3排序函数sort()该函数实现的是三个项目的单项成绩排序。程序首先由一个菜单进入,此时可以选择要排序的项目,按要求操作即可完成排序,排序后的结果将连同名次显示在屏幕上。具体的程序段如下:void sort()/*排序*/ int k; prin

10、tf(*请输入要排序的项目的序号*n); printf( 1.短跑 n); printf( 2.跳远 n); printf( 3.游泳 n); scanf(%d,&k); switch(k) case 1: order1();break; case 2: order2();break; case 3: order3();break; default: printf(输入错误,请输入列表中存在的序号!n ); void order1() FILE *fp; struct student stuN,temp; int i,j,n; reads(stu,&n); for(i=0;in-1;i+) f

11、or(j=0;jn-1-i;j+) if(stuj.racestuj+1.race) strcpy(temp.xibie,stuj.xibie); strcpy(temp.name,stuj.name); temp.race=stuj.race; strcpy(stuj.xibie,stuj+1.xibie); strcpy(stuj.name,stuj+1.name); stuj.race=stuj+1.race; strcpy(stuj+1.xibie,temp.xibie); strcpy(stuj+1.name,temp.name); stuj+1.race=temp.race;if(

12、fp=fopen(e:student.dat,wb)=NULL) printf(打开文件失败!); return; putw(n,fp); j=1; for(i=0;in;i+) fwrite(&stui,sizeof(struct student),1,fp);if(stui.race=stui+1.race)printf(n%3d%5s%5s%8.2fn,j,stui.xibie,stui.name,stui.race);elseprintf(n%3d%5s%5s%8.2fn,j+,stui.xibie,stui.name,stui.race); fclose(fp); void orde

13、r2() FILE *fp; struct student stuN,temp;int i,j,n; reads(stu,&n); for(i=0;in-1;i+) for(j=0;jn-1-i;j+) if(stuj.jumpstuj+1.jump) strcpy(temp.xibie,stuj.xibie); strcpy(temp.name,stuj.name); temp.jump=stuj.jump; strcpy(stuj.xibie,stuj+1.xibie); strcpy(stuj.name,stuj+1.name); stuj.jump=stuj+1.jump; strcp

14、y(stuj+1.xibie,temp.xibie); strcpy(stuj+1.name,temp.name); stuj+1.jump=temp.jump; if(fp=fopen(e:student.dat,wb)=NULL) printf(打开文件失败!); return; putw(n,fp); j=1; for(i=0;in;i+) fwrite(&stui,sizeof(struct student),1,fp);if(stui.jump=stui+1.jump) printf(n%3d%5s%5s%8.2fn,j,stui.xibie,stui.name,stui.jump)

15、; elseprintf(n%3d%5s%5s%8.2fn,j+,stui.xibie,stui.name,stui.jump); fclose(fp); void order3() FILE *fp; struct student stuN,temp; int i,j,n; reads(stu,&n); for(i=0;in-1;i+) for(j=0;jn-1-i;j+) if(stuj.swimmingstuj+1.swimming) strcpy(temp.xibie,stuj.xibie); strcpy(temp.name,stuj.name); temp.swimming=stu

16、j.swimming; strcpy(stuj.xibie,stuj+1.xibie); strcpy(stuj.name,stuj+1.name); stuj.swimming=stuj+1.swimming; strcpy(stuj+1.xibie,temp.xibie); strcpy(stuj+1.name,temp.name); stuj+1.swimming=temp.swimming; if(fp=fopen(e:student.dat,wb)=NULL) printf(打开文件失败!); return; putw(n,fp); j=1; for(i=0;in;i+) fwrit

17、e(&stui,sizeof(struct student),1,fp);if(stui.swimming=stui+1.swimming)printf(n%3d%5s%5s%8.2fn,j,stui.xibie,stui.name,stui.swimming); elseprintf(n%3d%5s%5s%8.2fn,j+,stui.xibie,stui.name,stui.swimming); fclose(fp); 四、个人总结通过这次课程设计,让我复习了所学过的C语言知识,使知识得到实际应用,并发现了许多以前学习的不足。这次课设让我深深体会到,制作程序态度一定要认真,要本着细致严谨的作

18、风,因为一个微小的失误就可以导致整个程序的混乱。这次课设不仅锻炼了我们的思维,还增强了我们的分析问题能力。五、参考文献1谭浩强C程序设计北京:清华大学出版社.2005年2黄 明. C语言课程设计. 北京:电子工业出版社. 2006年3. 郭翠英. C语言课程设计案例精编. 北京:中国水利水电出版社. 2004年六、源程序#include#include#include#define N 20struct studentchar num10; char xibie20; char name10; char sex10; int age; float race; float jump; float

19、 swimming;void menu();void reads();void add();void sort();/*排序*/void change();void order1();void order2();void order3();void main() int n; while(1) menu(); printf(n 请输入您要选择的操作序号,按回车键确认:); scanf(%d,&n); switch(n) case 1: add();break; case 2: change();break; case 3: sort();break; case 4: exit(0);break

20、; default: printf(输入错误,请输入列表中存在的序号!n ); void menu()printf( *运动会成绩管理系统* ); printf(n 1 添加运动员信息); printf(n 2 添加运动员成绩); printf(n 3 单项成绩排序); printf(n 4 退出);void add()/*添加学生信息*/FILE *fp; int n,i,j; struct student stu; if(fp=fopen(e:student.dat,rb+)!=NULL) j=getw(fp); rewind(fp); printf(请输入要添加的运动员数量,按回车键确认

21、:); scanf(%d,&n); putw(j+n,fp); fseek(fp,0L,2); for(i=1;i=n;i+) printf(n请输入第%d个运动员的序号、系别、姓名、性别、年龄,用空格分开,并按回车键确认:n,i); scanf(%s%s%s%s%f,&stu.num,&stu.xibie,&stu.name,&stu.sex,&stu.age); fwrite(&stu,sizeof(struct student),1,fp); else if(fp=fopen(e:student.dat,wb)!=NULL) printf(请输入要添加的运动员数量,按回车键确认:); s

22、canf(%d,&n); putw(n,fp); for(i=1;i=n;i+) printf(n请输入第%d个运动员的序号、系别、姓名、性别、年龄,用空格分开,并按回车键确认:n,i); scanf(%s%s%s%s%f,&stu.num,&stu.xibie,&stu.name,&stu.sex,&stu.age); fwrite(&stu,sizeof(struct student),1,fp); fclose(fp);void reads(struct student stuN,int *n) FILE *fp; int i=0; if(fp=fopen(e:student.dat,r

23、b)=NULL) printf(文件打开失败!n); return; else *n=getw(fp); for(i=0;i*n;i+) fread(&stui,sizeof(struct student),1,fp); fclose(fp);void change()struct student stuN,temp; int n,i; FILE *fp; printf(n请输入要输入信息的运动员的序号,按回车键确认:); scanf(%s,&temp.num); reads(stu,&n); for(i=0;i=n) printf(无此运动员信息!n); return; printf(n请输

24、入运动员的短跑、跳高和游泳三项成绩,按回车键确认:n); scanf(%f%f%f,&temp.race,&temp.jump,&temp.swimming); strcpy(stui.name,temp.name); stui.race=temp.race; stui.jump=temp.jump; stui.swimming=temp.swimming; if(fp=fopen(e:student.dat,wb)=NULL) printf(打开文件失败!); return; putw(n,fp); for(i=0;in;i+) fwrite(&stui,sizeof(struct stud

25、ent),1,fp); fclose(fp);void sort()/*排序*/ int k; printf(*请输入要排序的项目的序号*n); printf( 1.短跑 n); printf( 2.跳远 n); printf( 3.游泳 n); scanf(%d,&k); switch(k) case 1: order1();break; case 2: order2();break; case 3: order3();break; default: printf(输入错误,请输入列表中存在的序号!n ); void order1() FILE *fp; struct student stu

26、N,temp; int i,j,n; reads(stu,&n); for(i=0;in-1;i+) for(j=0;jn-1-i;j+) if(stuj.racestuj+1.race) strcpy(temp.xibie,stuj.xibie); strcpy(temp.name,stuj.name); temp.race=stuj.race; strcpy(stuj.xibie,stuj+1.xibie); strcpy(stuj.name,stuj+1.name); stuj.race=stuj+1.race; strcpy(stuj+1.xibie,temp.xibie); strc

27、py(stuj+1.name,temp.name); stuj+1.race=temp.race;if(fp=fopen(e:student.dat,wb)=NULL) printf(打开文件失败!); return; putw(n,fp); j=1; for(i=0;in;i+) fwrite(&stui,sizeof(struct student),1,fp);if(stui.race=stui+1.race)printf(n%3d%5s%5s%8.2fn,j,stui.xibie,stui.name,stui.race);else printf(n%3d%5s%5s%8.2fn,j+,stui.xibie,stui.name,stui.race); fclose(fp); void order2() FILE *fp; struct student stuN,temp;int i,j,

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1