欢迎访问 生活随笔!

凯发ag旗舰厅登录网址下载

当前位置: 凯发ag旗舰厅登录网址下载 > 编程语言 > c# >内容正文

c#

c#——简单的计算器(仿windows 10计算器) -凯发ag旗舰厅登录网址下载

发布时间:2024/10/5 c# 33 豆豆
凯发ag旗舰厅登录网址下载 收集整理的这篇文章主要介绍了 c#——简单的计算器(仿windows 10计算器) 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

运用wpf技术,模仿windows 10系统中计算机器(calculator)程序,开发一个类似程序。

注: 

  • ms:记忆当前显示的数字(memory save)
  • mc:清除记忆的数字(memory clean)
  • mr:显示记忆的数字(memory recall)
  • m-:记忆的数字减去当前数字,并保存
  • m :记忆的数字加上当前数字,并保存

创建wpf应用

 

ui设计

 metro风格来美化:https://www.cnblogs.com/ouyangkai/p/12759466.html

app.xaml 

 mainwindow.xaml

逻辑设计 

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 history=null,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 operater_button_click(object sender, routedeventargs e){button operaterbtn = sender as button;string operater = operaterbtn.content.tostring();out_2.text = out_1.text operater;if (oper != null){aut();}op1 = convert.todouble(out_1.text);oper = operater;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 clear_btn_click(object sender, routedeventargs e){historypanel.children.clear();}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;history = out_2.text out_1.text "=";out_1.text = convert.tostring(result);out_2.text = "";add_history(history, convert.tostring(result));}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 = ".";}private void add_history(string cal, string result){border border = new border();border.cornerradius = new cornerradius(5);border.background = new solidcolorbrush(colors.white);border.borderbrush = new solidcolorbrush(colors.lightgray);border.borderthickness = new thickness(1);border.height = 100;grid gird = new grid();textblock textblock1 = new textblock();textblock1.horizontalalignment = horizontalalignment.left; textblock1.margin = new thickness(10, 10, 0, 0); textblock1.textwrapping = textwrapping.wrap;textblock1.text = cal;textblock1.verticalalignment = verticalalignment .top;textblock1.width = 260;textblock1.height = 28;textblock1.textalignment = textalignment.right;textblock1.fontsize = 24;textblock textblock2 = new textblock();textblock2.horizontalalignment = horizontalalignment.left;textblock2.margin = new thickness(10, 30, 0, 0);textblock2.textwrapping = textwrapping.wrap;textblock2.text = result;textblock2.verticalalignment = verticalalignment.top;textblock2.width = 260;textblock2.height = 64;textblock2.textalignment = textalignment.right;textblock2.fontsize = 54;textblock2.fontfamily = new fontfamily("microsoft yahei");gird.children.add(textblock1);gird.children.add(textblock2);border.child = gird;historypanel.children.add(border);}} }

 

windows 10 计算器 c 源代码 

https://github.com/microsoft/calculator

仿windows 10 计算器 c#源代码 

https://github.com/buxianshan/calculator

https://blog.csdn.net/weixin_43272781/article/details/106750837

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

总结

以上是凯发ag旗舰厅登录网址下载为你收集整理的c#——简单的计算器(仿windows 10计算器)的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得凯发ag旗舰厅登录网址下载网站内容还不错,欢迎将凯发ag旗舰厅登录网址下载推荐给好友。

网站地图