C课程设计任务书 评分管理程序.docx

上传人:b****1 文档编号:14423664 上传时间:2023-06-23 格式:DOCX 页数:28 大小:22.09KB
下载 相关 举报
C课程设计任务书 评分管理程序.docx_第1页
第1页 / 共28页
C课程设计任务书 评分管理程序.docx_第2页
第2页 / 共28页
C课程设计任务书 评分管理程序.docx_第3页
第3页 / 共28页
C课程设计任务书 评分管理程序.docx_第4页
第4页 / 共28页
C课程设计任务书 评分管理程序.docx_第5页
第5页 / 共28页
C课程设计任务书 评分管理程序.docx_第6页
第6页 / 共28页
C课程设计任务书 评分管理程序.docx_第7页
第7页 / 共28页
C课程设计任务书 评分管理程序.docx_第8页
第8页 / 共28页
C课程设计任务书 评分管理程序.docx_第9页
第9页 / 共28页
C课程设计任务书 评分管理程序.docx_第10页
第10页 / 共28页
C课程设计任务书 评分管理程序.docx_第11页
第11页 / 共28页
C课程设计任务书 评分管理程序.docx_第12页
第12页 / 共28页
C课程设计任务书 评分管理程序.docx_第13页
第13页 / 共28页
C课程设计任务书 评分管理程序.docx_第14页
第14页 / 共28页
C课程设计任务书 评分管理程序.docx_第15页
第15页 / 共28页
C课程设计任务书 评分管理程序.docx_第16页
第16页 / 共28页
C课程设计任务书 评分管理程序.docx_第17页
第17页 / 共28页
C课程设计任务书 评分管理程序.docx_第18页
第18页 / 共28页
C课程设计任务书 评分管理程序.docx_第19页
第19页 / 共28页
C课程设计任务书 评分管理程序.docx_第20页
第20页 / 共28页
亲,该文档总共28页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

C课程设计任务书 评分管理程序.docx

《C课程设计任务书 评分管理程序.docx》由会员分享,可在线阅读,更多相关《C课程设计任务书 评分管理程序.docx(28页珍藏版)》请在冰点文库上搜索。

C课程设计任务书 评分管理程序.docx

C课程设计任务书评分管理程序

课程设计任务书

题目名称

Platform-Diving评分管理程序

学生学院

专业班级

姓名

学号

一、课程设计的内容

开发一个程序用于管理Platform-Diving比赛时5米、7.5米和10米跳台等赛事裁判员对赛事的评分.

运动会中有3个赛事和很多运动员,每个运动员可以参加几个赛事,每场比赛有多个运动员参加。

每场比赛有若干个裁判评价运动员的比赛表现,对每个运动员的比赛表演做出评分。

假设只有这3项比赛(5米跳台PD5、7.5米跳台PD7、10米跳台PD10),每场比赛有5个裁判评分.

二、课程设计的要求与数据

1.开始运行程序时能够从event.xml文件中读出比赛名称和比赛日期。

能够提供一个程序界面修改比赛日期。

比赛的数据项包括:

eventName、eventDate。

说明:

假定斜体标注部分的数据才会变化,其余字符是不会改变的。

PD5,2009-11-20

PD7,2009-11-21

PD10,2009-11-22

2.能够提供一个程序界面对运动员的基本资料做输入、删除、修改、查询操作;运动员的数据项包括:

姓名name、编号cID、性别sex、出生日期birthdate、所属队team,参加比赛perform.运动员的资料保存在文件名为competitor.xml的文件中。

在输入运动员的基本资料时要输入该运动员参加的比赛(3种比赛中的1种比赛,提供选择输入,也就是通过输入代号如输入1表示5米跳台,但是屏幕上要有提示代号代表的含义)。

编号cID必须保证唯一,而且是输入时由程序来自动编号也就是说不需要从界面输入。

文件格式如下:

ZhangSan,1,m,1990-9-18,ShangHai,PD5

lisi,2,f,1991-9-18,GuangDong,PD5

Alice,3,f,1992-9-18,GuangDong,PD7

Tom,4,m,1992-9-28,ShangHai,PD7

3、能够提供程序界面让运动会工作人员输入某场比赛的所有运动员(逐个运动员输入)的每个裁判的评分,并能计算出最后的总分(计算规则:

去掉一个最高分和一个最低分后分数之和再求平均);能查询并在屏幕上打印出某场比赛所有运动员的最后得分,显示出冠军、亚军、季军的运动员姓名、得分、所属队名称。

