实验四 静态成员与友元
1、实验目的
(1)学习静态成员的使用,理解静态成员的特殊用途。
(2)学习友元函数及友元类,领会友元类的作用。
2、实验内容
应用VC++6.0的编辑环境构造一个类Stack,设计一个整数链表类,实现栈操作。类中需有记录结点个数的数据成员(静态成员),要有判空操作。编制应用程序,取100次随机数(<1000),如果取到的随机数比前一个随机数大的话,入栈,然后逐个取出(即出栈过程)求其和。
用堆分配方法逐个产生满足条件(递增有序)的结点,插入栈中,每当出栈时,要及时将结点删除,求和工作放在类定义外(友元)。
注意:栈中最多会有100个元素,最少会有一个元素,这是由条件(递增有序)决定的。
具体说明如下:
struct SNode{
int data;
SNode *next;
};
class Stack{
public:
Stack();
~Stack();
void Push(int e); //insert a data into stack
int Pop(); //delete a data from stack
friend int GetSum(Stack &); //get sum of stack,friend function
//friend class getsum;// get sum of stack,friend class,you can try it using friend class
static int num; //static number
private:
SNode *head;
};
对栈的入栈过程与出栈过程说明如下:
(1) 入栈,即向栈中添加一个元素,且该元素只能添加到当前链表最后一个数据元素之后,此时记录数组元素数据个数的变量应该进行++操作;
(2) 出栈,即从链表中删除一个数据元素,且该元素只能是当前栈中最后的一个元素,此时记录数据元素个数的变量应该进行--操作,也就是说,入栈及出栈的操作标识实际上是由记录数组中数据元素个数的变量实现的。
(3) 判空,即判断当前栈(即链表)是否为空,也就是判断记录数组中数据元素个数的变量是否为0。
分享到:
相关推荐
参考《Orange’s》第六章,在之前搭建的 nasm+bochs 实验平台上实现特定进程调度问题的模拟,功能描述秒内不被分配时间片。– 注意,第六章代码已经在
参考《Orange’s》第六章,在之前搭建的nasm+bochs 实验平台上实现特定进程调度问题的模拟。1.1 功能描述• 添加系统调用,其接受int 型参数m
分支与循环结构程序设计 汇编语言课程设计第四次实验报告。 自己写的实验报告,满绩分数,含图片。
国开数据库应用技术第四次形考作业实验 实验目的:通过使用SSMS工具,练习对数据库中的数据表进行单表查询、多表连接查询、子查询。对数据表中的数据进行更改和删除等操作。 实验要求:将相关的SQL 语句和运行结果的...
四川大学操作系统课程设计高分报告-第四次实验-作业调度系统.doc 都是自己非常认真完成的,每一个要点都实现到位,程序全部跑通且符合要求。 保证每题均正确。 最后得到的分数也很好(均为最高分)
第四章实验要求
北邮信通院C++数据结构第三次实验——图 1.实验要求 2.程序分析 3.程序运行结果 4.总结 5.代码
ARM指令集仿真实验第4课实验报告 ①功能实现: 说明软、硬件的设计思路,并展示实现功能,考核对设计功能的实现程度。 ②结果实现: arm-linux-gcc仿真实现,或S3C6410试验箱硬件实现。 ③实验报告: 内容包括:实验...
按照“ITGAE_Tool_Ntwrk_Ed.pdf”中的Lab1和Lab2的要求,完成小规模及中等规模两种场景下共享式以太网与交换式以太网的性能比较实验,分析实验数据,回答问题,给出结论
北邮信通院C++数据结构第四次实验——表达式求值 1.实验要求 2.程序分析 3.程序运行结果 4.总结 5.代码
在功能方面要求支持有符号数和无符号数运算、支持补码加/减运算以及支持有符号数溢出检测等;在数据来源方面包括一个累加器和一组开关。通过手动操作,首先能够通过运算数据存入累加器中,再选择不同的运算控制信号...
北邮信通院C++数据结构第二次实验——二叉树 1.实验要求 2.程序分析 3.程序运行结果 4.总结 5.代码
第一次实验: ...要求: 1、分组长度 = 128 bit 2、主密钥长度 >= 128 bit ...第四次实验: 基于RSA实现如下“盲签名(Blind signature)” Blind signature schemes, first introduced by Chaum , allow
第一次实验内容是:使用Python3 实现TCP全连接端口扫描器;第二次实验内容是:用户从客户端进行登录后,可以进行从服务端下载文件;第三次实验内容是:多线程TCP端口扫描。最后课程设计是《多功能服务端与客户端》,...
课后上机实验习题(第四次-选择结构2);课后上机实验习题(第五次-循环结构1);课后上机实验习题(第六次-循环结构2);课后上机实验习题(第七次-数组);课后上机实验习题(第八次-字符串);课后上机实验习题...
(4)实验地点:填写完成该实验项目所在的实验室名称。 (5)实验学时:要求与实验大纲和实验指导书中完成该实验项目所需学时一致。 (6)实验类型:是指演示性、操作性、验证性、综合性、设计性。 演示性:教师操作...
利用程序,输入想要求解的X值,输入所给点的横纵坐标,求解方程的近似值
1. 实验内容 2. 实验要求 3. 实验目的 4. 设计思路和流程图 5. 代码及注释 6. 程序运行结果 7. 实验体会
按照本实验报告内容进行实验,并填写本实验报告的第四、五、六部分内容。 三、实验内容 实验内容案例1:使用表格布局课程列表 实验内容案例2:布局积分兑奖页面 实验内容案例3:鼠标经过时的图片动画 实验内容案例4...
2、实验目的要求使用合适的逻辑电路的设计方法,通过工具软件logisim进行斐波那契(Fibonacci)数列计算器设计和验证,记录实验结果,验证设计是否达到要