C语言课程设计校际运动会管理系统.docx

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

C语言课程设计校际运动会管理系统.docx

《C语言课程设计校际运动会管理系统.docx》由会员分享,可在线阅读,更多相关《C语言课程设计校际运动会管理系统.docx(26页珍藏版)》请在冰点文库上搜索。

C语言课程设计校际运动会管理系统.docx

C语言课程设计校际运动会管理系统

 

中国地质大学

本科生课程论文封面

课程名称C语言课程设计

教师姓名邵老师

本科生姓名赵鸿

本科生学号20091000477

本科生专业应用化学

所在院系材化学院

类别:

C.本科生

日期:

2010年7月5日

 

课程设计评语

对课程论文的评语:

平时成绩:

课程论文成绩:

总成绩:

评阅人签名:

注:

1、无评阅人签名成绩无效;

2、必须用钢笔或圆珠笔批阅,用铅笔阅卷无效;

3、如有平时成绩,必须在上面评分表中标出,并计算入总成绩。

课程论文题目

1.校际运动会管理系统

一、题目要求

(1)信息初始化

输入:

N─参赛学校总数,M─男子竞赛项目数,W─女子竞赛项目数;

各项目名次取法有如下几种:

取前5名:

第一名得分7,第二名得分5,第三名得分3,第四名得分2,第五名得分1;

取前3名:

第一名得分5,第二名得分3,第三名得分2;

用户自定义:

各名次权值由用户指定。

(2)提醒用户填写比赛结果,输入各项目获奖运动员信息。

(3)所有信息记录完毕后,用户可以查询各个学校的比赛成绩,生成团体总分报表,察看参赛学校信息和比赛项目信息等。

2.程序设计思路

根据题目要求应提供键盘式菜单实现功能选择,还应提供信息的输入操作,由于在程序中提供查询功能所以应有显示、查找等操作。

根据上面的需求分析,可以将这个系统的设计分为1、信息输入模块2、比赛结果录入模块3、查询模块。

具体校际运动会管理系统分为信息的输入、结果的输入、学校各个项目的得分的查寻、总体报表的生成。

3.功能模块图

(每个功能模块都标注函数名称,如右图)

 

Main

Information

Saveathele()保存运动员信息

Saveschool()保存学校信息

Saveprogram()保存项目信息

Savescore()比赛结果录入

Search()

Ttzf()查询团体总分

Csxx()查询参赛学校信息

Bsxm()查询团体总分

Exit(0)

 

4.数据结构设计

数据结构采用结构体的形式,包括学校、项目、运动员三个结构体。

比如学校结构体成员包括学校校名、竞赛项目、得分;项目结构体成员包括项目名、权值。

structathlete//定义运动员信息

{

charuniv[5];

charname[8];

charprog[15];

charmingci[5];

intscore;

}at[SIZE];

structxuexiao//定义学校信息

{

charuniv[5];

charprog[15];

intnum_athlete;

}xx[N];

structprogram//定义项目信息

{

charprog[5];

intquming;

charath1[5];

charath2[5];

charuniv1[5];

charuniv2[5];

}pro[WM];

structzongfen//定义学校得分信息

{

charuniv[5];

charprog1[5];

charprog2[5];

charprog3[5];

intscore1;

intscore2;

intscore3;

inttotal_score;

}zf[N];

5.算法设计

1.主函数一般设计的较为简洁,只提供输入、功能处理和输出部分的函数调用。

其中各功能模块用菜单方式选择。

另外菜单部分也可以写成函数。

显示一系列功能选项

输入n,判断n是否是1-4

根据n的值调用各功能模块函数

图2 主函数流程图

Y

[程序]

voidmain()

{

menu();

}

voidmenu()

