欢迎来到天天文库
浏览记录
ID:41447438
大小:193.50 KB
页数:26页
时间:2019-08-24
《2013软件工程数据结构实验教案》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、2013软件工程数据结构实验教案实验教案实验一栈和队列重点:1.掌握如何使用STL中的栈2.掌握如何自己编写栈的代码难点:用数组实现栈的原理,并能用c++描述具体实验讲解如下:本实验是要通过几段代码的编写,熟悉栈和队列的编写和应用在实验指导书中有4个题目,其中题目1、2、3是关于栈的,题目4是关于队列的。其中题目1难度小,题目2和题目3是有联系的,经过努力可以做出,但是题目4难度大些,属于选作内容1.题目一(STL中的栈)读懂实验指导书中的Task1中的程序(使用栈进行序列的顺序反转),并编译运行,通过此了解如果要实现一个栈类,里面需
2、要的基本的成员函数。这个程序在书上也有。(1)由于程序是用了STL(标准模板库,可以简单的看成是一个函数库,在其中有各种有用的类、函数和算法),栈在其中有实现。栈在STL中的实现用到了类模板,也就是说其栈是独立于类型的,模板提供参数化类型,也就是能将类型名作为参数传递给接收方来建立类或函数。比如stacknumbers;中就是声明了一个栈,这个栈中存放的数据类型为double。(2)注意要使用c++的输入输出需要加上几行语句如下,因为cout和cin是在命名空间std中的:#includeusing
3、namespacestd;2.题目二、题目三(自己编写栈)这里可以把题目二和题目三合成一个题目,在一个程序中完成就可以了。合并后的题目如下:自己编程程序实现一个简单的栈,并用于替换题目1中对标准模板库中的栈的使用,同时对自己实现的栈的功能进行扩充,添加实现如下几个函数(a)clear(b)full(c)size。使用新添加的栈函数,显示在进行数字序列反转时输入的十进制数的个数。注意:(1)实验题目文档中已经把大部分的代码都给出来了。栈可以用链表或者数组实现,这里是用数组实现。(2)实验题目中给出的仅仅是部分的代码,自己还需要在看懂的前
4、提下,进行修改补充,才可以达到具体的要求,不明白的地方也可以参考书上这一部分。一些补充代码如下:262013软件工程数据结构实验教案enumError_code{success,underflow,overflow};3.题目四(选作)这个题目的主要目的是熟悉队列这个数据结构,而为了说明问题又用了一个模拟飞机场的程序,因此这个实验项目在程序的找错误调试编译,读源代码上对大家也是一个锻炼。仔细阅读教科书中关于模拟飞机场这一部分,阅读源代码。实验题目中的源代码并不完整并且有些语法等等的错误,其缺少生成随机数这一个类,附录一会把这个类给大家
5、,有兴趣的话,可以看教科书中的附录,有些介绍。另外,也可以使用随机数生成函数(当然主函数要做相应修改去使用现有的随机数生成函数),使用示例见附录二。另外大家把代码读懂后就可以复制粘贴到编译环境中了,主要是读懂代码。但是,一定要知道,这样直接粘贴的代码并不能直接运行,需要修改其中的一些bug。这个题目的要求是能读懂代码,明白实现,而且要把代码放到VC中编译调试,使其能正常运行。并通过此,能对程序的编译调试查找错误较为熟悉。注意,一定要使警告也为0个。一些补充代码如下:(1)enumPlane_status{null,arriving,d
6、eparting};(2)enumError_code{success,underflow,overflow};(3)typedefPlaneQueue_entry;一个模拟时间点可以有飞机想起飞,或者有飞机想降落。但是该模拟时间点只能有一架飞机能起飞或者一架飞机能降落(假设飞机场只有一条跑道)具有的类如下:(1)Extended_queue:队列,实际上是作为飞机场的等待起飞和降落的排队队列,该队列里面放的是飞机类(2)Plane:飞机类(3)Rumway:飞机场类,该类中有两个队列作为类成员,分别是等待起飞和降落的队列。由于假设飞
7、机场只有一条跑道,所以,同一时间点只能有一架飞机起飞或者降落。(4)Random附录一下面是Random类,用于生成随机数,核心代码来自教科书的附录//Random.h#ifndefRANDOM_H_#defineRANDOM_H_classRandom{public:Random(boolpseudo=true);//declarerandom-numbergenerationmethodshere262013软件工程数据结构实验教案doublerandom_real();intpoisson(doublemean);private
8、:intreseed();//re-randomizetheseedintseed;intmultiplier,add_on;//constantsforuseinarithmeticoperations};#endif
此文档下载收益归作者所有