面向对象第四次实验

实验四 静态成员与友元

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。

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 10-23

面向对象第四次实验的相关文章

面向对象第四次实验参考代码

#include <iostream.h> #include <stdlib.h> #include <time.h> #define NULL 0 struct SNode{ int data; //data domain SNode *next; //pointer domain }; class Stack{ public: Stack(); ~Stack(); void Push(int e); //insert a data into stack int Po

数据结构与算法 第四次实验报告 图

数据结构与算法 第四次实验报告 姓名:许恺 学号:2014011329 班级:计算机14-1     中国石油大学(北京)计算机科学与技术系 1.图的定义,文件为"Graph.h" #ifndef GRAPH_H//定义头文件 #define GRAPH_H #include<string>//引入标准库中的头文件 using namespace std; const int MaxSize=12; struct ArcNode//定义边表结点 { int adjvex;/

20135239益西拉姆第四次实验报告

北京电子科技学院(BESTI) 实验报告 课程:JAVA第四次实验报告 班 级: 1352 姓 名:益西拉姆 学 号:20135239 成 绩: / 指导教师: 娄嘉鹏 实验日期: 2015.06.09 实验密级: / 预习程度: / 实验时间:15:00--18:00 仪器组次:39 必须/选修: 选修 实验序号:04 实验名称: 第四次实验 实验仪器: 名称 型号 数量 PC机 DELL 1 实验内容: 1:编写网络通信程序.(基于TCP) 2:对通信内容使用对称加密算法进行加密. 3:使用

linux第四章实验报告

Linux第四章 用户和文件权限管理 实验环境 公司的linux主机即将提供给技术部作为开发服务器使用,根据部门内项目组的构成情况,首先需要建立相应的组账号.用户账号,并作为目录设置权限,还需要设置一个共用的数据存储目录,便于同事之间的数据交换. 需求描述 1.建立用户目录 创建目录/tech/benet和/tech/accp,分别用于存放各项目组中用户账号的宿主文件夹.例如,kylin用户的宿主目录应位于/tech/benet/kylin. 2.添加组账户 为两个项目组添加组账号benet,a

20145216史婧瑶《Java程序设计》第四次实验报告

实验四 Android环境搭建 实验内容 搭建Android环境 运行Android 修改代码,能输出学号 实验步骤 1.搭建Android环境 2.安装Android,核心是配置JDK.SDK 3.运行Android 新建一个项目 选择一个空的工程 在左边的栏中,选择Android --> app --> res --> layout,进入自己建立的工程,程序代码如图所示: 设置文本框, 输入自己的学号姓名 运行成功,结果如图: 实验中遇到的问题及解决过程: 问题: 在安装Androi

Java程序设计第四次实验报告

北京电子科技学院(BESTI) 实     验    报     告 课程:java程序设计 班级:1352  姓名:何伟钦  学号:20135223 成绩:            指导教师:娄嘉鹏      实验日期:2015.6.10 实验密级:       预习程度:           实验时间:15:30---17:20 仪器组次:23       必修/选修:选修   实验序号:05 实验名称:网络编程(简单的服务器与客户端) 实验目的与要求: 1.掌握Socket的基本使用方法,学

java学习之面向对象的四个特性

对象:由行为.状态和唯一标志组成. 一 抽象    抽象是忽略一个主题中与当前目标无关的方面,把现实世界中的概念转换为对象,可以是表示数据的VO对象或抽象类,也可以是表示一类行为的接口.有利于从众多变化的状态中抽离出不变的东西.有利于使用继承来构造类的体系,实现多态,使用模板和工厂模式方法来实现对业务过程的抽象.抽象是概念建模和业务流程建模很重要的工具,是面向对象体系的基石,而不是一堆杂乱.混乱.重复.散沙般的.关系错综复杂的类. 二 继承    是一种连结类的层次模型,并且允许和鼓励类的重用,

第四次实验+160+曾元鹏

软件测试实验四 一.实验目的 1) 学习QTP工具的使用 2)了解黑盒自动化测试 二.实验要求 (1)对被测程序进行黑盒测试用例设计 (2)对QTP的飞机订票系统的任一界面或控件实现自动化测试.(测试的具体自选) (3)写出该程序的缺陷. 三.实验内容 1.对QTP的样例小程序飞机订票系统,实现自动化测试.(学号被3整除,测3a;余1,测3b:余2,测4a) 2.要求: 1)写出飞机订票系统的被测需求. 自行选择需要测试的部分,根据自己的能力,可大,可小. 描述,被测程序,与被测部分的功能. 2

第四次实验作业

1.编写程序,输入一个整数x,按照下式输出对应的y值.     #include<stdio.h> int main() { int x,y,i; y=0; printf("请输入一个整数x\n"); scanf("%d",&x); if(x%2==1) { for(i=1;i<=x;i+=2) { y=i+y; } } else if(x%2==0) { for(i=2;i<=x;i+=2) { y=i+y; } } printf(

【php】面向对象(四)

知识点:ai一. a => abstract(抽象类) a) 抽象类的修饰符,修饰类和成员方法 b) 注意:被修饰的类不能被实例化,被修饰的方法不能有程序体 c) 如果某一个类使用abstract进行了修饰,则说明他内部有未完成的成员方法,两种解决方案,要么我们在本类中把未完成的方法实现,要么,我们让子类来继承他,完成未完成的功能,才可以实例化!二. I => interface(接口) a) Interface声明的是一个接口类 b) Interface当中只能包含常量定义,和成员方法 c)