课程设计(论文)任务书软件学院信息专业 1 班一、课程设计(论文)题目运动会分数统计系统二、课程设计(论文)工作自 2010 年 12 月27 日起至 2010 年 12 月31 日止。
三、课程设计(论文) 地点: 创新大楼软件学院大楼四、课程设计(论文)内容要求:1.课程设计的目的为了配合《数据结构》课程的教学,使学生能更深刻地领会《数据结构》这门课程的重要性,特开设此课程设计;编写一些在特定数据结构上的算法,通过上机调试,更好的掌握各种数据结构及其特点,培养学生综合运用所学理论知识解决复杂实际问题的实践能力、研究性学习能力和团队合作能力。
2.课程设计的任务及要求1)基本要求(1)课程设计前必须选定课程设计题目,并认真进行需求分析;(2)上机调试之前要认真准备实验程序及调试时所需的测试数据;(3)程序结构要清晰,重点函数的重点变量,重点语句要加上清晰的程序注释;(4)独立思考,独立完成,调试过程要规范,认真记录调试结果;(5)撰写课设报告,对设计进行总结和讨论。
2)课程设计论文编写要求(1)要按照书稿的规格撰写打印课设论文(2)论文包括任务书、目录、绪论、正文、总结、参考文献、附录等(3)正文中要有问题描述、设计求解算法、算法的实现、调试分析与结果(4)课设论文装订按学校的统一要求完成3)课设考核从以下几方面来考查:(1)出勤情况和课设态度;(2)设计任务的难易程度及设计思路;(3)课设任务完成情况;(4)动手调试能力;(5)论文撰写的层次性、条理性、格式的规范性。
4)参考文献[1] 严蔚敏,吴伟民. 数据结构(C语言版)[M]. 北京:清华大学出版社, 2007年.[2] 谭浩强. C语言程序设计[M]. 北京:清华大学出版社,2006年.5)课程设计进度安排内容天数地点构思及收集资料1图书馆程序设计与调试3计算机房撰写论文1图书馆6)任务及具体要求任务:参加运动会的n个学校编号为1~n。
比赛分成m个男子项目和w个女子项目,项目编号分别为1~m和m+1~m+w。
由于各项目参加人数差别较大,有些项目取前五名,得分顺序为7,5,3,2,1;还有些项目只取前三名,得分顺序为5,3,2。
写一个统计程序产生各种成绩单和得分报表。
要求:产生各学校的成绩单,内容包括各学校所取得的每项成绩的项目号、名次(成绩)、姓名和得分;产生团体总分报表,内容包括校号、男子团体总分、女子团体总分和团体总分。
学生签名:2010年12月27 日课程设计(论文)评审意见(1)任务难易及设计思路:优()、良()、中()、一般()、差()(2)动手调试能力评价:优()、良()、中()、一般()、差()(3)任务完成情况评价:优()、良()、中()、一般()、差()(4)论文撰写水平及规范性评价:优()、良()、中()、一般()、差()(5)考勤和态度:优()、良()、中()、一般()、差()评阅人:职称:讲师2011年1 月3 日目录1 绪论 (3)2需求分析与概要设计 (4)2.1 需求分析 (4)2.1.1问题描述 (4)2.1.2基本要求 (4)2.2 概要设计 (4)2.2.1数据结构 (4)2.2.2程序模块及之间的调用关系 (5)3详细设计与编码实现 (6)3.1目的结果 (6)3.2变量关系 (6)数据类型及重要变量的定义 (6)3.3编码实现 (7)3.3.1信息输入及分数统计功能 (7)3.3.2信息输出查询功能 (7)3.3.3主函数 (8)4调试分析与结果 (9)4.1 运行界面 (9)输入各项信息 (9)4.2查询 (11)5总结体会 (13)6参考文献 (14)附录:源程序代码 (15)1 绪论近年来,在计算机软件业,面向对象程序设计的思想已经被越来越多的软件设计人员所接受。
不仅因为它是一种最先进的,新颖的计算机程序设计思想,最主要的是这种新的思想更接近人的思维活动,人们利用这种思想进行程序设计时,可以很大程度地提高编程能力,减少软件维护的开销。
面向对象程序设计方法是通过增加软件的可扩充性和可重用性来提高程序员的编程能力。
随着计算机在我国广泛而深入的应用,在分析和开发计算机系统软件和应用软件的过程中,迫切需要掌握各种数据结构的描述方法以及相应的处理算法。
因此面向对象程序设计知识是计算机相关科学的学生和从事计算机应用的技术人员必备的专业基础知识。
著名的瑞士计算机科学家沃思提出:对象+消息=程序。
2需求分析与概要设计2.1 需求分析2.1.1问题描述参加运动会的n个学校编号为1~n。
比赛分成m个男子项目和w个女子项目,项目编号分别为1~m和m+1~m+w。
由于各项目参加人数差别较大,有些项目取前五名,得分顺序为7,5,3,2,1;还有些项目只取前三名,得分顺序为5,3,2。
写一个统计程序产生各种成绩单和得分报表。
2.1.2基本要求产生各学校的成绩单,内容包括各学校所取得的每项成绩的项目号、名次(成绩)、姓名和得分;产生团体总分报表,内容包括校号、男子团体总分、女子团体总分和团体总分。
2.2 概要设计2.2.1数据结构1)学校:名称,编号,男子团体总分,女子固体总分。
2)运动项目:项目编号,名称,男子项目,女子项目,前三名,前五名,第一名学校的编号,第二名学校的编号,第三名学校的编号,第四名学校的编号,第五名学校的编号。
2.2.2程序模块及之间的调用关系图2.1:模块之间的调用关系3详细设计与编码实现3.1目的结果本课程设计主要解决在运动会上,将各个比赛项目所有获得名次的同学的成绩输入;成绩查询;成绩修改;成绩删除;以及成绩输出。
该程序用于运动会上,涉及到比赛项目成绩的录入,某个学校在某个项目中获得成绩的查询,某个学校在某个运动项目中获得的成绩的修改,某个学校在某个运动项目中获得的成绩的删除,以及某个学校所有获得成绩的得分报表以及团体成绩的得分报表。
其中比赛成绩的录入可以按照运动项目举行的次序输入,也可以输入自己指定的运动项目的成绩;自己扩展的功能是“某个学校在某个项目中获得成绩的查询,某个学校在某个运动项目中获得的成绩的修改,某个学校在某个运动项目中获得的成绩的删除”三项,这三项都要求输入学校以及运动项目编号,通过这两项作为参数具体的函数可以查询、修改成绩或者是删除某项成绩记录,进而影响到最后得分报表的输出。
3.2变量关系数据类型及重要变量的定义(1)定义运动项目数据类型,用于存放运动项目,包括项目编号、项目所取名次数、名次、分数。
int n; //n个学校int m; //m个男子项目int w; //w个女子项目struct pro //表示项目的结构体(2)定义学校数据类型,用来存储参赛学校信息,包括学校编号、学校总分、男团总分、女团总分、项目数组。
//定义学校结点类型int num;string name; //学校名称int score; //学校总分int male; //男子总分int female; //女子总分3.3编码实现3.3.1信息输入及分数统计功能void input()为输入信息及分数统计函数。
在输入信息的同时进行分数的统计。
可以输入各个学校各项目前三名或前五名的成绩。
在输入学校的参赛项目时,结果取前三名还是前五名自己定,用一个选择语句实现。
其主要功能代码如下:int integral[5]={7,5,3,2,1};//前五名得分int integraly[3]={7,5,3};//三名得分for(i=1;i<=m+w;i++){printf("输入第%d个项目的名称:\n",i);cin>>p[i].name;printf("该项目取前三名选0,取前5名选1:");scanf("%d",&q);3.3.2信息输出查询功能1)void output( )为输出函数。
列出一个输出目录利用swich语句使函数按学校编号输出或按学校总分、男团总分、女团总分由高到低排序输出。
利用辅助数组remember[]和冒泡排序的方法使之按分数的由高到低输出。
利用循环语句do while( )当输入2时返回输出目录,输入0是跳出循环返回主菜单。
void print(int i){cout<<sch[i].num<<setw(10)<<sch[i].name<<setw(8)<<sch[i].score< <setw(9)<<sch[i].male<<setw(10)<<sch[i].female<<endl;}2)void cxxm()为查询函数。
列车一个查询目录利用swich 语句使函数按学校编号或项目编号查询,输出某学校的某个项目的得分情况或某个项目的前几名的学校。
再利用循环语句do while( )当输入2是返回查询目录,输入0时跳出循环返回主菜单。
3.3.3主函数void main( )是主函数。
列出主菜单,利用switch语句调用以上函数实现各个菜单的功能。
想在每次查询结束想返回主菜单进行其它项时,应在main( )函数中调用其它函数时再调用main( )函数。
4调试分析与结果4.1 运行界面输入各项信息图4.1:输入各项信息的界面(1)图4.2:选择前几名的界面图4.3:输入各项信息的界面(2)图4.4:各项信息输入完毕的界面4.2查询可以按多个指标查询图4.5:查询界面(1)图4.6:查询界面(2)5总结体会本次课程设计,使我对数据结构线性表,栈的设计方法、步骤、思路、有一定的了解与认识。
它相当于实际设计工作的模拟。
在课程设计过程中,基本能按照规定的程序进行,先针对表达式算法为背景,通过调研、分析现有的管理模式和已有的管理软件,建立系统模型;收集、调查有关资料,然后进入草案阶段,其间与指导教师进行几次方案的讨论、修改,再讨论、再修改,最后定案。
通过此次课程设计,我了解了编写应用软件的一般步骤,获得了很多宝贵的经验。
特别是怎么样通过理论与实践相结合,把书本上的内容应用到我们做的程序上去。
怎样使各个子模块实施其的详细功能,特别是各个子模块之间的接口,一定要相当清晰,达到相互协调的作用其次,我熟悉了数据结构知识。
学会了很多关于程序设计的经验和技巧,明白了程序的使用性和通用性是程序生存周期长短的关键,学会了调试程序的一般方法。
重要的是,通过这次设计,逐步我具备了走向程序员的基本素质。
知道应如何在困难重重中一步一步细心的发现问题,解决问题。
并深刻体会到了团体合作精神的重要性,知道了在软件设计中对界面和功能如何平衡,如何达到相对的完美。