课程设计运动会分数统计.docx
《课程设计运动会分数统计.docx》由会员分享,可在线阅读,更多相关《课程设计运动会分数统计.docx(22页珍藏版)》请在冰豆网上搜索。
课程设计运动会分数统计
课程设计报告书
专业:
计算机科学与技术
课程设计名称:
《数据结构课程设计》
题目:
运动会分数统计
班级:
设计者学号:
设计者姓名:
同组人员:
指导老师:
完成时间:
摘要
随着时代的进步,人们需要处理越来越多的数据,接受的信息数量也不断增加、分工的不断细化、各个行业间联系的不断密切,对数据的处理能力要求也不断提高。
如何处理好生活中的信息,对信息管理,对成情况和发展趋势进行统计、规划、分析并制定切实可行的人事政策,是一项繁重而艰巨的任务。
提供信息咨询,信息检索,信息存取等服务,在此论文中主要实现对存储在数据库中的数据表进行这些简单的操作,为提对数据的处理能管理效率提供了行之有效的手段。
关键词:
数据结构;算法设计;开发工具;程序设计;程序调试;
目录
目录1
第一章开发环境和开发工具1
1.1C++简介1
1.2开发背景1
1.3开发环境1
第二章算法思想3
2.1系统需求分析3
2.2系统总体设计3
2.2.1系统设计目标3
2.2.2开发设计思想3
2.2.3系统功能模块设计4
2.3算法思想描述5
第三章算法实现6
3.1数据结构6
3.2程序模块6
3.3各模块之间的调用关系6
3.4源程序代码6
第四章测试与分析7
4.1测试数据选择7
4.2测试结果分析7
总结8
心得体会9
参考文献10
第一章开发环境和开发工具
1.1C++简介
一种面向对象的开发语言,C++是一种使用非常广泛的计算机编程语言。
C++是一种静态数据类型检查的、支持多重编程方式的通用程序设计语言。
它支持过程化程序设计、数据抽象、面向对象程序设计、泛型程序设计等多种程序设计风格。
其编译器比目前其他计算机语言的编译技术更复杂。
2011年8月12日公布最新正式标准c++11。
C++由美国AT&T贝尔实验室的本贾尼·斯特劳斯特卢普博士在20世纪80年代初期发明并实现(最初这种语言被称作“CwithClasses”,即“带类的C”)。
C++保留了C语言原有的所有优点,增加了面向对象的机制。
开始,C++是作为C语言的增强版出现的,从给C语言增加类开始,不断的增加新特性。
虚函数(virtualfunction)、运算符重载(OperatorOverloading)、多重继承(MultipleInheritance)、模板(Template)、异常(Exception)、RTTI、命名空间(namespace)逐渐被加入标准。
1998年国际标准组织(InternationalOrganizationforStandardization,ISO)第一次颁布了C++程序设计语言的国际标准ISO/IEC14882:
1998。
此后C++是具有国际标准的编程语言,该标准通常简称ANSIC++或ISOC++98标准,以后每5年视实际需要更新一次标准。
后来又在2003年通过了C++的第二个标准ISO/IEC14882:
2003,简称ISOC++03标准。
此后,新的标准草案叫做C++0x。
对于C++0x标准草案的最终国际投票已于2011年8月10日结束,并且所有国家都投出了赞成票,C++0x已经毫无疑义地成为正式国际标准。
先前被临时命名为C++0x的新标准正式定名为ISO/IEC14882:
2011,简称ISOC++11标准。
C++11标准将取代现行的C++标准C++98和C++03。
国际标准化组织于2011年9月1日出版发布《ISO/IEC14882:
2011》,名称是:
Informationtechnology--Programminglanguages--C++Edition:
3。
[1-3]C++这个名字是RickMascitti于1983年中所建议的,并于1983年12月首次使用。
更早以前,尚在研究阶段的发展中语言曾被称为“newC”,之后是“CwithClasses”[4]。
在计算机科学中,C++仍被称为C语言的上层结构。
它最后得名于C语言中的“++”操作符(其对变量的值进行递增)。
而且在共同的命名约定中,使用“+”以表示增强的程序。
Stroustrup说:
“这个名字象征著源自于C语言变化的自然演进”。
C+是一个和C/C++无关的早期编程语言。
RickMascitti在1992年被非正式地问起名字的由来,他表示这是在半开玩笑中说出的。
他从没想过C++会成为这门语言的正式名字。
有一个关于C++名字的笑话,当你使用后缀++时,附加只发生在运算之后(因此,它应该是++C,而不是C++,这个笑话是说时下某些程序员还在以使用C的方式使用C++,这通常被一些权威著作认为是不正确的)。
C++是由C发展而来的,与C兼容。
用C语言写的程序基本上可以不加修改地用于C++。
从C++的名字可以看出它是C的超越和集中。
C++既可用于面向过程的结构化程序设计,又可用于面向对象的程序设计,是一种功能强大的混合型的程序设计语言。
1.2开发背景
随着科学技术的不断发展,计算机科学日渐成熟,其强大的功能已为人们所深刻认识,它己进入人类社会的各个领域并发挥着越来越重要的作用。
采用计算机进行信息化管理已成为衡量企业管理科学化和现代化的重要标志,而人事管理的全面自动化、信息化则是其中重要的组成部分。
人事管理的好坏对于企业的决策者和管理者来说都至关重要,在很大程度上影响着企业的经济效益和社会效益。
因此,本文所研究的人事管理信息系统具有一定的使用价值和现实意义。
1.3开发环境
本文所采用的开发环境
1:
PC机
2:
visualc++6.0;
3:
操作系统MicrosoftWindowsxp
第二章算法思想
2.1系统需求分析
随着科学技术的发展,人们日常生活中接触的信息数据越来越大。
信息的大爆炸使得人们对数据信息的处理水平越来越高。
为了快速的处理数据满足人们社会的需求,就需要越来越多的数据处理软件和数据处理算法,此次射击运动会分数统计就是依据生活的事例通过算法编译实现对数据的排续,查找,插入,删除等操作。
运动会分数统计方案适合采用结构体数组,为了实现系统功能,主要应实现以下几部分:
比赛成绩输入、比赛成绩输出、查询比赛成绩和调用统计结果。
2.2系统总体设计
2.2.1系统设计目标
一、
(1)可以输入各个项目的前三名或前五名的成绩;
(2)能统计各学校总分;
(3)可以按学校编号或名称、学校总分、男女团体总分排序输出;
(4)可以按学校编号查询学校某个项目的情况;可以按项目编号查询取得前三或前五名的学校。
(5)数据存入文件并能随时查询
输入数据形式和范围:
可以输入学校的名称,运动项目的名称;输出形式有提示,各学校分数为整形;界面要求有合理的提示,每个功能可以设立菜单,根据提示,可以完成相关的功能要求。
存储结构:
学生自己根据系统功能要求自己设计,但是要求运动会的相关数据要存储在数据文件中。
测试数据:
要求使用全部合法数据、整体非法数据、局部非法数据。
进行程序测试,以保证程序的稳定。
二、
问题描述:
包括目标、任务、条件和约束的描述。
1、可以输入各个项目的前三名或前五名的成绩;
2、能统计各学校总分,
3、可以按学校编号、学校总分、男女团体总分排序输出;
4、可以按学校编号查询学校某个项目的情况;可以按项目编号查询取得前三或前五名的学校。
三、
设计:
数据结构设计和核心算法设计描述,主控和功能模块层次结构;主要功能模块的输入、处理(算法况架描述)和输出;功能模块之间的调用与被调用的关系等。
需要指明每个模块的具体编写者。
2.2.2开发设计思想
基于以上系统设计目标,本文在开发人事管理信息系统时遵循了以下开发设计思想:
●采用现有的软硬件环境及先进的管理系统开发方案,从而达到充分利用现有资源,提高系统开发水平和应用效果的目的。
●尽量达到操作过程中的直观、方便、实用、安全等要求。
●系统采用模块化程序设计方法,既便于系统功能的各种组合和修改,又便于未参与开发的技术维护人员补充、维护。
●系统应具备数据库维护功能,及时根据用户需求进行数据的添加、删除、修改、备份等操作
2.2.3系统功能模块设计
根据分析整个系统主要划分为4个功能模块,分别执行要求中的功能。
该系统分为比赛成绩输入、比赛成绩输出、查询比赛成绩和调用统计结果。
比赛成绩输出模块有四个子模块,分别是:
按学校编号输出模块、按学校总分输出模块、安南员总分输出模块和按女团总分输出模块;查询比赛成绩模块分为按学校编号查询模块河岸项目编号查询两个子模块。
设计:
数据结构设计和核心算法设计描述,主控和功能模块层次结构;主要功能模块的输入、处理(算法况架描述)和输出;功能模块之间的调用与被调用的关系等。
:
运动会分数统计程序
比赛成绩输入模块
比赛成绩输出模块
查询比赛成绩模块
项目统计结果模块
按学校编号输出模块
按学校总分输出模块
按男团总分输出模块
按女团总分输出模块
按学校编号查询模块
按项目编号查询模块
图3-1系统功能模块图
………………………………………………………………………………………………………………………………………………………………………………………………
………..
2.3算法思想描述
一、问题描述:
包括目标、任务、条件和约束的描述。
1、可以输入各个项目的前三名或前五名的成绩;
2、能统计各学校总分,
3、可以按学校编号、学校总分、男女团体总分排序输出;
4、可以按学校编号查询学校某个项目的情况;可以按项目编号查询取得前三或前五名的学校。
二、整个系统主要划分为4个功能模块,
执行要求中的功能。
该系统分为比赛成绩输入、比赛成绩输出、查询比赛成绩和调用统计结果。
比赛成绩输出模块有四个子模块,分别是:
按学校编号输出模块、按学校总分输出模块、安南员总分输出模块和按女团总分输出模块;查询比赛成绩模块分为按学校编号查询模块河岸项目编号查询两个子模块。
设计:
数据结构设计和核心算法设计描述,主控和功能模块层次结构;主要功能模块的输入、处理(算法况架描述)和输出;功能模块之间的调用与被调用的关系等。
指明每个模块的具体编写者。
三、结构定义为:
typedefstruct
{
intnumber;//记录学校序号
intmm;//记录男生100米第一名成绩
intmm1;//记录男生100米第二名成绩
intmm2;//记录男生100米第三名成绩
intfm;//记录女生100米第一名成绩
intfm1;//记录女生100米第二名成绩
intfm2;//记录女生100米第三名成绩
ints;//记录学校总分
}sum;
输入每个学校的情况调用voidinitline();
统计各学校总分voidsumline();
按学校编号排序输出voidputs();
按学校总分排序输出voidputs1();
按男女团体总分排序输出voidputs2(]);
按学校编号查询学校某个项目的情况voidsearchline(]);
可以按项目编号查询取得前三或前五名的学校voidsearchline1();
第三章算法实现
3.1数据结构
成绩输入为数组
学校的存储结构为链表,
3.2程序模块结构体定义
typedefstruct
{
intnumber;//记录学校序号
intmm;//记录男生100米第一名成绩
intmm1;//记录男生100米第二名成绩
intmm2;//记录男生100米第三名成绩
intfm;//记录女生100米第一名成绩
intfm1;//记录女生100米第二名成绩
intfm2;//记录女生100米第三名成绩
ints;//记录学校总分
}sum;
3.3各模块之间的调用关系
输入每个学校的情况调用voidinitline();
统计各学校总分voidsumline();
按学校编号排序输出voidputs();
按学校总分排序输出voidputs1();
按男女团体总分排序输出voidputs2(]);
按学校编号查询学校某个项目的情况voidsearchline(]);
可以按项目编号查询取得前三或前五名的学校voidsearchline1();
3.4源程序代码
#include"stdlib.h"
#include"stdio.h"
typedefstruct//结构定义
{
intnumber;
intmm;
intmm1;
intmm2;
intfm;
intfm1;
intfm2;
ints;
}sum;
sumee[6];
intcc=0;
voidinitline(sumee[]);//函数调用
voidsumline(sumee[]);
voidputs(sumee[]);
voidputs1(sumee[]);
voidputs2(sumee[]);
voidsearchline(sumee[]);
voidsearchline1(sumee[]);
voidmain()//主函数
{
intc=1,k;
printf("欢迎进入运动会分数统计系统\n");
while(c)
{
printf("1-------输入每个学校的情况\n");
printf("2-------统计各学校总分\n");
printf("3-------按学校编号排序输出\n");
printf("4-------按学校总分排序输出\n");
printf("5-------按男女团体总分排序输出\n");
printf("6-------按学校编号查询学校某个项目的情况\n");
printf("7-------可以按项目编号查询取得前三或前五名的学校\n");
printf("8-------退出\n");
printf("请选择要干什么\n");
scanf("%d",&k);
switch(k)//switch语句
{
case1:
initline(ee);break;
case2:
sumline(ee);break;
case3:
puts(ee);break;
case4:
puts1(ee);break;
case5:
puts2(ee);break;
case6:
searchline(ee);break;
case7:
searchline1(ee);break;
case8:
c=0;break;
default:
printf("error\n");
}
}
}
voidinitline(sumee[])//建造,并输入每个学校的成绩
{
intn;
printf("你选择了输入每个学校的情况\n");
printf("学校编号从0-5\n");
printf("请输入学校编号\n");scanf("%d",&n);ee[n].number=n;cc++;
printf("请输入男生100米第一名成绩\n");scanf("%d",&ee[n].mm);
printf("请输入男生100米第二名成绩\n");scanf("%d",&ee[n].mm1);
printf("请输入男生100米第三名成绩\n");scanf("%d",&ee[n].mm2);
printf("请输入女生100米第一名成绩\n");scanf("%d",&ee[n].fm);
printf("请输入女生100米第二名成绩\n");scanf("%d",&ee[n].fm1);
printf("请输入女生100米第三名成绩\n");scanf("%d",&ee[n].fm2);
printf("输入完毕\n");
}
voidsumline(sumee[])//统计学校总分
{
inti;
printf("你选择了统计各学校总分\n");
printf("请输入学校编号\n");
scanf("%d",&i);
ee[i].s=ee[i].mm+ee[i].mm1+ee[i].mm2+ee[i].fm+ee[i].fm1+ee[i].fm2;
printf("编号为%d的学校总分是%d\n",i,ee[i].s);
}
voidputs(sumee[])//按学校编号输出成绩
{
inti,j,min,temp;
printf("你选择了按学校编号排序输出\n");
for(i=0;i{
min=i;
for(j=i+1;j{
if(ee[j].numbermin=j;
temp=ee[min].number;
ee[min].number=ee[i].number;
ee[i].number=temp;
}
}
printf("学校编号排序为\n");
for(i=0;i{
printf("%d",ee[i].number);
}
printf("\n");
}
voidputs1(sumee[])//按学校总分输出成绩
{
inti,j,min,temp;
printf("你选择了按学校总分排序输出\n");
for(i=0;i{
min=i;
for(j=i+1;j{
if(ee[j].smin=j;
temp=ee[min].s;
ee[min].number=ee[i].s;
ee[i].s=temp;
}
}
printf("学校总分排序为\n");
for(i=0;i{
printf("学校编号为%d,总分为%d",ee[i].number,ee[i].s);
}
printf("\n");
}
voidputs2(sumee[])//按男女团体成绩总分输出成绩
{
inti,j,min,temp;
printf("你选择了按男女团体总分排序输出\n");
for(i=0;i{
min=i;
for(j=i+1;j{
if(ee[j].smin=j;
temp=ee[min].s;
ee[min].number=ee[i].s;
ee[i].s=temp;
}
}
printf("男女团体总分排序为\n");
for(i=0;i{
printf("学校编号为%d,男女团体总分为%d",ee[i].number,ee[i].s);
}
printf("\n");
}
voidsearchline(sumee[])//按学校编号查询学校项目的情况
{
intg;
printf("按学校编号查询学校项目的情况\n");
printf("请输入学校编号\n");
scanf("%d",&g);
printf("男生100米第一名成绩为%d\n",ee[g].mm);
printf("男生100米第二名成绩为%d\n",ee[g].mm1);
printf("男生100米第三名成绩为%d\n",ee[g].mm2);
printf("女生100米第一名成绩为%d\n",ee[g].fm);
printf("女生100米第二名成绩为%d\n",ee[g].fm1);
printf("女生100米第三名成绩为%d\n",ee[g].fm2);
}
voidsearchline1(sumee[])//按项目编号查询学校项目的情况
{
intg,i;
printf("按项目编号查询学校项目的情况\n");
printf("请输入项目编号\n");
scanf("%d",&g);
for(i=0;i{if(g==1)
printf("学校编号为%d,男生100米成绩为%d\n",ee[i].number,ee[i].mm+ee[i].mm1+ee[i].mm2);
if(g==2)
printf("学校编号为%d,女生100米成绩为%d\n",ee[i].number,ee[i].fm+ee[i].fm1+ee[i].fm2);
}
}
第四章测试结果分析
4.1测试数据选择
输入学校为0时男女100米的成绩。
输出学校0的总成绩如图
:
学校0的总成绩是63
按学校编号查询学校项目
4.2测试结果分析
//1、可以输入各个项目的前三名或前五名的成绩;
//2、能统计各学校总分,
//3、可以按学校编号、学校总分、男女团体总分排序输出;
//4、可以按学校编号查询学校某个项目的情况;可以按项目编号查询取得前三或前五名的学校。
按照数字提示输入相关信息同时输出相关信息
总结
当然,要作为实际应用还有一些具体细节问题需要解决,还有一些功能需要改进。
例如:
没有实现多条记录的连锁删除和添加以及外部数据的导入功能;还没能实现动态生成报表;该系统还不能与企业中其他管理系统共享信息等。
在今后的工作、学习中我将认真总结经验教训,努力使自己成为一名技术过硬、工作严谨、思维活跃的工程人员,为提高人们的生活质量做出更大的贡献。
主要写特色及不足
心得体会
一周的课程设计结束了,在这次的课程设计中不仅检验了我所学习的知识,也培养了我如何去把握一件事情,如何去做一件事情,又如何完成一件事情。
在设计过程中,与同学分工设计,和同学们相互探讨,相互学习,相互监督。
学会了合作,学会了运筹帷幄,学会了宽容,学会了理解,也学会了做人与处世。
课程设计是我们专业课程知识综合应用的实践训练,着是我们迈向社会,从事职业工作前一个必不少的过程.”千里之行始于足下”,通过这次课程设计,我深深体会到这句千古名言的真正含义.我今天认真的进行课程设计,学会脚踏实地迈开这一步,就是为明天能稳健地在社会大潮中奔跑打下坚实的基础.通过这次模具设计,本人在多方面都有所提高。
通过这次模具设计,综合运用本专业所学课程的理论和生产实际知识进行一次冷冲压模具设计工作的实际训练从而培养和提高学生独立工作能力,巩固数据结构等课程所学的内容,掌握c语言设计的方法和步骤,掌握设计的基本的技能了熟悉