文档详情

华中科技大学计算机学院C++实验报告实验六.doc

发布:2017-06-02约字共12页下载文档
文本预览下载声明
课 程 实 验 报 告 课程名称:面向对象程序设计 实验六 院 系 : 计算机科学与技术 专业班级 : CS1209班 学 号 : 姓 名 : 指导教师 : 李春花 2015 年 01 月 22 日 一、需求分析 1. 题目要求 整型队列是一种先进后出的存储结构,对其进行的操作通常包括判断队列是否为空、向队列顶添加一个整型元素、出队列等。整型队列类型及其操作函数采用面向对象的C++语言定义,请将完成上述操作的所有函数采用C++编程, 然后写一个main函数对队列的所有操作函数进行测试。注意,请用实验三的SATCK继承形成新的类QUEQUE。分析说明除构造函数以外的函数,加virtual说明与不加virtual说明有无区别。并说明为什么不将s2也作为基类。 class QUEUE:public STACK{ STACK s2; public: QUEUE(int m); //初始化队列:每个栈最多m个元素 QUEUE(const QUEUEs); //用队列s拷贝初始化队列 operator int ( ) const; //返回队列的实际元素个数 QUEUE operator(int e); //将e入队列,并返回队列 QUEUE operator(int e); //出队列到e,并返回队列 QUEUE operator=(const QUEUEs); //赋s给队列,并返回被赋值的队列 void print( ) const; //打印队列 ~QUEUE( ); //销毁队列 }; 2. 需求分析 有两个栈实现两个队列,其中一个栈用直接QUEUE类的成员,另一个栈用继承得到的。 二、系统设计 用两个栈实现队列,先判栈S2是否为空,如果为空,对S1进行入栈操作,如果不是空,栈S2数据元素倒入到S1,然后对S1进行入栈操作。 出队列时。判断S2是否为空,如果非空S2中的元素出栈,若果为空,把S1的元素倒入到S2,对S2的元素进行出栈操作。 三、软件开发 使用CodeBlocks进行编写和调试。 四、软件测试 1) 总界面如图1所示: 图1 2)进行入队列操作,如图2所示: 图2 3)进行打印栈操作,如图3所示: 图3 4)查看队列中的元素个数如图4所示: 图4 5)进行出队列操作,如图5所示: 图5 6)销毁队列,如图6所示: 图6 五、特点与不足 1. 技术特点 学会使用派生类操作基类成员函数。 2. 不足和改进的建议 无 六、过程和体会 课程设计的体会 通过本次的实验让我对C++中派生类问题有了更进一步的了解。刚开始进行编写时,对一些知识有点模糊,但经过老师和同学们的帮助下还是顺利的完成了。 七、源码和说明 1. 文件清单及其功能说明 main.c 是源程序文件 2. 用户使用说明书 使用CodeBlocks进行编译和调试。 3. 源代码 main.c: #include2.h int main() { int m; int op; int x,e,e3,e4; cout请输入栈的最大容量m:\n; cinm; QUEUE que1(m); QUEUE que2(que1); cout初始化栈:最多m个元素完成,用栈s拷贝初始化栈完成!\n; Sleep(3000); do { system(cls); menu(); cout请输入序号:\n; cinop; switch(op) { case 1: x=que1; cout实际元素为 :x\n; getchar();getchar(); break; case 2: cout将e入队列,并返回队列:; cine; que1e; getchar();getchar(); break; case 3: que1e3; cout出队列到e,并返回队列:e3; getchar();getchar(); break; case 4: que2 = que1; getchar();getchar(); break; case 5: cout请输入想打
显示全部
相似文档