ImageVerifierCode 换一换
格式:DOCX , 页数:11 ,大小:212.81KB ,
资源ID:7525949      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/7525949.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(数据结构课程设计报告一.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

数据结构课程设计报告一.docx

1、数据结构课程设计报告一中南大学数据结构课程设计报告学生姓名: 刘 江 涛 学 号: 0909090710 专业班级: 计科0902班 指导老师: 王 国 军 学 院: 信息科学与工程学院 完成时间: 2011年7月7日 目录一、 实验序号 实验名称 3二、 班级、姓名、学号、实验日期 3三、 实验目的 3四、 实验内容: 3五、 实验要求: 3六、 概要设计 4七、 详细设计 4八、 调试分析 6九、 测试结果 8十、 实验心得 12一、 实验序号 实验名称实验序号:实验五实验名称:运动会分数统计系统二、 班级、姓名、学号、实验日期班级:计科0902班姓名:刘江涛姚启鹏学号:090909071

2、0实验日期:2011年7月7日三、 实验目的1要求学生达到熟练掌握C语言的基本知识和技能。2了解并掌握数据结构与算法的设计方法,具备初步的独立分析和设计能力。3提高程序设计和调试能力。学生通过上机实习,验证自己设计的算法的正确性。学会有效利用基本调试方法,迅速找出程序代码中的错误并且修改。4培养算法分析能力。分析所设计算法的时间复杂度和空间复杂度,进一步提高程序设计水平。5初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能。四、 实验内容:参加运动会的n个学校编号为ln。比赛分成m个男子项目和w个女子项目,项目编号分别为lm和m1mw。由于各项目参加人数差别较大,有些项目

3、取前五名,得分顺序为7,5,3,2,1;还有些项目只取前三名,得分顺序为5,3,2。设计一个统计程序按名次产生各种成绩单、得分报表。五、 实验要求: 1 在上机前思考程序的编写; 2 能在机器上正确运行程序;3 用户界面清晰。六、 概要设计1. 首先,这个题目要求设计一个统计程序按名次产生各种成绩单、得分报表。这些得分报表还要按照不同的要求按名次排序输出(比如:按男团总分、女团总分等)。2. 其次,要求有n个学校编号为ln参加比赛。比赛分成m个男子项目和w个女子项目,项目编号分别为lm和m1mw。有些项目取前五名,得分顺序为7,5,3,2,1;还有些项目只取前三名,得分顺序为5,3,2。这里采

4、用了结构体,定义头文件等先把大致结构确定。3. 再次,要求产生各学校的成绩单,内容包括各校所取得的每项成绩的项目号、名次、成绩、姓名和得分;产生团体总分报表,内容包括校号、男子团体总分、女子团体总分和团体总分;均按名次排序。这里就比较麻烦,设计到排序输出的问题,在这里我选择用冒泡排序的方法。4. 最后,是最后界面菜单问题和所用语言问题,我选择运用C+。七、 详细设计1. 首先,确定程序的大致流程,定义项目节点类型头结点类型输入函数输出函数查询函数主函数。2. 其次,根据题目要求学校编号,项目编号,项目所取名次(前三还是前五),获奖人姓名和所获得名次分数,都需要自己进行输入。因此,运用宏定义先确

5、定学校数目和男女项目个数,其次定义void inputinformation( )为输入信息函数。用来输入各个学校各个项目前三名或前五名的成绩,结果取前三名还是前五名自己定,同时利用swith语句前三名的分数赋为5、3、2,前五名的成绩赋为7,5、3、2、1,未取得成绩则赋为0。最后,统计团体总分,男团总分和女团总分。3. 再次,就是这个程序最关键的地方输出。按照题目要求这里要求输出各学校的成绩单,内容包括各校所取得的每项成绩的项目号、名次、成绩、姓名和得分;产生团体总分报表,内容包括校号、男子团体总分、女子团体总分和团体总分。因此,定义void output( )为输出函数。列出一个输出目录

6、利用swich语句使函数按学校编号输出或按学校总分、男团总分、女团总分由高到低排序输出。利用辅助数组remember和冒泡排序的方法使之按分数的由高到低输出。利用循环语句do while( )当输入2时返回输出目录,输入0是跳出循环返回主菜单。无疑,这里如何按不同要求顺序输出是最关键的,因此在这里我采用了冒泡排序,同时利用数组remember来辅助进行。4. 再次,除了题目要求的任务外,另外添加了两种查询方式,分别为“按学校编号查询”和“按项目编号查询”。因此,在这里定义void inquiry( )为查询函数。列出一个查询目录利用swich 语句使函数按学校编号或项目编号查询,输出某学校的某

7、个项目的得分情况或某个项目的前几名的学校。再利用循环语句do while( )当输入2是返回查询目录,输入0时跳出循环返回主菜单。5. 最后,为了使大家能够方便的使用各个功能,要求做一个清晰方便的菜单供大家完成各个功能。因此,定义void main( )是主函数。列出主菜单,利用switch语句调用以上函数实现各个菜单的功能。八、 调试分析1 问题一:显示出开始界面。我是利用了label,在label上放上一张图片显示出来,让玩家点击然后进入到游戏中。但是一开始图片一直显示不出来,最后不断地改,终于发现了问题的所在,原来是一句话的原因:startPanel.setLayout(null);这句

8、话是设置startPanel的布局是空,然后如果添加了一个label的话,label虽然并没有正确的设置它的位置和大小,所以无法显示出label来。去掉之后,还有一个问题,原来的图片的大小很大,1000*967,但是我的窗体的大小是600*600,显示出来的图片出现了明显的变形,很不美观,想让图片自适应大小,找了很久,终于知道怎么设置了:image.setImage(image.getImage().getScaledInstance(600,600, Image.SCALE_DEFAULT);这样就好了,开始界面显示就没有什么问题了。2 问题二:随机扑克牌的产生。刚开始我只是利用Java的R

9、andom类对象的nextInt方法来产生四个随机数:Random ram = new Random();a = ram.nextInt(52) + 1;后来发现错了,四张扑克牌是不会相同的,而随机产生四个数字是有可能相同的!想到这里我马上就去改,保证下一个产生的随机数不和前面的随机数字相同,然后就可以了。 Random ram = new Random(); a = ram.nextInt(52) + 1;/ 既要保证数字随机还要保证不能重复 do b = ram.nextInt(52) + 1; while (a = b); do c = ram.nextInt(52) + 1; whil

10、e (c = a | c = b); do d = ram.nextInt(52) + 1; while (d = a | d = b | d = c);3 问题三:中缀表达式转换成后缀表达式。这里有一个很关键的问题就是判断操作符的优先级。我是按照课件PPT中方法去做的,刚开始就在中缀表达式的末尾添加一个#,并让#入栈。然后按顺序遍历中缀表达式,如果是数字的话,首先看后面的字符是否也是数字,根据情况(这里的数字不会超过三位数)判断,求出数值,如果是开括号的话,就直接放入到栈中。如果是闭括号,就要不断弹出栈顶元素直到栈顶元素是开括号,然后再弹出栈顶。如果是其他的操作符,那么就要比较栈顶元素和当前

11、的操作符的优先级,如果栈顶元素的优先级高,就弹出栈顶,直到当前操作符的优先级高于栈顶元素的优先级。比较操作符时,可以只考虑栈顶元素优先级高的情况。例如当栈顶元素是*时,然后考虑当前操作符就可以了,它可以是+,-,*,/,如果满足其中的一个,那么久返回true,其他的同理可得。这里刚开始遇到了不少的问题,最后都慢慢的解决了,要注意一些特殊的情况,如果当前的操作符是#,那么说明到了表达式的结尾,这个时候返回值就是true!4 问题四:四个数字的全排列。我给这个程序提供了一个附加的功能,这个功能就是可以给玩家一些参考答案。为了实现这个功能,我首先要做的是实现四个数字的全排列,这个问题看起来很简单,但

12、是自己写我试了好几种方法都失败了,后来看了数据结构的书找到了,使用的是递归的方法,看了一会,觉得看懂了,然后自己写,还是失败了,输出的结果都是原来的排列,最终问题出现在递归的交换两个数字那里。重新写了一下,没有使用交换方法并把交换的顺序好好地捋了捋,终于好了,实现了四个数字的全排列。九、 测试结果1 程序运行时的开始界面2 输入1之后进入输入页面。这时可以按文字提示输入各种信息。输入完成后按enter后,自动返回主菜单。3 选择2进入输出页面,根据菜单提示,按不同方式输出。(1)按学校编号输出(2)按学校总分输出(3)按男团总分输出(4)按女团总分输出输出完成后,按0退出 返回主菜单。4 查询

13、。分为按学校编号查询和按项目编号查询。(1) 按学校编号查询(2) 按项目编号查询 (3) 如果查询的不存在,则:(4)退出系统。实验心得为期一周的数据结构上机已经结束了。在这期间我遇到了很多问题,发现自己还并不能足够的掌握这些知识,比如:结构体的运用上感觉不是很熟悉,遇到结构体的时候很陌生,这是以后必须要加强的。同样还遇到了一些不能很好解决的问题,在输出的时候不能得到我们想要的效果,在按学校编号排序查询输出的时候,发生了重叠在做了几次修改之后都能使之满意,这有待学习和修改。通过这次课程设计让我明白了:在编写之前,做整体的规划很重要,这才能让在编程的时候效率更高,编写更流畅。同时,也让我对基础

14、的掌握更加熟练,也更加明白基础的重要性。总而言之,对我来说这是一次很好的机会,同时我也很好的把握了这次机会,认真的完成了此次上机的任务,对自己今后在程序编写方面相信会有很大的帮助,今后必需认真思考,全面的想问题,以达到最完美的结果。仔细回顾数据结构的学习过程,发现其实他也并不是想象中的那么难。数据结构的学习应该是自己不断积累的过程,这比老师给我一个“A”要强数倍,因为这意味着我走上了积累的道路,今天我所做的一切,不仅在改变今天的生活,而且在创造我将来的生活。可以先尝试做简单的 培养自己的兴趣,当你满足了最基本的,你可以想能不能再完善一些,不断为自己提出新要求,就可以不断地去超越,人也是在不断地超越过程中逐步成长的。我们学习的关键就是算法,也就是说数据结构的思想精髓,适当的实践与交流是必要的,可以为自己以后奠定宝贵的一笔财富。因此,我会一步一个脚印的走下去,这样才可以达到预期的彼岸!

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

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