版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、课程实验报告课程名称:面向对象程序设计实验名称:面向对象的整型栈编程院 系:计算机科学与技术专业班级:CS1209班学 号:姓 名:一扌旨导教师 :李春花2015 年 01月 22 日一、需求分析1. 题目要求整型栈是一种先进后出的存储结构,对其进行的操作通常包括判断栈是否为空、向栈顶 添加一个整型元素、出栈等。整型栈类型及其操作函数采用面向对象的C+语言定义,请将完成上述操作的所有函数采用 C+编程,然后写一个main函数对栈的所有操作函数进行测 试。class STACKint *con stelems; /申请内存用于存放栈的元素const intmax;栈能存放的最大元素个数int p
2、os;/栈实际已有元素个数,栈空时pos=0;public:STACK(int m);/初始化栈:最多m个元素用栈s拷贝初始化栈/返回栈的最大元素个数 max/返回栈的实际元素个数pos/取下标x处的栈元素/将e入栈,并返回栈出栈到e,并返回栈STACK(co nst STACK&s);virtual int size ( ) con st;virtual operator int ( ) con st;virtual int operator (int x) con st; virtual STACK & operator(i nt e);virtual STACK & operator(i
3、 nt &e); /virtual STACK& operator=(const STACK&s); /赋 s 给栈,并返回被赋值的栈virtual void prin t( ) con st;virtual STACK();/打印栈/销毁栈;2. 需求分析采用面向对象的C+语言定义,构建整型栈并对其进行判断栈是否为空、向栈顶添加一个 整型元素、出栈等操作。、系统设计概要设计用结构实现栈,此结构包括指向栈的指针,最大容量,和当前的元素个数等三个元素要求是栈的元素是栈元素类型是整形。的局部数据结构。三、软件开发使用CodeBlocks进行编写并进行调试四、软件测试1)总的界面如图1所示:回下栈印
4、返 13 5 7臨并X ess0.退出程序S栈 尸的 数值 8 元回回 际返返返将顺销 2 4 6s请输人序号2)进行入栈操作,如图2所示:图23)返回栈的最大元素个数,如图 3所示:图34)查看栈的实际元素个数,如图 4所示:5)进行出栈操作,如图5;并查看出栈后的元素个数,如图 6所示:图5隨箍&5节:2头际兀素为1 36)用下标取出栈中的元素,如图 7所示:爭耿漏噩元素的下标:卡表为3的元素 12图77)打印栈,如图8所示:号打序想元元前面请佳習彗里?图88)销毁栈,如图9所示:I跻4五、过程和体会1. 遇到的主要问题和解决方法刚开始对运算符重载有很大的质疑,并且不会怎么使用运算符重载。
5、后来经过跟同学们 的交流顺利的完成了实验所要求的内容。2. 课程设计的体会通过本次实验让我对C+中对整型栈的创建和对其进行操作有了更进一步的了解。六、源码和说明1. 文件清单及其功能说明ma in .c 是源程序 frdds.exe为可执行程序2. 用户使用说明书使用CodeBlocks进行编译3. 源代码#in clude#i nclude#i nclude#i nclude using n amespace std;class STACKint *const elems; /申请内存用于存放栈的元素const int max; /栈能存放的最大元素个数int pos;/栈实际已有元素个数,
6、栈空时 pos=0;public:STACK(int m);/初始化栈:最多 m个元素/返回栈的最大元素个数maxSTACK(const STACK&s);/用栈s拷贝初始化栈virtual int size( ) constreturn ma x;/返回栈的最大元素个数max/返回栈的实际元素个数posvirtual operator int ( ) constretur n pos;/返回栈的实际元素个数posvirtual int operator (int x) con st/ 取下标 x 处的栈元素return elemsx;virtual STACK& operator=max)c
7、out栈已满! ”;else*(elems+pos)=e;pos+;return (*this);virtual STACK& operator(int &e)/ 出栈到 e,并返回栈if(pos=0)cout栈为空! ”;elsee=*(elems+pos-1);pos-=1;return (*this);virtual STACK& operator=(const STACK&s)/ 赋 s 给栈,并返回被赋值的栈pos=s.pos;return (*this);/打印栈virtual void print( ) constcout最大量:maxe ndl;cout当前的元素个数posen
8、dl;cout=0;i_)cout*(elems+i)t;virtual STACK( )/ 销毁栈delete elems;if(elems=0)cout销毁没成功! ! endl;else cout销毁成功! ! endl;STACK:STACK(i nt m=20):max(m),elems (n ew in tm)pos=0;STACK:STACK(co nst STACK&s):max(s.max),elems(s.elems)pos=0;void menu (void)coutt*n;coutt 1.返回栈的最大元素个数max;coutt 2.返回栈的实际元素个数posn;cout
9、t 3.取下标x处的栈元素;couttt 4.将e入栈,并返回栈n;coutt 5.出栈到e,并返回栈;couttt 6.赋s给栈,并返回被赋值的栈n;coutt 7.打印栈;coutttt 8.销毁栈 n;coutttt 0.退出程序 n;coutt*int mai n()int m;int x1;int op;int t,x,x2,e,e3,e4;cout请输入栈的最大容量m:;cinm;STACK st1(m);STACK st2(st1);cout初始化栈:最多 m个元素完成,用栈s拷贝初始化栈完成.n;Sleep(3000);dosystem(cls);menu();cout op;
10、switch(op)case 1:t=st1.size();cout当前栈的大小为:t;getchar();getchar();break;case 2:x=st1;cout实际元素为:xn;getchar();getchar();break;case 3:cout请输入想得到的元素的下标: x1;x2=st1x1;cout下表为x1的元素:x2;getchar();getchar();break;case 4: cout e;st1e3;cout出栈元素为e3;getchar();getchar();break;case 6:st2=st1;getchar();getchar();break;case 7:1or2:;1or2;cout e4;if(e4=1)st1.pri nt();elsest2.pri nt();getchar();ge
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 工程分包合同总公司与分公司协议(3篇)
- 鼓励孩子中考冲刺的话简单
- 25.1 锐角的三角比的意义(第1课时)同步练习
- 淋膜机买卖合同(3篇)
- 有关职业规划职业规划文档
- 高考地理二轮复习考前抢分专题识图技能专练图像七过程示意图含答案
- 劳动技术课教案范文(6篇)
- 年终获奖感言范文(35篇)
- 24.2 直角三角形的性质 同步练习
- 【鲁教54】第三次月考卷
- 2023上半年四川公务员考试申论试题(省市卷)
- 2024年度专业会务组织服务协议书版
- 函数的图象及变换省公开课获奖课件说课比赛一等奖课件
- 2020-2021学年河南省洛阳市高一上学期期中考试化学试题
- 四年级上册语文第六单元任务群教学设计
- 肥胖症诊疗指南(2024年版)
- GB/T 18284-2000快速响应矩阵码
- 完整版:美制螺纹尺寸对照表(牙数、牙高、螺距、小径、中径外径、钻孔)
- JJG 162-2019饮用冷水水表 检定规程(高清版)
- 花源镇中心幼儿园第三届现代课堂教学大赛活动实施方案
- 焦炭塔设计应考虑的几个问题[详细]
评论
0/150
提交评论