没有合适的资源?快使用搜索试试~ 我知道了~
VC++程序: 将字符串转换成公式并计算结果
4星 · 超过85%的资源 需积分: 39 98 下载量 128 浏览量
2014-10-23
15:34:55
上传
评论
收藏 14KB TXT 举报
温馨提示
试读
22页
int Calculate(string formula) 函数功能:输入一个字符串公式string formula,允许四则混合运算,然后输入公式中对应变量的取值,最后返回int类型计算结果。 变量的格式:必须由1位字母加1位数字组成,如a1、b2等。 如输入字符串 “(a1+b2)/(-100)”,以及a1=100,b2=300,得到结果-4。遇到小数则向下取整。 公式的格式: 1、只包含变量、常数、四则符号、小括号四种符号,不支持大括号和中括号 2、允许正数前加正号,如+100 3、不允许空括号,如 “8*( )” 4、允许负数,但负数必须加括号,如 "5/(-1)"。当负数在公式开头时,可不加括号, 如 "-a1+90"和“+a1+90” 都是对的 5、允许纯常数公式,如 “5*(-9)” 6、允许用户输入多余的空格,但空格不能造成公式错误, 如公式 “(1 08+a2)/a 3” 是错的,(- 7)和(- n5)是错的,去掉空格就对了。
资源推荐
资源详情
资源评论
// duqugongshi.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include <vector>
#include <iostream>
#include <stack>
#include <algorithm>
#include <string>
#include <queue>
#include <map>
#include <sstream>
using namespace std;
// int Calculate(string formula) 函数功能:读取一个字符串公式(四则混合运算),然后输入公式中对应变量的取值,计算出结果
//变量的格式:必须由1位字母加1位数字组成,如a1、b2等。
//如输入 (a1+b2)/(-100),以及a1=100,b2=300,得到结果-4.遇到小数则向下取整。
//公式的格式:
//1、只包含变量、常数、四则符号、小括号四种符号
//2、允许正数前加正号,如+100
//3、不允许空括号如 “8*( )”
//4、允许负数,但负数必须加括号,如(-1),当负数在公式开头时,可不加括号, 如 "-a1+90"和“+a1+90” 都是对的
//5、允许纯常数公式,允许多余的空格,但空格不能造成公式错误,如公式 “(a1+a2)/a 3” 是错的,(- 7)和(- n5)是错的,去掉空格就对了
//tips:公式首位如果有正负号,相当于加个0,如 -5+8 == 0-5+8
bool IsRightAnswer = true;//该全局变量用来标志公式是否运算正确。初始化为正确。
//
#include "stdafx.h"
#include <vector>
#include <iostream>
#include <stack>
#include <algorithm>
#include <string>
#include <queue>
#include <map>
#include <sstream>
using namespace std;
// int Calculate(string formula) 函数功能:读取一个字符串公式(四则混合运算),然后输入公式中对应变量的取值,计算出结果
//变量的格式:必须由1位字母加1位数字组成,如a1、b2等。
//如输入 (a1+b2)/(-100),以及a1=100,b2=300,得到结果-4.遇到小数则向下取整。
//公式的格式:
//1、只包含变量、常数、四则符号、小括号四种符号
//2、允许正数前加正号,如+100
//3、不允许空括号如 “8*( )”
//4、允许负数,但负数必须加括号,如(-1),当负数在公式开头时,可不加括号, 如 "-a1+90"和“+a1+90” 都是对的
//5、允许纯常数公式,允许多余的空格,但空格不能造成公式错误,如公式 “(a1+a2)/a 3” 是错的,(- 7)和(- n5)是错的,去掉空格就对了
//tips:公式首位如果有正负号,相当于加个0,如 -5+8 == 0-5+8
bool IsRightAnswer = true;//该全局变量用来标志公式是否运算正确。初始化为正确。
string myitos(int n)
{
stringstream ss;
ss << n;
string res = ss.str();
return res;
}
//输入变量的取值
map<string, int> CinData(vector<string> variables)//输入每个变量的取值,取值范围是int的取值范围
{
map<string, int> res;
if (variables.empty())
return res;
for (int i = 0; i<variables.size(); i++)
{
char c = variables[i][0];
if ((c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z'))
{
cout << "请输入变量" << variables[i] << "的取值: ";
int temp = 0;
cin >> temp;
res[variables[i]] = temp;
}
}
return res;
}
//初步判断字符是否合法
bool IsCharRight(string f)
{
stringstream ss;
ss << n;
string res = ss.str();
return res;
}
//输入变量的取值
map<string, int> CinData(vector<string> variables)//输入每个变量的取值,取值范围是int的取值范围
{
map<string, int> res;
if (variables.empty())
return res;
for (int i = 0; i<variables.size(); i++)
{
char c = variables[i][0];
if ((c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z'))
{
cout << "请输入变量" << variables[i] << "的取值: ";
int temp = 0;
cin >> temp;
res[variables[i]] = temp;
}
}
return res;
}
//初步判断字符是否合法
bool IsCharRight(string f)
剩余21页未读,继续阅读
资源评论
- xilecsdn2016-02-28是测试代码
- u0101927962017-05-16不太合适,不值10积分
- huziyan8022014-12-18勉强能用吧,只是太贵了
- BURUCE7352021-03-06很好用,就是分太贵
bupt8846
- 粉丝: 15
- 资源: 5
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- Wireshark-4.2.4-x64.exe
- Video DownloadHelper需要的合作应用VdhCoApp 2.0.19
- Screenshot_2024-04-20-16-26-41-628_com.tencent.mm-edit.jpg
- 基于python+YOLOV7与DeepLabv3+图像深度学习算法+车载摄像头道路识别+语音告知车道偏离、前后方车距等辅助驾驶
- SpringBoot项目2.6.6版本基础框架
- CursorAI编程和软件开发.txt
- C语言编写的学生管理系统,由多个 .c 文件和 .h文件组成 我用的是VSCode软件编写的
- API开发工具.txt
- python源码超级画板程序
- AI智能将图片转换成HTML和CSS代码.txt
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功