代码改变世界

第四次作业(计算器第二步)

  面向对象程序设计课  阅读(931)  评论(0编辑  收藏  举报

—— Deadline 2016/04/14 22:00——

↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑

计算器第二部分-->开始计算啦!

必须在你们第一部分代码的基础上进行添加和修改。

  1. 这次不在运行后再进行输入,而是使用调用的方式。
    也就是在命令行里(如windows下的cmd),输入 calculator.exe -10000+20-3*(20+2) 来得出结果。例如:

    当然,结合下面的第二点,最终是要输出计算结果的。你可以如上面截图所示,先进行测试。

    提示:int main(int argc, char* argv[])

  2. 新建一个Calculation类,添加一个用来计算表达式的方法。

    • 将从Scan中返回的queue传入类Calculation中用来计算的方法,在这个方法里进行计算,并返回结果。
    • 如果这个方法里的代码太多,则把可以提取出来的代码,作为一个新方法提取出来,然后调用。
    • 要求使用两个栈来处理(这里要使用<stack>):一个存放数值,一个存放符号。从队列中读取字符串,并分别放入对应的栈中。
    • 注意对负数的处理。
    • 注意对优先级的处理。
    • 使用<sstream>将字符串转换为数字。
  3. 最终要在命令行中调用编译好的可执行文件(如windows的.exe文件),并传入参数以获得结果。如下图,对于Calculator.exe这个可执行文件:

    • 注意,不是在编译器上点击运行,而是在命令行中调用编译后的文件。
    • 注意,处理的时候,输入可能会有一个参数 -a 。如果加入这个参数,则需要把式子也输出,等号后加一个空格。如下图所示:

本次作业目的:

  1. 体会在已有的代码上继续开发。
  2. 了解如何给可执行程序传参。主要还是要知道当你们使用 git add 这些命令的时候,程序是如何解析的。
  3. 了解栈<stack><sstream>的使用。知道可以调用已有的库函数来解决某些问题。
编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示