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

上传人:仙人指路1688 文档编号:2384834 上传时间:2023-02-17 格式:DOC 页数:24 大小:248KB
返回 下载 相关 举报
C语言课程设计校际运动会管理系统.doc_第1页
第1页 / 共24页
C语言课程设计校际运动会管理系统.doc_第2页
第2页 / 共24页
C语言课程设计校际运动会管理系统.doc_第3页
第3页 / 共24页
C语言课程设计校际运动会管理系统.doc_第4页
第4页 / 共24页
C语言课程设计校际运动会管理系统.doc_第5页
第5页 / 共24页
点击查看更多>>
资源描述

《C语言课程设计校际运动会管理系统.doc》由会员分享,可在线阅读,更多相关《C语言课程设计校际运动会管理系统.doc(24页珍藏版)》请在三一办公上搜索。

1、中南大学C语言程序设计实践报告题 目 校际运动会管理系统 学生姓名 刘世界 指导教师 汤哲 学 院 信息院 专业班级 电气1111班 完成时间 2012年6月27 校际运动会管理系统 一、题目要求 校际运动会管理系统1、需要处理的基础数据学校信息:学校编号、学校名称、男子竞赛项目、女子竞赛项目、项目积分、总分等运动员信息:运动员编号、所属学校、姓名、性别、年龄、参赛项目、成绩、名次、积分等2、系统的基本功能基本信息输入:输入学校、运动员的基本信息竞赛信息输入:(1)根据运动员的参赛项目和获取名次,自动给予运动员相应的积分:第1名得分 5,第2名得分 3,第3名得分2,其他名次不得分;(2)根据

2、运动员所属的学校,自动给学校的相应竞赛项目加上积分;信息查询: (1)查询学校信息(2)查询运动员信息成绩排序按照分数从高到低,对学校的团体名次、学校的男子或女子竞赛名次进行排序。二.总体设计分析整个系统,根据以上的需求分析及题目要求,可将整个系统的设计分为以下五个模块:信息输入、录入比赛结果、查询信息、按分排序、退出.Saveathele ()保存运动员信息1 总的模块图 Saveschool ()保存学校信息InformationSaveprogram ()保存项目信息Savescore() 比赛结果录入Main Ttzf () 查询团体总分Csxx ()查询参赛学校信息Search (

3、)Bsxm ()查询团体总分Rank()Exi t(0)图1 整体模块图 三、 详细设计 主函数主函数一般设计的较为简洁,只提供输入、功能处理和输出部分的函数调用。其中各功能模块用菜单方式选择。另外菜单部分也可以写成函数。流程图显示一系列功能选项输入,判断是否是4根据的值调用各功能模块函数图主函数流程图 Y程序int main()menu(); void menu()int n,w1;do puts(tt*_ 欢迎进入校际运动会管理系统 _*n); puts(tt*菜单*n); puts(tt* 1.信息录入 *n); puts(tt* 2.比赛结果录入 *n); puts(tt* 3.查询

4、*n); puts(tt* 4.排序 *n); puts(tt* 5.退出 *n); puts(tt*n); printf(Choice your number(1-4): bb); scanf(%d,&n); if (n4) 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:rank();break;/排序模块 case 5:exit(0

5、); 2. 各功能模块设计(1) 信息输入模块一是参赛学校信息,二是参赛运动员信息,三是比赛项目信息,分别输入并保存信息输入读入、显示参赛学校读入、显示运动员读入比赛项目图信息输入模块流程图void Information() int n,w ; do puts(nnn);puts(tt*_ Welcome to load 信息录入 system! _*n); puts(tt*MENU*n); puts(tt* 1.运动员 *n); puts(tt* 2.参赛学校 *n); puts(tt* 3.比赛项目 *n); puts(tt* 4.退出 *n); puts(tt*n); printf(C

6、hoic your number(1-4): bb); scanf(%d,&n); if (n4) 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)查询信息模块分析查询信息模块提

7、供按不同方式查询各种信息机返回功能,其中各功能模块用菜单方式选择。菜单部分也可写成函数。查询信息模块查询学校查询运动员查询项目返回主菜单图6查询信息模块流程图定义结构体指针UNI*next输入学校名字判断输入名字与结构体中学校名是否相同指针变量值向下一组数据调用输出函数图8 查询学校名流程图(4)排序模块 按照分数从高到低,对学校的团体名次进行排序 结果各模块界面图如图:() 主菜单函数() 信息录入模块() 查询子菜单() 按学校名字查询信息(5) 按项目查询项目信息() 查询团体总分() 学校得分排名 四、 总结反思实践出真知,通过C语言程序设计,更加深刻的认识到这个亘古不变的真理。我们当

