运动会管理系统资料.docx
- 文档编号:7387914
- 上传时间:2023-05-11
- 格式:DOCX
- 页数:27
- 大小:375.02KB
运动会管理系统资料.docx
《运动会管理系统资料.docx》由会员分享,可在线阅读,更多相关《运动会管理系统资料.docx(27页珍藏版)》请在冰点文库上搜索。
运动会管理系统资料
淮海工学院计算机工程学院
课程设计报告
设计名称:
C语言课程设计
姓名:
***学号:
20141228**
专业班级:
软件工程142
系(院):
软件工程系
设计时间:
2015.6.22-2015.7.5
设计地点:
计算机工程学院机房、教室、学生宿舍、图书馆
成绩:
指导教师评语:
签名:
年月日
1.课程设计目的
C课程设计是计算机科学与技术专业重要的实践性教学环节之一,本次设计结合实际应用的要求,使课程设计既覆盖C++的知识点,又接近工程实际需要。
目的是通过课程设计的综合训练,培养学生实际分析问题、解决问题的能力,以及编程和动手能力,最终目标是通过课程设计这种形式,帮助学生系统掌握C这门课程的主要内容,养成良好的编程习惯,更好的完成教学任务。
2.课程设计任务与要求:
要求:
本次课程设计利用《C程序设计》课程中所学到的编程知识和编程技巧,完成具有一定难度和工作量的程序设计题目,帮助学生掌握编程、调试的基本技能,独立完成所布置的任务。
要求:
1、对系统进行功能需求分析
2、设计合理的数据结构和系统框架
3、编程简练,程序功能齐全,能正确运行
4、说明书、流程图要清楚
5、课题完成后必须按要求提交课程设计报告
任务:
设计一个运动会管理系统,
1)能够提供一个程序界面对运动员的基本资料进行输入、删除、修改和查询等,基本资料应保存在文件中。
2)能够输入、修改、查询某项比赛event的比赛时间,3项比赛的资料保存在文件中。
3) 比赛项目分男子组和女子组,每个运动员的总分计算规则是:
去掉最高分、去掉最低分求平均值。
4)提供界面让工作人员输入每场比赛的所有运动员的每个裁判的分数,能查询某场比赛所有运动员的最后得分
5)评分的资料保存在score.txt中,包含的数据项有:
所属的学校、运动员编号、得分1、得分2、得分3、得分4、得分5、总分、平均分。
3.课程设计说明书
概要设计
模块说明:
在我设计的程序中一共包括了八个模块,分别是:
输入成绩模块、查找成绩模块、修改成绩模块、删除成绩模块、输入时间模块、读取成绩模块、查找时间模块、修改时间模块。
程序的各个功能通过switch语句,把计几大模块联系了起来,同时,为了实现多次使用这几大模块,就在switch语句外加了while循环。
模块机构图
系统流程图
详细设计
参赛队员成绩:
成员成绩写入文件
打开score.txt.在运行窗口输入所有成员信息,信息包括项目编号(1—3),组别(1或2),五项小分,输入后进行判断醒目编号是否在范围内,若超出给出提示要求重新输入,若再次错误继续提示重新输入,计算其总分,平均分,写入文件。
完成输入后询问是否继续输入,若继续按“1”,继续操作,否则为“0”退出输入程序,输出所有输入的数据,关闭文件score.txt。
2)修改成绩信息
输入需要修改运动员的项目号、组别、编号。
以”r”打开score.txt文件,将文件中的数据格式化读入链表,完成读入后,关闭文件。
从链表的头节点开始查找该项成绩记录,查找到后,输入新成绩覆盖旧成绩,完成修改后,以“w”打开score.txt将链表中的数据重新写入score.txt文件,关闭文件。
3)删除参赛队员信息
输入需要修改运动员的项目号、组别、编号。
以”r”打开score.txt文件,将文件中的数据格式化读入链表,完成读入后,关闭文件。
从链表的头节点开始查找该项成绩记录,查找到后,删除该项成绩,以“w”打开score.txt将链表中的数据重新写入score.txt文件,关闭文件
查询成绩
输入需要修改运动员的项目号、组别、编号。
以”r”打开score.txt文件,将文件中的数据格式化读入链表,完成读入后,关闭文件。
从链表的头节点开始查找该项成绩记录,查找到后,输出该队员的成绩列表。
二:
时间
录入比赛时间
依次输入六场比赛的时间,存放在二位字符数组中,完成输入后,将比赛时间写入文件time.txt
2)修改比赛时间
将time.txt文件的时间读入二位字符数组中,输入比赛项目号、组别输入新比赛时间,再次字符数组中的内容写入文件time.txt,
3)查询比赛时间
将time.txt文件的时间读入二位字符数组中,输入比赛项目号、组别输出比赛时间。
4.课程设计成果
#include
#include
#include
#include
chartime[3][2][7];//读取并存放比赛时间
intM;
structcomp
{
intevent;//比赛场次
intsex;//1为男生,2为女生
intno;//参赛队员编号
charname[20];//所属的学校
floatscore[5];
floattotal;
floatave;
comp*next;
}d,a[50];
voidkeyboad()
{
inti;
FILE*fp;
if((fp=fopen("score.txt","w"))==NULL)//保存在score.txt
{
printf("不能创建score.txt文件。
。
。
\n");
exit(0);
}
printf("输入参赛队员的项目、组别、编号、所属的学校、各项小分:
\n");
intt=1;
while(t!
=0)//判断是否停止输入
{
d.total=0;
scanf("%d%d%d%s%f%f%f%f%f",&d.event,&d.sex,&d.no,&d.name,&d.score[0],&d.score[1],&d.score[2],&d.score[3],&d.score[4]);
while(d.event>3||d.event<1||d.sex<1||d.sex>2)//若输入内容有误则重新输入
{
printf("警告:
参赛队员信息输入错误!
\n");
printf("请重新输入参赛队员的项目、组别、编号、所属的学校、各项小分:
\n");
scanf("%d%d%d%s%f%f%f%f%f",&d.event,&d.sex,&d.no,&d.name,&d.score[0],&d.score[1],&d.score[2],&d.score[3],&d.score[4]);
}
floatmin=20,max=0;
for(i=0;i<5;i++)//计算总分,均分
{
d.total+=d.score[i];
if(max max=d.score[i]; if(min>d.score[i]) min=d.score[i]; } d.total=d.total-max-min; d.ave=(float)d.total/3; fprintf(fp,"%d%d%d%s%f%f%f%f%f%f%f\n",d.event,d.sex,d.no,d.name,d.score[0],d.score[1],d.score[2],d.score[3],d.score[4],d.total,d.ave);//信息格式化写入文件 printf("是否继续输入? 1-是,0-否"); scanf("%d",&t); } printf("==========================================================\n"); printf("文件创建完毕。 。 。 。 。 。 \n"); fclose(fp);//输入完毕,关闭文件 } comp*read()//格式化读出文件信息score.txt写入链表 { FILE*fp; if((fp=fopen("score.txt","r"))==NULL) { printf("不能读取score.txt文件。 。 。 \n"); exit(0); } comp*head,*s,*r; head=(comp*)malloc(sizeof(comp));//尾插法创建链表 r=head; printf("项目组别编号学校得分1得分2得分3得分4得分5总分平均分\n"); while(fscanf(fp,"%d%d%d%s%f%f%f%f%f%f%f",&d.event,&d.sex,&d.no,d.name,&d.score[0],&d.score[1],&d.score[2],&d.score[3],&d.score[4],&d.total,&d.ave)>0)/*从文件读取参赛者信息,创建列表*/ { s=(comp*)malloc(sizeof(comp)); s->event=d.event; s->sex=d.sex; s->no=d.no; strcpy(s->name,d.name); s->score[0]=d.score[0]; s->score[1]=d.score[1]; s->score[2]=d.score[2]; s->score[3]=d.score[3]; s->score[4]=d.score[4]; s->total=d.total; s->ave=d.ave; printf("%d%d%3d%10s%3.1f%3.1f%3.1f%3.1f%3.1f%5.1f%6.2f\n",s->event,s->sex,s->no,s->name,s->score[0],s->score[1],s->score[2],s->score[3],s->score[4],s->total,s->ave); r->next=s;r=s; } s->next=NULL;//链表终点 returnhead; fclose(fp); } voidqueue()//格式化读出文件信息score.txt写入链表 { FILE*fp;inti=0,j;M=0; if((fp=fopen("score.txt","r"))==NULL) { printf("不能读取score.txt文件。 。 。 \n"); exit(0); } comp*s=a;d.next=NULL; printf("项目组别编号学校得分1得分2得分3得分4得分5总分平均分\n"); while(fscanf(fp,"%d%d%d%s%f%f%f%f%f%f%f",&d.event,&d.sex,&d.no,d.name,&d.score[0],&d.score[1],&d.score[2],&d.score[3],&d.score[4],&d.total,&d.ave)>0)/*从文件读取参赛者信息,创建列表*/ { *(s+i)=d; printf("%d%d%3d%10s%3.1f%3.1f%3.1f%3.1f%3.1f%5.1f%6.2f\n",s->event,s->sex,s->no,s->name,s->score[0],s->score[1],s->score[2],s->score[3],s->score[4],s->total,s->ave); i++; M++; } fclose(fp);
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 运动会 管理 系统 资料