C语言课设之校运动会管理完整整理.docx
《C语言课设之校运动会管理完整整理.docx》由会员分享,可在线阅读,更多相关《C语言课设之校运动会管理完整整理.docx(22页珍藏版)》请在冰豆网上搜索。
C语言课设之校运动会管理完整整理
C程序设计实习报告
校际运动会管理系统
一、题目要求
(1)信息初始化
输入:
N─参赛学校总数,M─男子竞赛工程数,W─女子竞赛工程数;
各工程名次取法有如下几种:
取前5名:
第一名得分7,第二名得分5,第三名得分3,第四名得分2,第五名得分1;
②取前3名:
第一名得分5,第二名得分3,第三名得分2;
③用户自定义:
各名次权值由用户指定。
(2)提醒用户填写比赛结果,输入各工程获奖运动员信息。
(3)所有信息记录完毕后,用户可以查询各个学校的比赛成绩,生成团体总分报表,察看参赛学校信息和比赛工程信息等。
二.总体设计
分析整个系统,根据以上的需求分析及题目要求,可将整个系统的设计分为以下五个模块:
信息输入、录入比赛结果、查询信息、退出.
1.
总的模块图
三、详细设计
1.主函数
主函数一般设计的较为简洁,只提供输入、功能处理和输出部分的函数调用。
其中各功能模块用菜单方式选择。
另外菜单部分也可以写成函数。
[流程图]
[程序]
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.各功能模块设计
2.信息输入模块
一是参赛学校信息,二是参赛运动员信息,三是比赛工程信息,分别输入并保存
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)。
}
}
3.结果录入模块
(3)查询信息模块
[分析]
查询信息模块提供按不同方式查询各种信息机返回功能,其中各功能模块用菜单方式选择。
菜单部分也可写成函数。
1.结果
各模块界面图如图:
(1)主菜单函数
(2)信息录入模块
(3)查询子菜单
(4)按学校名字查询信息
(5)按工程查询工程信息
(5)查询团体总分
程序代码:
//杨雪.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。
ii++)
{
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。
ii++)
{
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。
ii++)
{
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。
ii++)
{
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。
ii++)
{
if(fwrite(&xx[i],sizeof(structxuexiao),1,fp3)!
=1)
printf("Filewriteerror!
\n")。
}
fclose(fp3)。
printf_back()。
}
voidsaveprogram()//保存工程比赛信息子函数
{
printf("\n请输入关于比赛工程的信息:
")。
for(i=0。
ii++)
{
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。
ii++)
{
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比赛,M.100-男子一百M,M.200-男子两百M。
\n")。
printf("\n各项名次得分权值如下:
\n")。
printf("取前三名:
第一名5分第二名3分第三名2分\n")。
printf("\n请输入各学校的得分情况:
")。
for(i=0。
ii++)
{
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。
ii++)
{
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。
ii++)
{
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。
ii++)
{
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。
ii++)
{
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********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)。
}
}
//公共函数
voidprintf_back()
{
intw。
printf("\n\n\tSUCCESSFUL!
\n\n")。
printf("Whatdoyouwanttodonext?
\n\n\t1).exit\t2).menu:
[]\b\b")。
scanf("%d",&w)。
if(w==1)
exit(0)。
elsemenu()。
}