数据结构与算法课程设计

上传人:人*** 文档编号:557475901 上传时间:2024-01-26 格式:DOC 页数:87 大小:700.51KB
返回 下载 相关 举报
数据结构与算法课程设计_第1页
第1页 / 共87页
数据结构与算法课程设计_第2页
第2页 / 共87页
数据结构与算法课程设计_第3页
第3页 / 共87页
数据结构与算法课程设计_第4页
第4页 / 共87页
数据结构与算法课程设计_第5页
第5页 / 共87页
点击查看更多>>
资源描述

《数据结构与算法课程设计》由会员分享,可在线阅读,更多相关《数据结构与算法课程设计(87页珍藏版)》请在金锄头文库上搜索。

1、摘要数据结构是计算机软件和计算机应用专业的核心课程之一,在众多的计算机系统软件和应用软件中都要用到各种数据结构。因此,仅掌握几种计算机语言是难以应付众多复杂的课题,想要有效地使用计算机,还必须学习数据结构的有关知识。在计算机发展初期,人们使用计算机主要是处理数值计算问题。由于当时所涉及的运算对象是简单的整型,实型或布尔型数据,所以程序设计者的主要精力是集中于程序设计的技巧上,而无需重视数据结构。随着计算机应用领域的扩大和软,硬件的发展,“非数值性问题”越来越显得重要。据统计,当今处理非数值性问题占用了90%以上的机器时间,这类问题涉及到的数据结构更为复杂,数据元素之间的相互关系一般无法用数学方

2、程式加以描述。因此,解决此类问题的关键已不再是分析数学和计算方法,而是能设计出合适的数据结构,才能有效地解决问题。著名的瑞士计算机科学家沃思教授曾提出:算法+数据结构=程序。这里的数据结构是指数据的逻辑结构和储存结构,而算法则是对数据运算的描述。由此可见,程序设计的实质是对实际问题选择一种好的数据结构,加之设计一个好的算法,而好的算法在很大程度上取决于描述实际问题的数据结构关键字:数据结构、算法分析、树、图、存储结构、线性表目录一、 运动会分数统计51、 需求分析52、 概要设计53、 详细设计104、 调试分析16二、 一元多项式计算171、 需求分析172、 概要设计173、 详细设计18

3、4、 调试分析23三、 订票系统281、 需求分析282、 概要设计283、 详细设计334、 调试分析39四、 迷宫求解401、需求分析402、概要设计403、详细设计414、调试分析47五、 文章编辑481、 需求分析482、 概要设计483、 详细设计514、 调试分析55六、 joseph环571、需求分析572、概要设计573、详细设计574、调试分析59七、 猴子选大王601、 需求分析602、 概要设计603、 详细设计654、 调试分析69八、 建立二叉树,后序、先序遍历701、 需求分析702、 概要设计703、 详细设计704、 调试分析72九、 哈夫曼树的建立731、 需

4、求分析732、 概要设计733、 详细设计744、 调试分析78十、 纸牌游戏791、 需求分析792、 概要设计793、 详细设计804、 调试分析80十一、 图的建立及输出811、 需求分析812、 概要设计813、 详细设计824、 调试分析84课程总结85课程设计过程中的课程设计进展情况86参考文献87一、 运动会分数统计1、需求分析:任务:参加运动会有n个学校,学校编号为1n。比赛分成m个男子项目,和w个女子项目。项目编号为男子1m,女子m+1m+w。不同的项目取前五名或前三名积分;取前五名的积分分别为:7、5、3、2、1,前三名的积分分别为:5、3、2;哪些取前五名或前三名由学生自

5、己设定。(m=20,n=20) (1)、可以输入各个项目的前三名或前五名的成绩;(2)、能统计各学校总分;(3)、可以按学校编号、学校总分、男女团体总分排序输出;(4)、可以按学校编号查询学校某个项目的情况;可以按项目编号查询取得前三或前五名的学校。规定:输入数据形式和范围:20以内的整数(如果做得更好可以输入学校的名称,运动项目的名称)输出形式:有中文提示,各学校分数为整型界面要求:有合理的提示,每个功能可以设立菜单,根据提示,可以完成相关的功能要求。存储结构:学生自己根据系统功能要求自己设计,但是要求运动会的相关数据要存储在数据文件中。(数据文件的数据读写方法等相关内容在c语言程序设计的书

6、上,请自学解决)请在最后的上交资料中指明你用到的存储结构;测试数据:要求使用1、全部合法数据;2、整体非法数据;3、局部非法数据。进行程序测试,以保证程序的稳定。测试数据及测试结果请在上交的资料中写明.2、概要设计 本程序中学校的存储结构为链表,Prev school1 next头结点Prev school(最后) next其中school类为:class school:public athlete /*学校*/ public: int count; /*学校获奖数*/ int serial; /*学校编号*/ int menscore; /*男选手总分*/ int womenscore; /

7、*女选手总分*/ int totalscore; /*总分*/ athlete athMaxSize; /*获奖运动员信息数组,包括分数,名次,项目*/ school *prev;/前指针 school *next; /后指针;其中部分主要的函数:添加操作add(school* &head)查询操作checkFunc(school *head,int &n)文件保存save(school *head)总分快速排序tquicksort(vector& v, int first, int last)总分基数排序 tbaseSort(vector& v, int d) 关键算法 添加项目号for (

8、 i = 1 ; i serial =要添加的编号) (first-athfirst-count).item =要添加的项目号;(first-athfirst-count).range =i(名次) First指向的学校的项目加一;更新总分break;first = first-next;开始输入项目编号temp是数字NY0temp18NY输出“项目不存在”学校遍历结束temp存在YNNext schoolNtemp是奇数 NY取5名取3名输入获奖的学校编号se1senext;输出向量中的内容1. 所有学校总分统计表2. 学校成绩查询3. 项目情况查询4. 返回主菜单1. 按学校编号统计2. 按学校名次统计3. 按男团总分统计4. 按女团总分统计5. 返回查询菜单6. 返回主菜单/按学校编号顺序输出所有参赛学校运动会成绩void serialSort(vector& v)for(int i=0;iv.size();i+)cout*vi;3、详细设计#include #include #include #include #define NULL 0 #define MaxSize 30 typedef struct athletestruct /*

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 大杂烩/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号