资源简介
很好用的一款编译器,比起vs,占得空间小多了
代码片段和文件信息
#include
#include
#include
#include
#include
using namespace std;
const char NUM[] = {‘0‘ ‘1‘ ‘2‘ ‘3‘ ‘4‘ ‘5‘ ‘6‘ ‘7‘ ‘8‘ ‘9‘ ‘.‘};
const char OPERATION[] = {‘+‘ ‘-‘ ‘*‘ ‘/‘};
const double PI = 3.14159265358979;
const double EE = 2.71828182818281;
class Fun { //处理系统数学函数的类
public:
Fun(string o int t double l = 0.0 double r = 0.0): op(o) type(t) lvalue(l) rvalue(r) {}
static string FUN[];
double calc();
private:
int type; //666 0 1 sin90 2 3! 3 3C2
string op; //函数类型
double lvalue; //函数左边的值
double rvalue; //函数右边的值
static int FunNum;
};
int Fun::FunNum = 10;
string Fun::FUN[] = {“!“ “sin“ “cos“ “tan“ “log“ “ln“ “C“ “A“ “^“ “-“};
/*
函数说明:
1:log是以10为底的工程对数
2:ln 是以e为底的自然对数
3:C 计算组合数 输入规则 如计算 3取2的组合 输入表达式 3C2
4:A 计算排列数 输入规则 如计算 3取2的排列 输入表达式 3A2
5:! 计算阶乘
6:^ x的y次方 输入 x^y
*/
int factorial(int n) { //阶乘函数
int i s = 1;
for(i = 1; i <= n; i++)
s *= i;
return s;
}
int C(int a int b) {
return factorial(a) / (factorial(b) * factorial(a - b));
}
int A(int a int b) {
return factorial(a) / factorial(b);
}
double Fun::calc() { //计算系统函数的值
if(type == 0)
return lvalue;
else {
if(op == “!“)
return factorial(lvalue);
if(op == “sin“)
return sin(rvalue / 180 * PI);
if(op == “cos“)
return cos(rvalue / 180 * PI);
if(op == “tan“)
return tan(rvalue / 180 * PI);
if(op == “log“)
return log10(rvalue);
if(op == “ln“)
return log10(rvalue) / log10(EE);
if(op == “C“)
return C(lvalue rvalue);
if(op == “A“)
return A(lvalue rvalue);
if(op == “^“)
return pow(lvalue rvalue);
if(op == “-“)
return -rvalue;
else {
string err = “暂时没有函数“ + op;
MessageBox(NULL err.c_str() “错误“ MB_OK);
return 0;
}
}
}
struct Unit { //双向链表保存运算单元
Unit(int p char o string c double v int t Unit * pr = NULL Unit * n = NULL)
: PRI(p) Operation(o) Code(c) value(v) Type(t) Pre(pr) Next(n) {}
int PRI; //优先级
char Operation; //操作符
string Code; //原始代码
double value; //数据
int Type; //类型 操作符0 数据1 函数2
Unit * Pre; //构成双向链表
Unit * Next;
};
class Node { //表达式树状结构的节点
public:
Node(char o int p int e = 1 double v = 0 Node * ph = NULL Node * pl = NULL Node * pr = NULL)
: Operation(o) PRI(p) expression(e) value(v) Head(ph) Left(pl) Right(pr) {}
Node * Head; //节点的根左树枝右树枝
Node * Left;
Node * Right;
double GetValue();
char GetOperation() const {
return Operation;
}
int GetPri() const {
return PRI;
}
int IsExp() const {
return expression;
}
private:
char Operat
- 上一篇:VS2010 MFC读写文件
- 下一篇:C++虚拟数字键盘 源代码 可扩展
相关资源
- 人力资源管理系统visual c++6.0 +SQL Ser
- 面向对象程序设计 旅店管理系统
- 基于SURF的特征检测程序 VC6.0下可以直
- 基于VC6.0 的MFC俄罗斯方块游戏设计含
- vc++6.0下载199209
- codeblocks-16.01mingw-setup.exe
- VC++6.0绿色版和番茄助手
- vc6.0完整英文版
- VC6.0完整绿色版
- libstdc++.so.6.0.23
- visual c++6.0win7兼容64位
- VC++6.0安装包绿色版.zip
- MFC SOCKET TCP VC6.0 服务器 客户端 源码编
- 番茄助手适用于VS2008/2012/2013/ VC6.0
- VC++6.0+sql server,学院通讯录管理系统
- Dev-C++ 5.4.0 - 最新版
- Visual C++ 6.0完整绿色版
- win10下完美运行vc6.0安装包与教程
- 基于mfc的学生信息管理系统159407
- 基于MFC实现的数独小游戏,可在vc6.
- 64位libstdc++.so.6.0.22,解决glibcxx not f
- vb关于api编程的pdf电子书《Visual basi
- 《Visual C++ 6.0 用户界面制作技术与应
- msdn for vc++6.0
- vc++6.0 绿色版 完整版支持win7,win8系统
- Borland C++ 6.0 精简版
- 状态指示灯(VC++6.0源代码)
- DEV-C++
- VC6.0英文版
- VC6.0绿色win10可用.rar
评论
共有 条评论