C语言课设之校级运动会管理系统.docx

上传人:b****5 文档编号:4042461 上传时间:2022-11-27 格式:DOCX 页数:24 大小:18.55KB
下载 相关 举报
C语言课设之校级运动会管理系统.docx_第1页
第1页 / 共24页
C语言课设之校级运动会管理系统.docx_第2页
第2页 / 共24页
C语言课设之校级运动会管理系统.docx_第3页
第3页 / 共24页
C语言课设之校级运动会管理系统.docx_第4页
第4页 / 共24页
C语言课设之校级运动会管理系统.docx_第5页
第5页 / 共24页
点击查看更多>>
下载资源
资源描述

C语言课设之校级运动会管理系统.docx

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

C语言课设之校级运动会管理系统.docx

C语言课设之校级运动会管理系统

.

C 程序设计实习报告

 

校际运动会管理系统

 

一、题目要求

(1)信息初始化

输入:

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

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

错误!

未找到引用源。

 取前 5 名:

第一名得分 7,第二名得分 5,第三名得分 3,第四名得

分 2,第五名得分 1;

② 取前 3 名:

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

③ 用户自定义:

各名次权值由用户指定。

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

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

校信息和比赛项目信息等。

 

二.总体设计

分析整个系统,根据以上的需求分析及题目要求,可将整个系统的设计分为以下五个模块:

息输入、录入比赛结果、查询信息、退出.

 

1. 总的模块图Saveathele () 保存运动员信

 

InformationSaveschool ()保存学校信息

 

Saveprogram ()保存项目信息

 

Savescore() 比赛结果录入

 

Main

 

Ttzf () 查询团体总分

 

.

.

 

Search ( )Csxx ()查询参赛学校信息

 

Bsxm ()查询团体总分

 

Exi t(0)

 

图 1 整体模块图

 

三、详细设计

1.主函数

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

其中各功能模块

用菜单式选择。

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

 

[流程图]

 

显示一系列功能选项

 

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

 

Y

 

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

 

图2主函数流程图

 

[程序]

void main()

 

{

 

Word 专业资料

.

 

menu();

 

}

 

void menu()

 