8、代大学生需要培养的就是这种动手能力。在课程设计的过程中,不可避免的遇到了不少问题,比如函数的调用,分数根据名次的自动生成,文件的使用,数组的调用,等等等等。但,遇到最多的问题还是变脸的类型以及声明。字符型变量char与字符串型变量的赋值问题,等等等等,不一而足。而且,更让人兴奋的是通过实践,发现了不同编译器拥有不同的函数和头文件,这样就为自己以后的工作带来了便利。慢慢的熟悉了C-Free的使用则是另一种收获。总而言之,我希望这样的实践活动更多一些,虽然过程中大家会有苦痛,会有不愿,但经历过才知道,收获的喜悦!程序代码:#include#include#include#include#defin

9、e SIZE 3#define N 3 #define WM 3void bsxm();void csxx();void Information();int main();void menu();void printf_back();void saveathlete();void saveprogram();void saveschool();void savescore();void Search();void rank(); void ttzf();int i;int mingci;int score;FILE *fp1,*fp2,*fp3,*fp4;struct athlete/定义运动

10、员信息char univ5, name8, sex5, prog15; int mingci,t score;atSIZE;struct xuexiao/定义学校信息char univ5;char prog15;int num_athlete;xxN;struct program/定义项目信息int quming; char prog5, ath15, ath25, univ15, univ25;proWM;struct zongfen /定义学校得分信息char univ5;char prog15;char prog25;char prog35;int score1;int score2;i

11、nt score3;int total_score;zfN;void Information() int n,w ; do puts(nnn); puts(tt*_ Welcome to load 信息录入 system! _*n); puts(tt*MENU*n); puts(tt* 1.运动员 *n); puts(tt* 2.参赛学校 *n); puts(tt* 3.比赛项目 *n); puts(tt* 4.退出 *n); puts(tt*n); printf(Choic your number(1-4): bb); scanf(%d,&n); if (n4) w=1;getchar();

