网站大量收购独家精品文档,联系QQ:2885784924

函数型计算器(VC++6.0,win32 console).doc

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
函数型计算器(VC6.0,win32console)

函数型计算器(VC++6.0,win32 console) /*--------------------------------------- 函数型计算器(VC++6.0,Win32 Console) 程序由 yu_hua 于2007-07-27设计完成 功能:目前提供了10多个常用数学函数: ⑴正弦sin ⑵余弦cos ⑶正切tan ⑷开平方sqrt ⑸反正弦arcsin ⑹反余弦arccos ⑺反正切arctan ⑻常用对数lg ⑼自然对数ln ⑽e指数exp ⑾乘幂函数∧ 用法:如果要求2的32次幂,可以打入 2^32回车如果要求30度角的正切可 键入tan(Pi/6)回车注意不能打入: tan(30)Enter如果要求1.23弧度的 正弦,有几种方法都有效: sin(1.23)Enter sin 1.23 Enter sin1.23 Enter 如果验证正余弦的平方和公式,可打入 sin(1.23)^2+cos(1.23)^2 Enter或 sin1.23^2+cos1.23^2 Enter此外两 函数表达式连在一起,自动理解为相乘 如:sin1.23cos0.77+cos1.23sin0.77 就等价于 sin(1.23)*cos(0.77)+cos(1.23)*sin(0.77) 当然你还可以依据三角变换,再用 sin(1.23+0.77)也即sin2验证一下。 本计算器充分考虑了运算符的优先级 因此诸如:2+3*4^2 实际上相当于: 2+(3*(4*4))另外函数名前面如果是 数字,那么自动认为二者相乘.同理, 如果某数的右侧是左括号,则自动 认为该数与括弧项之间隐含一乘号。 如:3sin1.2^2+5cos2.1^2 相当于 3*sin2(1.2)+5*cos2(2.1) 又如: 4(3-2(sqrt5-1)+ln2)+lg5 相当于 4*(3-2*(√5 -1)+loge(2))+log10(5) 此外,本计算器提供了圆周率 Pi 键入字母时不区分大小写,以方便使用。 ----------------------------------------*/ #include iostream #include iomanip #include cstdlib #include cstring #include cctype #include cmath using namespace std; const char Tab=0x9; const int DIGIT=1; double fun(double x,char op[],int *iop) { while(op[*iop-1]32) //本行使得函数嵌套调用时不必加括号 // 如 arc sin(sin(1.234)) 只需键入arc sin sin 1.234Enter switch(op[*iop-1]) { case 7: x=sin(x); (*iop)--;break; case 8: x=cos(x); (*iop)--;break; case 9: x=tan(x); (*iop)--;break; case 10: x=sqrt(x); (*iop)--;break; case 11: x=asin(x); (*iop)--;break; case 12: x=acos(x); (*iop)--;break; case 13: x=atan(x); (*iop)--;break; case 14: x=log10(x);(*iop)--;break; case 15: x=log(x); (*iop)--;break; case 16: x=exp(x); (*iop)--;break; } return x; } double calc(char *expr,char **addr) { static deep; //递归深度 static char *fname[]={ sin,cos,tan,sqrt, arcsin,arccos,arctan,lg,ln,exp,N

文档评论(0)

sy78219 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档