欢迎来到天天文库
浏览记录
ID:61003937
大小:31.50 KB
页数:6页
时间:2021-01-19
《静态成员和友元实验报告.doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、[标准实验报告]南昌航空大学实验报告2011年11月11日课程名称:面向对象程序设计B实验名称:静态成员和友元班级:10202327姓名:吕潇同组人:指导教师评定:签名:一、实验目的(1)学习静态成员的使用,理解静态成员的特殊用途。(2)学习友元函数及友元类,领会友元类的作用。二、实验内容(本次实验要完成的内容)应用VC++6.0的编辑环境构造一个类Stack,设计一个整数链表类,实现栈操作。类中需有记录结点个数的数据成员(静态成员),要有判空操作。编制应用程序,取100次随机数(<1000),如果取到的随机数比前一个随
2、机数大的话,入栈,然后逐个取出(即出栈过程)求其和。用堆分配方法逐个产生满足条件(递增有序)的结点,插入栈中,每当出栈时,要及时将结点删除,求和工作放在类定义外(友元)。注意:栈中最多会有100个元素,最少会有一个元素,这是由条件(递增有序)决定的。具体说明如下:structSNode{intdata;SNode*next;};classStack{public:Stack();~Stack();voidPush(inte);//insertadataintostackintPop();//deleteadatafrom
3、stackfriendintGetSum(Stack&);//getsumofstack,friendfunction//friendclassgetsum;//getsumofstack,friendclass,youcantryitusingfriendclassstaticintnum;//staticnumberprivate:SNode*head;};对栈的入栈过程与出栈过程说明如下:(1)入栈,即向栈中添加一个元素,且该元素只能添加到当前链表最后一个数据元素之后,此时记录数组元素数据个数的变量应该进行++操作
4、;(2)出栈,即从链表中删除一个数据元素,且该元素只能是当前栈中最后的一个元素,此时记录数据元素个数的变量应该进行--操作,也就是说,入栈及出栈的操作标识实际上是由记录数组中数据元素个数的变量实现的。(3)判空,即判断当前栈(即链表)是否为空,也就是判断记录数组中数据元素个数的变量是否为0。三、概要设计(实现的功能,函数原型及说明等)应用VC++6.0的编辑环境构造一个类Stack,设计一个整数链表类,实现栈操作。类中需有记录结点个数的数据成员(静态成员),要有判空操作。编制应用程序,取100次随机数(<1000),如果
5、取到的随机数比前一个随机数大的话,入栈,然后逐个取出(即出栈过程)求其和。用堆分配方法逐个产生满足条件(递增有序)的结点,插入栈中,每当出栈时,要及时将结点删除,求和工作放在类定义外(友元)。structSNode{intdata;SNode*next;};链表结构体classStack{public:Stack();构造函数~Stack();析构函数voidPush(inte);入栈intPop();出栈friendintGetSum(Stack&);友元函数intGetSum(Stack&)函数原型staticint
6、num;静态变量用来计数private:SNode*head;四、详细设计(程序中核心代码,并要有相应注释——函数功能、参数说明、重要语句的注解)intStack::num=0;//静态成员初始化Stack::Stack()构造函数初始化{head=NULL;}Stack::~Stack()析构函数{}boolStack::Push(inte)入栈{SNode*p=newSNode;if(!p)returnfalse;p->data=e;p->next=head;head=p;num++;returntrue;}intS
7、tack::Pop()//出栈函数{SNode*p=newSNode;inte;staticintcount=1;p=head;e=p->data;head=p->next;free(p);count++;returne;}intGetSum(Stack&A)求和函数定义{intSum=0;for(inti=0;i8、实验四.cpp(38):errorC2143:syntaxerror:missing';'before'}'C:WindowsSystem32实验四.cpp(38):fatalerrorC1003:errorcountexceeds100;stoppingcompilation执行cl.exe时出错.实验四.
8、实验四.cpp(38):errorC2143:syntaxerror:missing';'before'}'C:WindowsSystem32实验四.cpp(38):fatalerrorC1003:errorcountexceeds100;stoppingcompilation执行cl.exe时出错.实验四.
此文档下载收益归作者所有