C语言课程程序设计校际运动会管理系统.docx
- 文档编号:7696419
- 上传时间:2023-01-25
- 格式:DOCX
- 页数:23
- 大小:137.17KB
C语言课程程序设计校际运动会管理系统.docx
《C语言课程程序设计校际运动会管理系统.docx》由会员分享,可在线阅读,更多相关《C语言课程程序设计校际运动会管理系统.docx(23页珍藏版)》请在冰豆网上搜索。
C语言课程程序设计校际运动会管理系统
校际运动会管理系统
摘要
本文介绍了利用C语言对校际运动会管理系统进行设计的过程,从系统总体框架,功能分析,模块设计与分析,类的设计与分析,功能测试等环节通过MicrosoftVisualC++6.0对校际运动会管理系统进行详细的设计,并介绍了校际运动会管理系统如何运用,本次设计是基于C语言的程序设计,利用了C语言的强大功能,设计出的程序运行良好,可以在校际运动会管理系统等方面进行良好的运用。
关键词:
C语言,班级档案管理系统,MicrosoftVisualC++6.0
一、需求分析
(1)信息初始化
输入:
N─参赛学校总数,M─男子竞赛项目数,W─女子竞赛项目数;
各项目名次取法有以下几种:
①取前5名:
第一名得分7,第二名得分5,第三名得分3,第四名得分2,第五名得分1;
②取前3名:
第一名得分5,第二名得分3,第三名得分2;
③用户自定义:
各名次权值由用户指定。
(2)提醒用户填写比赛结果,输入各项目获奖运动员信息。
(3)所有信息记录完毕后,用户可以查询各个学校的比赛成绩,生成团体总分报表,察看参赛学校信息和比赛项目信息等。
二、概要设计
分析整个系统,根据以上的需求分析及设计要求,可将整个系统的设计分为以下五个模块:
信息输入、录入比赛结果、查询信息、退出.
1.系统总体设计框架
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)结果录入模块
(3)查询信息模块
[分析]
查询信息模块提供按不同方式查询各种信息机返回功能,其中各功能模块用菜单方式选择。
菜单部分也可写成函数。
三、详细设计
1.主函数
主函数一般设计的较为简洁,只提供输入、功能处理和输出部分的函数调用。
其中各功能模块用菜单方式选择。
另外菜单部分也可以写成函数。
2.流程图
[程序]
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);
}
}
四、主要源程序代码:
//杨雪.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********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(); } 1.结果 各模块界面图如图: 五、调试分析过程描述 (1)主菜单函数 (2)信息录入模块 (3)查询子菜单 (4)按学校名字查询信息 (5)按项目查询项目信息 (5)查询团体总分 六、总结 C语言课程设计在基本知识上由老师引导,自己很多都靠自学,不明白的问老师,但由此自学能力得到了很大的培养。 在设计过程中,我感觉到一点,程序是不能一气呵成的,至少一气呵成的程序不会尽善尽美: 程序编写要一步一步的完成。 首先,对于要编的程序要有一个总体思路,要明确想要什么,只要把思路理清楚了,程序就好编写了,把程序分割成几个块,即多个函数,一块一块的编写;然后将分散的函数用另外的函数连接起来或者用main函数连接,到这一步
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 课程 程序设计 校际 运动会 管理 系统
![提示](https://static.bdocx.com/images/bang_tan.gif)