能在屏幕上显示每个队的金牌gold、银牌silver、铜牌copper数目。

评分的资料保存在文件名为score.txt的文件中.包括的数据项有:

eventName,cID,score1,score2,score3,score4,score5,netScore.说明:

每个裁判的评分在0~10之间,可以有1位小数。

要求:

上面的文件(event.xml,competitor.xml,score.txt)操作用文本文件方式。

三、课程设计应完成的工作

1、设计整个程序的总体结构

2、使用C语言的Project完成程序编写与调试

3、程序功能的测试

4、撰写设计说明书

5、提交材料包括:

.c文件、.h文件,.prj文件、数据文件(.xml,.txt),设计文档.doc文件及doc文件双面打印稿

四、课程设计进程安排

序号

设计各阶段内容

地点

起止日期

1

主函数、运动员的信息管理

1-5至1-12

2

运动员成绩管理

1-12至1-16

五、应收集的资料及主要参考文献

[1]谭浩强.C语言程序设计[M].北京:

清华大学出版社,2005年

 

目录

Platform-Diving评分管理程序1

1、设计任务与要求1

1.1任务概述1

1.2需求与功能描述1

1.3设计要求2

2、总体结构设计2

3、详细设计2

31.主要的数据结构2

3.2主要的算法或程序流程图2

3.3函数说明2

4、程序测试说明3

5、程序的使用说明3

6、参考文献3

附录:

源程序3

Platform-Diving评分管理程序

1、设计任务与要求

1.1任务概述

开发一个程序用于管理Platform-Diving比赛时5米、7.5米和10米跳台等赛事裁判员对赛事的评分.

运动会中有3个赛事和很多运动员,每个运动员可以参加几个赛事,每场比赛有多个运动员参加。

每场比赛有若干个裁判评价运动员的比赛表现,对每个运动员的比赛表演做出评分。

假设只有这3项比赛(5米跳台PD5、7.5米跳台PD7、10米跳台PD10),每场比赛有5个裁判评分.

1.2需求与功能描述

1.开始运行程序时能够从event.xml文件中读出比赛名称和比赛日期。

能够提供一个程序界面修改比赛日期。

比赛的数据项包括:

eventName、eventDate。

说明:

假定斜体标注部分的数据才会变化,其余字符是不会改变的。

PD5,2009-11-20

PD7,2009-11-21

PD10,2009-11-22

2.能够提供一个程序界面对运动员的基本资料做输入、删除、修改、查询操作;运动员的数据项包括:

姓名name、编号cID、性别sex、出生日期birthdate、所属队team,参加比赛perform.运动员的资料保存在文件名为competitor.xml的文件中。

在输入运动员的基本资料时要输入该运动员参加的比赛(3种比赛中的1种比赛,提供选择输入,也就是通过输入代号如输入1表示5米跳台,但是屏幕上要有提示代号代表的含义)。

编号cID必须保证唯一,而且是输入时由程序来自动编号也就是说不需要从界面输入。

文件格式如下:

ZhangSan,1,m,1990-9-18,ShangHai,PD5

lisi,2,f,1991-9-18,GuangDong,PD5

Alice,3,f,1992-9-18,GuangDong,PD7

Tom,4,m,1992-9-28,ShangHai,PD7

3、能够提供程序界面让运动会工作人员输入某场比赛的所有运动员(逐个运动员输入)的每个裁判的评分,并能计算出最后的总分(计算规则:

去掉一个最高分和一个最低分后分数之和再求平均);能查询并在屏幕上打印出某场比赛所有运动员的最后得分,显示出冠军、亚军、季军的运动员姓名、得分、所属队名称。

能在屏幕上显示每个队的金牌gold、银牌silver、铜牌copper数目。

评分的资料保存在文件名为score.txt的文件中.包括的数据项有:

eventName,cID,score1,score2,score3,score4,score5,netScore.说明:

每个裁判的评分在0~10之间,可以有1位小数。

要求:

上面的文件(event.xml,competitor.xml,score.txt)操作用文本文件方式。

1.3设计要求

程序开始运行时提供一个主菜单,有上面3个功能的菜单项供选择。

上面的3个文件都用C语言的文本文件来实现。

要用C语言的工程文件多源程序文件编程。

测试用的输入数据可以只用英文和数值,可以不用中文。

以上为基本要求,在完成基本要求的基础上可以自己根据实际适当增加功能。

