高级程序设计实践课程设计任务书
一、课程设计的基本要求
1.认真查阅资料,独立完成设计任务。
2.独立思考,培养综合分析问题解决问题和调试程序的能力。
3.按时完成课程设计,写出课程设计报告。
二、课程设计的内容
对教学内容的知识点进行整理归纳,分别与四个实际应用问题(航空机票订票系、四则运算表达式求值、哈夫曼编/译码器、校园景点规划和导游)相结合,因此将实践的内容分为必做(基本操作)和选做(系统设计)两部分。其中基本操作部分与课堂教学的知识点相对应,为必做部分;系统设计是从四个实际问题中选做一个,设计并实现相应的界面、功能模块等,构建一个具有良好人机交互的原型系统。要求用面对对象的程序设计理念,建立适用于各类数据结构(链表、栈、队列、树、图)的类库,并结合具体实践问题,采用C++编程语言完成相应的系统。
(一) 单链表、队列、二叉树查和排序算法的实践
实践目的或任务:通过指导学生上机实践,结合航空机票订票系统,对单链表、队列、二叉树查和排序算法的基本概念及其不同的实现方法的理论得到进一步的掌握,并对在不同存储结构上实现不同的运算方式和技巧有所体会。
实践基本要求:
1、了解实验目的及实验原理;
2、编写程序,并附上程序代码和结果图;
3、总结在编程过程中遇到的问题、解决办法和收获。
实践的内容或要求:
1、基本操作(必做部分)
(1)编写类及成员函数,实现输入一组元素,建立一个带头结点的单链表;对该链表进行非递减排序;实现在非递减有序链表中删除值为x的结点;
(2)编写类及成员函数,采用链式存储或顺序存储实现队列的初始化、入队、出队操作;
(3)编写函数,建立有序表,利用二叉排序树的插入算法建立二叉排序树;在以上二叉排序树中删除某一指定关键字元素;采用折半查实现某一已知的关键字的查(采用顺序表存储结构)
(4)选用1-3的数据结构,编写程序实现下述五种算法中的两种:简单插入排序,冒泡排序,快速排序,归并排序,堆排序。
(5)给出测试代码
2、航空机票订票系统设计(四选一选做部分)
(1)自行调研后,确定航空订票系统的规模,及其所涉及的对象及对象之间信息的传递。对象如航线、飞机、航空公司、客户等。
(2)从基本操作中选择合适的数据结构和算法,设计机票系统的查询、订票、退票等功能;
(3)设计并实现类的设计与类的使用分离的交互友好的原型系统。
(二) 栈与二叉树遍历的实践
实践目的或任务:通过指导学生上机实践,对栈与二叉树遍历的基本概念及其不同的实现方法的理论得到进一步掌握,并对在不同存储结构上实现不同的运算方式和技巧有所体会。
实践基本要求:
1、了解实验目的及实验原理;
2、编写程序,并附上程序代码和结果图;
3、总结在编程过程中遇到的问题、解决办法和收获。
实践的内容或要求:
1、基本操作(必做部分)
(1)编写类及成员函数,分别采用链式存储或顺序存储实现栈的初始化、入栈、出栈操作
(2)编写类及成员函数,建立二叉树的二叉链表;实现二叉树的前中后序的递归和非递归遍历算法。
(3)给出测试代码
2、四则运算表达式的求值系统设计(四选一选做部分)
(1)结合基本操作,建立表达式二叉树,输出树的前中后序遍历的结果,计算表达式的值。
(2)当用户输入一个合法的算术表达式后,能够返回正确的结果。能够计算的运算符包括:加、减、乘、除、括号;能够计算的操作数要求在实数范围内;对于异常表达式能给出错误提示。
(3)设计并实现类的设计与类的使用分离的交互友好的原型系统。
(三) 哈夫曼树编译码的实践
实践目的或任务:通过指导学生上机实践,对哈夫曼树的基本概念及其不同的实现方法的理论得到进一步的掌握,并对在不同存储结构上实现不同的运算方式和技巧有所体会。
实践基本要求:
1、了解实验目的及实验原理;
2、编写程序,并附上程序代码和结果图;
3、总结在编程过程中遇到的问题、解决办法和收获。
实践的内容或要求:
1、基本操作(必做部分)
编写类及成员函数,建立哈夫曼树,实现求哈夫曼编码及解码的算法;给出测试代码。
2、哈夫曼编/译码器的系统设计(四选一选做部分)
(1)从终端读入字符集大小n,以及n个字符和n个权值,建立哈夫曼树并将它存于文件hfmTree中。将已在内存中的哈夫曼树以直观的方式(比如树)显示在终端上;
(2)利用已经建好的哈夫曼树(如不在内存,则从文件htmTree中读入),对文件ToBeTran中的正文进行编码,然后将结果存入文件CodeFile中,并输出结果,将文件CodeFile以紧凑格式先是在终端上,每行50个代码。同时将此字符形式的编码文件写入文件CodePrint中。
(3)利用已建好的哈夫曼树将文件CodeFile中的代码进行译码,结果存入文件TextFile中,
并输出结果。
(4)设计并实现类的设计与类的使用分离的交互友好的原型系统。
(四) 图的最小生成树和最短路径的实践
实践目的或任务:
通过指导学生上机实践,对图的基本概念,以及图的最小生成树和最短路径的实现方法的理论得到进一步的掌握,并对在不同存储结构上实现不同的运算方式和技巧有所体会。
实践基本要求:
1、了解实验目的及实验原理;
2、编写程序,并附上程序代码和结果图;
3、总结在编程过程中遇到的问题、解决办法和收获。
实践的内容或要求:
1、基本操作(必做部分)
(1)编写用邻接矩阵表示无向带权图时图的基本操作的实现函数,主要包括:①初始化邻接矩阵表示的无向带权;②建立并输出邻接矩阵表示的无向带权图; ③编写生成最小生成树的Prim算法函数以及输出边集数组的函数;(2)利用邻接矩阵构造有向带权图,并求出某一顶点到其余顶点的最短路径;编写求最短路径的DijKstra算法函数,该算法求从顶点i到其余顶点的最短路径与最短路径长度;(3)编写打印输出从源点到每个顶点的最短路径及长度的函数; (4)给出测试代码。
2、校园景点规划和导游的系统设计(四选一选做部分)
(1)设计你所在学校的校园平面图,所含景点不少于10个。
(2)在n个校园景点之间要先建设通信网络,只需要假设n-1条线路即可。如何以最低的经济代价建设这个通信网,是一个网的最小生成树问题,利用最小生成树的Prim算法求解。通信线路一旦建立,必然是双向的,因此,构造最小生成树的网一定是无向网;设图的顶点数
不超过30个,且网中的权值设成小于100的整数,可用随机函数产生。
二叉树的遍历及应用实验报告(2)以图中顶点表示校内各景点,存放景点名称、代号、简介等信息;以边表示路径,存放路径长度的相关信息。①为来访客人提供图中任意景点的相关信息查询;②为来访客人提供图中任意景点的问路查询,即查询任意两个景点之间的一条最短路径;③提供图中任意景点问路查询,即求任意两个景点之间的所有路径。
(4)设计并实现类的设计与类的使用分离的交互友好的原型系统。
三、课程设计的要求
1.根据题目内容,查阅资料。
2.编写课程设计预习报告。
3.编制程序及调试程序。
4.分析总结,写出课程设计报告,报告中应该包含程序功能与使用说明、程序功能实现方法说明、如流程图与算法参数说明等内容,设计经验体会总结,源程序清单。
5. 实验过程由指导老师监督,听从老师安排和督导。
四、考核方式与评分办法
根据每个学生的考勤情况,准备工作情况,上机能力,分析问题和解决问题的能力,上机结果以及课程设计报告的质量综合评定。报告如有抄袭,一旦发现课程设计成绩作不及格处理。
五、实验报告提交要求
7月16日和17日两天采用腾讯会议进行上机检查,会议号另行通知。请提前排好序,每位同学演示程序运行过程并讲解,老师酌情提问并请回答。7月24日,请课程负责人将本班课程设计报告电子版收齐,打包后发到 或 ,命名为:高级程序设计实践课程设计_班级_人数.rar,每位同学的报告要求转为 PDF 版本提交,命名:学号+姓名.pdf。 请课程负责人上交前检查每位同学的报告文档是否能打开,以及是否是交的本次课程设计的内容。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论