12、 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;iSIZE;i+) printf(n请输入第%d个运动员的信息:n,i+1);printf(姓名:); scanf(%s

13、,ati.name); printf(性别:); scanf(%s,ati.sex); printf(学校:); scanf(%s,ati.univ); printf(参赛项目:); scanf(%s,ati.prog);printf(名次:);scanf(%d,&mingci);int p;p=mingci; switch(p) case 1:score=5;break;case 2:score=3;break;case 3:score=2;break;default:score=0; printf(得分:); printf(%d,score);fp1=fopen(ath,w);for(i=

14、0;iSIZE;i+)if(fwrite(&ati,sizeof(struct athlete),1,fp1)!=1)printf(File write error!n);fclose(fp1);fp1=fopen(ath,r); printf(n现在各运动员的信息如下:nn); printf(姓名 性别 学校 项目 名次 得分n);for(i=0;iSIZE;i+)fread(&ati,sizeof(struct athlete),1,fp1); printf(%-10s%-10s%-10s%-10s%-10s%dn,ati.name,ati.sex,ati.univ,ati.prog,at

15、i.mingci,ati.score);fclose(fp1);printf_back();void saveschool()/保存学校信息子函数printf(n请输入各参赛学校的信息:);for(i=0;iN;i+)printf(n请输入第%d个学校的信息:n,i+1);printf(学校:);scanf(%s,xxi.univ);printf(参赛的项目:);scanf(%s,xxi.prog);printf(参赛者数:);scanf(%d,&xxi.num_athlete);fp3=fopen(xxiao,w);for(i=0;iN;i+)if(fwrite(&xxi,sizeof(st

16、ruct xuexiao),1,fp3)!=1)printf(File write error!n);fclose(fp3); printf_back();void saveprogram()/保存项目比赛信息子函数printf(n请输入关于比赛项目的信息:);for(i=0;iWM;i+)printf(n请输入第%d项比赛的信息:n,i+1);printf(项目:);scanf(%s,proi.prog);printf(取分情况:);scanf(%d,&proi.quming);printf(参赛者1:);scanf(%s,proi.ath1);printf(所属学校:);scanf(%s,

17、proi.univ1);printf(参赛者2:);scanf(%s,proi.ath2);printf(所属学校:);scanf(%s,proi.univ2); fp4=fopen(pr,w);for(i=0;iN;i+)if(fwrite(&proi,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-女子一百米

18、比赛,M.100-男子一百米,M.200-男子两百米。n);printf(n各项名次得分权值如下:n);printf(取前三名:第一名5分 第二名3分 第三名2分n);printf(n请输入各学校的得分情况:); for(i=0;iN;i+)printf(n请输入第%d个学校的得分情况:n,i+1);printf(学校:);scanf(%s,zfi.univ); printf(参赛项目1:);scanf(%s,zfi.prog1);printf(得分:);scanf(%d,&zfi.score1);printf(参赛项目2:);scanf(%s,zfi.prog2);printf(得分:);s

19、canf(%d,&zfi.score2);printf(参赛项目3:);scanf(%s,zfi.prog3);printf(得分:);scanf(%d,&zfi.score3);zfi.total_score=zfi.score1+zfi.score2+zfi.score3; fp2=fopen(zfen,w);for(i=0;iN;i+)if(fwrite(&zfi,sizeof(struct zongfen),1,fp2)!=1)printf(File write error!n);fclose(fp2); printf_back();void Search()int n,w2;do p

20、uts(tt*_ Welcome to load search system! _*n); puts(tt*MENU*n); puts(ttO(_)O* 1.search 团体总分 *O(_)On);/查看团体总分 puts(ttO(_)O* 2.search 参赛学校 *O(_)On);/查看参赛学校信息! puts(ttO(_)O* 3.search 比赛项目 *O(_)On);/查看比赛项目信息! puts(ttO(_)O* 4.Exit *O(_)On);/退出 puts(tt*n); printf(Choice your number(1-4): bb); scanf(%d,&n);

21、 if (n4) 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 rank()int j,t,score20; printf(学校得分排名:n);for(i=0;iN;i+)scorei=zfi.total_score;for(j=1;jN;j+)for(i=0;iN-j;i+)if(scoreiscor

22、ei+1)t=scorei;scorei=scorei+1;scorei+1=t;for(i=0;iN;i+) printf(%s:%dn,zfi.univ,scorei); void ttzf()/查看学校团体总分子函数fp2=fopen(zfen,r); printf(n各学校的团体总分情况如下:nn); printf(学校 参赛项目 总分n);for(i=0;iN;i+)fread(&zfi,sizeof(struct zongfen),1,fp2); printf(%-8s%s,%s,%-12s%-12dn,zfi.univ,zfi.prog1,zfi.prog2,zfi.prog3,

23、zfi.total_score);fclose(fp2);printf_back();void csxx()/查看参赛学校信息子函数 fp3=fopen(xxiao,r); printf(n各参赛学校的情况如下:nn); printf(学校 参赛项目 参赛者数n);for(i=0;iN;i+)fread(&xxi,sizeof(struct xuexiao),1,fp3); printf(%-8s%-20s%-12dn,xxi.univ,xxi.prog,xxi.num_athlete);fclose(fp3); printf_back();void bsxm()/查看比赛项目子函数 fp4=

24、fopen(pr,r); printf(n各比赛项目的信息如下:nn); printf(项目 取分情况 参赛者1 所属学校 参赛者2 所属学校n);for(i=0;iN;i+)fread(&proi,sizeof(struct program),1,fp4); printf(%-12s%-10d%-10s%-12s%-10s%-12sn,proi.prog,proi.quming,proi.ath1,proi.univ1,proi.ath2,proi.univ2);fclose(fp4);printf_back();int main()menu(); void menu()int n,w1;d

25、o puts(tt*_ 欢迎进入校际运动会管理系统 _*n); puts(tt*菜单*n); puts(tt* 1.信息录入 *n); puts(tt* 2.比赛结果录入 *n); puts(tt* 3.查询 *n); puts(tt* 4.排序 *n); puts(tt* 5.退出 *n); puts(tt*n); printf(Choice your number(1-4): bb); scanf(%d,&n); if (n4) 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:rank();break;/排序模块 case 5:exit(0); /公共函数void printf_back() int w; printf(nntSUCCESSFUL!nn); printf(What do you want to do next?nnt1).exit t2).menu: bb); scanf(%d,&w); if(w=1) exit(0); else menu();

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

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号