个人第二次作业-c++实现四则运算生成器

c++实现四则运算生成器

GIT地址Link
Git用户名Redwarx008
学号后五位61128
博客地址Link
作业链接Link

环境配置

使用VS2019社区版,一键式安装,这里不再赘述。

代码思路

程式的接口输入应为字符串类似于"3+5*11"。对字符串依次检索,这里我们使用两个栈,一个存放数字,另一个用以存放操作符。操作符进栈时需与栈顶操作符比较优先级,如果小的话则抛出栈顶操作符进行计算,计算结果进数字栈,依次类推。最终数字栈中的就是计算结果。
下面是类的声明,该类接受一个字符串
该程式接受一个整型控制生成算式的数量
完整代码已上传至githubLink

class cal_data
{
public:
    cal_data(string _expr)
        :expr(_expr) {
        div_str(expr);
    }
    string& get_str() { return expr; }
private:
    string expr;
    stack<double> num_stk;
    stack<char> oper_stk;
    inline bool is_number(char c);
    void div_str(string& expr);
    string::size_type  num_size(string& expr, string::size_type pos);
    int oper_priority(char c);
    void calculate();
};

至于简单的调试,特别的,可以这样来运行到光标处,十分方便
1598357-20190921093346783-155429823.png
其余不多赘述
运行结果如下

1598357-20190921092929380-1461975772.png

单元测试

VS中有个非常有用的功能,单元测试。通过单元测试,开发人员和测试人员可以快速的检查C#,.net和c++项目中各个类的方法中是否有逻辑错误。单元测试仅仅需要创建一次,那么在每次更改源代码时候运行,以确保不引入bug。

参考了https://blog.csdn.net/u013299585/article/details/73662526?tdsourcetag=s_pcqq_aiomsg
在同一个解决方案下添加测试项目
1598357-20190923170918211-723683200.png
1598357-20190921091230940-472011887.png

测试结果如下

1598357-20190921091235485-1667039305.png

像这种不足两百行的程式,单元测试意义不大,遑论回归测试

提交代码至github

这里参考了这篇文章

1598357-20190921133657019-1098396222.png

1598357-20190921133753193-506678240.png
要说遇到了哪些问题,写代码还好说,最糟心的就是提交到github了,搞了很久,毕竟万事开头难。

转载于:https://www.cnblogs.com/Redwarx008/p/11562853.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值