




已阅读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年陶瓷机械行业当前发展趋势与投资机遇洞察报告
- 收营员基础知识培训课件
- 操作安全知识培训心得课件
- 2025年面点烹饪师职业技能资格知识考试题与答案
- 2024年玩具设计师、制作工专业技术及理论知识考试题库(附含答案)
- 2025-2024年安全培训试题附完整答案(历年真题)
- 2025公需课数字中国数字化建设与发展试题库与答案
- 2024年全国执业兽医(动物、畜禽病理学)专业知识考试题与答案
- 2025年社会工作者之初级社会综合能力能力检测试卷B卷附答案
- 2024年化妆师高级《化妆师技术及化妆品安全使用》从业资格证考试题与答案
- 专题11解答压轴题:二次函数综合(原卷版+解析)
- RSVG运行维护手册
- 物流运输管理制度及运输方案
- 2023年国库知识竞赛试题题库
- 2024届高考英语复习备考:高考英语核心词汇清单(涵盖近十年试题高频词汇)
- 内部劳动保障规章制度范本(5篇)
- 代收工程款协议书范本
- 新能源汽车充电设施安全检查记录表
- 超低出生体重儿的护理个案查房培训课件
- 2023年中级经济师章节练习题汇总(1-26章)
- 丙肝病人护理查房
评论
0/150
提交评论