C计算器实验报告.docVIP

  1. 1、本文档共11页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C计算器实验报告.doc

实验一 计算器的制作 软件学院 软件一班 李程 200631000112 实验要求 1.参照Windows系统提供的计算器功能,制作一个自己的计算器,至少能完成数据的加减乘除的基本功能。 2.控件的焦点以及Tab键的设置和使用 3.多个控件(按钮)事件的共享 4.键盘的事件的应用 设计思路 创建主体框架:建立程序的主要界面后,系统自动生成界面的主要窗口生成代码。对于每个按钮的的代码段中,分别添加事件触发的处理代码。对于inputbox,显示输入的信息和显示处理后的结果。 数字1-9的按键的事件处理都是在inputbox中分别添加相对应的数字字符,把数字当成是字符串处理。对于加减乘除四则运算按键,事件触发后的处理是在inputbox中的字符串后加上相应的四则运算符,要说明的是计算器的显示是按了四则运算符后并不是清屏inputbox的,而是把四则运算符一起显示出来直到输入完了运算式,按了“=”按键才开始运算并显示结果。 程序使用时是先把整个运算的式子输入到inputbox当中,程序把这一表达式转化成字符串,然后入栈,得到一个栈,运行四则运算函数,把字符从栈中读出,根据出栈的符号确定该进行那种运算处理。 程序最主要的关键之处是在于以何种方式对inputbox中的表达式进行入栈处理,本程序可以处理一些简单的数字表达式的简单的四则运算。 数字0-9的优先级同级,加减同级,乘除同级,但是它们相互之间的优先级有别,因此为了在运算处理当中能够处理表达式当中的不同的优先级的四则运算符时,就要采用数据结构当中处理表达式的方法,对inputbox当中的信息进行处理变成后缀表达式入栈。 然后把栈返回到四则运算函数那里,对栈进行出栈处理分别对出栈的符号进行识别计算按优先级处理。 通常地,计算机组成原理当中介绍的四则运算算法一般如下,在计算器编程当中可以从中获取可行的思想。四则运算算法的一般描述: 加法算法 首先假定两个操作数均为小数(其他情况可以看做这种情况的特殊情况)。 通过界面输入获得两个操作数的值; 若两个数同号,则将两个操作数的整数部分和小数部分分别对应逐位相加,从最低位开始,若此位上的数字大于10,则向前位进1,此位减10; 若两个数字异号,则将负数放在第二个操作数内,正数放在第一个操作数内,然后将两个操作数的整数部分和小数部分分别对应逐位相减,判断结果的正负,若是整数,则要完成进位操作,若是负数则要完成借位操作; 将计算结果保存并输出。 减法算法 首先通过界面输入两个操作数,然后调用令第二个操作数取相反数,调用加法函数就可以实现减法计算。 乘法算法 乘法的算法就是简单的按照一般的乘法计算方法来进行的。考虑一般情况,两个操作数均为小数,从低位到高位,依次用第二个操作数的每一位上的数字乘以第一个操作数,然后将得出的结果调用加法函数相加即得到乘法的最后结果。 除法算法 除法算法也是按照中学学到的除法算法进行。建立如下的除法算法: 输入两个操作数; 若第二个操作数为0,则输出除数不能为0的出错信息; 若第二个操作数不是0,则将第二个操作数乘以适当的倍率使其整数化,第一个操作数也做相应的变化; 从高位到低位,依次寻找每一个位置上的商值(这个值在0到9之间),直到第一个操作数的末尾; 保存并输出结果。 取倒数的算法 有了除法的算法,取倒数的算法就很简单了,直接用1和输入的操作数做除法运算,输出结果即可。 四则运算核心代码: private void processString() { double[] stacknum=new double[30]; //利用栈stacknum(30)计算队列sqeuestr(30)中的后缀表达式 int top; int i; top = 0; try { for(i=0;ilastsqeue;i++) { switch (sqeuestr[i]) { case +: top = top - 1; stacknum[top - 1] = stacknum[top - 1] + stacknum[top]; break; case -: top = top - 1; stacknum[top - 1] = stacknum[top - 1] - stacknum[top]; break; case /: top = top - 1; if (stacknum[top]==0) { MessageBox.Show( 除数不能为零!!!); }

文档评论(0)

docinppt + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档