基于Visual-Studio的建议计算器设计.doc_第1页
基于Visual-Studio的建议计算器设计.doc_第2页
基于Visual-Studio的建议计算器设计.doc_第3页
基于Visual-Studio的建议计算器设计.doc_第4页
基于Visual-Studio的建议计算器设计.doc_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

通信与信息工程学院 it实训报告班 级: 学 号: 姓 名: 谢 松 日期:2014年11月9日计算器实验1、实验名称:简易计算器2、实验内容: 完成计算器功能3、实验结果: 完成基本要求,实现2位整数加减乘除运算,带退位和清除功能。 完成扩展,实现按运算优先级进行任意位数小数加减乘除四则混合运算。 完成亮点,完整显示计算表达式,系统容错率高,可多次退位。代码如下:using system;using system;using system.collections.generic;using system.componentmodel;using system.data;using system.drawing;using system.linq;using system.text;using system.windows.forms;namespace jisuanqi public partial class form1 : form public form1() initializecomponent(); float mainnum = new float10; / 存储第一个数 int symbol = new int10; private int i = 0 ; / private int yusuan_level ; private float result; private bool issecond = false; / 用来判断输入的是第一个还是第二个数 private bool isdone = false; / 用来判断是否按了等于按钮 private bool iskeyupclear = true;/用来判断是否按了clear键,程序开始前默认按了; private bool iskeyupclear_2 = true;/用来判断是否按了clear键,程序开始前默认按了; private bool iscount = false ; /判断是否有计算符号 public void settext(string textest) /设置显示文本框的值 if (textest.equals(clear) textbox1.text = 0; issecond = false; isdone = false; iskeyupclear = true; i = 0; else if (textest.equals() if (this.textbox1.text.length = 1) this.textbox1.text = 0; iskeyupclear = true; else this.textbox1.text = textbox1.text.substring(0, textbox1.text.length -1); else if (iskeyupclear) /对是否按下clear键的判断 textbox1.text = textest; iskeyupclear = false; else textbox1.text += textest; public void settext2(string textest) /设置运算文本框的值 if (textest.equals(clear) textbox2.text = 0; issecond = false; iskeyupclear_2 = true; i = 0; else if (textest.equals() if (this.textbox2.text.length = 1) this.textbox2.text = 0; iskeyupclear_2 = true; else if (iscount) i-; iscount = false; else this.textbox2.text = textbox2.text.substring(0, textbox2.text.length - 1); else if (iscount) textbox2.text = textest; iscount = false; else if (isdone) textbox2.text = textest; isdone = false; else if (iskeyupclear_2) /对是否按下clear键的判断 textbox2.text = textest; iskeyupclear_2 = false; else textbox2.text += textest; btnequal.select(); /设置=号的焦点 /设置运算类型 private void setoperator(int operation) if (textbox2.text.length 0) symboli=operation; mainnumi = float.parse(textbox2.text); i+; issecond = true; isdone = false; iscount = true; btnequal.select(); /设置=号的焦点 private void equal_operation(int i)/优先级判断 简直写疯了。 int j = 0; int m = 0; while( j 1) /高优先级运算 j+; switch (symbolj) case 4: result = mainnumj * mainnumj+1; break; case 5: result = mainnumj / mainnumj+1; break; /第一个优先级运算 m = j - 1; while (m=0)/第二个以后优先级运算 if (symbolj + 1 - symbolm 1) switch (symbolj + 1) /判断所进行的运算 case 4: result = result * mainnumj + 2; break; case 5: result = result / mainnumj + 2; break; j+; else switch (symbolm) /判断所进行的运算 case 1: result = mainnumm + result; break; case 2: result = mainnumm - result; break; m-; mainnumj+1 = result; j+; else /低优先级运算 switch ( symbolj ) case 1: result = mainnumj + mainnumj + 1; break; case 2: result = mainnumj - mainnumj + 1; break; case 4: result = mainnumj * mainnumj + 1; break; case 5: result = mainnumj / mainnumj + 1; break; mainnumj+1 = result; j+; settext(result.tostring(); while (j 0)/清空符号 j-; symbolj = 0; private void doequals() if (issecond) /判断已经输入第二个数后按了=号键 mainnumi = float.parse(textbox2.text); equal_operation(i); settext2(clear); isdone = true; issecond = false; private void form1_load(object sender, eventargs e) private void button1_click(object sender, eventargs e) settext(1); settext2(1); private void button2_click_1(object sender, eventargs e) settext(2); settext2(2); private void button3_click(object sender, eventargs e) settext(3); settext2(3); private void button4_click(object sender, eventargs e) settext(4); settext2(4); private void button5_click(object sender, eventargs e) settext(5); settext2(5); private void button6_click(object sender, eventargs e) settext(6); settext2(6); private void button7_click(object sender, eventargs e) settext(7); settext2(7); private void button8_click(object sender, eventargs e) settext(8); settext2(8); private void button9_click(object sender, eventargs e) settext(9); settext2(9); private void button13_click(object sender, eventargs e) settext(0); settext2(0); private void btn_point_click(object sender, eventargs e) settext(.); settext2(.); private void btnbackspace_click(object sender, eventargs e) settext(); settext2(); private void btn_clear_click(object sender, eventargs e) settext(clear); settext2(clear); private void button10_click(object sender, eventargs e) settext(+); setoperator(1); private void button11_click(object sender, eventargs e) settext(-); setoperator(2); private void button12_click(object sender, eventargs e) settext(*); setoperator(4); private void button15_click(object sender, eve

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论