1、 const int max; /栈能存放的最大元素个数 int pos; /栈实际已有元素个数,栈空时pos=0;public:STACK(int m); /初始化栈:最多m个元素STACK(const STACK&s); /用栈s拷贝初始化栈virtual int size ( ) const; /返回栈的最大元素个数maxvirtual operator int ( ) const; /返回栈的实际元素个数posvirtual int operator (int x) const; /取下标x处的栈元素virtual STACK& operator(int &e); /出栈到e,并返回栈
2、 operator=(const STACK& /赋s给栈,并返回被赋值的栈virtual void print( ) const; /打印栈virtual STACK( ); /销毁栈;2. 需求分析采用面向对象的C+语言定义,构建整型栈并对其进行判断栈是否为空、向栈顶添加一个整型元素、出栈等操作。2、系统设计概要设计用结构实现栈,此结构包括指向栈的指针,最大容量,和当前的元素个数等三个元素。要求是栈的元素是栈元素类型是整形。的局部数据结构。3、软件开发使用CodeBlocks进行编写并进行调试。4、软件测试1)总的界面如图1所示:图12)进行入栈操作,如图2所示:图23)返回栈的最大元素个
3、数,如图3所示:图34)查看栈的实际元素个数,如图4所示:图45)进行出栈操作,如图5;并查看出栈后的元素个数,如图6所示:图5图66)用下标取出栈中的元素,如图7所示:图77)打印栈,如图8所示:图88)销毁栈,如图9所示:图95、过程和体会1. 遇到的主要问题和解决方法刚开始对运算符重载有很大的质疑,并且不会怎么使用运算符重载。后来经过跟同学们的交流顺利的完成了实验所要求的内容。2. 课程设计的体会通过本次实验让我对C+中对整型栈的创建和对其进行操作有了更进一步的了解。6、源码和说明1. 文件清单及其功能说明main.c 是源程序 frdds.exe 为可执行程序2. 用户使用说明书使用C
4、odeBlocks进行编译。3. 源代码#includestdlib.hstdio.h#include using namespace std;virtual int size( ) const /返回栈的最大元素个数max return max; /返回栈的最大元素个数maxvirtual operator int ( ) const /返回栈的实际元素个数pos return pos; /返回栈的实际元素个数posvirtual int operator (int x) const /取下标x处的栈元素 return elemsx;(int e) /将e入栈,并返回栈 if(pos=max
5、) cout栈已满!; else *(elems+pos)=e; pos+; return (*this);e) /出栈到e,并返回栈 if(pos=0)栈为空! e=*(elems+pos-1); pos-=1;s) /赋s给栈,并返回被赋值的栈 pos=s.pos;virtual void print( ) const /打印栈最大量:maxendl;当前的元素个数pos=0;i-)*(elems+i)tvirtual STACK( ) /销毁栈 delete elems; if(elems=0)cout销毁没成功! else coutm; STACK st1(m); STACK st2(
6、st1);初始化栈:最多m个元素完成,用栈s拷贝初始化栈完成.n Sleep(3000);dosystem(cls);menu();cout请输入序号:op; switch(op) case 1: t=st1.size();当前栈的大小为: t; getchar();getchar(); break; case 2: x=st1;实际元素为 :xn break; case 3:请输入想得到的元素的下标:x1; x2=st1x1;下表为x1的元素:x2; case 4:请输入想压栈的元素:e; st1e3;出栈元素为 case 6: st2=st1; case 7:请输入想打印的栈1or2:e4; if(e4=1) st1.print(); st2.print(); case 8:请输入想销毁的栈1or2 int e5;e5; if(e5=1) st1.STACK(); st2.STACK(); default:输入有误请重新输入:while(op);tt*谢谢使用!*nreturn 0;
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1