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

上传人:b****6 文档编号:17914470 上传时间:2022-12-12 格式:DOCX 页数:10 大小:50.46KB
下载 相关 举报
华中科技大学计算机学院C++实验报告 实验二Word格式.docx_第1页
第1页 / 共10页
华中科技大学计算机学院C++实验报告 实验二Word格式.docx_第2页
第2页 / 共10页
华中科技大学计算机学院C++实验报告 实验二Word格式.docx_第3页
第3页 / 共10页
华中科技大学计算机学院C++实验报告 实验二Word格式.docx_第4页
第4页 / 共10页
华中科技大学计算机学院C++实验报告 实验二Word格式.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

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

《华中科技大学计算机学院C++实验报告 实验二Word格式.docx》由会员分享,可在线阅读,更多相关《华中科技大学计算机学院C++实验报告 实验二Word格式.docx(10页珍藏版)》请在冰豆网上搜索。

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

constintmax;

//栈能存放的最大元素个数

intpos;

//栈实际已有元素个数,栈空时pos=0;

public:

STACK(intm);

//初始化栈:

最多m个元素

STACK(constSTACK&

s);

//用栈s拷贝初始化栈

intsize()const;

//返回栈的最大元素个数max

inthowMany()const;

//返回栈的实际元素个数pos

intgetelem(intx)const;

//取下标x处的栈元素

STACK&

push(inte);

//将e入栈,并返回栈

pop(int&

e);

//出栈到e,并返回栈

assign(constSTACK&

//赋s给栈,并返回被赋值的栈

voidprint()const;

//打印栈

~STACK();

//销毁栈

};

2.需求分析

采用面向对象的C++语言定义整型栈,对其进行的操作通常包括判断栈是否为空、向栈顶添加一个整型元素、出栈等。

二、系统设计

概要设计

介绍设计思路、原理。

将一个复杂系统按功能进行模块划分、建立模块的层次结构及调用关系、确定模块间的接口及人机界面等。

三、软件开发

该实验代码我用CodeBlocks进行编写并调试。

四、软件测试

1)总体界面如图1所示:

图1

2)进行入栈操作,如图2所示:

图2

3)进行打印栈操作,如图3所示:

图3

4)进行出栈操作,如图4所示:

图4

5)用下标去元素,如图5所示:

图5

6)栈中实际元素的个数如图6所示:

图6

五、源码和说明

1.文件清单及其功能说明

main.c是源程序

2.exe是可执行文件

2.用户使用说明书

使用CodeBlocks进行编译,或者直接打开可执行文件。

3.源代码

#include<

iostream>

stdlib.h>

stdio.h>

#include<

windows.h>

usingnamespacestd;

int*elems;

intmax;

public:

STACK(intm);

//初始化栈:

STACK(constSTACK&

intsize()const;

inthowMany()const;

intgetelem(intx)const;

STACK&

voidprint()const;

~STACK();

STACK:

:

STACK(intm):

max(m),elems(newint[m])

{

pos=0;

}

s):

max(s.max),elems(s.elems)

intSTACK:

size()const

{

returnmax;

}

getelem(intx)const

if(pos==0)

cout<

<

"

栈为空!

\n"

;

else

if(x>

pos)

当前的元素不存在:

returnelems[x];

howMany()const

returnpos;

STACK:

push(inte)

if(pos>

=max)

空间不够!

*(elems+pos)=e;

pos++;

*(elems+pos-1);

return(*this);

e)

栈为空"

e=*(elems+pos-1);

pos-=1;

return(*this);

assign(constSTACK&

s)

pos=s.pos;

voidSTACK:

print()const

最大量:

max<

endl;

当前的元素个数:

pos<

里面的元素为:

for(inti=pos-1;

i>

=0;

i--)

*(elems+i)<

\t"

~STACK()

delete[]elems;

max=0;

voidmenu(void)

\t********************************************************************\n"

\t1.返回栈的最大元素个数max"

\t\t2.返回栈的实际元素个数pos\n"

\t3.取下标x处的栈元素"

\t\t\t4.将e入栈,并返回栈\n"

\t5.出栈到e,并返回栈"

\t\t\t6.赋s给栈,并返回被赋值的栈\n"

\t7.打印栈"

\t\t\t\t8.销毁栈\n"

\t\t\t0.退出程序\n"

intmain()

intm;

intx1;

intop;

intt,x,x2,e,e3,e4;

请输入栈的最大容量m:

cin>

>

m;

STACKst1(m);

STACKst2(st1);

初始化栈:

最多"

m<

个元素完成\n用栈s拷贝初始化栈完成\n"

Sleep(3000);

do

system("

cls"

);

menu();

cout<

请输入序号:

op;

switch(op)

case1:

t=st1.size();

当前栈的大小为:

"

t;

getchar();

getchar();

break;

case2:

x=st1.howMany();

实际元素为:

x<

break;

case3:

请输入想得到的元素的下标:

x1;

x2=st1.getelem(x1);

下表为"

x1<

的元素:

x2;

case4:

请输入想压栈的元素:

e;

st1=st1.push(e);

case5:

st1=st1.pop(e3);

出栈元素为"

e3;

case6:

st2=st2.assign(st1);

case7:

请输入想打印的栈1or2\n"

e4;

if(e4==1)

st1.print();

st2.print();

case8:

请输入想销毁的栈1or2"

inte5;

e5;

if(e5==1)

st1.~STACK();

st2.~STACK();

default:

输入有误请重新输入:

}while(op);

\t\t******谢谢使用******\n"

return0;

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 成人教育 > 专升本

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

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