资源简介
武汉大学国际软件学院编译原理作业
C++实现计算器+ —* \ 带括号运算
[作业内容和要求]
设计和实现一个计算器,实现整数、实数的加减乘除四则运算,要求:
1、输入字符串(直接从控制台输入、或采用文件输入),可识别的合法单词(token)
为:整数(不以0 开头)、实数(不以0 开头)、‘+’、‘-’、‘*’、‘/’,‘(’、‘)’,‘=’。
以‘=’作为输入结束符。
2、输出要求:检查中缀表达式表示的加减乘除运算是否符合正常的表达式规则,
如果中缀表达式合法,则输出计算结果;如果不合法,则输出出错提示。
代码片段和文件信息
#include
using std::endl;
using std::cout;
using std::cin;
class Numbers //定义存放数字的类
{
private:
long double Num_str[200];
protected:
Numbers():count(0){}
~Numbers(){};
int count;
int Num_set(long double num)
{
Num_str[count]=num;
count++;
return 0;
}
int Num_input(long double numint b)
{
Num_str[b]=num;
return 0;
}
long double getNum(int b)
{
return Num_str[b];
}
bool display();
};
class sign //定义一个符号的类
{
protected:
int a; //‘0‘标志
int b; //‘1-9‘标志
int c; //‘+-‘标志
int d; //‘*‘标志
int e; //‘/‘标志
int f; //‘(‘标志
int g; //‘)‘标志
int h; //‘.‘标志
int i; //‘=‘标志
int fc; //‘(‘计数器
int gc; //‘)‘计数器
sign():a(0)b(0)c(0)d(0)e(0)f(0)g(0)h(0)i(0)fc(0)gc(0){}
~sign(){};
};
class compute:protected Numbersprotected sign //定义一个计算类
{
private:
char member;
compute *next;
protected:
bool creat(compute **head_adrint debug_model=0); //构建算式链表
bool isValid(compute *headint debug_model=0); //判断有效性
bool deal(compute *headcompute **deal_head_adrint debug_model=0); //数值有效化处理
bool comput(compute **comput_head_adrint debug_model=0); //算式计算
long double ltodf(compute *ch_head); //字符串转双精度浮点型
public:
compute():next(NULL){} //构造函数
bool main_Fun(); //总函数
~compute(){};
};
//构建算式链表
bool compute::creat(compute **head_adrint debug_model)
{
char get[1000];
char *point;
int i;
compute *p*cur;
cout<<“请输入四则运算式“;
if(debug_model==1)
cout<<“(debug模式)“< else
cout< cin>>get;
for(point=getp=NULL*head_adr=cur=NULL;*point!=‘\n‘;point++) //依次读取字符串中的字符
{
switch(*point)
{
case ‘.‘:
case ‘0‘:
case ‘1‘:
case ‘2‘:
case ‘3‘:
case ‘4‘:
case ‘5‘:
case ‘6‘:
case ‘7‘:
case ‘8‘:
case ‘9‘:
case ‘+‘:
case ‘-‘:
case ‘*‘:
case ‘/‘:
case ‘(‘:
case ‘)‘:p=new compute;
p->member=*point;
if(*head_adr==NULL)
*head_adr=p;
else
cur->next=p;
cur=p;
break;
case ‘=‘:p=new compute;
p->member=*point;
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 15261 2013-03-25 22:57 新建文件夹\Calculator\Calculator\Calculator.cpp
文件 4025 2013-03-25 23:08 新建文件夹\Calculator\Calculator\Calculator.vcxproj
文件 948 2013-03-25 23:08 新建文件夹\Calculator\Calculator\Calculator.vcxproj.filters
文件 202452 2013-03-25 23:08 新建文件夹\Calculator\Calculator\Debug\Calculator.obj
文件 1550 2013-03-25 23:08 新建文件夹\Calculator\Calculator\Debug\cl.command.1.tlog
文件 22324 2013-03-25 23:08 新建文件夹\Calculator\Calculator\Debug\CL.read.1.tlog
文件 1162 2013-03-25 23:08 新建文件夹\Calculator\Calculator\Debug\CL.write.1.tlog
文件 94 2013-03-25 23:08 新建文件夹\Calculator\Calculator\Debug\ConsoleApplication2.lastbuildstate
文件 2002 2013-03-25 23:08 新建文件夹\Calculator\Calculator\Debug\ConsoleApplication2.log
文件 2 2013-03-25 23:08 新建文件夹\Calculator\Calculator\Debug\li
文件 2 2013-03-25 23:08 新建文件夹\Calculator\Calculator\Debug\li
文件 2 2013-03-25 23:08 新建文件夹\Calculator\Calculator\Debug\li
文件 2 2013-03-25 23:08 新建文件夹\Calculator\Calculator\Debug\li
文件 2 2013-03-25 23:08 新建文件夹\Calculator\Calculator\Debug\li
文件 2 2013-03-25 23:08 新建文件夹\Calculator\Calculator\Debug\li
文件 2 2013-03-25 23:08 新建文件夹\Calculator\Calculator\Debug\li
文件 2 2013-03-25 23:08 新建文件夹\Calculator\Calculator\Debug\li
文件 2 2013-03-25 23:08 新建文件夹\Calculator\Calculator\Debug\li
文件 2 2013-03-25 23:08 新建文件夹\Calculator\Calculator\Debug\li
文件 2 2013-03-25 23:08 新建文件夹\Calculator\Calculator\Debug\li
文件 2 2013-03-25 23:08 新建文件夹\Calculator\Calculator\Debug\li
文件 2 2013-03-25 23:08 新建文件夹\Calculator\Calculator\Debug\li
文件 2 2013-03-25 23:08 新建文件夹\Calculator\Calculator\Debug\li
文件 2 2013-03-25 23:08 新建文件夹\Calculator\Calculator\Debug\li
文件 2 2013-03-25 23:08 新建文件夹\Calculator\Calculator\Debug\li
文件 1466 2013-03-25 23:08 新建文件夹\Calculator\Calculator\Debug\li
文件 3060 2013-03-25 23:08 新建文件夹\Calculator\Calculator\Debug\li
文件 762 2013-03-25 23:08 新建文件夹\Calculator\Calculator\Debug\li
文件 338944 2013-03-25 23:08 新建文件夹\Calculator\Calculator\Debug\vc110.idb
文件 348160 2013-03-25 23:08 新建文件夹\Calculator\Calculator\Debug\vc110.pdb
............此处省略14个文件信息
- 上一篇:C++课程设计计算器
- 下一篇:自定义消息
相关资源
- C++课程设计计算器
- 毕业设计-C++俄罗斯方块
- Opengl VC++演示六轴机械手
- c与c++嵌入式系统编程.pdf
- 基于网格的坡度滤波C++程序
- MiniSQL 用C++实现100166
- 南京理工大学c++课程设计6.2日期格式
- C++ 防火墙代码
- C++ Socket网络聊天
- vc++6.0 MFC 写的贪吃蛇工程源码
- C++Primer中文版(第4版)
- 用C++实现远程控制
- 遗传算法解决背包问题(C++版本)
- C++编程100例
- bmp24位彩色图像转8位灰度图像纯C++
- MFC平台下的电子词典
- c++宿舍管理系统源码+论文
- 南开大学C++考试题
- MFC教师住房管理系统和矩阵运算以及
- c++生成word和pdf
- 异形窗口加局部透明
- 数据结构与算法分析C++语言版张琨 第
- Boost.Asio C++ Network Programming 2nd edition
- VC++之MFC类库中文手册含MFC控件使用手
- VC++6.0全屏切换的窗口
- Windows 核心编程第五版(Windows Via C
- C++面向对象程序设计教程-陈维兴-清华
- OMRON SYSMAC gateway-C#/C++
- Expert C++ / CLI .NET for Visual C++ Programme
- C++木马(源代码)
评论
共有 条评论