1、中 国 地 质 大 学本科生课程论文封面课程名称 C语言课程设计 老师姓名 。 本科生姓名 , 本科生学号 。 本科生专业 。所在院系 资源学院 类别: 本科生 日期: 。 课程设计评语对课程论文评语:平时成绩:课程论文成绩:总 成 绩:评阅人署名:注:1、无评阅人署名成绩无效;2、必需用钢笔或圆珠笔批阅,用铅笔阅卷无效;3、如有平时成绩,必需在上面评分表中标出,并计算入总成绩。目 录课程设计评语2目 录31课程论文题目42程序设计思绪43功效模块图44数据结构设计65算法设计76程序代码107程序运行结果158编程中碰到困难及处理方法179总结心得及良好提议1810致谢18课程论文题目1校际
2、运动会管理系统一、题目要求(1)信息初始化 输入:N参赛学校总数,M男子竞赛项目数, W女子竞赛项目数; 各项目名次取法有以下多个:取前5名:第一名得分 7,第二名得分5,第三名得分3,第四名得分2,第五名得分1;取前3名:第一名得分5,第二名得分3,第三名得分2;用户自定义:各名次权值由用户指定。(2)提醒用户填写比赛结果,输入各项目获奖运动员信息。(3)全部信息统计完成后,用户能够查询各个学校比赛成绩,生成团体总分报表,察看参赛学校信息和比赛项目信息等。2程序设计思绪依据题目要求应提供键盘式菜单实现功效选择,还应提供信息输入操作,因为在程序中提供查询功效所以应有显示、查找等操作。依据上面需
3、求分析,能够将这个系统设计分为1、信息输入模块 2、比赛结果录入模块 3、查询模块。具体校际运动会管理系统分为 信息输入、结果输入、学校各个项目标得分查寻、总体报表生成。3功效模块图(每个功效模块全部标注函数名称,如右图)学校总数男生项目数信息输入女生项目数比赛结果录入主函数 以学校检索检索以项目检索以运动员检索退出4数据结构设计 数据结构采取结构体形式,包含学校、项目、运动员三个结构体。比如学校结构体组员#include#include#include#define A 100int y=0,f=0,j,W,M,N,p15,q15;struct student char shool20; c
4、har name20; char item20; char sex; int mingci; int mark;stuA;struct item char name20; char sex; int mark;itA;struct shool char name20; char item20; int mark;shoA5算法设计1.主函数通常设计较为简练,只提供输入、功效处理和输出部分函数调用。其中各功效模块用菜单方法选择。另外菜单部分也能够写成函数。显示一系列功效选项输入,判定是否是4依据值调用各功效模块函数图主函数步骤图 Y程序void main()void menu();menu();
5、void menu() void establish(),enter(),search();int w1,n;do puts(tt*MENU*); puts(nntt 1.输入信息n); puts(tt 2.输入比赛结果n); puts(tt 3.查询比赛信息n); puts(tt 4.退出n); puts(ntt*); puts(nn请选择:); scanf(%d,&n);while(0); switch(n) case 1:establish();break;case 2:enter();break;case 3:search();break;case 4:exit(0); 各功效模块设计
6、(1) 信息输入模块一是参赛学校信息,二是参赛运动员信息,三是比赛项目信息,分别输入并保留信息输入读入、显示参赛学校读入、显示运动员读入比赛项目图信息输入模块步骤图 void establish() void zidingyi();int h,r; extern N,M,W; y=1; printf(n请输入学校数量:); scanf(%d,&N); printf(n请输入男运动员数量:); scanf(%d,&M); printf(n请输入女运动员数量); scanf(%d,&W); printf(n有三种权值取法,请选择:); printf(nnt1).第一名七分,第二名五分,第三名三分,
7、第四名五分,第五名一分.); printf(nnt2).第一名五分,第二名三分,第三名一分.); printf(nnt3).由您自己定义.); printf(nn请输入编号(1-3):); scanf(%d,&h);switch(h)case 1:j=1;break; case 2:j=2;break; case 3:zidingyi();printf(设置成功n按任意键会菜单);scanf(%d,&r); menu();(2) 结果录入模块录入运动员比赛得分图4比赛结果录入模块步骤图分析计算各学校总分 void enter() int t,r,i=0;extern j,y;char F,M;
8、void mark(int j,int i); do printf(n请输入运动员名字:);scanf(%s,&stui.name); printf(n请输入运动员学校:);scanf(%s,&stui.shool); printf(n请输入运动员项目:);scanf(%s,&stui.item); printf(n请输入运动员性别(mw):t);scanf(%s,&stui.sex); printf(n请输入名次:);scanf(%d,&stui.mingci); mark(j,i);loop_2:printf(nn继续输入码?t1).Yest2).Not); scanf(%d,&t); i
9、f(t=2)break; i+; while(t=1);f=1; printf(输入成功n请按任意键退出);scanf(%d,&r); menu(); (3)查询信息模块分析查询信息模块提供按不一样方法查询多种信息机返回功效,其中各功效模块用菜单方法选择。菜单部分也可写成函数。 6程序代码#include#include#include#define A 100int y=0,f=0,j,W,M,N,p15,q15;struct student char shool20; char name20; char item20; char sex; int mingci; int mark;stuA
10、;struct item char name20; char sex; int mark;itA;struct shool char name20; char item20; int mark;shoA;void main()void menu();menu(); void menu() void establish(),enter(),search();int w1,n;do puts(tt*MENU*); puts(nntt 1.输入信息n); puts(tt 2.输入比赛结果n); puts(tt 3.查询比赛信息n); puts(tt 4.退出n); puts(ntt*); puts(
11、nn请选择:); scanf(%d,&n);while(0); switch(n) case 1:establish();break;case 2:enter();break;case 3:search();break;case 4:exit(0); void establish() void zidingyi();int h,r; extern N,M,W; y=1; printf(n请输入学校数量:); scanf(%d,&N); printf(n请输入男运动员数量:); scanf(%d,&M); printf(n请输入女运动员数量); scanf(%d,&W); printf(n有三种
12、权值取法,请选择:); printf(nnt1).第一名七分,第二名五分,第三名三分,第四名五分,第五名一分.); printf(nnt2).第一名五分,第二名三分,第三名一分.); printf(nnt3).由您自己定义.); printf(nn请输入编号(1-3):); scanf(%d,&h);switch(h)case 1:j=1;break; case 2:j=2;break; case 3:zidingyi();printf(设置成功n按任意键会菜单);scanf(%d,&r); menu();void enter() int t,r,i=0;extern j,y;char F,M
13、;void mark(int j,int i); do printf(n请输入运动员名字:);scanf(%s,&stui.name); printf(n请输入运动员学校:);scanf(%s,&stui.shool); printf(n请输入运动员项目:);scanf(%s,&stui.item); printf(n请输入运动员性别(mw):t);scanf(%s,&stui.sex); printf(n请输入名次:);scanf(%d,&stui.mingci); mark(j,i);loop_2:printf(nn继续输入码?t1).Yest2).Not); scanf(%d,&t);
14、if(t=2)break; i+; while(t=1);f=1; printf(输入成功n请按任意键退出);scanf(%d,&r); menu();void search() int r; void search_school(),search_item();int e;char c;extern f; if(f=0) printf(请先输入数据n输入任意键退出.n ); scanf(%s,&c); menu(); loop:printf(n请选择检索类型:nt1).以学校检索nt2).以项目检索nt3).退出t); scanf(%d,&e); switch(e) case 1:searc
15、h_school();printf(输入成功n请按任意键退出);scanf(%d,&r); menu();case 2:search_item();printf(输入成功n请按任意键退出);scanf(%d,&r); menu();case 3:menu(); void search_school() void printf_one(),printf_face(),printf_sum(); int x,sum=0,w=0; struct student s; printf(n请输入你要检索学校名字:); scanf(%s,&s.shool); printf_face(); for(x=0;x
16、A;x+) if(strcmp(s.shool,stux.shool)=0) sum+=stux.mark;printf_one(x);w=1; printf_sum(sum); if(w=0) printf(nn*不存在此学校,请重新输入);search_school(); void search_item() void printf_one(),printf_face(),printf_sum(); int x,sum=0,w=0; struct student s; printf(n请输入你要检索项目名:); scanf(%s,&s.item); printf_face(); for(x
17、=0;xA;x+) if(strcmp(s.item,stux.item)=0) sum+=stux.mark;printf_one(x);w=1; printf_sum(sum); if(w=0) printf(nn*不存在此项目,请重新输入);search_item();void mark(int j,int i) int g; extern p15,q15; if(j=1)if(stui.mingci=1)stui.mark=7; else if(stui.mingci=2)stui.mark=5; else if(stui.mingci=3)stui.mark=3; else if(s
18、tui.mingci=4)stui.mark=2; else if(stui.mingci=5)stui.mark=1; if(j=2) if(stui.mingci=1)stui.mark=5; else if(stui.mingci=2)stui.mark=3; else if(stui.mingci=3)stui.mark=1; if(j=3) for(g=0;g15;g+)if(stui.mingci=pg)stui.mark=qg;void zidingyi() static int p15,q15,a,b,j; for(a=0;a15;a+) printf(n请输入要定义名次:);
19、scanf(%d,&pa); printf(n请输入该名次分值:);scanf(%d,&qa); loop:printf(n你还要继续定义吗?1).Yest2).No);scanf(%d,&b); if(b=2)break; if(b!=1)goto loop; j=3;void printf_one(int x) printf(n%-20s%-20s%-20s%-5c%-9d%-5d,stux.shool,stux.name,stux.item,stux.sex,stux.mingci,stux.mark);void printf_sum(int sum) printf(nn总分数是:t %
20、d,sum); printf(n学校总数是: t%d,N); printf(n项目总数是: t%dn,W+M);void printf_face() printf(nn学校名 运动员名 项目 性别 名次 分数); 7程序运行结果【() 主菜单函数() 信息录入模块() 查询子菜单() 按学校名字查询信息(5) 按项目查询项目信息8编程中碰到困难及处理方法在学习C语言时,最初使用是Microsoft visual 6+计算机编程软件,但我们是使用C+Sourse File 编一个.c程序。而老师则要求我们使用工程MFC AppWizad exe 编程。这是c+里知识。尽管当初听老师讲c+和C语言
21、有很多共同之处,但我们还是无从下手。以后老师把程序发该我们,让我们用.C编程就好多了。在编程过程中,常常会在语句结束时少“;”或把汉字输入引号输入文件,极难发觉错误所在。在编程题时也出现了部分编译中问题。比如,在开始未加头文件#include造成有很多未定义errors;在输入字符串时用到“%S”,使功效无法输出。因为原来题目要求较少,题目较简单,在编译时,我先根据题目要求将它编写好,以后又给它添加了很多功效。在帮同学修改程序过程中,也碰到过一个问题。在头文件后定义了子函数,可是以后忘了编写子函数,在纠错时,有是不会发觉错误,不过连接过程中就会汇报犯错。我认为在以后编程过程中,最好用什么函数写
22、什么函数,后者在写完一个子函数后再在头文件底下申明。9总结心得及良好提议C语言实习基础上由老师引导,自己很多全部靠自学,不明白问老师,自学能力得到了很大培养。在实习过程中,我感觉到一点,程序是不能一气呵成。最少一气呵成程序不会尽善尽美。程序编写要一步一步完成。首先,对于要编程序要有一个总体思绪。要明确想要什么。只要把思绪理清楚了,程序就好编写了。把程序分割成多个块,即多个函数,一块一块编写。然后将分散函数用另外函数连接起来或用main函数连接。到这一步,程序也就初步编成了,以后便是调试,检验错误。最终我认为还能够对于已经编写好程序进行部分修改添加,使它愈加人性化。优化程序阶段是很关键。10致谢在C语言实习过程中,让我巩固了C语言基础知识,以前历来没有这么编过完整程序,实习让我有这么一个机会,自己独立编写程序。我认为自己说学东西不多,不过能够将它们利用出来。在实习过程中,首先我要感谢我老师,一个是带我走进C语言大门曹老师,因为她,我开始喜爱C语言,把所学知识掌握牢靠。同时,在这次实习中,樊老师对我帮助对我最难忘。题目本身是很简单,在老师教学风格影响下,我在编写完最初程序后,有自己添加了很多功效。在此,我要感谢她。最终,我还要感谢给我帮助同学,在部分程序问题上,我和同学交流经验,学到了很多在书本上学不到东西。总而言之,我真诚感谢在这次实习中给过我帮助人!
©2010-2024 宁波自信网络信息技术有限公司 版权所有
客服电话:4008-655-100 投诉/维权电话:4009-655-100