欢迎来到天天文库
浏览记录
ID:57546356
大小:235.47 KB
页数:9页
时间:2020-08-27
《华中科技大学计算机学院C++实验报告-实验二.pdf》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、课程实验报告课程名称:面向对象程序设计实验名称:面向对象的整型栈编程院系:计算机科学与技术专业班级:CS1209班学号:姓名:指导教师:李春花2014年1月22日精品文档一、需求分析1.题目要求整型栈是一种先进后出的存储结构,对其进行的操作通常包括判断栈是否为空、向栈顶添加一个整型元素、出栈等。整型栈类型及其操作函数采用面向对象的C++语言定义,请将完成上述操作的所有函数采用C++编程,然后写一个main函数对栈的所有操作函数进行测试。classSTACK{int*constelems;//申请内存用
2、于存放栈的元素constintmax;//栈能存放的最大元素个数intpos;//栈实际已有元素个数,栈空时pos=0;public:STACK(intm);//初始化栈:最多m个元素STACK(constSTACK&s);//用栈s拷贝初始化栈intsize()const;//返回栈的最大元素个数maxinthowMany()const;//返回栈的实际元素个数posintgetelem(intx)const;//取下标x处的栈元素STACK&push(inte);//将e入栈,并返回栈STACK&
3、pop(int&e);//出栈到e,并返回栈STACK&assign(constSTACK&s);//赋s给栈,并返回被赋值的栈voidprint()const;//打印栈~STACK();//销毁栈};2.需求分析采用面向对象的C++语言定义整型栈,对其进行的操作通常包括判断栈是否为空、向栈顶添加一个整型元素、出栈等。二、系统设计概要设计介绍设计思路、原理。将一个复杂系统按功能进行模块划分、建立模块的层次结构及调用关系、确定模块间的接口及人机界面等。三、软件开发该实验代码我用CodeBlocks进行
4、编写并调试。四、软件测试1)总体界面如图1所示:-1-欢迎下载。精品文档图12)进行入栈操作,如图2所示:图23)进行打印栈操作,如图3所示:图34)进行出栈操作,如图4所示:图45)用下标去元素,如图5所示:-2-欢迎下载。精品文档图56)栈中实际元素的个数如图6所示:图6五、源码和说明1.文件清单及其功能说明main.c是源程序2.exe是可执行文件2.用户使用说明书使用CodeBlocks进行编译,或者直接打开可执行文件。3.源代码#include#include5、b.h>#include#includeusingnamespacestd;classSTACK{int*elems;//申请内存用于存放栈的元素intmax;//栈能存放的最大元素个数intpos;//栈实际已有元素个数,栈空时pos=0;public:STACK(intm);//初始化栈:最多m个元素-3-欢迎下载。精品文档STACK(constSTACK&s);//用栈s拷贝初始化栈intsize()const;//返回栈的最大元素个数maxinthowM6、any()const;//返回栈的实际元素个数posintgetelem(intx)const;//取下标x处的栈元素STACK&push(inte);//将e入栈,并返回栈STACK&pop(int&e);//出栈到e,并返回栈STACK&assign(constSTACK&s);//赋s给栈,并返回被赋值的栈voidprint()const;//打印栈~STACK();//销毁栈};STACK::STACK(intm):max(m),elems(newint[m]){pos=0;}STACK::S7、TACK(constSTACK&s):max(s.max),elems(s.elems){pos=0;}intSTACK::size()const{returnmax;}intSTACK::getelem(intx)const{if(pos==0){cout<<"栈为空!!";}else{if(x>pos){cout<<"当前的元素不存在:";}elsereturnelems[x];-4-欢迎下载。精品文档}}intSTACK::howMany()const{returnpos;}STACK&8、STACK::push(inte){if(pos>=max)cout<<"空间不够!!";else{*(elems+pos)=e;pos++;cout<<*(elems+pos-1);}return(*this);}STACK&STACK::pop(int&e){if(pos==0){cout<<"栈为空!!!";}elsee=*(elems+pos-1);pos-=1;return(*this);}STACK&STACK::assign(const
5、b.h>#include#includeusingnamespacestd;classSTACK{int*elems;//申请内存用于存放栈的元素intmax;//栈能存放的最大元素个数intpos;//栈实际已有元素个数,栈空时pos=0;public:STACK(intm);//初始化栈:最多m个元素-3-欢迎下载。精品文档STACK(constSTACK&s);//用栈s拷贝初始化栈intsize()const;//返回栈的最大元素个数maxinthowM
6、any()const;//返回栈的实际元素个数posintgetelem(intx)const;//取下标x处的栈元素STACK&push(inte);//将e入栈,并返回栈STACK&pop(int&e);//出栈到e,并返回栈STACK&assign(constSTACK&s);//赋s给栈,并返回被赋值的栈voidprint()const;//打印栈~STACK();//销毁栈};STACK::STACK(intm):max(m),elems(newint[m]){pos=0;}STACK::S
7、TACK(constSTACK&s):max(s.max),elems(s.elems){pos=0;}intSTACK::size()const{returnmax;}intSTACK::getelem(intx)const{if(pos==0){cout<<"栈为空!!";}else{if(x>pos){cout<<"当前的元素不存在:";}elsereturnelems[x];-4-欢迎下载。精品文档}}intSTACK::howMany()const{returnpos;}STACK&
8、STACK::push(inte){if(pos>=max)cout<<"空间不够!!";else{*(elems+pos)=e;pos++;cout<<*(elems+pos-1);}return(*this);}STACK&STACK::pop(int&e){if(pos==0){cout<<"栈为空!!!";}elsee=*(elems+pos-1);pos-=1;return(*this);}STACK&STACK::assign(const
此文档下载收益归作者所有