ImageVerifierCode 换一换
格式:DOCX , 页数:10 ,大小:50.46KB ,
资源ID:4961109      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/4961109.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(华中科技大学计算机学院C++实验报告 实验二.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

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

1、华中科技大学计算机学院C+实验报告 实验二课 程 实 验 报 告课程名称:面向对象程序设计实验名称:面向对象的整型栈编程院 系 : 计算机科学与技术 专业班级 : CS1209班 学 号 : 姓 名 : * * * 2014 年 1 月 22 日一、需求分析1.题目要求整型栈是一种先进后出的存储结构,对其进行的操作通常包括判断栈是否为空、向栈顶添加一个整型元素、出栈等。整型栈类型及其操作函数采用面向对象的C+语言定义,请将完成上述操作的所有函数采用C+编程, 然后写一个main函数对栈的所有操作函数进行测试。class STACK int *const elems; /申请内存用于存放栈的元素

2、 const int max; /栈能存放的最大元素个数 int pos; /栈实际已有元素个数,栈空时pos=0;public:STACK(int m); /初始化栈:最多m个元素STACK(const STACK&s); /用栈s拷贝初始化栈int size ( ) const; /返回栈的最大元素个数maxint howMany ( ) const; /返回栈的实际元素个数posint getelem (int x) const; /取下标x处的栈元素STACK& push(int e); /将e入栈,并返回栈STACK& pop(int &e); /出栈到e,并返回栈STACK& as

3、sign(const STACK&s); /赋s给栈,并返回被赋值的栈void print( ) const; /打印栈STACK( ); /销毁栈;2.需求分析采用面向对象的C+语言定义整型栈,对其进行的操作通常包括判断栈是否为空、向栈顶添加一个整型元素、出栈等。二、系统设计概要设计介绍设计思路、原理。将一个复杂系统按功能进行模块划分、建立模块的层次结构及调用关系、确定模块间的接口及人机界面等。三、软件开发该实验代码我用CodeBlocks进行编写并调试。四、软件测试1)总体界面如图1所示:图12)进行入栈操作,如图2所示:图23)进行打印栈操作,如图3所示:图34)进行出栈操作,如图4所示

4、:图45)用下标去元素,如图5所示:图56)栈中实际元素的个数如图6所示:图6五、源码和说明1.文件清单及其功能说明main.c 是源程序2.exe 是可执行文件2.用户使用说明书使用CodeBlocks进行编译,或者直接打开可执行文件。3.源代码#include#include#include#include using namespace std;class STACK int * elems; /申请内存用于存放栈的元素 int max; /栈能存放的最大元素个数 int pos; /栈实际已有元素个数,栈空时pos=0; public: STACK(int m);/初始化栈:最多m个元

5、素 STACK(const STACK&s); /用栈s拷贝初始化栈 int size() const; /返回栈的最大元素个数max int howMany() const; /返回栈的实际元素个数pos int getelem (int x) const; /取下标x处的栈元素 STACK& push(int e); /将e入栈,并返回栈 STACK& pop(int &e); /出栈到e,并返回栈 STACK& assign(const STACK&s); /赋s给栈,并返回被赋值的栈 void print()const; /打印栈 STACK(); /销毁栈;STACK:STACK(i

6、nt m):max(m),elems(new intm) pos=0;STACK:STACK(const STACK&s):max(s.max),elems(s.elems) pos=0; int STACK:size() const return max; int STACK:getelem (int x) const if(pos=0) coutpos) cout=max) cout空间不够!n; else *(elems+pos)=e; pos+; cout*(elems+pos-1); return (*this); STACK&STACK: pop(int &e) if(pos=0)

7、 cout栈为空; else e=*(elems+pos-1); pos-=1; return(*this); STACK& STACK:assign(const STACK&s) pos=s.pos; return (*this); void STACK:print()const cout最大量:maxendl; cout当前的元素个数:posendl; cout=0;i-) cout*(elems+i)t; STACK:STACK() delete elems; pos=0; max=0; void menu(void) coutt*n; coutt 1.返回栈的最大元素个数max; co

8、uttt 2.返回栈的实际元素个数posn; coutt 3.取下标x处的栈元素; coutttt 4.将e入栈,并返回栈n; coutt 5.出栈到e,并返回栈; coutttt 6.赋s给栈,并返回被赋值的栈n; coutt 7.打印栈; couttttt 8.销毁栈n; coutttt 0.退出程序n; coutt*n;int main() int m; int x1; int op; int t,x,x2,e,e3,e4; coutm; STACK st1(m); STACK st2(st1); cout初始化栈:最多m个元素完成n用栈s拷贝初始化栈完成n; Sleep(3000);

9、dosystem(cls);menu();coutop; switch(op) case 1: t=st1.size(); cout当前栈的大小为: t; getchar();getchar(); break; case 2: x=st1.howMany(); cout实际元素为 :xn; getchar();getchar(); break; case 3: cout请输入想得到的元素的下标:x1; x2=st1.getelem(x1); cout下表为x1的元素:x2; getchar();getchar(); break; case 4: coute; st1=st1.push(e);

10、getchar();getchar(); break; case 5: st1=st1.pop(e3); cout出栈元素为e3; getchar();getchar(); break; case 6: st2=st2.assign(st1); getchar();getchar(); break; case 7: coute4; if(e4=1) st1.print(); else st2.print(); getchar();getchar(); break; case 8: coute5; if(e5=1) st1.STACK(); else st2.STACK(); getchar();getchar(); break; default: cout输入有误请重新输入:; break; while(op);couttt*谢谢使用*nendl; return 0;

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1