zoukankan      html  css  js  c++  java
  • 2017《面向对象程序设计》课程作业五

    题目描述

    • 经过第四次作业,相信大家都对面向对象的分析与设计有了萌芽式的了解。那么本次作业的第一点就是针对第四次作业的完善。请根据第四次作业分析设计的结果进行编码。要求根据设计的类图进行编码,写出实现该程序所需要的类,
    • 学习数据结构栈的知识。

    作业要求

    • 本次作业要求将程序写成.cpp和.h分离的形式
    • 根据设计的类图进行编码,搭建主体框架
    • 本次作业不要求实现核心的算法功能
    • 发表一篇博客,博客内容为:提供本次作业的github链接,对栈的知识学习探索。

    代码

    在上次作业,已经实现了编码:
    代码地址

    • 代码结构(主体框架):

    对栈的学习与探索

    上次的作业,已经学习了栈的知识,并把它融入到了表达式的生成:

    • 类的声明
    class stack//栈
    {
    private:int top;
    		char ch[MAX];
    public:void initstack(void);
    	   void push(char *data);
    	   char pop(void);
    	   bool isempty(void);
    	   stack() {};
    	   ~stack() {};
    };
    

    -成员函数

    //******stack*******
    void stack::initstack(void)
    {
    	top = -1;
    	int i = 0;
    	for (i = 0; i < MAX; i++)ch[i] = NULL;
    }
    
    bool stack::isempty(void)
    {
    	if (top == -1)return true;
    	else return false;
    }
    
    void stack::push(char *data)
    {
    	int len = strlen(data),i;
    	top++;
    	if (strlen(ch)+len >= MAX)cout << "The stack is full!" << endl;
    	else 
    		for (i = 0; i < len; i++) {
    			ch[top] = data[len - i - 1];
    			top++;
    		}
    	top--;
    }
    
    char stack::pop(void)
    {
    	char temp;
    	if (isempty())cout << "The stack is empty!!" << endl;
    	else {
    		temp = ch[top];
    		ch[top] = NULL;
    		top--;
    		return temp;
    	}
    }
    

    栈的小结:

    • 栈是一种运算受限的线性表,栈的特点是后进先出,主要的功能是进栈和出栈。
    • 栈可以用链表或者数组实现,当内存足够时可以使用数组,用前先划定出一块内存来使用栈;当内存不足时可以使用链表,动态地使用内存。在这里我使用了数组。
    • 用一个top来标志栈顶,进栈时top++,元素入栈,出栈时输出栈顶元素,删除元素,top--。
    • 使用前先划定一个范围,过程中需要包括top是否超出所划定范围的判断。

    完成体会

    • 因为这次作业的大部分要求,已经在第四次作业中完成,不止完成了框架,学习了栈,代码也已经编好。所以这次将框架提取出来,查找资料深入学习了一下栈,在这里总结了一下栈的特点用法。
    • 之前的代码已经分为.h和.cpp文件,为了使结构更清晰,我把主函数和成员函数也分离开来。
    • 对代码做了一次更新,添加了新学的构造函数和析构函数等。
  • 相关阅读:
    Jmeter之参数化
    JMETER之一般使用和断言(响应断言和JSON断言)
    JMETER之工具设置和可执行元件介绍
    fiddler 之简单并发、弱网设置
    fiddler之断点、篡改和伪造数据
    fiddler之手机端连接
    fiddler之工具介绍
    fiddler之图标描述
    原生js添加和删除类名
    抽象类和接口
  • 原文地址:https://www.cnblogs.com/vancasola/p/6883899.html
Copyright © 2011-2022 走看看