zoukankan      html  css  js  c++  java
  • 课程第五次作业

    课程第五次作业

    作业要求:

    • 本次作业要求将程序写成.cpp和.h分离的形式
    • 根据设计的类图进行编码,搭建主体框架

    git链接

    头文件代码:

    #include<vector>
    #include<string>
    #include<fstream>
    #include<iostream>
    using namespace std;
    void InitPriorities();
    
    extern string infilepath, outfilepath;
    
    class Mutual        //用户的交互类
    {
    public:
    	Mutual(string out) :out_file_name(out){}
    	//Mutual(string in, string out) :in_file_name(in), out_file_name(out){}
    	void init();                //初始化
    	void scan(float f);                //该函数用于与用户交互,获取输入数据
    	void DisPlayAnswer();       //输出正确答案
    	void print();               //将统计结果输出给用户   
    private:
    	float answer;
    	int correctNum;
    	string in_file_name;
    	string out_file_name;
    };
    class Randomvalue       //随机生成类
    {
    public:
    	Randomvalue();//初始化数字和符号
    	int randomNumber();         //用于随机生成数字
    	char randomOperation();     //用于随机生成运算符
    private:
    	vector<char> sign;
    	vector<int> num;
    };
    class CreatExpresstion      //算式类 
    {
    public:
    	CreatExpresstion(){}
    	CreatExpresstion(string out) :out_file_name(out){}
    	template<typename T> string Tostring(T i);
    	void generateExpression();  //用于生成运算式   
    	float calculateResult();    //计算结果 
    	float caculate(float Operand1, float Operand2, char Operator);
    private:
    	string expression;
    	float answer;
    	string out_file_name;
    };
    
    class Filestream        //文件读写类
    {
    public:
    	//Filestream(string _infilepath, string _outfilepath);
    	int readFile(string _infilepath);
    	void clearfile(string s)
    	{
    		_ofs.open(s);
    		_ofs.close();
    	}
    	template <typename T> void writeFile(string _outfilepath, T t);
    private:
    	 string _InFilePath;
    	 string _OutFilePath;
    	ifstream _ifs;
    	ofstream _ofs;
    };
    class Problem
    {
    public:
    
    private:
    	string str1, str2;
    	Filestream F;
    	Randomvalue R;
    	CreatExpresstion C;
    	Mutual M;
    };
    

    对栈知识的探索

    在计算机导论中初步认识到栈,在c的学习中初步用到栈来解决一些问题。栈的重要特点是“先进后出”利用这一特点,能解决很多实际问题中的次序问题。
    栈作为一种数据结构,是一种只能在一端进行插入和删除操作的特殊线性表。它按照先进后出的原则存储数据,先进入的数据被压入栈底,最后的数据在栈顶,需要读数据的时候从栈顶开始弹出数据(最后一个数据被第一个读出来)。栈具有记忆作用,对栈的插入与删除操作中,不需要改变栈底指针。
    栈是允许在同一端进行插入和删除操作的特殊线性表。允许进行插入和删除操作的一端称为栈顶(top),另一端为栈底(bottom);栈底固定,而栈顶浮动;栈中元素个数为零时称为空栈。插入一般称为进栈(PUSH),删除则称为退栈(POP)。栈也称为后进先出表。
    其实并不是很懂栈,对于四则运算器中计算结果使用了栈的思想,是在百度上查找时发现计算器的计算程序的原理是利用了栈来解决优先级的问题,所以对于栈有了更深层面的认识。在栈的使用中头文件stack,利用vector容器也是非常便利的。

  • 相关阅读:
    C#操作json
    sql server 2008 身份验证失败 18456
    MD5密码加密
    oracle dg 报错提示 涉及硬盘错误
    Rhel6.5 相关操作
    Centos6.9部署vnc
    Sqluldr2 libclntsh.so报错处理
    时钟服务器同步方法
    windows copy 和xcopy
    Linux 本地repo配置
  • 原文地址:https://www.cnblogs.com/mercuialC/p/6892025.html
Copyright © 2011-2022 走看看