2、总体结构设计

1.比赛日期的修改

2.运动员信息管理

3.运动员分数管理

3、详细设计

31.主要的数据结构

structevent//定义比赛信息结构体

{chareventName[5];//结构体成员,比赛名称

charDate[20];//结构体成员,比赛日期

}even[3];//定义结构体数组

structathlete//定义运动员信息结构体

{

charcID[10];//结构体成员,运动员编号

charname[20];//结构体成员,运动员姓名

charsex[5];//结构体成员,运动员性别

charbirthdate[15];//结构体成员,运动员出生日期

charteam[20];//结构体成员,运动员所属队伍

charperform[5];//结构体成员,参加比赛

structathlete*next;//下一个结点

};

structscore//定义分数结构体

{charevenName[5];//结构体成员,比赛名

charcID[10];//结构体成员,运动员编号

charname[20];//结构体成员,运动员名字

charteam[20];//结构体成员,所属队伍

floatscore[5];//结构体成员,分数

floatnetScore;//结构体成员,平均分

structscore*next;//

下一个结点

};

3.2主要的算法或程序流程图

开始

选择要执行的操作

选择要操作的代号

输入正确的数据(返回)

选择要执行的操作

选择要操作的代号

输入数据(返回)

选择要执行的操作

选择要操作的代号

输入数据(返回)

结束

3.3函数说明

voidSwrite();输出评分资料

voidSput();输入评分

voidIrevise();修改运动员信息

voidIdel();删除运动员信息

voidIscan();查看运动员信息

voidIread();读取运动员信息

voidIwrite();输出运动员信息

voidIput();输入运动员信息

voidExit();退出

voidsubmT();修改时间

voidsubmR();分数操作菜单

voidsubmIn();信息操作菜单

voidMmenu();主菜单

voidmain();主函数

4、程序测试说明

把文件event.xml放在程序所在文件夹

5、程序的使用说明

选择菜单操作时一定要输入菜单提示的数字代号

选择是否得操作时y/n是小写字母

很多操作都有提示

6、参考文献

[1]谭浩强.C语言程序设计[M].北京:

清华大学出版社,2005年

 

附录:

源程序

#include/*声明*/

#include

#include

voidSwrite();

voidSput();

voidIrevise();

voidIdel();

voidIscan();

voidIread();

voidIwrite();

voidIread();

voidIput();

voidExit();

voidsubmT();

voidsubmR();

voidsubmIn();

voidMmenu();

structevent

{chareventName[5];

charDate[20];

}even[3];

structathlete

{

charcID[10];

charname[20];

charsex[5];

charbirthdate[15];

charteam[20];

charperform[5];

structathlete*next;

};

structscore

{charevenName[5];

charcID[10];

charname[20];

charteam[20];

floatscore[5];

floatnetScore;

structscore*next;

};

intn=0,m=0;/*全局变量*/

structathlete*head=NULL;

structscore*head1=NULL,*head2=NULL,*head3=NULL;

voidSscan()/*分数查看函数*/