{

 

int n,w1;

 

do

 

{

 

puts("\t\t***^__^Welcome to load sports system!

^__^***\n");

 

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

 

puts("\t\t********1.Enter the information**************\n");

 

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

 

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

 

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

 

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

 

printf("Choice your number(1-4):

[ ]\b\b");

 

scanf("%d",&n);

 

if (n<1||n>4)

 

{

 

w1=1;

 

getchar();

 

}

 

else w1=0;

 

Word 专业资料

.

 

}

 

while (w1==1);

 

switch(n)

 

{case 1:

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

 

case 2:

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

 

case 3:

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

 

case 4:

exit(0);

 

}

 

}

 

2. 各功能模块设计

 

(1)信息输入模块

 

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

 

信息输入

 

读入、显示参赛学校读入、显示运动员读入比赛项目

 

图3信息输入模块流程图

 

void Information()

 

{

 

Word 专业资料

.

 

int n,w ;

 

do {

 

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

 

puts("\t\t***^__^Welcome to load 信息录入 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("Choic your number(1-4):

[ ]\b\b");

 

scanf("%d",&n);

 

if (n<1||n>4)

 

{

 

w=1;

 

getchar();

 

}

 

else w=0;

 

}

 

while (w==1);

 

switch(n)

 

{

 

Word 专业资料

.

 

case 1 :

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

 

case 2 :

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

 

case 3 :

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

 

case 4 :

 exit(0);

 

}

}

(2)结果录入模块

 

录入运动员比赛得分

 

分析计算各学校总分

 

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

(3)查询信息模块

[分析]

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

菜单部

分也可写成函数。

 

查询信息模块

 

查询学校查询运动员查询项目返回主菜单

 

图 6查询信息模块流程图

 

Word 专业资料

.

 

定义结构体指针 UNI*next

 

输入学校名字

 

判断输入名字与结构体中学校名

是否相同

 

 

指针变量值向下一组数据

 

图 8 查询学校名流程图

 

 

调用输出函数

 

1.结果

各模块界面图如图:

 

(1) 主菜单函数

 

Word 专业资料

.

 

(2) 信息录入模块

 

(3) 查询子菜单

 

(4) 按学校名字查询信息

 

Word 专业资料

.

 

(5)按项目查询项目信息

 

(5) 查询团体总分

 

Word 专业资料

.

 

程序代码:

#include

#include

#include

#include

 

#define SIZE 9

#define N3

#define WM3

 

void bsxm();

void csxx();

void Information();

int main();

void menu();

void printf_back();

void saveathlete();

void saveprogram();

void saveschool();

void savescore();

void Search();

void ttzf();

int i;

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

 

struct athlete//定义运动员信息

{

char univ[5];

char name[8];

char prog[15];

char mingci[5];

int score;

}at[SIZE];

 

struct xuexiao//定义学校信息

{

char univ[5];

char prog[15];

int num_athlete;

}xx[N];

 

struct program//定义项目信息

 

Word 专业资料

.

 

{

char prog[5];

int quming;

char ath1[5];

char ath2[5];

char univ1[5];

char univ2[5];

}pro[WM];

struct zongfen//定义学校得分信息

{

char univ[5];

char prog1[5];

char prog2[5];

char prog3[5];

int score1;

int score2;

int score3;

int total_score;

}zf[N];

void Information()

{

int n,w ;

do {

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

puts("\t\t***^__^欢迎进入信息录入系统^__^***\n");

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

puts("\t\t********1.运动员**********\n");

puts("\t\t********2.学校**********\n");

puts("\t\t********3.项目信息**********\n");

puts("\t\t********4.返回**********\n");

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

printf("请选择(1-4):

[ ]\b\b");

scanf("%d",&n);

if (n<1||n>4)

{

w=1;

getchar();

}

else w=0;

}

while (w==1);

switch(n)

{

case 1 :

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

 

Word 专业资料

.

 

case 2 :

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

case 3 :

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

case 4 :

 exit(0);

}

}

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

{

 

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(struct athlete),1,fp1)!

=1)

printf("File write error!

\n");

}

fclose(fp1);

 

fp1=fopen("运动员","r");

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

\n\n");

printf("姓名学校项目名次

for(i=0;i

{

 

Word 专业资料

 

得分\n");

.

 

fread(&at[i],sizeof(struct athlete),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();

}

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

{

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("学校","w");

for(i=0;i

{

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

=1)

printf("File write error!

\n");

}

fclose(fp3);

printf_back();

}

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

{

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

");

 

for(i=0;i

{

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

\n",i+1);

 

printf("项目:

");

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

 

Word 专业资料

.

 

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(struct program),1,fp4)!

=1)

printf("File write error!

\n");

}

fclose(fp4);

printf_back();

}

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

{

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:

");

 

Word 专业资料

.

 

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(struct zongfen),1,fp2)!

=1)

printf("File write error!

\n");

}

fclose(fp2);

printf_back();

}

 

void Search()

{

 

int n,w2;

do

{

 

puts("\t\t***^__^欢迎进入搜索系统!

^__^***\n");

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

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

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

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

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

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

 

Word 专业资料

.

 

printf("请选择(1-4):

[ ]\b\b");

scanf("%d",&n);

if (n<1||n>4)

{

w2=1;

getchar();

}

else w2=0;

 

}

while (w2==1);

switch(n)

{case 1:

 ttzf();break;

case 2:

csxx();break;

case 3:

 bsxm();break;

case 4:

exit(0);break;

default:

 printf("未进行任操作!

");

}

 

}

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

{

fp2=fopen("总分","r");

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

\n\n");

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

for(i=0;i

{

fread(&zf[i],sizeof(struct zongfen),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();

 

}

 

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

{

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

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

\n\n");

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

for(i=0;i

{

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

 

Word 专业资料

.

 

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

}

fclose(fp3);

printf_back();

}

 

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

{

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

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

\n\n");

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

for(i=0;i

{

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

 

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

ro[i].ath2,pro[i].univ2);

}

fclose(fp4);

printf_back();

}

 

int main()

 

{

menu();

}

 

void menu()

{

int n,w1;

do

{

 

puts("\t\t********^__^欢迎进入运动会系统^__^**********\n");

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

puts("\t\t******************1.录入信息 ***********************\n");

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

puts("\t\t******************3.查询**************************\n");

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

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

printf("请选择(1-4):

[ ]\b\b");

scanf("%d",&n);

 

Word 专业资料

.

 

if (n<1||n>4)

{

w1=1;

getchar();

}

else w1=0;

}

while (w1==1);

switch(n)

{case 1:

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

case 2:

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

case 3:

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

case 4:

exit(0);

 

}

 

}

 

//公共函数

void print

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

当前位置:首页 > 教学研究 > 教学计划

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

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