




已阅读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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年药学专业药物副作用监测考核模拟试卷答案及解析
- 2026华能陕西发电有限公司校园招聘笔试模拟试题及答案解析
- 2025年急诊抢救技巧应用模拟考试答案及解析
- 2025年神经外科手术操作规范性考核模拟卷答案及解析
- 2025年急性中毒处理紧急处置模拟试卷答案及解析
- 2025年普外科手术护理技能考核模拟考试卷答案及解析
- 2025年病理生理学心肌梗死病理生理过程模拟考试卷答案及解析
- 2025年运输产业无人驾驶技术应用前景研究报告
- 标准生产工艺流程模板
- 2025年胃肠病科医生胃肠病诊断治疗知识检测模拟试卷答案及解析
- 一年级古诗70首(拼音打印)
- 客服的服务意识培训课件
- 核对考勤工作总结
- 供应商质量管理工程师SQE培训材料课件
- 业务回款冲刺方案
- 铁路信号继电器 信号继电器电路
- 居民死亡医学证明(推断)书+空白表
- 物业工程部库房管理规定
- 散文集《皮囊》读书分享PPT模板下载
- GB/T 17554.1-2006识别卡测试方法第1部分:一般特性测试
- GB 17790-2008家用和类似用途空调器安装规范
评论
0/150
提交评论