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

    Github

    类的框架

    这里贴上两张图来描述我的框架(.cpp和.h分别对应)

    类的编码

    由于代码过长,这里只展示expression.hfraction.h;其余可在Github上查看。

    /*************************************************************
    文件名:expression.h
    作者:盖嘉轩 日期:2017/05/09
    描述: expression.cpp对应头文件
    *************************************************************/
    #pragma once
    
    #include"fraction.h"
    #include"auxiliary_functions.h"
    #include<iostream>
    #include<vector>
    using namespace std;
    const int kMax = 1000;
    
    class Expression
    {
    private:
    	vector<string> m_expressionUint;
    	string m_infix;
    	char m_postfix[kMax];
    	Fraction m_result;
    
    public:
    	Expression();
    	char RandomOperation(char ifMultiplyDivide);
    	string GenerateInfixExpression(int low, int high, int parameterNumber, char ifMultiplyDivide, char ifFraction, char ifBracket);
    	void TransferInfixIntoPostfix();
    	string CalculateResult();
    	bool IsOnly(string expression);
    };
    
    /*************************************************************
    文件名:fraction.h
    作者:盖嘉轩 日期:2017/05/09
    描述: fraction.cpp对应头文件
    *************************************************************/
    #pragma once
    
    #include"auxiliary_functions.h"
    #include<iostream>
    using namespace std;
    
    class Fraction
    {
    private:
    	int m_nnumerator, m_ndenominator;
    	string m_snumerator, m_sdenominator;
    
    public:
    	Fraction();
    	void GetFraction(int l, int h);
    	bool isDivisorZero();
    	bool IsInt();
    	void TransferIntIntoFraction(int up, int down);
    
    	void Simplify();
    	string TransferIntoStringNoInt();
    	string TransferIntoString();
    
    	friend const Fraction operator +(Fraction frac1, Fraction frac2);
    	friend const Fraction operator -(Fraction frac1, Fraction frac2);
    	friend const Fraction operator *(Fraction frac1, Fraction frac2);
    	friend const Fraction operator /(Fraction frac1, Fraction frac2);
    };
    

    栈的学习

    - 栈的定义

    栈是只能在某一端插入和删除的特殊线性表

    用桶堆积物品,先堆进来的压在底下,随后一件一件往上堆。取走时,只能从上面一件一件取。堆和取都在顶部进行,底部一般是不动的。

    栈就是一种类似桶堆积物品的数据结构,进行删除和插入的一端称栈顶;另一端称为栈底。插入一般称为进栈,删除则称为退栈。栈也称为后进先出表

    - C++栈的标准库函数

    使用标准库的栈时,应包含相关头文件: #include<stack>

    栈的定义stack<类型>变量名

    成员函数

    • push(a)//将元素a压入栈顶

    • pop()//删除栈顶元素

    • top()//返回栈顶元素

    • size()//返回栈中元素的个数

    • empty()//如果栈为空则返回true, 否则返回false

    目前平时主要用到的关于栈的知识就是这些,之后会继续补充。。。。

  • 相关阅读:
    linux 安装 apache2.2.31
    如何在高并发环境下设计出无锁的数据库操作(Java版本) 转载
    一些需要注意的点
    一些卡常技巧
    【CF809E】Surprise me! 树形DP 虚树 数学
    ISAP算法
    【AGC013C】Ants on a Circle 弹性碰撞
    【CF768G】The Winds of Winter 可持久化线段树 DFS序
    【CF633D】Fibonacci-ish
    【BZOJ4042】【CERC2014】parades 状压DP
  • 原文地址:https://www.cnblogs.com/gjx031602211/p/6895505.html
Copyright © 2011-2022 走看看