运动会分数统计实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
目录
一.设计要求 (1)
二.设计分析 (1)
三.设计实现 (3)
四.实验心得 (8)
五.参考文献 (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).可以按学校编号查询学校某个项目的情况;可以按项目编号查询取得前三或前五名的学校。
规定:输入数据形式和范围:20以内的整数(如果做得更好可以输入学校的名称,运动项目的名称)
输出形式:有中文提示,各学校分数为整形
界面要求:有合理的提示,每个功能可以设立菜单,根据提示,可以完成相关的功能要求。存储结构:学生自己根据系统功能要求自己设计,但是要求运动会的相关数据要存储在数据文件中。(数据文件的数据读写方法等相关内容在c语言程序设计的书上,请自学解决)请在最后的上交资料中指明你用到的存储结构;测试数据:要求使用1、全部合法数据;2、整体非法数据;3、局部非法数据。进行程序测试,以保证程序的稳定。测试数据及测试结果请在上交的资料中写明;
二.设计分析:
本程序中学校的存储结构为数组.
运动项目结构体:
图1 运动项目结构体
学校结构体:
图2学校机构体
主菜单结构:
图3主菜单结构主要结构:
typedef struct //项目结构
{
char xmm[100]; //项目名称
char num[5]; //项目编号
int score; //项目得分}xiangm;
typedef struct school
{
int num; //学校编号
char schoolname[20]; //学校名称
int manscore; //男子得分
int womenscore; //女子得分
int sum; //总分
xiangm man[MAX]; //男子项目
int man_num; //男子项目个数
int man_score; //男子团体总分
xiangm women[MAX]; //女子项目
int women_num; //女子项目个数
int women_score; //女子团体总分
}school;
主要函数:
void fun1_1() //对学校和项目进行初始化操作
void fun1_lurum1(int flag)//录入男子取前3名的项目成绩
void fun1_luruw1(int flag) //录入女子取前3名的项目成绩
void fun1_lurum2(int flag) //录入男子取前5名的项目成绩
void fun1_luruw2(int flag) //录入女子取前5名的项目成绩
void fun1_sum() //计算学校总得分以及男子团体总分女子团体总分void fun1() //输入各个项目成绩,调用前面的函数
void fun2() //按学校编号排序输出
void fun3() //按学校总分排序并输出结果
void fun4() //分别进行男子团体总分排序和女子团体排序并输出void fun5() //输入一个学校的编号查询该学校取得的成绩
void fun6() //输入一个项目的编号查询该项目的得分学校情况void save() //将数据写到school.txt文件中
void load() //从school.txt文件中读取数据
三.设计实现:
1.程序主界面:
图4程序主界面2.输入功能:
图5输入功能完成3.按学校编号排序输出:
图6按学校编号排序输出4.按学校总分排序输出:
图7按学校总分排序输出5.按男女团体总分排序输出:
图8按男女团体总分排序输出
6.按学校编号查询某个项目的情况:
图9按学校编号查询某个项目的情况7.按项目编号查询取得名次的学校:
图10按项目编号查询取得名次的学校8.存储数据:
图11存储数据
9.存储的数据:
图12存储的数据
10.读取数据:
图13读取数据
四.实验心得:
课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际能力的具体训练和考察过程.
写之前有第一感觉是用链表写.但是上次的课程设计写的就是链表,所以想尝试一下用数组写这个题目.写完之后两者对比起来处理这种题目还是用链表比较方便.用数组太花存储空间了,处理太多数据的话就不现实了.在文件读写的时候由于数据太多写入和读取都要一个一个处理.通过这次课程设计使我懂得了理论与实际相结合是很重要的,从而提高自己的实际动手编程能力和独立思考能力.
而对于程序。最大的体会就是必须严谨。身为一个程序员必须要有严谨的思维。好的程
序是让别人挑不出毛病的程序,而不是动不动就修改升级。那样用户用起来会觉得麻烦。而且会质疑会不会还有什么隐藏着的漏洞。
学习编程是一个循序渐进的过程,如果想提高不是短时间就能看出效果的。必须坚持多练,多写。很多东西老师不可能一一教大家。遇到问题第一时间不要想着找别人。要通过自己的努力完成这个目标。有困难就查资料,实在是攻克不了了再去求助同学和老师。这样才能更好地提升自己的能力。
五.参考文献:
[1] 谭浩强 C语言程序设计学习辅导(第2版)(M)清华大学出版社 (2009-01出版)
[2] 数据结构:C语言版/严蔚敏,吴伟民编著. ---北京:清华大学出版社,2007