{system("cls");

printf("Platform-DivingScoringprocedures\n\n");

printf("*********************************************\n");

printf("Theresultoftheperform\n");

printf("====================================\n");

printf("Scorescan\n\n\n");

intpf=0,i=0;

floata=0,b=0,c=0;

structscore*head0=NULL,*p,*p1,*p2,*p3;

printf("Choosetheperform(1.PD5;2.PD7;3.PD10):

");

while(pf==0||pf>3)

{scanf("%d",&pf);

switch(pf)

{case1:

head0=head1;break;

case2:

head0=head2;break;

case3:

head0=head3;break;

default:

printf("Yourchooseisnotrequired,Enteragain:

");

}

}

if(head0!

=NULL)

{printf("\nnamenetscoreteam\n");

p=head0;

do

{

printf("%-12s%-15.1f%-10s\n",p->name,p->netScore,p->team);

if(p->netScore>a){p3=p2;p2=p1;p1=p;}

else

{if(p->netScore>b){p3=p2;p2=p;}

else

if(p->netScore>c)p3=p;

}

p=p->next;i++;

}while(p!

=NULL);

printf("\n\nTopthree\n");/*前三名*/

printf("\nrankingnamenetscoreteam\n");

if(i==1)printf("champion%-10s%-12.1f%-10s\n",p1->name,p1->netScore,p1->team);

if(i==2)

{printf("champion%-10s%-12.1f%-10s\n",p1->name,p1->netScore,p1->team);

printf("secondplace%-10s%-12.1f%-10s\n",p2->name,p2->netScore,p2->team);

}

if(i>=3)

{printf("champion%-10s%-12.1f%-10s\n",p1->name,p1->netScore,p1->team);

printf("secondplace%-10s%-12.1f%-10s\n",p2->name,p2->netScore,p2->team);

printf("thirdplace%-10s%-12.1f%-10s\n",p3->name,p3->netScore,p3->team);

}

}

else

printf("\nlistnull!

\n");

printf("\nInputanykeytoleave");

getche();return;

}

voidSwrite()/*分数写入score.txt文件函数*/

{structscore*p;

FILE*fp;

if((fp=fopen("score.txt","w"))==NULL)

{printf("Fileopenerror\n");getche();return;}

p=head1;

for(;p!

=NULL;)

{fprintf(fp,"%s,%s,%2.1f,%2.1f,%2.1f,%2.1f,%2.1f,%2.1f\n",p->evenName,p->cID,p->score[0],p->score[1],p->score[2],p->score[3],p->score[4],p->netScore);

p=p->next;}

p=head2;

for(;p!

=NULL;)

{fprintf(fp,"%s,%s,%2.1f,%2.1f,%2.1f,%2.1f,%2.1f,%2.1f\n",p->evenName,p->cID,p->score[0],p->score[1],p->score[2],p->score[3],p->score[4],p->netScore);

p=p->next;}

p=head3;

for(;p!

=NULL;)

{fprintf(fp,"%s,%s,%2.1f,%2.1f,%2.1f,%2.1f,%2.1f,%2.1f\n",p->evenName,p->cID,p->score[0],p->score[1],p->score[2],p->score[3],p->score[4],p->netScore);

p=p->next;

}

}

voidSput()/*分数输入函数*/

{FILE*fp;

inti=0,j,k=0,pf=0,max,min;

chareventN[5];

structathlete*p1,*p2;

structscore*head0=NULL,*po1,*po2;

po1=po2=(structscore*)malloc(sizeof(structscore));

system("cls");

printf("Platform-DivingScoringprocedures\n\n");

printf("*********************************************\n");

printf("Theresultoftheperform\n");

printf("====================================\n");

printf("Inputthescore\n\n\n");

if(head==NULL)gotoend;

printf("Choosetheperform(1.PD5;2.PD7;3.PD10):

");

while(pf==0||pf>3)

{scanf("%d",&pf);

switch(pf)

{case1:

strcpy(eventN,"PD5");break;

case2:

strcpy(eventN,"PD7");break;

case3:

strcpy(eventN,"PD10");break;

default:

printf("Yourchooseisnotrequired,Enteragain:

");

}

}

p1=head;

do

{if(strcmp(eventN,p1->perform)==0)

{k=1;po1->netScore=0;max=0;min=10;

strcpy(po1->cID,p1->cID);

strcpy(po1->name,p1->name);

strcpy(po1->evenName,p1->perform);

strcpy(po1->team,p1->team);

printf("Theathleteis%s\n",po1->name);

for(i=0;i<5;i++)

{printf("Enterthescoreofjudge%d(0~10):

",i+1);

scanf("%f",&po1->score[i]);

while(po1->score[i]>10)

{printf("Thescoreisnotrequired,Enteragain:

");

scanf("%f",&po1->score[i]);}

if(po1->score[i]>max)max=po1->score[i];

if(po1->score[i]score[i];

po1->netScore=po1->netScore+po1->score[i];

}

po1->netScore=(po1->netScore-max-min)/3.0;

if(head0==NULL)head0=po1;

elsepo2->next=po1;

po2=po1;

po1=(structscore*)malloc(sizeof(structscore));

}

p1=p1->next;

}while(p1->next!

=NULL);

po2->next=NULL;

switch(pf)

{case1:

head1=head0;break;

case2:

head2=head0;break;

case3:

head3=head0;break;

}

end:

if(k==0)printf("\nlistnull!

\n");

else

{printf("InputthescoreAccomplish\n");}

printf("Inputanykeytoleave");getche();return;

}

voidIrevise()/*信息修改函数*/

{system("cls");

printf("Platform-DivingScoringprocedures\n\n");

printf("*********************************************\n");

printf("Informationoftheathletes\n");

printf("====================================\n");

printf("Informationrevise\n\n\n");

charName[15],correct[15];

intpj=0,pf=0;

structathlete*p;

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2