运动会积分系统C语言.docx

上传人:b****8 文档编号:9571109 上传时间:2023-02-05 格式:DOCX 页数:30 大小:122.07KB
下载 相关 举报
运动会积分系统C语言.docx_第1页
第1页 / 共30页
运动会积分系统C语言.docx_第2页
第2页 / 共30页
运动会积分系统C语言.docx_第3页
第3页 / 共30页
运动会积分系统C语言.docx_第4页
第4页 / 共30页
运动会积分系统C语言.docx_第5页
第5页 / 共30页
点击查看更多>>
下载资源
资源描述

运动会积分系统C语言.docx

《运动会积分系统C语言.docx》由会员分享,可在线阅读,更多相关《运动会积分系统C语言.docx(30页珍藏版)》请在冰豆网上搜索。

运动会积分系统C语言.docx

运动会积分系统C语言

程序设计报告

(2014/2015学年第2学期)

 

题目:

运动会积分系统

 

专业

组长学号姓名

组员学号姓名

指导教师

指导单位

日期

成员分工

组长()

组员()

组员()

 

评分细则

评分项

优秀

良好

中等

遵守机房规章制度

上机时的表现

学习态度

程序准备情况

程序设计能力

团队合作精神

课题功能实现情况

算法设计合理性

用户界面设计

报告书写认真程度

内容详实程度

文字表达熟练程度

回答问题准确度

简短评语

 

教师签名:

年月日

评分等级

查柯丞

贾世恩

备注

评分等级共五种:

优秀、良好、中等、及格、不及格

运动会积分系统

一、课题内容和要求

学生运动会成绩数据库系统记录某校运动会上全部运动项目,各系获得的分数及排名的情况,包括50、100、200,400,1500米,跳高,跳远,标枪,铅球铁饼等。

请设计一个积分系统,方便学校对比赛成绩进行统计管理。

二、需求分析

运动会积分系统的功能框架图如图1所示。

图1功能框架图

管理员:

1)以管理员身份登录,预先设定参加运动会的系院数目,男子项目数女子项目数,(每项目取前三名,分别为10,5,2分)

2)管理员凭密码进入录入成绩状态,填写比赛结果,输入各项目获奖运动员的信息,但录入完成后不得修改成绩。

可以按各系院编号输出总分;按总分排序;按男团体总分排序;按系院编号查询;按项目编号查询;按女团体总分排序。

3)审核各院系提交的复核申请,予以批准后修改成绩。

普通用户:

1)普通用户可以查询各个比赛成绩,生成团体总分报表,查看参赛院系的成绩和各比赛项目最终名次等。

2)允许提交复核申请,提请管理员修改成绩。

三、概要设计

1主要结构体

typedefstructnode1{

intschool;/*院系编号*/

intrecord;/*项目成绩*/

structnode1*next;/*链域*/

}Schools;

typedefstruct{

intitem;/*项目编号*/

Schools*firstschool;/*链域指向链表中第一个结点*/

}ITEM;

typedefstruct{

intz;/*项目总数*/

ITEMa[MAX];

}ALLitems;

typedefstructnode2{

intitem;/*该院系获奖的项目*/

intrecord;/*项目成绩*/

structnode2*next;/*链域*/

}Items;

typedefstruct{

intschool;/*院系编号*/

intscore;/*院系总分*/

intboys;/*男团体总分*/

intgirls;/*女团体总分*/

Items*firstitem;/*链域指向链表中第一个获奖项目的结点*/

}SCHNode;

typedefstruct{

intn;/*院系总数*/

SCHNodeb[MAX];

}ALLNode;

ALLitems*g1;

ALLNode*g2;

2主要函数流程图

 

图2登录函数

 

图3主函数流程

四、源程序代码

#include

#include

#include

#include

//#include/*屏幕操作函数*/

#defineMAX50

//#defineNULL0

structuser

{

charuser_Name[6];

charuser_Pass[6];

}stu[1]={"admin","admin"};//初始化用户名和对应密码

voidprint_Passwd(void)

