华中科技大学计算机学院C++实验报告实验六.doc
文本预览下载声明
课 程 实 验 报 告
课程名称:面向对象程序设计
实验六
院 系 : 计算机科学与技术
专业班级 : 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请输入想打
显示全部