当前位置: 凯发k8官方网 > 编程语言 > c# >内容正文 c# c#——《c#语言程序设计》实验报告——windows桌面编程——简单的计算器(仿windows 10计算器) -凯发k8官方网 发布时间:2024/10/5 c# 41 豆豆 凯发k8官方网 收集整理的这篇文章主要介绍了 c#——《c#语言程序设计》实验报告——windows桌面编程——简单的计算器(仿windows 10计算器) 小编觉得挺不错的,现在分享给大家,帮大家做个参考. 熟悉使用wpf进行界面编程的基本过程;掌握wpf布局、控件、事件的使用。 运用wpf技术,模仿windows 10系统中计算机器(calculator)程序,开发一个类似程序。 本题作为综合练习,可在最后提交。 加分项: 1)计算机器功能的完整性; 2)是否使用了数据绑定、模板、样式等特性; 3)功能上的创新。 源代码 xaml 历史记录popup text c cs using system; using system.collections.generic; using system.linq; using system.text; using system.threading.tasks; using system.windows; using system.windows.controls; using system.windows.data; using system.windows.documents; using system.windows.input; using system.windows.media; using system.windows.media.imaging; using system.windows.navigation; using system.windows.shapes; using mahapps.metro.controls; using system.windows.controls.primitives;namespace homework19 {/// /// mainwindow.xaml 的交互逻辑/// public partial class mainwindow : metrowindow{public mainwindow(){initializecomponent();b_mc.isenabled = false;b_m__1.isenabled = false;b_m__.isenabled = false;b_mr.isenabled = false;}//temp用于临时存储操作数,oper存储最近一次的运算符private double temp, op1, op2, memory, result;private string oper = null;//next用来表示是否要输入新的操作数private bool next;//连续计算时先计算前面的结果private void aut(){op2 = convert.todouble(out_1.text);switch (oper){case " ":result = op1 op2;break;case "-":result = op1 - op2;break;case "×":result = op1 * op2;break;case "÷":result = op1 / op2;break;default:break;}out_1.text = convert.tostring(result);//out_2.text = convert.tostring(result);}private void button_click(object sender, routedeventargs e){//目标this.contextmenu.placementtarget = this.btnmenu;//位置this.contextmenu.placement = placementmode.top;//显示菜单this.contextmenu.isopen = true;}private void b_num_click(object sender, routedeventargs e){button numbtn = sender as button;string numstr = numbtn.content.tostring();if (numstr != "0"){if (out_1.text == "0" || next){out_1.text = numstr;if (next){next = false;}}elseout_1.text = numstr;}else{if (out_1.text != "0"){out_1.text = "0";}if (next){out_1.text = "0";next = false;}}}private void b_c_click(object sender, routedeventargs e){out_1.text = "0";out_2.text = "";oper = null;}private void b_ce_click(object sender, routedeventargs e){out_1.text = "0";out_2.text = "";oper = null;}private void button_click_2(object sender, routedeventargs e){out_2.text = out_1.text " ";if (oper != null){aut();}op1 = convert.todouble(out_1.text);oper = " ";next = true;}private void b_sub_click(object sender, routedeventargs e){out_2.text = out_1.text "-";if (oper != null){aut();}op1 = convert.todouble(out_1.text);oper = "-";next = true;}private void button_click_3(object sender, routedeventargs e){out_2.text = out_1.text "×";if (oper != null){aut();}op1 = convert.todouble(out_1.text);oper = "×";next = true;}private void button_click_4(object sender, routedeventargs e){out_2.text = out_1.text "÷";if (oper != null){aut();}op1 = convert.todouble(out_1.text);oper = "÷";next = true;}private void b_delete_click(object sender, routedeventargs e){if (!next){if (out_1.text.length == 1){out_1.text = "0";}else{out_1.text = out_1.text.substring(0, out_1.text.length - 1);}}}private void b_reciprocal_click(object sender, routedeventargs e){try{temp = convert.todouble(out_1.text);temp = 1 / temp;out_1.text = convert.tostring(temp);}catch (exception ee){out_1.text = "除数不能为0";}}private void b_sq_click(object sender, routedeventargs e){temp = convert.todouble(out_1.text);temp = math.pow(temp, 2);out_1.text = convert.tostring(temp);}private void b_cu_click(object sender, routedeventargs e){temp = convert.todouble(out_1.text);temp = math.pow(temp, 3);out_1.text = convert.tostring(temp);}private void b_radical_click(object sender, routedeventargs e){temp = convert.todouble(out_1.text);temp = math.pow(temp, 0.5);out_1.text = convert.tostring(temp);}private void b_per_click(object sender, routedeventargs e){temp = convert.todouble(out_1.text);temp = temp / 100;out_1.text = convert.tostring(temp);}private void b_mr_click(object sender, routedeventargs e){out_1.text = convert.tostring(memory);}private void b_m__1_click(object sender, routedeventargs e){memory = convert.todouble(out_1.text);}private void b_m___click(object sender, routedeventargs e){memory -= convert.todouble(out_1.text);}private void b_mc_click(object sender, routedeventargs e){memory = 0;b_mc.isenabled = false;b_m__1.isenabled = false;b_m__.isenabled = false;b_mr.isenabled = false;}private void b_ms_click(object sender, routedeventargs e){memory = convert.todouble(out_1.text);b_mc.isenabled = true;b_m__1.isenabled = true;b_m__.isenabled = true;b_mr.isenabled = true;}private void b_eq_click(object sender, routedeventargs e){op2 = convert.todouble(out_1.text);switch (oper){case " ":result = op1 op2;break;case "-":result = op1 - op2;break;case "×":result = op1 * op2;break;case "÷":result = op1 / op2;break;default:break;}oper = null;out_1.text = convert.tostring(result);out_2.text = "";}private void b_opp_click(object sender, routedeventargs e){temp = convert.todouble(out_1.text);if (temp != 0){temp = 0 - temp;}out_1.text = convert.tostring(temp);}private void button_click_1(object sender, routedeventargs e){out_1.text = ".";}} } 运行结果 熟悉使用wpf进行界面编程的基本过程;掌握wpf布局、控件、事件的使用。熟悉使用数据绑定、模板、样式等特性; windows 10 计算器 c 源代码 https://github.com/microsoft/calculator 仿windows 10 计算器 c#源代码 https://github.com/buxianshan/calculator https://blog.csdn.net/qq_43479622/article/details/91599602 https://blog.csdn.net/oneword233/article/details/80755284 https://www.cnblogs.com/lonelyxmas/p/12117453.html https://blog.csdn.net/weixin_42009898/article/details/80921151 https://www.cnblogs.com/ouyangkai/p/12759466.html 总结 以上是凯发k8官方网为你收集整理的c#——《c#语言程序设计》实验报告——windows桌面编程——简单的计算器(仿windows 10计算器)的全部内容,希望文章能够帮你解决所遇到的问题。 如果觉得凯发k8官方网网站内容还不错,欢迎将凯发k8官方网推荐给好友。 简单 欢迎分享! 转载请说明来源于"生活随笔",并保留原作者的名字。 本文地址:c#——《c#语言程序设计》实验报告——windows桌面编 上一篇: 下一篇: c#——简单的计算器(仿windows