• 165.00 KB
  • 2022-09-27 发布

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

  • 18页
  • 当前文档由用户上传发布,收益归属用户
  1. 1、本文档由用户上传,淘文库整理发布,可阅读全部内容。
  2. 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,请立即联系网站客服。
  3. 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细阅读内容确认后进行付费下载。
  4. 网站客服QQ:403074932
中国地质大学本科生课程论文封面课程名称C语言课程设计教师姓名樊远远媛媛本科生姓名张桀滈本科生学号本科生专业土地资源管理所在院系资源学院类别:本科生日期:2012年2月19日18\n课程设计评语对课程论文的评语:平时成绩:课程论文成绩:总成绩:评阅人签名:注:1、无评阅人签名成绩无效;2、必须用钢笔或圆珠笔批阅,用铅笔阅卷无效;3、如有平时成绩,必须在上面评分表中标出,并计算入总成绩。18\n目录课程设计评语2目录31.课程论文题目42.程序设计思路43.功能模块图44.数据结构设计65.算法设计76.程序代码107.程序运行结果158.编程中遇到的困难及解决方法179.总结心得及良好建议1810.致谢1818\n课程论文题目1.校际运动会管理系统一、题目要求(1)信息初始化输入:N─参赛学校总数,M─男子竞赛项目数,W─女子竞赛项目数;各项目名次取法有如下几种:取前5名:第一名得分7,第二名得分5,第三名得分3,第四名得分2,第五名得分1;取前3名:第一名得分5,第二名得分3,第三名得分2;用户自定义:各名次权值由用户指定。(2)提醒用户填写比赛结果,输入各项目获奖运动员信息。(3)所有信息记录完毕后,用户可以查询各个学校的比赛成绩,生成团体总分报表,察看参赛学校信息和比赛项目信息等。2.程序设计思路根据题目要求应提供键盘式菜单实现功能选择,还应提供信息的输入操作,由于在程序中提供查询功能所以应有显示、查找等操作。根据上面的需求分析,可以将这个系统的设计分为1、信息输入模块2、比赛结果录入模块3、查询模块。具体校际运动会管理系统分为信息的输入、结果的输入、学校各个项目的得分的查寻、总体报表的生成。3.功能模块图(每个功能模块都标注函数名称,如右图)18\n学校总数男生项目数信息输入女生项目数比赛结果录入主函数以学校检索检索以项目检索以运动员检索退出18\n4.数据结构设计数据结构采用结构体的形式,包括学校、项目、运动员三个结构体。比如学校结构体成员#include#include#include#defineA100inty=0,f=0,j,W,M,N,p[15],q[15];structstudent{charshool[20];charname[20];charitem[20];charsex;intmingci;intmark;}stu[A];structitem{charname[20];charsex;intmark;}it[A];structshool{charname[20];charitem[20];intmark;}sho[A]{18\n5.算法设计1.主函数一般设计的较为简洁,只提供输入、功能处理和输出部分的函数调用。其中各功能模块用菜单方式选择。另外菜单部分也可以写成函数。显示一系列功能选项输入n,判断n是否是1-4N根据n的值调用各功能模块函数图2 主函数流程图Y[程序]voidmain(){voidmenu();menu();}voidmenu(){voidestablish(),enter(),search();intw1,n;do{puts("\t\t*****************MENU********************");puts("\n\n\t\t1.输入信息\n");puts("\t\t2.输入比赛结果\n");puts("\t\t3.查询比赛信息\n");puts("\t\t4.退出\n");puts("\n\t\t*****************************************");puts("\n\n请选择:");scanf("%d",&n);}while(0);switch(n){case1:establish();break;case2:enter();break;18\ncase3:search();break;case4:exit(0);}}各功能模块设计(1)信息输入模块一是参赛学校信息,二是参赛运动员信息,三是比赛项目信息,分别输入并保存信息输入读入、显示参赛学校读入、显示运动员读入比赛项目图3 信息输入模块流程图voidestablish(){voidzidingyi();inth,r;externN,M,W;y=1;printf("\n请输入学校数量:");scanf("%d",&N);printf("\n请输入男运动员数量:");scanf("%d",&M);printf("\n请输入女运动员数量");scanf("%d",&W);printf("\n有三种权值取法,请选择:");printf("\n\n\t1).第一名七分,第二名五分,第三名三分,第四名五分,第五名一分.");printf("\n\n\t2).第一名五分,第二名三分,第三名一分.");printf("\n\n\t3).由您自己定义.");printf("\n\n请输入编号(1--3):");scanf("%d",&h);switch(h){case1:j=1;break;case2:j=2;break;case3:zidingyi();18\n}printf("设置成功\n按任意键会菜单");scanf("%d",&r);menu();}(1)结果录入模块录入运动员比赛得分图4 比赛结果录入模块流程图分析计算各学校总分voidenter(){intt,r,i=0;externj,y;charF,M;voidmark(intj,inti);do{printf("\n请输入运动员的名字:");scanf("%s",&stu[i].name);printf("\n请输入运动员的学校:");scanf("%s",&stu[i].shool);printf("\n请输入运动员的项目:");scanf("%s",&stu[i].item);printf("\n请输入运动员的性别(m\w):\t");scanf("%s",&stu[i].sex);printf("\n请输入名次:");scanf("%d",&stu[i].mingci);mark(j,i);loop_2:printf("\n\n继续输入码?\t1).Yes\t2).No\t");scanf("%d",&t);if(t==2)break;i++;}while(t==1);f=1;printf("输入成功\n请按任意键退出");scanf("%d",&r);menu();}(3)查询信息模块[分析]18\n查询信息模块提供按不同方式查询各种信息机返回功能,其中各功能模块用菜单方式选择。菜单部分也可写成函数。6.程序代码#include#include#include#defineA100inty=0,f=0,j,W,M,N,p[15],q[15];structstudent{charshool[20];charname[20];charitem[20];charsex;intmingci;intmark;}stu[A];structitem{charname[20];charsex;intmark;}it[A];structshool{charname[20];charitem[20];intmark;}sho[A];voidmain(){voidmenu();menu();}18\nvoidmenu(){voidestablish(),enter(),search();intw1,n;do{puts("\t\t*****************MENU********************");puts("\n\n\t\t1.输入信息\n");puts("\t\t2.输入比赛结果\n");puts("\t\t3.查询比赛信息\n");puts("\t\t4.退出\n");puts("\n\t\t*****************************************");puts("\n\n请选择:");scanf("%d",&n);}while(0);switch(n){case1:establish();break;case2:enter();break;case3:search();break;case4:exit(0);}}voidestablish(){voidzidingyi();inth,r;externN,M,W;y=1;printf("\n请输入学校数量:");scanf("%d",&N);printf("\n请输入男运动员数量:");scanf("%d",&M);printf("\n请输入女运动员数量");scanf("%d",&W);printf("\n有三种权值取法,请选择:");printf("\n\n\t1).第一名七分,第二名五分,第三名三分,第四名五分,第五名一分.");printf("\n\n\t2).第一名五分,第二名三分,第三名一分.");printf("\n\n\t3).由您自己定义.");printf("\n\n请输入编号(1--3):");scanf("%d",&h);switch(h){case1:j=1;break;case2:j=2;break;18\ncase3:zidingyi();}printf("设置成功\n按任意键会菜单");scanf("%d",&r);menu();}voidenter(){intt,r,i=0;externj,y;charF,M;voidmark(intj,inti);do{printf("\n请输入运动员的名字:");scanf("%s",&stu[i].name);printf("\n请输入运动员的学校:");scanf("%s",&stu[i].shool);printf("\n请输入运动员的项目:");scanf("%s",&stu[i].item);printf("\n请输入运动员的性别(m\w):\t");scanf("%s",&stu[i].sex);printf("\n请输入名次:");scanf("%d",&stu[i].mingci);mark(j,i);loop_2:printf("\n\n继续输入码?\t1).Yes\t2).No\t");scanf("%d",&t);if(t==2)break;i++;}while(t==1);f=1;printf("输入成功\n请按任意键退出");scanf("%d",&r);menu();}voidsearch(){intr;voidsearch_school(),search_item();inte;charc;externf;if(f==0){printf("请先输入数据\n输入任意键退出..\n");scanf("%s",&c);menu();}loop:printf("\n请选择检索类型:\n\t1).以学校检索\n\t2).以项目检索\n\t3).退出\t");scanf("%d",&e);switch(e){case1:search_school();{printf("输入成功\n请按任意键退出");scanf("%d",&r);menu();}18\ncase2:search_item();{printf("输入成功\n请按任意键退出");scanf("%d",&r);menu();}case3:menu();}}voidsearch_school(){voidprintf_one(),printf_face(),printf_sum();intx,sum=0,w=0;structstudents;printf("\n请输入你要检索的学校名字:");scanf("%s",&s.shool);printf_face();for(x=0;x导致有许多未定义的errors;在输入字符串时用到“%S”,使功能无法输出。由于原来题目要求较少,题目较简单,在编译时,我先按照题目要求将它编写好,之后又给它添加了很多功能。在帮同学修改程序的过程中,也遇到过一个问题。在头文件后定义了子函数,可是之后忘了编写子函数,在纠错时,有的是不会发现错误的,但是连接过程中就会报告出错。我觉得在以后的编程过程中,最好用什么函数写什么函数,后者在写完一个子函数后再在头文件底下声明。9.总结心得及良好建议C语言实习基本上由老师引导,自己很多都靠自学,不明白的问老师,自学能力得到了很大的培养。在实习过程中,我感觉到一点,程序是不能一气呵成的。至少一气呵成的程序不会尽善尽美。程序编写要一步一步的完成。首先,对于要编的程序要有一个总体思路。要明确想要什么。只要把思路理清楚了,程序就好编写了。把程序分割成几个块,即多个函数,一块一块的编写。然后将分散的函数用另外的函数连接起来或者用main函数连接。到这一步,程序也就初步编成了,之后便是调试,检查错误。最后我觉得还可以对于已经编写好的程序进行一些修改添加,使它更加人性化。优化程序的阶段是很重要的。18\n10.致谢在C语言的实习过程中,让我巩固了C语言的基础知识,以前从来没有这样编过完整的程序,实习让我有这样的一个机会,自己独立编写程序。我觉得自己说学的东西不多,但是可以将它们运用出来。在实习过程中,首先我要感谢我的老师,一个是带我走进C语言大门的曹老师,因为她,我开始喜欢C语言,把所学知识掌握牢固。同时,在这次实习中,樊老师对我的帮助对我最难忘。题目本身是很简单的,在老师的教学风格影响下,我在编写完最初程序后,有自己添加了很多功能。在此,我要感谢她。最后,我还要感谢给我帮助的同学,在一些程序问题上,我和同学交流经验,学到了很多在书本上学不到的东西。总之,我真诚的感谢在这次实习中给过我帮助的人!18

相关文档