{

intn,w1;

do

{

puts("\t\t***^__^Welcometoloadsportssystem!

^__^***\n");

puts("\t\t************************MENU*************************\n");

puts("\t\t********1.Entertheinformation**************\n");

puts("\t\t********2.Score比赛结果录入**************\n");

puts("\t\t********3.Search**************\n");

puts("\t\t********4.Exit**************\n");

puts("\t\t******************************************************\n");

printf("Choiceyournumber(1-4):

[]\b\b");

scanf("%d",&n);

if(n<1||n>4)

{

w1=1;

getchar();

}

elsew1=0;

}

while(w1==1);

switch(n)

{case1:

Information();break;//输入信息

case2:

savescore();break;//比赛结果录入

case3:

Search();break;//查询模块

case4:

exit(0);

}

}

2.各功能模块设计

(1)信息输入模块

一是参赛学校信息,二是参赛运动员信息,三是比赛项目信息,分别输入并保存

voidInformation()

{

intn,w;

do{

puts("\n\n\n");

puts("\t\t***^__^Welcometoload信息录入system!

^__^***\n");

puts("\t\t*************************MENU*************************\n");

puts("\t\t********1.saveathlete**********\n");

puts("\t\t********2.saveschool**********\n");

puts("\t\t********3.saveprogram()**********\n");

puts("\t\t********4.back**********\n");

puts("\t\t***************************************\n");

printf("Choicyournumber(1-4):

[]\b\b");

scanf("%d",&n);

if(n<1||n>4)

{

w=1;

getchar();

}

elsew=0;

}

while(w==1);

switch(n)

{

case1:

saveathlete();break;//保存运动员信息子函数

case2:

saveschool();break;//保存学校信息子函数

case3:

saveprogram();break;//保存项目比赛信息子函数

case4:

exit(0);

}

}

(2)结果录入模块

录入运动员比赛得分

图4 比赛结果录入模块流程图

分析计算各学校总分

(3)查询信息模块

[分析]

查询信息模块提供按不同方式查询各种信息机返回功能,其中各功能模块用菜单方式选择。

菜单部分也可写成函数。

定义结构体指针UNI*next

输入学校名字

判断输入名字与结构体中学校名是否相同

指针变量值向下一组数据

调用输出函数

 N

图8查询学校名流程图

 

6.程序代码

//杨雪.cpp:

Definestheentrypointfortheconsoleapplication.

//

#include

#include

#include

#include

#defineSIZE9

#defineN3

#defineWM3

voidbsxm();

voidcsxx();

voidInformation();

voidmain();

voidmenu();

voidprintf_back();

voidsaveathlete();

voidsaveprogram();

voidsaveschool();

voidsavescore();

voidSearch();

voidttzf();

inti;

FILE*fp1,*fp2,*fp3,*fp4;

structathlete//定义运动员信息

{

charuniv[5];

charname[8];

charprog[15];

charmingci[5];

intscore;

}at[SIZE];

structxuexiao//定义学校信息

{

charuniv[5];

charprog[15];

intnum_athlete;

}xx[N];

structprogram//定义项目信息

{

charprog[5];

intquming;

charath1[5];

charath2[5];

charuniv1[5];

charuniv2[5];

}pro[WM];

structzongfen//定义学校得分信息

{

charuniv[5];

charprog1[5];

charprog2[5];

charprog3[5];

intscore1;

intscore2;

intscore3;

inttotal_score;

}zf[N];

voidInformation()

{

intn,w;

do{

puts("\n\n\n");

puts("\t\t***^__^Welcometoload信息录入system!

^__^***\n");

puts("\t\t*************************MENU*************************\n");

puts("\t\t********1.saveathlete**********\n");

puts("\t\t********2.saveschool**********\n");

puts("\t\t********3.saveprogram()**********\n");

puts("\t\t********4.back**********\n");

puts("\t\t***************************************\n");

printf("Choicyournumber(1-4):

[]\b\b");

scanf("%d",&n);

if(n<1||n>4)

{

w=1;

getchar();

}

elsew=0;

}

while(w==1);

switch(n)

{

case1:

saveathlete();break;//保存运动员信息子函数

case2:

saveschool();break;//保存学校信息子函数

case3:

saveprogram();break;//保存项目比赛信息子函数

case4:

exit(0);

}

}

voidsaveathlete()//保存运动员信息子函数

{

printf("\n请输入各项目获奖运动员的信息:

");

for(i=0;i

{

printf("\n请输入第%d个运动员的信息:

\n",i+1);

printf("姓名:

");

scanf("%s",at[i].name);

printf("学校:

");

scanf("%s",at[i].univ);

printf("参赛项目:

");

scanf("%s",at[i].prog);

printf("名次:

");

scanf("%s",at[i].mingci);

printf("得分:

");

scanf("%d",&at[i].score);

}

fp1=fopen("ath","w");

for(i=0;i

{

if(fwrite(&at[i],sizeof(structathlete),1,fp1)!

=1)

printf("Filewriteerror!

\n");

}

fclose(fp1);

fp1=fopen("ath","r");

printf("\n现在各运动员的信息如下:

\n\n");

printf("姓名学校项目名次得分\n");

for(i=0;i

{

fread(&at[i],sizeof(structathlete),1,fp1);

printf("%-10s%-10s%-18s%-10s%d\n",at[i].name,at[i].univ,at[i].prog,at[i].mingci,at[i].score);

}

fclose(fp1);

printf_back();

}

voidsaveschool()//保存学校信息子函数

{

printf("\n请输入各参赛学校的信息:

");

for(i=0;i

{

printf("\n请输入第%d个学校的信息:

\n",i+1);

printf("学校:

");

scanf("%s",xx[i].univ);

printf("参赛的项目:

");

scanf("%s",xx[i].prog);

printf("参赛者数:

");

scanf("%d",&xx[i].num_athlete);

}

fp3=fopen("xxiao","w");

for(i=0;i

{

if(fwrite(&xx[i],sizeof(structxuexiao),1,fp3)!

=1)

printf("Filewriteerror!

\n");

}

fclose(fp3);

printf_back();

}

voidsaveprogram()//保存项目比赛信息子函数

{

printf("\n请输入关于比赛项目的信息:

");

for(i=0;i

{

printf("\n请输入第%d项比赛的信息:

\n",i+1);

printf("项目:

");

scanf("%s",pro[i].prog);

printf("取分情况:

");

scanf("%d",&pro[i].quming);

printf("参赛者1:

");

scanf("%s",pro[i].ath1);

printf("所属学校:

");

scanf("%s",pro[i].univ1);

printf("参赛者2:

");

scanf("%s",pro[i].ath2);

printf("所属学校:

");

scanf("%s",pro[i].univ2);

}

fp4=fopen("pr","w");

for(i=0;i

{

if(fwrite(&pro[i],sizeof(structprogram),1,fp4)!

=1)

printf("Filewriteerror!

\n");

}

fclose(fp4);

printf_back();

}

voidsavescore()//保存学校得分情况子函数

{

printf("N-参赛学校总数,M-男子竞赛项目数,W-女子竞赛项目数。

\n");

printf("W.100-女子一百米比赛,M.100-男子一百米,M.200-男子两百米。

\n");

printf("\n各项名次得分权值如下:

\n");

printf("取前三名:

第一名5分第二名3分第三名2分\n");

printf("\n请输入各学校的得分情况:

");

for(i=0;i

{

printf("\n请输入第%d个学校的得分情况:

\n",i+1);

printf("学校:

");

scanf("%s",zf[i].univ);

printf("参赛项目1:

");

scanf("%s",zf[i].prog1);

printf("得分:

");

scanf("%d",&zf[i].score1);

printf("参赛项目2:

");

scanf("%s",zf[i].prog2);

printf("得分:

");

scanf("%d",&zf[i].score2);

printf("参赛项目3:

");

scanf("%s",zf[i].prog3);

printf("得分:

");

scanf("%d",&zf[i].score3);

zf[i].total_score=zf[i].score1+zf[i].score2+zf[i].score3;

}

fp2=fopen("zfen","w");

for(i=0;i

{

if(fwrite(&zf[i],sizeof(structzongfen),1,fp2)!

=1)

printf("Filewriteerror!

\n");

}

fclose(fp2);

printf_back();

}

voidSearch()

{

intn,w2;

do

{

puts("\t\t***^__^Welcometoloadsearchsystem!

^__^***\n");

puts("\t\t*************************MENU*************************\n");

puts("\t\t********1.searchttzf**************\n");//查看团体总分

puts("\t\t********2.searchcsxx**************\n");//查看参赛学校信息!

puts("\t\t********3.searchbsxm**************\n");//查看比赛项目信息!

puts("\t\t********4.Exit**************\n");//退出

puts("\t\t***************************************\n");

printf("Choiceyournumber(1-4):

[]\b\b");

scanf("%d",&n);

if(n<1||n>4)

{

w2=1;

getchar();

}

elsew2=0;

}

while(w2==1);

switch(n)

{case1:

ttzf();break;

case2:

csxx();break;

case3:

bsxm();break;

case4:

exit(0);break;

default:

printf("未进行任何操作!

");

}

}

voidttzf()//查看学校团体总分子函数

{

fp2=fopen("zfen","r");

printf("\n各学校的团体总分情况如下:

\n\n");

printf("学校参赛项目总分\n");

for(i=0;i

{

fread(&zf[i],sizeof(structzongfen),1,fp2);

printf("%-8s%s,%s,%-12s%-12d\n",zf[i].univ,zf[i].prog1,zf[i].prog2,zf[i].prog3,zf[i].total_score);

}

fclose(fp2);

printf_back();

}

voidcsxx()//查看参赛学校信息子函数

{

fp3=fopen("xxiao","r");

printf("\n各参赛学校的情况如下:

\n\n");

printf("学校参赛项目参赛者数\n");

for(i=0;i

{

fread(&xx[i],sizeof(structxuexiao),1,fp3);

printf("%-8s%-20s%-12d\n",xx[i].univ,xx[i].prog,xx[i].num_athlete);

}

fclose(fp3);

printf_back();

}

voidbsxm()//查看比赛项目子函数

{

fp4=fopen("pr","r");

printf("\n各比赛项目的信息如下:

\n\n");

printf("项目取分情况参赛者1所属学校参赛者2所属学校\n");

for(i=0;i

{

fread(&pro[i],sizeof(structprogram),1,fp4);

printf("%-12s%-10d%-10s%-12s%-10s%-12s\n",pro[i].prog,pro[i].quming,pro[i].ath1,pro[i].univ1,pro[i].ath2,pro[i].univ2);

}

fclose(fp4);

printf_back();

}

voidmain()

{

menu();

}

voidmenu()

{

intn,w1;

do

{

puts("\t\t***^__^Welcometoloadsportssystem!

^__^***\n");

puts("\t\t*************************MENU*************************\n");

puts("\t\t********1.Entertheinformation**************\n");

puts("\t\t***

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

当前位置:首页 > 医药卫生 > 基础医学

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

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