C++程序设计语言——一个桌面计算器示例

C++程序设计语言——一个桌面计算器示例

C++程序设计语言一书中第10章 10.2节的桌面计算器示例。

程序代码

#include <ctype.h>
#include <iostream>
#include <istream>
#include <vector>
#include <string>
#include <map>

using std::map;
using std::string;

static int error_cnt = 0;

//Token defination
enum Kind : char
{
   
    name, number, end,
    plus='+', minus='-', mutiple='*', divid='/', lp='(', rp=')',
    print=';', assign='='
};

struct Token {
   
    Kind kind;
    string string_val;
    double number_val;
};

extern double expr(bool);
extern double term(bool);
extern double prim(bool);

// this table is for storing value of variables
// key is name of variable
map<string, double> table;

double error(const string& err_info)
{
   
    error_cnt++;
    std::cerr << "error : " << err_info << '\n';
    return 1;
}

class TokenStream {
   
public:
    TokenStream(std::istream& s) : ip{
   &s}, own{
   false} {
   };
    TokenStream(std::istream* p) : ip{
   p}, own{
   true
  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
参数列表及相应功能: [PATH]\Calc.exe [/F2] [/F3] [/F7] [/U# | /C#] [/AC] [/AG] [/QF] [/MI] [/LS] PATH 表示计算器程序在您电脑中的确切路径。 /F2 以表达式计算模式启动(只能单独或与 /AC 参数合用)。 /F3 开启语音功能(只能单独或与 /F2 参数合用)。 /F7 以按揭贷款计算模式启动(只能单独使用。)。 /U# 小数做四舍五入处理,# 表示需要保留的小数位数(与 /C# 参数不能同时使用)。 /C# 小数做直接舍去处理,# 表示需要保留的小数位数(与 /U# 参数不能同时使用)。 /AC 自动复制结果到系统剪贴板。 /AG 自动捕获系统剪贴板的数字(只能单独或与 /F2 参数合用)。 /QF 开启千分位符显示功能(只能单独或与 /F2 参数合用)。 /MI 以精简模式打开(不显示数字功能键盘)。 参数不受顺序及大小写限制,参数使用错误程序会提示,特定模式下不支持的参数程序不予处理。 参数的设置可以右键计算器程序,选择“创建快捷方式”,再右键创建的快捷方式选择“属性”,在“目标”后的文本框里添加相应的参数“确定”即可。 例如:你的计算器在你计算机的确切路径是“C”盘下的“MTzone”目录希望计算器每次开启时都自动打开语音功能,小数点做四舍五入处理,保留2位小数,且计算结果自动复制到系统剪贴板。那么请将计算器快捷方式里的目标设置为:C:\MTzone\Calc.exe /F3 /U2 /AC

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值