C语言课程设计校际运动会管理系统地大版最简洁Word文档格式.docx
- 文档编号:22835935
- 上传时间:2023-02-05
- 格式:DOCX
- 页数:20
- 大小:144.08KB
C语言课程设计校际运动会管理系统地大版最简洁Word文档格式.docx
《C语言课程设计校际运动会管理系统地大版最简洁Word文档格式.docx》由会员分享,可在线阅读,更多相关《C语言课程设计校际运动会管理系统地大版最简洁Word文档格式.docx(20页珍藏版)》请在冰豆网上搜索。
N─参赛学校总数,M─男子竞赛项目数,W─女子竞赛项目数;
各项目名次取法有如下几种:
取前5名:
第一名得分7,第二名得分5,第三名得分3,第四名得分2,第五名得分1;
取前3名:
第一名得分5,第二名得分3,第三名得分2;
用户自定义:
各名次权值由用户指定。
(2)提醒用户填写比赛结果,输入各项目获奖运动员信息。
(3)所有信息记录完毕后,用户可以查询各个学校的比赛成绩,生成团体总分报表,察看参赛学校信息和比赛项目信息等。
2.程序设计思路
根据题目要求应提供键盘式菜单实现功能选择,还应提供信息的输入操作,由于在程序中提供查询功能所以应有显示、查找等操作。
根据上面的需求分析,可以将这个系统的设计分为1、信息输入模块2、比赛结果录入模块3、查询模块。
具体校际运动会管理系统分为信息的输入、结果的输入、学校各个项目的得分的查寻、总体报表的生成。
3.功能模块图
(每个功能模块都标注函数名称,如右图)
4.数据结构设计
数据结构采用结构体的形式,包括学校、项目、运动员三个结构体。
比如学校结构体成员
#include<
stdio.h>
stdlib.h>
string.h>
#defineA100
inty=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];
}it[A];
structshool
}sho[A]
{
5.算法设计
1.主函数一般设计的较为简洁,只提供输入、功能处理和输出部分的函数调用。
其中各功能模块用菜单方式选择。
另外菜单部分也可以写成函数。
[程序]
voidmain()
{voidmenu();
menu();
}
voidmenu()
{
voidestablish(),enter(),search();
intw1,n;
do{
puts("
\t\t*****************MENU********************"
);
\n\n\t\t1.输入信息\n"
\t\t2.输入比赛结果\n"
\t\t3.查询比赛信息\n"
\t\t4.退出\n"
\n\t\t*****************************************"
\n\n请选择:
"
scanf("
%d"
&
n);
}while(0);
switch(n)
{case1:
establish();
break;
case2:
enter();
case3:
search();
case4:
exit(0);
}
}各功能模块设计
(1)信息输入模块
一是参赛学校信息,二是参赛运动员信息,三是比赛项目信息,分别输入并保存
voidestablish()
{voidzidingyi();
inth,r;
externN,M,W;
y=1;
printf("
\n请输入学校数量:
scanf("
N);
\n请输入男运动员数量:
M);
\n请输入女运动员数量"
W);
\n有三种权值取法,请选择:
\n\n\t1).第一名七分,第二名五分,第三名三分,第四名五分,第五名一分."
\n\n\t2).第一名五分,第二名三分,第三名一分."
\n\n\t3).由您自己定义."
\n\n请输入编号(1--3):
h);
switch(h)
{case1:
j=1;
j=2;
zidingyi();
}
printf("
设置成功\n按任意键会菜单"
scanf("
r);
menu();
(2)结果录入模块
voidenter()
intt,r,i=0;
externj,y;
charF,M;
voidmark(intj,inti);
do
{
\n请输入运动员的名字:
%s"
stu[i].name);
\n请输入运动员的学校:
stu[i].shool);
\n请输入运动员的项目:
stu[i].item);
\n请输入运动员的性别(m\w):
\t"
stu[i].sex);
\n请输入名次:
stu[i].mingci);
mark(j,i);
loop_2:
printf("
\n\n继续输入码?
\t1).Yes\t2).No\t"
t);
if(t==2)break;
i++;
}while(t==1);
f=1;
输入成功\n请按任意键退出"
(3)查询信息模块
[分析]
查询信息模块提供按不同方式查询各种信息机返回功能,其中各功能模块用菜单方式选择。
菜单部分也可写成函数。
6.程序代码
}sho[A];
voidenter()
voidsearch()
{intr;
voidsearch_school(),search_item();
inte;
charc;
externf;
if(f==0)
{printf("
请先输入数据\n输入任意键退出..\n"
c);
menu();
loop:
\n请选择检索类型:
\n\t1).以学校检索\n\t2).以项目检索\n\t3).退出\t"
e);
switch(e)
search_school();
{printf("
search_item();
voidsearch_school()
{voidprintf_one(),printf_face(),printf_sum();
intx,sum=0,w=0;
structstudents;
\n请输入你要检索的学校名字:
s.shool);
printf_face();
for(x=0;
x<
A;
x++)
if(strcmp(s.shool,stu[x].shool)==0)
{sum+=stu[x].mark;
printf_one(x);
w=1;
printf_sum(sum);
if(w==0)
{printf("
\n\n*不存在此学校,请重新输入"
voidsearch_item()
\n请输入你要检索的项目名:
s.item);
if(strcmp(s.item,stu[x].item)==0)
\n\n*不存在此项目,请重新输入"
voidmark(intj,inti)
{intg;
externp[15],q[15];
if(j==1)
{if(stu[i].mingci==1)stu[i].mark=7;
elseif(stu[i].mingci==2)stu[i].mark=5;
elseif(stu[i].mingci==3)stu[i].mark=3;
elseif(stu[i].mingci==4)stu[i].mark=2;
elseif(stu[i].mingci==5)stu[i].mark=1;
if(j==2)
{if(stu[i].mingci==1)stu[i].mark=5;
elseif(stu[i].mingci==2)stu[i].mark=3;
elseif(stu[i].mingci==3)stu[i].mark=1;
if(j==3)
{for(g=0;
g<
15;
g++)if(stu[i].mingci==p[g])stu[i].mark=q[g];
voidzidingyi()
{staticintp[15],q[15],a,b,j;
for(a=0;
a<
a++)
\n请输入要定义的名次:
p[a]);
\n请输入该名次的分值:
q[a]);
\n你还要继续定义吗?
1).Yes\t2).No"
b);
if(b==2)break;
if(b!
=1)gotoloop;
j=3;
voidprintf_one(intx)
\n%-20s%-20s%-20s%-5c%-9d%-5d"
stu[x].shool,stu[x].name,stu[x].item,stu[x].sex,stu[x].mingci,stu[x].mark);
voidprintf_sum(intsum)
\n\n总分数是:
\t%d"
sum);
\n学校总数是:
\t%d"
N);
\n项目总数是:
\t%d\n"
W+M);
voidprintf_face()
{printf("
\n\n学校名运动员名项目性别名次分数"
}}
7.程序运行结果【
(1)主菜单函数
(2)信息录入模块
(3)查询子菜单
(4)按学校名字查询信息
(5)按项目查询项目信息
8.编程中遇到的困难及解决方法
在学习C语言时,最初使用的是Microsoftvisual6++计算机编程软件,但我们是使用C++SourseFile编一个.c程序。
而老师则要求我们使用工程的MFCAppWizadexe编程。
这是c++里的知识。
尽管当时听老师讲c++与C语言有许多共同之处,但我们还是无从下手。
后来老师把程序发该我们,让我们用.C的编程就好多了。
在编程的过程中,经常会在语句结束时少“;
”或者把中文输入的引号输入文件,很难发现错误所在。
在编程题时也出现了一些编译中的问题。
例如,在开始未加头文件#include<
导致有许多未定义的errors;
在输入字符串时用到“%S”,使功能无法输出。
由于原来题目要求较少,题目较简单,在编译时,我先按照题目要求将它编写好,之后又给它添加了很多功能。
在帮同学修改程序的过程中,也遇到过一个问题。
在头文件后定义了子函数,可是之后忘了编写子函数,在纠错时,有的是不会发现错误的,但是连接过程中就会报告出错。
我觉得在以后的编程过程中,最好用什么函数写什么函数,后者在写完一个子函数后再在头文件底下声明。
9.总结心得及良好建议
C语言实习基本上由老师引导,自己很多都靠自学,不明白的问老师,自学能力得到了很大的培养。
在实习过程中,我感觉到一点,程序是不能一气呵成的。
至少一气呵成的程序不会尽善尽美。
程序编写要一步一步的完成。
首先,对于要编的程序要有一个总体思路。
要明确想要什么。
只要把思路理清楚了,程序就好编写了。
把程序分割成几个块,即多个函数,一块一块的编写。
然后将分散的函数用另外的函数连接起来或者用main函数连接。
到这一步,程序也就初步编成了,之后便是调试,检查错误。
最后我觉得还可以对于已经编写好的程序进行一些修改添加,使它更加人性化。
优化程序的阶段是很重要的。
10.致谢
在C语言的实习过程中,让我巩固了C语言的基础知识,以前从来没有这样编过完整的程序,实习让我有这样的一个机会,自己独立编写程序。
我觉得自己说学的东西不多,但是可以将它们运用出来。
在实习过程中,首先我要感谢我的老师,一个是带我走进C语言大门的曹老师,因为她,我开始喜欢C语言,把所学知识掌握牢固。
同时,在这次实习中,樊老师对我的帮助对我最难忘。
题目本身是很简单的,在老师的教学风格影响下,我在编写完最初程序后,有自己添加了很多功能。
在此,我要感谢她。
最后,我还要感谢给我帮助的同学,在一些程序问题上,我和同学交流经验,学到了很多在书本上学不到的东西。
总之,我真诚的感谢在这次实习中给过我帮助的人!
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 课程设计 校际 运动会 管理 系统 大版最 简洁