{

inti=0;//当前账号标记

intflag1=0;//登录成功标记

intflag=0;//密码正确标记

charp[6];//临时用户名

chars[6];//临时密码

charnum=0;//密码次数

chartemp;//登录后改密码

printf("请输入登录名:

\n");

scanf("%s",p);

if(strcmp(stu[i].user_Name,p)==0)

{

flag=1;

}

if(1==flag)

{

printf("请输入密码:

\n");

scanf("%s",s);

}

else

{

printf("没有此用户:

\n");

exit(0);

}

while(strcmp(stu[i].user_Pass,s)!

=0)

{

printf("密码错误!

\n");

printf("请重新输入密码:

\n");

scanf("%s",s);

}

printf("登录成功!

\n");

printf("注:

你是管理员!

\n");

}

typedefstructnode1{

intschool;/*院系编号*/

intrecord;/*项目成绩*/

structnode1*next;/*链域*/

}Schools;

typedefstruct{

intitem;/*项目编号*/

Schools*firstschool;/*链域指向链表中第一个结点*/

}ITEM;

typedefstruct{

intz;/*项目总数*/

ITEMa[MAX];

}ALLitems;

typedefstructnode2{

intitem;/*该院系获奖的项目*/

intrecord;/*项目成绩*/

structnode2*next;/*链域*/

}Items;

typedefstruct{

intschool;/*院系编号*/

intscore;/*院系总分*/

intboys;/*男团体总分*/

intgirls;/*女团体总分*/

Items*firstitem;/*链域指向链表中第一个获奖项目的结点*/

}SCHNode;

typedefstruct{

intn;/*院系总数*/

SCHNodeb[MAX];

}ALLNode;

ALLitems*g1;

ALLNode*g2;

voidfunct1(ALLitems*g1,ALLNode*g2)

{

Schools*p1;

Items*p2;

inti=1,j,k,m,w,h,x;

p1=(Schools*)malloc(sizeof(Schools));

p2=(Items*)malloc(sizeof(Items));

if(!

p1||!

p2)

exit

(1);

printf("\n******输入各个项目信息******\n\n");

printf("输入男子项目总数m:

");

scanf("%d",&m);

if(m<0||m>20)

{

printf("输入有误,m是20以内的整数,请重新输入:

");

scanf("%d",&m);

}

printf("输入女子项目总数w:

");

scanf("%d",&w);

if(w<0||w>20)

{

printf("输入有误,w是20以内的整数,请重新输入:

");

scanf("%d",&w);

}

printf("输入参加运动会的院系总数n:

");

scanf("%d",&g2->n);

if(g2->n<0||g2->n>20)

{

printf("输入有误,n是20以内的整数,请重新输入:

");

scanf("%d",&g2->n);

}

g1->z=m+w;

printf("则项目编号为男子1-%d,女子%d-%d",m,m+1,g1->z);

printf("\n\n****记录运动会成绩****");

printf("\n\n(输入0标志结束)\n");

printf("\t项目1:

50米、项目2:

100米、项目3:

200米、项目4:

400米、项目5:

1500米、\n");

printf("\t项目6:

跳高、项目7:

跳远、项目8:

标枪、项目9:

铅球、项目10:

铁饼\n");

for(k=1;k<=g1->z;k++)

{

g1->a[k].item=k;

g1->a[k].firstschool=NULL;

}

for(k=1;k<=g2->n;k++)

{

g2->b[k].school=k;

g2->b[k].firstitem=0;

g2->b[k].score=0;

g2->b[k].boys=0;

g2->b[k].girls=0;

}

g2->b[0].score=0;

g2->b[0].boys=0;

g2->b[0].girls=0;

while(i!

=0)

{

printf("\n项目:

");

scanf("%d",&i);

if(i!

=0)

{

printf("请输入前三名:

\n");

h=3;

do{

printf("第%d名:

院系(院系编号为数字)",h);

scanf("%d",&x);

p1=(Schools*)malloc(sizeof(Schools));

p1->school=x;

p2=(Items*)malloc(sizeof(Items));

p2->item=i;

if(h==3)p2->record=p1->record=2;

if(h==2)p2->record=p1->record=5;

if(h==1)p2->record=p1->record=10;

p1->next=g1->a[i].firstschool;

g1->a[i].firstschool=p1;

p2->next=g2->b[x].firstitem;

g2->b[x].firstitem=p2;

g2->b[x].score=g2->b[x].score+p2->record;/*累计总分*/

if(i<=m)g2->b[x].boys=g2->b[x].boys+p2->record;/*累计男团体总分*/

elseg2->b[x].girls=g2->b[x].girls+p2->record;/*累计女团体总分*/

h--;

}while(x!

=0&&h!

=0);

}

}

}

voidsave()

{

FILE*fp1,*fp2;

fp1=(FILE*)malloc(sizeof(FILE));

fp2=(FILE*)malloc(sizeof(FILE));

if((fp1=fopen("sports1","wb"))==NULL)

{

printf("cannotopenfile.\n");

return;

}

if(fwrite(g1,sizeof(ALLitems),1,fp1)!

=1)

printf("filewriteerror.\n");

fclose(fp1);

if((fp2=fopen("sports2","wb"))==NULL)

{

printf("cannotopenfile.\n");

return;

}

if(fwrite(g2,sizeof(ALLNode),1,fp2)!

=1)

printf("filewriteerror.\n");

fclose(fp2);

}

voidfunct2(ALLNode*g2)/*输出各院系总分*/

{

intk;

printf("\n\n******输出各院系总分******\n");

printf("院系编号\t总分\n");

for(k=1;k<=g2->n;k++)

printf("%d\t\t\t%d\n",k,g2->b[k].score);

printf("\n");

system("pause");

printf("按任意键返回主菜单......");

getchar();

}

voidfunct3(ALLNode*g2)/*按院系编号排序输出*/

{

intk;

Items*p2;

p2=(Items*)malloc(sizeof(Items));

printf("\n\n******按院系编号排序输出******\n");

printf("院系编号\t\t\t获奖情况\n");

scanf("%d",&k);

for(k=1;k<=g2->n;k++)

{

printf("\t\t\t%d\t",k);

p2=g2->b[k].firstitem;

while(p2!

=NULL)

{

printf("\t\t项目%d:

得%d分",p2->item,p2->record);

p2=p2->next;

}

printf("\n");

}

printf("\n");

system("pause");

printf("按任意键返回主菜单......");

getchar();

}

voidfunct4(ALLNode*g2)/*按院系总分排序输出*/

{

inti,j,k;

Items*p2;

printf("\n\n******按院系总分排序输出******\n");

printf("院系编号\t\t总分\n");

scanf("%d",&k);

//printf("输入要查询的项目编号:

");

for(i=2;i<=g2->n;i++)

{

printf("%d\t",k);

p2=g2->b[k].firstitem;

while(p2!

=NULL)

{

printf("%d\t\t%d\n",g2->b[k].school,g2->b[k].score);

p2=p2->next;

}

printf("\n");

g2->b[0].score=g2->b[i].score;

g2->b[0].boys=g2->b[i].boys;

g2->b[0].girls=g2->b[i].girls;

g2->b[0].school=g2->b[i].school;

j=i-1;

while(g2->b[0].scoreb[j].score&&j>0)

{

g2->b[j+1].score=g2->b[j].score;

g2->b[j+1].boys=g2->b[j].boys;

g2->b[j+1].girls=g2->b[j].girls;

g2->b[j+1].school=g2->b[j].school;

j--;

}

g2->b[j+1].score=g2->b[0].score;

g2->b[j+1].boys=g2->b[0].boys;

g2->b[j+1].girls=g2->b[0].girls;

g2->b[j+1].school=g2->b[0].school;

}

for(k=1;k<=g2->n;k++)

printf("%d\t\t%d\n",g2->b[k].school,g2->b[k].score);

system("pause");

printf("按任意键返回主菜单......");

getchar();

}

voidfunct5(ALLNode*g2)/*按男团体总分排序输出*/

{

inti,j,k;

Items*p2;

p2=(Items*)malloc(sizeof(Items));

printf("\n\n******按男团体总分排序输出******\n");

printf("院系编号\t\t男团体总分\n");

scanf("%d",&k);

//printf("输入要查询的院系编号:

");

for(i=2;i<=g2->n;i++)

{

printf("%d\t",k);

p2=g2->b[k].firstitem;

while(p2!

=NULL)

{

printf("%d\t\t%d\n",g2->b[k].school,g2->b[k].boys);

p2=p2->next;

}

printf("\n");

g2->b[0].score=g2->b[i].score;

g2->b[0].boys=g2->b[i].boys;

g2->b[0].girls=g2->b[i].girls;

g2->b[0].school=g2->b[i].school;

j=i-1;

while(g2->b[0].boysb[j].boys&&j>0)

{

g2->b[j+1].score=g2->b[j].score;

g2->b[j+1].boys=g2->b[j].boys;

g2->b[j+1].girls=g2->b[j].girls;

g2->b[j+1].school=g2->b[j].school;

j--;

}

g2->b[j+1].score=g2->b[0].score;

g2->b[j+1].boys=g2->b[0].boys;

g2->b[j+1].girls=g2->b[0].girls;

g2->b[j+1].school=g2->b[0].school;

}

for(k=1;k<=g2->n;k++)

printf("%d\t\t%d\n",g2->b[k].school,g2->b[k].boys);

system("pause");//暂停等待

printf("按任意键返回主菜单......");

getchar();

}

voidfunct6(ALLNode*g2)/*按女团体总分排序输出*/

{

inti,j,k;

Items*p2;

p2=(Items*)malloc(sizeof(Items));

printf("\n\n******按女团体总分排序输出******\n");

printf("院系编号\t\t女团体总分\n");

scanf("%d",&k);

//printf("输入要查询的项目编号:

");

for(i=2;i<=g2->n;i++)

{

printf("%d\t",k);

p2=g2->b[k].firstitem;

while(p2!

=NULL)

{

printf("%d\t\t%d\n",g2->b[k].school,g2->b[k].girls);

p2=p2->next;

}

printf("\n");

g2->b[0].score=g2->b[i].score;

g2->b[0].boys=g2->b[i].boys;

g2->b[0].girls=g2->b[i].girls;

g2->b[0].school=g2->b[i].school;

j=i-1;

while(g2->b[0].girlsb[j].girls&&j>0)

{

g2->b[j+1].score=g2->b[j].score;

g2->b[j+1].boys=g2->b[j].boys;

g2->b[j+1].girls=g2->b[j].girls;

g2->b[j+1].school=g2->b[j].school;

j--;

}

g2->b[j+1].score=g2->b[0].score;

g2->b[j+1].boys=g2->b[0].boys;

g2->b[j+1].girls=g2->b[0].girls;

g2->b[j+1].school=g2->b[0].school;

}

for(k=1;k<=g2->n;k++)

printf("%d\t\t%d\n",g2->b[k].school,g2->b[k].girls);

system("pause");

printf("按任意键返回主菜单......");

getchar();

}

voidfunct7(ALLNode*g2)/*按院系编号查询院系某个项目情况*/

{

inti,j;

It

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

当前位置:首页 > 人文社科 > 教育学心理学

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

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