该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
/****************************************************************************************
自编科学计算器 maker:QQ:306483372
小弟今年刚初三毕业 对编程很感兴趣但还不是太熟 此程序用了近5小时才编写完成 其中注释较为详细
不过可能有很多注释语言不是很规范 有些程序语言有些重复麻烦 我还在不断改进程序 将在近期增加
能在结果显示分数 根号等其他功能。 希望大家能多多试用 广投宝贵意见 找出程序中的漏洞bug
欢迎大家学习交流 QQ见上 谢谢
*//**************************************************************************************
/**********************功能**************************************************************
支持数学函数:sin asin cos acos tan atan ln log输入时可以分别简写为s as c ac t at ln lo
支持^次方号与!阶乘号 括号 不支持根号输入 开y的x次方 需以"y^1|x"格式输入
支持输入分数如27的1/3次方输入为27^1|3(分数线用"|"用"/"将视为27的一次方除以3)
支持输入简写:如5*tan30可简写为5tan30 5*(5+6)可简写为5(5+6)
运算顺序为 括号 > 阶乘 > 负号 > 次方号 > 函数 > 乘除 > 加(减) 即2^3!等效于2^6 sin3!等效sin6
*//**************************************************************************************/
#include
#include
#include
#include
#define CHECK \
//parp=parF;while(parp->next!=NULL){cout<kind<next;}cout<kind<
//parp=parF;while(parp->next!=NULL){cout<num<next;}cout<num<
//parp=parF;while(parp->next!=NULL){cout<oper<next;}cout<oper<
//parp=parF;while(parp->next!=NULL){cout<func<next;}cout<func<
double StoD(char *,char *);//将数字字符串转化为数字
struct COUNTERpar//元素
{
char kind;//元素种类:'N'为数字 'O'为运算(+-* /^!) 'F'为函数(sin asin ln.....) 和正反括号
double num;//数字值
//double GC;//注释根号次数
char oper;//运算符
char *func;//函数名
COUNTERpar *last;//上一个
COUNTERpar *next;//下一个
};
//5!+6*sin90!^2*3-2^3!
int counterJSsimp(COUNTERpar *parpF,COUNTERpar *parpE,COUNTERpar *parF=0,COUNTERpar *parp=0)
{ COUNTERpar *partemp,*partemp2,*partemp3,*partemp4;
double temp1=0,temp2=0,temp3=0;
double PI=3.1415926535;