C#实现简单的计算器功能完整实例
程序员文章站
2023-12-09 17:28:33
本文实例讲述了c#实现简单的计算器功能。分享给大家供大家参考,具体如下:
using system;
using system.collections.gene...
本文实例讲述了c#实现简单的计算器功能。分享给大家供大家参考,具体如下:
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; using system.collections; using system.threading; using system.diagnostics; namespace calculator { public partial class form1 : form { public form1() { initializecomponent(); } private string _sign; private double _first = 10241024; private double _second = 10241024; private string _number; private void button1_click(object sender, eventargs e) { _number += "1"; this.textbox1.text += "1"; } private void button2_click(object sender, eventargs e) { _number += "2"; this.textbox1.text += "2"; } private void button3_click(object sender, eventargs e) { _number += "3"; this.textbox1.text += "3"; } private void button4_click(object sender, eventargs e) { _number += "4"; this.textbox1.text += "4"; } private void button8_click(object sender, eventargs e) { _number += "5"; this.textbox1.text += "5"; } private void button7_click(object sender, eventargs e) { _number += "6"; this.textbox1.text += "6"; } private void button6_click(object sender, eventargs e) { _number += "7"; this.textbox1.text += "7"; } private void button5_click(object sender, eventargs e) { _number += "8"; this.textbox1.text += "8"; } private void button9_click(object sender, eventargs e) { _number += "9"; this.textbox1.text += "9"; } private void button10_click(object sender, eventargs e) { _number += "0"; this.textbox1.text += "0"; } private void button16_click(object sender, eventargs e) { //设置加号计算数 setnumber(convert.todouble(_number)); if (_sign == null || _second == 10241024) { _sign = "+"; this.textbox1.text += "+"; return; } if (_second != 10241024) { //开始进行计算 computer compro = new computer(_sign, _first, _second); this.textbox1.text = compro.comt(out _first).tostring(); //验证除数为零的情况 if (_first == 10241024.10241023) { this.textbox1.text = "0"; messagebox.show("除数不能为零!"); _number = null; _first = 10241024; _second = 10241024; this.textbox1.text = null; _sign = null; this.textbox1.text = null; } //开始初始化数据 _sign = "+"; this.textbox1.text += "+"; _second = 10241024; _number = null; return; } } private void button15_click(object sender, eventargs e) { //设置减号计算数 setnumber(convert.todouble(_number)); if (_sign == null || _second == 10241024) { _sign = "-"; this.textbox1.text += "-"; return; } if (_second != 10241024) { //开始进行计算 computer compro = new computer(_sign, _first, _second); this.textbox1.text = compro.comt(out _first).tostring(); //验证除数为零的情况 if (_first == 10241024.10241023) { this.textbox1.text = "0"; messagebox.show("除数不能为零!"); _number = null; _first = 10241024; _second = 10241024; this.textbox1.text = null; _sign = null; this.textbox1.text = null; } //开始初始化数据 _sign = "-"; this.textbox1.text += "-"; _second = 10241024; _number = null; return; } } private void button14_click(object sender, eventargs e) { //设置乘号计算数 setnumber(convert.todouble(_number)); if (_sign == null || _second == 10241024) { _sign = "*"; this.textbox1.text += "*"; return; } if (_second != 10241024) { //开始进行计算 computer compro = new computer(_sign, _first, _second); this.textbox1.text = compro.comt(out _first).tostring(); //验证除数为零的情况 if (_first == 10241024.10241023) { this.textbox1.text = "0"; messagebox.show("除数不能为零!"); _number = null; _first = 10241024; _second = 10241024; this.textbox1.text = null; _sign = null; this.textbox1.text = null; } //开始初始化数据 _sign = "*"; this.textbox1.text += "*"; _second = 10241024; _number = null; return; } } /// <summary> /// 设置除号计算数 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void button11_click(object sender, eventargs e) { setnumber(convert.todouble(_number)); if (_sign == null || _second == 10241024) { _sign = "/"; this.textbox1.text += "/"; return; } if (_second != 10241024) { //开始进行计算 computer compro = new computer(_sign, _first, _second); this.textbox1.text = compro.comt(out _first).tostring(); //验证除数为零的情况 if (_first == 10241024.10241023) { this.textbox1.text = "0"; this.textbox1.text = "除数不能为零!"; _number = null; _first = 10241024; _second = 10241024; this.textbox1.text = null; _sign = null; this.textbox1.text = null; } //开始初始化数据 _sign = "/"; this.textbox1.text += "/"; _second = 10241024; _number = null; return; } } /// <summary> /// 清空输入框 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void button12_click(object sender, eventargs e) { _number = null; _first = 10241024; _second = 10241024; this.textbox1.text = null; _sign = null; this.textbox1.text = null; } private void button13_click(object sender, eventargs e) { setnumber(convert.todouble(_number)); //判断是否设置了_second的值 if (_second == 10241024) { _second = convert.todouble(_number); _number = null; } //判断是否设置了_first的值 if (_first == 10241024) { _first = convert.todouble(_number); _number = null; } //判断是否有_sign的值 if (_sign == null) { _sign = "+"; } //开始进行计算 computer compro = new computer(_sign, _first, _second); this.textbox1.text = compro.comt(out _first).tostring(); //验证除数为零的情况 if (_first == 10241024.10241023) { this.textbox1.text = "0"; messagebox.show("除数不能为零!"); _number = null; _first = 10241024; _second = 10241024; this.textbox1.text = null; _sign = null; this.textbox1.text = null; } //开始初始化数据 _sign = null; _second = 10241024; _number = null; } public class computer { private string _sign; private double _first; private double _second; public computer(string str, double first, double second) { _sign = str; _first = first; _second = second; } //选择相应的运算符进行运算 public double comt(out double first) { if (_sign == "+") { first = _first + _second; return _first + _second; } else if (_sign == "-") { first = _first - _second; return _first - _second; } else if (_sign == "*") { first = _first * _second; return _first * _second; } else if (_sign == "/") { if (_second == 0) { first = 10241024.10241023; return 10241024.10241023; } else { first = _first / _second; return _first / _second; } } else { first = 10241024.10241024; return 10241024.10241024; } } } //设置数字函数 public void setnumber(double number) { if (_first == 10241024 && _number != null) { _first = convert.todouble(_number); _number = null; } else if (_second == 10241024 && _number != null) { _second = convert.todouble(_number); _number = null; } } private void timer1_tick(object sender, eventargs e) { this.label2.text = datetime.now.tostring(); } private void button24_click(object sender, eventargs e) { if (this.textbox1.text == " ") { messagebox.show("请输入数据"); this.textbox1.text = convert.toint64(textbox1.text.tostring(), 2).tostring(); } else { this.textbox1.text = convert.toint64(textbox1.text.tostring(), 2).tostring(); } } private void button22_click(object sender, eventargs e) { if (this.textbox1.text == " ") { messagebox.show("请输入数据"); int64 int64 = convert.toint64(textbox1.text.tostring(), 2); this.textbox1.text = convert.tostring(int64,16); } else { int64 int64 = convert.toint64(textbox1.text.tostring(), 2); this.textbox1.text = convert.tostring(int64, 16); } } private void button23_click(object sender, eventargs e) { if (this.textbox1.text == " ") { messagebox.show("请输入数据"); int64 int64 = convert.toint64(textbox1.text.tostring(), 2); this.textbox1.text = convert.tostring(int64, 8); } else { int64 int64 = convert.toint64(textbox1.text.tostring(), 2); this.textbox1.text = convert.tostring(int64, 8); } } private void button21_click(object sender, eventargs e) { if (this.textbox1.text == " ") { messagebox.show("请输入数据"); int64 int64 = convert.toint64(textbox1.text); this.textbox1.text = convert.tostring(int64, 2); } else { int64 int64 = convert.toint64(textbox1.text); this.textbox1.text = convert.tostring(int64, 2); } } private void button27_click(object sender, eventargs e) { double buffer1= convert.todouble(textbox1.text); buffer1 = 1 / buffer1; this.textbox1.text = buffer1.tostring(); } private void button17_click(object sender, eventargs e) { _number += "."; this.textbox1.text += "."; } private void button25_click(object sender, eventargs e) { double buffer1 = convert.todouble(textbox1.text); buffer1 = buffer1 * buffer1; this.textbox1.text = buffer1.tostring(); } private void button26_click(object sender, eventargs e) { if (this.textbox1.text == " ") { messagebox.show("请输入数据"); int64 int64 = convert.toint64(this.textbox1.text); int64 temp1 = 1; while (int64 > 1) { temp1 = temp1*int64 ; int64--; } this.textbox1.text = temp1.tostring(); } else { int64 int64 = convert.toint64(this.textbox1.text); int64 temp1 = 1; while (int64 > 1) { temp1 = temp1 * int64; int64--; } this.textbox1.text = temp1.tostring(); } } private void button28_click(object sender, eventargs e) { //int64 int64 = convert.toint64(this.textbox1.text); //double temp=math.log10(int64); //this.textbox1.text = temp.tostring(); double temp1, temp2; string[] strarry = new string[2]; strarry = this.textbox1.text.split('.'); temp1 = convert.todouble(strarry[0]); temp2 = convert.todouble(strarry[1]); // double temp1 = convert.todouble(this.textbox1.text); temp2 = math.log(temp2,temp1 ); this.textbox1.text = temp2.tostring(); } private void button18_click(object sender, eventargs e) { double temp1 = convert.todouble(this.textbox1.text); double temp2 = math.sin(temp1); this.textbox1.text = temp2.tostring(); } private void button19_click(object sender, eventargs e) { double temp1 = convert.todouble(this.textbox1.text); double temp2 = math.cos(temp1); this.textbox1.text = temp2.tostring(); } private void button20_click(object sender, eventargs e) { double temp1 = convert.todouble(this.textbox1.text); double temp2 = math.tan(temp1); this.textbox1.text = temp2.tostring(); } private void button33_click(object sender, eventargs e) { double temp1, temp2; string[] strarry=new string[2]; strarry=this.textbox1.text.split('.'); temp1 = convert.todouble(strarry[0]); temp2 = convert.todouble(strarry[1]); // double temp1 = convert.todouble(this.textbox1.text); temp2 = math.pow(temp1,temp2); this.textbox1.text = temp2.tostring(); } /// <summary> /// 计算e的temp1次幂 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void button31_click(object sender, eventargs e) { double temp1 = convert.todouble(this.textbox1.text); double temp2 = math.exp(temp1); this.textbox1.text = temp2.tostring(); } private void button34_click(object sender, eventargs e) { double temp1 = convert.todouble(this.textbox1.text); double temp2 = math.sqrt(temp1); this.textbox1.text = temp2.tostring(); } private void button32_click(object sender, eventargs e) { double temp1, temp2; string[] strarry = new string[2]; strarry = this.textbox1.text.split('.'); temp1 = convert.todouble(strarry[0]); temp2 = convert.todouble(strarry[1]); // double temp1 = convert.todouble(this.textbox1.text); temp2 = math.ieeeremainder(temp1, temp2); this.textbox1.text = temp2.tostring(); } /// <summary> /// 圆的面积 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void button30_click(object sender, eventargs e) { double buffer1 = convert.todouble(textbox1.text); buffer1 =3.1415926*buffer1*buffer1; this.textbox1.text = buffer1.tostring(); } /// <summary> /// 三角形面积 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void button29_click(object sender, eventargs e) { double temp1, temp2,temp3,p,area; string[] strarry = new string[3]; strarry = this.textbox1.text.split('.'); temp1 = convert.todouble(strarry[0]); temp2 = convert.todouble(strarry[1]); temp3 = convert.todouble(strarry[2]); // double temp1 = convert.todouble(this.textbox1.text); p = (temp1 + temp2 + temp3) / 2; area= p * (p - temp1) * (p - temp2) * (p - temp3); area = math.sqrt(area); this.textbox1.text = area.tostring(); } private void linklabel1_linkclicked(object sender, linklabellinkclickedeventargs e) { string str = e.link.tostring(); process.start(str); } private void form1_load(object sender, eventargs e) { } } }
运行效果:
ps:这里再为大家推荐几款计算工具供大家进一步参考借鉴:
在线一元函数(方程)求解计算工具:
科学计算器在线使用_高级计算器在线计算:
在线计算器_标准计算器:
更多关于c#相关内容感兴趣的读者可查看本站专题:《c#数据结构与算法教程》、《c#程序设计之线程使用技巧总结》、《c#常见控件用法教程》、《winform控件用法总结》、《c#数组操作技巧总结》及《c#面向对象程序设计入门教程》
希望本文所述对大家c#程序设计有所帮助。