资源描述
红河学院工学院
课
程
设
计
报
告
专业:计算机科学与技术
年级:2013
学号:201301030143
姓名: 庄振涛
成绩:
批改时间:
红河学院 工学院编制说 明
1、本报告供学生课程设计时使用。
2、学生应认真阅读课程设计要求。
3、课程设计报告里面的内容要手工填写,以备存档使用(源程序可打印)。
4、课程设计的总评成绩根据课程的性质,按一定比例计入该门课程成绩。
5、课程设计报告中的各模块填写的内容是评分的主要依据,如果不够书写,可以自行添加附页。
6、按规定的时间提交报告给教师评定成绩,由任课教师交到工学院存档。
7、提交时请同时提交一份源代码压缩包。
设计任务
题目
名称
运动管理系统
班级
2013级计算机科学与技术
指导
教师
晏立
地点
成绩
学年
2013——2014
开始
日期
2014年5月20日
结束
日期
2014年6月10日
一、问题分析(围绕设计题目,进行课程设计开始前的准备过程,在此以问题分析的形式展开,从设计的总体性上对所承担的设计题目的思考,分析)
1.题目分析
1)信息初始化,输入: N-参赛部门总数,M-男子竞赛项目数,W-女子竞赛项目数; 各项目名次取法有以下几种: 《1》取前5名:第1名得分 7,第2名得分 5,第3名得分 3,第4名得分 2,第5名得分 1. 《2》取前3名:第1名得分 5,第2名得分 3,第3名得分 2. 《3》用户自定义:各名次权值由用户指定。
(2)提醒用户填写比赛结果,输入各项目获奖运动员的信息。
(3)所有信息记录完毕后,用户可以查询各个部门的比赛成绩,生成团体总分报表,查看参赛部门信息和比赛项目信息等。总体设计
信息输入模块
比赛结果录入模块
主菜单
设置参赛部门信息
设置竞赛项目信息
打印比赛项目信息
设置比赛项目总数
设置项目名次取法
填充各部门参赛信息
请填入你的选择
查询模块
生成报表
开始
二、流程图及主要方法说明(问题分析与算法设计,并画类图,此模块内容请打印)
1.流程图
开始
请输入您的选择
C
S
i
q
p
i<=2
部门编号
0
2
1
N=0
i=1
i=0
Max-m
Max-w
女团总分
输出t
男团总分
团体总分
生成报表
结束
r
2.主要方法
我们将采用结构体,循环体,指针和各种函数来实现这种功能,在数据结构体中,要采用结构体数组,其中包括部门、项目、运动员三个结构体。部门结构体成员包括部门名、竞赛项目、得分项目结构体成员包括项目名、权值。 在此程序中,包括几个头文件:mainfile.h; dos.h; conio.h; momery.h; 接下来,定义全局变量,其中包括“参赛部门项目数N;男子项目数M;女子项目数W;参赛部门g_s;竞赛项目g_sport; 各名次链表指针ptrHead,ptrThis,ptrNew;
三、核心算法及代码
主要源代码:
void main()
{
char ch;
Bool err = _FALSE;
memset(&g_school, 0, sizeof(School));
memset(&g_sport, 0, sizeof(Sport));
printf("\n===========================================================");
printf("\n***********************************************************");
printf("\n* *");
printf("\n* 欢迎进入部门间运动会信息管理系统 *");
printf("\n* *");
printf("\n***********************************************************");
printf("\n===========================================================");
printf("\n\n\n\n按“Q”键退出运行,\n其它任意键继续...");
{
int i, j, manTotal = 0, womTotal = 0, Total = 0;/*男子团体总分,女子团体总分,团体总分*/
if(ptrHead == (pPosition)NULL)
{
printf("\n没有比赛结果");
return;
}
ptrThis = ptrHead;
printf("\n团体总分报表:");
printf("\n\n部门编号 部门名 男子团体总分 女子团体总分 团体总分");
printf("\n--------- ---------------- ------------- ----------- -----------");
for(i = 0; i < G_SCHOOL.NTOTALNMOFSCH; i++)
{
do ptrThis = "ptrHead;" if(ptrThis - manTotal = "0;womTotal=0;Total=0;" > schoolNum == g_school.schInfoArray[i].SchoolNum)/*同一部门*/
{
for(j = 0; j < G_SPORT.NTOTALNMOFFSPRT + G_SPORT.NTOTALNMOFMSPRT; J++) if { (ptrThis->sportNum == g_sport.sportInfoArray[j].sportNum)
{
/*某一竞赛项目*/ if (g_sport.sportInfoArray[j].sprtTyp == _MAN)
{
manTotal += g_sport.sportInfoArray[j].scrInfo.power[ptrThis->score-1];
}
else
{
womTotal += g_sport.sportInfoArray[j].scrInfo.power[ptrThis->score-1];
}
}
}
}
ptrThis = ptrThis->ptrNext;
}
while(ptrThis != (pPosition)NULL);
Total += manTotal + womTotal;
printf("\n%5d", g_school.schInfoArray[i].SchoolNum);
printf("%20s", g_school.schInfoArray[i].schoolName);
printf("%10d", manTotal);
printf("%15d", womTotal);
printf("%15d\n", Total);
}
} 部门间运动会管理系统
/* 打印竞赛项目信息
void GetSportInfo()
{
int i, j;
system("cls");
printf("\n您输入的比赛项目信息如下:");
printf("\n----- -------- ------- -------");
for(i = 0; i < G_SPORT.NTOTALNMOFFSPRT + G_SPORT.NTOTALNMOFMSPRT; I++) if { }
for(i = "0;i<g_sport.nTotalNmOfFSprt+g_sport.nTotalNmOfMSprt;i++)"
do i = "0,j;" int (ptrThis - ptrThis = "ptrHead;" void return; printf( ? \n第 % d个结点 : ? , n++);
printf( ? \n没有比赛结果 ? );
if(ptrHead = "=(pPosition)NULL)" n = "0;" GetList() 打印名次链表信息 getch();
printf( ? \n按任意键继续 ? ); 得分: % d ? , j + 1, g_sport.sportInfoArray[i].scrInfo.power[j]); 第 % d名
printf( ? \n for(j = "0;j<g_sport.sportInfoArray[i].scrInfo.total;j++)" 项目名称: % s ? , g_sport.sportInfoArray[i].sportNum,
GetSportName(g_sport.sportInfoArray[i].sportNum));
printf( ? \n项目编号: % d > sportNum == g_sport.sportInfoArray[i].sportNum)
{
break;
}
}
if (i == g_sport.nTotalNmOfFSprt + g_sport.nTotalNmOfMSprt)
{
return;
}
printf("\n 项目编号:%d", ptrThis->sportNum);
for(j = 0; j < G_SPORT.SPORTINFOARRAY[I].SCRINFO.TOTAL; J++) { } ptrThis = "ptrThis-" 分值 % d ? , j + 1, g_sport.sportInfoArray[i].scrInfo.power[j]);
printf( ? \n名次 : % d > ptrNext;
} while(ptrThis != (pPosition)NULL); }
四、运行结果与分析(课程设计过程中对所遇问题的解决方法的探讨,如:调试与测试:调试方法,测试结果的分析与讨论,测试过程中遇到的主要问题及采取的解决措施等,此模块中涉及运行结果部分:请截图展示,分析部分:手工填写或打印均可)
1.运行结果
五、课程设计过程问题讨论(此模块内容请手工填写)
在此次的C语言的课程设计中,从一开始到最后的结束自己的课程设计报告,我不仅学到了许多专业知识,更重要的是我学会了如何在拿到一个题目时进行简单的程序分析,并编译出一些相对简单的程序,当然了,对自己编译出的不对的程序,我也能进行一些分析,并对其进行完善。在此次的学习过程中,同伴教给了我们很多的东西,从一开始的不懂VC++这种软件,到最后的我们可以进行较熟练的应用它,也许在这过程中,我们无论是谁都遇到了一些小的困难,但是在我们的共同努力下,我们最终还是克服了它,单从这一点来说,我们就学到了许多的东西,比如teamwork,同学之间的相互帮助与配合,都证明了这一点,我相信这是我此次学习C语言程序的最大收获。 在我的程序设计的过程中,遇到了很大有难题,特别是在刚拿到我的题目时,头脑中根本没有头绪,更不要说去编译程序了,当时真的很担心是否可以完成老师布置的任务,但慢慢的在学习的过程中,我开始懂得了一些编译的方法,就尝试着去编译一些程序,结果还是很好,最后我编出了我题目的程序,但是在程序的运行过程中,又遇到了新的难题,那就是我所编的程序中有太多的错误,根本无法进行运行,没办法,只好硬着头皮修改,不过还好,在同伴的帮助下,我最终将我的程序成功地进行了运行,在我自己的程序运行时,心中有一种说不出的高兴,是的,我们这几天的努力总是没有白费。
12
展开阅读全文