运动会分数统计课程设计.docx

上传人:b****2 文档编号:1147164 上传时间:2022-10-17 格式:DOCX 页数:38 大小:739.93KB
下载 相关 举报
运动会分数统计课程设计.docx_第1页
第1页 / 共38页
运动会分数统计课程设计.docx_第2页
第2页 / 共38页
运动会分数统计课程设计.docx_第3页
第3页 / 共38页
运动会分数统计课程设计.docx_第4页
第4页 / 共38页
运动会分数统计课程设计.docx_第5页
第5页 / 共38页
点击查看更多>>
下载资源
资源描述

运动会分数统计课程设计.docx

《运动会分数统计课程设计.docx》由会员分享,可在线阅读,更多相关《运动会分数统计课程设计.docx(38页珍藏版)》请在冰豆网上搜索。

运动会分数统计课程设计.docx

运动会分数统计课程设计

 

课程设计报告

课程名称数据结构

设计题目运动会分数统计

专业计算机科学与技术

班级

学号

姓名

完成日期_________2012年6月8日_____________

课程设计任务书

设计题目:

运动会分数统计系统

设计内容与要求:

【设计内容】

参加运动会有n个学校,学校编号为1……n.比赛分成m个男子项目,和w个女子项目.项目编号为男子1……m,女子m+1……m+w.不同的项目取前五名或前三名积分;取前五名的积分分别为:

7、5、3、2、1,前三名的积分分别为:

5、3、2;哪些取前五名或前三名由学生自己设定(m<=20,n<=20).

【基本要求】

1)可以输入各个项目的前三名或前五名的成绩;

2)能统计各学校总分,

3)可以按学校编号或名称、学校总分、男女团体总分排序输出;

4)可以按学校编号查询学校某个项目的情况;可以按项目编号查询取得前三或前五名的学校.

5)数据存入文件并能随时查询

6)规定:

输入数据形式和范围:

可以输入学校的名称,运动项目的名称

 输出形式:

有中文提示,各学校分数为整形

 界面要求:

有合理的提示,每个功能可以设立菜单,根据提示,可以完成相关的功能要求.

指导教师:

_____

2012年6月8日

课程设计评语

 

成绩:

指导教师:

__________

2012年6月8日

1、问题描述

任务:

参加运动会有n个学校,学校编号为1……n.比赛分成m个男子项目,和w个女子项目.项目编号为男子1……m,女子m+1……m+w.不同的项目取前五名或前三名积分;取前五名的积分分别为:

7、5、3、2、1,前三名的积分分别为:

5、3、2;哪些取前五名或前三名由学生自己设定.(m<=20,n<=20),按要求实现相应的数据输入、查询、计分等功能.

2、基本要求

(1)、数据要求

1)建议输入学校的名称,运动项目的名称等,其余信息学生自行设计;

2)输出形式:

有合理的提示,各学校分数为整形;

3)数据的存储结构自行设计.

4)建议运动会的相关数据要存储在数据文件中.

(2)、操作要求

1)可以输入各个项目的前三名或前五名的成绩;

2)能统计各学校总分,

3)可以按学校编号或名称、学校总分、男女团体总分排序输出;

4)可以按学校编号查询学校某个项目的情况;可以按项目编号查询取得前三或前五名的学校.

5)数据存入文件并能随时查询

6)规定:

输入数据形式和范围:

可以输入学校的名称,运动项目的名称

 输出形式:

有中文提示,各学校分数为整形

 界面要求:

有合理的提示,每个功能可以设立菜单,根据提示,可以完成相关的功能要求.

(3)、测试数据要求

测试数据要求使用:

1、全部合法数据;

2、整体非法数据;

3、局部非法数据.进行程序测试,以保证程序的稳定.

(4)、界面要求

有合理的提示,每个功能可以设立菜单,根据提示,能完成相关的功能操作并符合要求.

(5)、存储结构要求

学生自己根据系统功能要求自己设计,但是要求运动会的相关数据要存储在数据文件中.(数据文件的数据读写方法等相关内容在c语言程序设计的书上,请自学解决)请在最后的上交资料中指明你用到的存储结构.

3、数据结构

(1)、定义运动项目数据类型

定义运动项目数据类型邻接表,用于存放运动项目的信息,包括运动项目总数、运动项目名称、运动项目编号及在每个运动项目中取得名次的学校编号、学校名字、运动项目成绩.

typedefstructSchoolNode

{intschool;//学校编号

chars_name[MAX];//学校名字

intrecord;//项目成绩

structSchoolNode*next;//链域

}SchoolNode;

typedefstruct

{intitem;//项目编号

charitem_name[MAX];//项目名字

SchoolNode*firstschool;//链域指向链表中第一个结点

}Item;

typedefstruct

{intitem_num;//项目总数

Itemitem[MAX];

}AllItems;

(2)、定义学校数据类型

定义学校数据类型邻接表,用于存放参赛学校的信息,包括学校总数、学校名称、学校编号、学校总分、男子团体总分、女子团体总分以及每个学校获奖的运动项目编号、运动项目名称、取得的成绩.

typedefstructItemNode

{intitem;//该学校获奖的项目编号

chari_name[MAX];//项目名字

intrecord;//项目成绩

structItemNode*next;//链域

}ItemNode;

typedefstruct

{intschool;//学校编号

charschool_name[MAX];//学校名字

intshool_score;//学校总分

intboys_score;//男团体总分

intgirl_score;//女团体总分

ItemNode*firstitem;//链域指向链表中第一个获奖项目的结点

}SCHNode;

typedefstruct

{intschool_num;//学校总数

SCHNodeschool[MAX];

}AllSchool;

4、总体设计

根据运动会分数统计系统的问题分析及设计要求,可以将此系统分为四个模块:

