文档库 最新最全的文档下载
当前位置:文档库 › C语言课程设计校际运动会管理系统

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

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

中国地质大学本科生课程论文封面

课程名称C语言课程设计

教师姓名邵老师

本科生姓名赵鸿

本科生学号20091000477

本科生专业应用化学

所在院系材化学院

类别: C.本科生

日期: 2010 年7 月5 日

课程设计评语

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

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

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

目录

课程设计评语 (2)

目录 (3)

1.课程论文题目 (4)

2.程序设计思路 (4)

3.功能模块图 (4)

4.数据结构设计 (5)

5.算法设计 (7)

6.程序代码 (11)

7.程序运行结果 (20)

8.编程中遇到的困难及解决方法 (23)

9.总结心得及良好建议 (23)

10.致谢 (24)

课程论文题目

1.校际运动会管理系统

一、题目要求

(1)信息初始化

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

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

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

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

用户自定义:各名次权值由用户指定。

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

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

2.程序设计思路

根据题目要求应提供键盘式菜单实现功能选择,还应提供信息的输入操作,由于在程序中提供查询功能所以应有显示、查找等操作。根据上面的需求分析,可以将这个系统的设计分为1、信息输入模块2、比赛结果录入模块3、查询模块。具体校际运动会管理系统分为信息的输入、结果的输入、学校各个项目的得分的查寻、总体报表的生成。

3.功能模块图

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

4.数据结构设计

数据结构采用结构体的形式,包括学校、项目、运动员三个结构体。比如学校结构体成员包括学校校名、竞赛项目、得分;项目结构体成员包括项目名、权值。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 //定义项目信息

{

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];

5.算法设计

1.主函数一般设计的较为简洁,只提供输入、功能处理和输出部分的函数调用。其中各功能模块用菜单方式选择。另外菜单部分也可以写成函数。

[程序]

void main() {

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)

图2 主函数流程图

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);

}

}

2.各功能模块设计

(1)信息输入模块

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

图3信息输入模块流程图

void Information()

{

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******** 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)

{

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

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

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

case 4 : exit(0);

}

}

(2)结果录入模块

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

(3)查询信息模块

[分析]

查询信息模块提供按不同方式查询各种信息机返回功能,其中各功能模块用菜单方式选择。菜单部分也可写成函数。

图6查询信息模块流程图

图8 查询学校名流程图

6.程序代码

// 杨雪.cpp : Defines the entry point for the console application. //

#include

#include

#include

#include

#define SIZE 9

#define N 3

#define WM 3

void bsxm();

void csxx();

void Information();

void 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];

struct xuexiao //定义学校信息

{

char univ[5];

char prog[15];

int num_athlete;

}xx[N];

struct program //定义项目信息

{

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***^__^ Welcome to load 信息录入system! ^__^***\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)

{

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

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].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("ath","r");

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

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

for(i=0;i

{

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);

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

}

fp3=fopen("xxiao","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);

printf("取分情况:");

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

printf("参赛者1:");

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

printf("所属学校:");

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

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:");

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

printf("得分:");

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

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***^__^ Welcome to load search system! ^__^***\n");

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

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

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

puts("\t\t******** 3.search bsxm **************\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)

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("zfen","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");

{

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

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, pro[i].ath2,pro[i].univ2);

}

fclose(fp4);

printf_back();

}

void main()

{

menu();

}

void menu()

{

int n,w1;

do

{

puts("\t\t***^__^ Welcome to load sports system! ^__^***\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;

}

while (w1==1);

switch(n)

{case 1:Information();break; //输入信息

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

case 3:Search();break;//查询模块

case 4:exit(0);

}

}

7.程序运行结果【

(1)主菜单函数

相关文档