- 1、本文档共12页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C 语言大作业说明文档
姓名:谢华梁
学号:2009012177
2011 年1 月1 日
1
目录
1. 选择的题目
2. 程序的设计
3. 实现的功能
4. 代码的说明
5. 总结与反思
2
1.选择的题目
表达式计算器,允许用户输入计算表达式,计算出相应结果。
【表达式定义】
1.数值:包括int,long,float,double 和biginteger (需自己实现大数
的基本运算)。
2.括号,只支持()。
3.运算符号包括加+、减-、乘*、除/、平方^、阶乘!
4 .支持的数学函数:(函数不考虑大数计算)
cos(), sin(), tg(), ctg(), abs(), sign(), sqrt(), ln(), sinh(),
cosh(), tanh(), coth()
(注意:当使用三角函数时,需要提示用户当前的输入的角度是弧度还是
角度,默认为弧度,允许用户进行设置,将弧度变为角度)
5.特殊的常数PI 为3.1415926,E 为2.71828
6.表达式可以是常数,加+、减-、乘*、除/、平方^、括号(),以及数学函
数的组合
【计算器功能】
1、用户输入表达式,回车,计算器计算出相应结果,允许用户设置结果精度。
2、程序可提示用户保存表达式的计算结果,通过选择菜单的相应选项,也可
以将保存结果显示给用户。(需进行文件读写)
【计算结果输出】
如果计算结果为整数,则直接输出整数。若计算结果为小数则根据用户设置
精度进行输出。(默认保留小数点后三位)
【示例】
1.用户输入
1+sin(30)
程序输出结果
0.012
2.用户输入
23+56/(102-100)*((36-24)/(8-6))
程序输出结果:
191
3
2.程序的设计
【总体思路】
考虑到计算符号的优先级,可以按照从高到低依次计算直到得出结果。
即沿着括号()、阶乘!、指数^、函数(三角函数、对数函数等)、乘除和加
减的次序依次计算。
【具体方法】
申请一个与输入算式等长的标记数组和存储数组对按优先级顺序进行的每一
个符号计算(其中括号时是把其中内容提取作为新的输入算式)的结果进行
保存,举例如下:
输入:
1+(3*5!)
初始化后:
标记数组为:
0 0 0 0 0 0 0 0
存储数组为:
0 0 0 0 0 0 0 0
按顺序计算括号之后为阶乘,则变为:
标记数组为:
0 0 0 0 0 1 1 0
存储数组为:
120 0 0 0 0 0 0 0
然后是乘法,括号:
标记数组为:
0 0 2 2 0 1 2 (
文档评论(0)