信息统计模块、信息排序输出模块、信息查询模块、信息调用模块.

(1)、信息统计模块实现信息的输入、统计,涉及函数有:

voidInputInfo()、

(2)、信息输出模块实现信息的输出,涉及函数有:

intMenu_Select_Tow()、Sort_Schoolnum()、Sort_SchoolScore()、Sort_ManScore()、Sort_WomanScore().

(3)、信息查询模块实现信息的查询,涉及函数有:

FindInfo_SchoolNum()、FindInfo_SchoolNum()、intMenu_Select_Three().

(4)、信息调用模块实现信息的调用,即从文件中读出信息并输出、保存信息,涉及函数有:

voidsave()、voidReadInfo().

主函数与各函数调用关系流程图、结构图:

 

信息排序输出模块流程图

 

信息查询模块流程图

5、详细设计

(1)、信息输入及分数统计功能

voidInputInfo()、voidItem_Score()、voidInitList()是信息输入、分数统计的函数、邻接表初始化,在输入信息的同时进行分数统计,可以输入各学校各项目前3名或前5名的成绩.结果取前3名还是前5名由用户自己定.用if(j==1)语句将前3名的成绩赋值为5、3、2,if(j==2)前5名的成绩赋值为7、5、3、2、1,未取得的成绩则赋为0.并统计总分、男子团体总分和女子团体总分.

其主要功能流程图如下:

 

(2)、信息排序输出功能

intMenu_Select_Tow()、Sort_Schoolnum()、Sort_SchoolScore()、Sort_ManScore()、Sort_WomanScore()是排序输出菜单函数及四种排序输出函数.输出一个总分显示菜单,利用switch语句实现按学校名称输出或按学校总分、男子团体总分、女子团体总分由低到高输出.采用冒泡排序和直接插入排序的方法使之按总分由低到高输出.

其主要功能流程图如下:

 

(3)、信息查询功能

FindInfo_SchoolNum()、FindInfo_SchoolNum()、intMenu_Select_Three()函数是两个信息查询函数及查询菜单函数,显示一个查询菜单,利用switch语句实现按学校编号查询和按项目编号查询,并输出该学校某个项目的情况或某个项目取得前3名或前5名的学校信息.利用循环语句do…while()返回查询菜单,break语句终止循环.

其主要功能代码如下:

 

(4)、信息保存及读取

voidsave()、voidReadInfo()这两个函数分别实现信息保存到文件以及从文件中读取信息的功能.把信息保存到文件中以及读取保存在文件里的信息并输出.由于采用的是链式存储,可以很方便的一下把文件里的信息全部读取出来,再依次创建生成邻接表,将信息全部读到两个邻接表中存储.

其主要功能流程图如下:

 

6、测试与调试

1、输出界面

运行程序,先输入密码,进入主菜单界面,用户可以选择输入各个项目成绩及信息、显示各学校总分、信息排序、信息查询、保存信息到文件、从文件中读入信息、退出系统等操作选项.注意:

第一次运行本程序时,请选择输入各个项目成绩及信息.以后再运行时,为了避免再次输入大量信息,可以先选择从文件中读入信息,将以前输入的信息重新显示在屏幕上,再进行后续操作.

主菜单界面如图所示:

 

(1)、输入信息

选择1号功能进入输入信息模块,根据提示信息将以下信息输入系统中.

请输入男子项目总数m:

3请输入女子项目总数w:

2

请输入参加运动会的学校总数n:

6

项目编号:

1项目名字:

basketball取前3名请输入第3名的学校编号:

4请输入第3名的学校名字:

heda请输入第2名的学校编号:

6请输入第2名的学校名字:

litcs请输入第1名的学校编号:

1请输入第1名的学校名字:

qinghua

项目编号:

2项目名字:

football取前5名请输入第5名的学校编号:

4请输入第5名的学校名字:

heda请输入第4名的学校编号:

3请输入第4名的学校名字:

zhengda请输入第3名的学校编号:

2请输入第3名的学校名字:

beida

请输入第2名的学校编号:

1请输入第2名的学校名字:

qinghua请输入第1名的学校编号:

6请输入第1名的学校名字:

litcs

项目编号:

3项目名字:

manyumaoqiu取前3名请输入第3名的学校编号:

5请输入第3名的学校名字:

hekeda请输入第2名的学校编号:

2请输入第2名的学校名字:

beida请输入第1名的学校编号:

1请输入第1名的学校名字:

qinghua

项目编号:

4项目名字:

pingpangqiu取前5名请输入第5名的学校编号:

4请输入第5名的学校名字:

heda请输入第4名的学校编号:

5请输入第4名的学校名字:

hekeda请输入第3名的学校编号:

2请输入第3名的学校名字:

beida

请输入第2名的学校编号:

1请输入第2名的学校名字:

qinghua请输入第1名的学校编号:

6请输入第1名的学校名字:

litcs

项目编号:

5项目名字:

womanyumaoqiu取前3名请输入第3名的学校编号:

5请输入第3名的学校名字:

hekeda请输入第2名的学校编号:

3请输入第2名的学校名字:

zhengda请输入第1名的学校编号:

6请输入第1名的学校名字:

litcs.

输入信息如图所示:

(2)、输出各个学校总分信息

输入2进入总分显示菜单界面.各个学校总得分如下图显示所示:

(3)、信息排序

输入3进入信息排序菜单界面.用户可根据自己喜好选择学校编号排序输出、按学校总分排序输出、按男团总分排序输出、女团总分排序输出、返回主菜单.

①信息排序菜单界面如图所示:

②按学校编号输出:

③按学校总分排序输出:

④按学校男团体总分排

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

当前位置:首页 > IT计算机 > 计算机软件及应用

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1