C#實(shí)現(xiàn)簡(jiǎn)單的計(jì)算器功能完整實(shí)例
本文實(shí)例講述了C#實(shí)現(xiàn)簡(jiǎn)單的計(jì)算器功能。分享給大家供大家參考,具體如下:
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) { //設(shè)置加號(hào)計(jì)算數(shù) SetNumber(Convert.ToDouble(_number)); if (_sign == null || _second == 10241024) { _sign = "+"; this.textBox1.Text += "+"; return; } if (_second != 10241024) { //開(kāi)始進(jìn)行計(jì)算 Computer ComPro = new Computer(_sign, _first, _second); this.textBox1.Text = ComPro.Comt(out _first).ToString(); //驗(yàn)證除數(shù)為零的情況 if (_first == 10241024.10241023) { this.textBox1.Text = "0"; MessageBox.Show("除數(shù)不能為零!"); _number = null; _first = 10241024; _second = 10241024; this.textBox1.Text = null; _sign = null; this.textBox1.Text = null; } //開(kāi)始初始化數(shù)據(jù) _sign = "+"; this.textBox1.Text += "+"; _second = 10241024; _number = null; return; } } private void button15_Click(object sender, EventArgs e) { //設(shè)置減號(hào)計(jì)算數(shù) SetNumber(Convert.ToDouble(_number)); if (_sign == null || _second == 10241024) { _sign = "-"; this.textBox1.Text += "-"; return; } if (_second != 10241024) { //開(kāi)始進(jìn)行計(jì)算 Computer ComPro = new Computer(_sign, _first, _second); this.textBox1.Text = ComPro.Comt(out _first).ToString(); //驗(yàn)證除數(shù)為零的情況 if (_first == 10241024.10241023) { this.textBox1.Text = "0"; MessageBox.Show("除數(shù)不能為零!"); _number = null; _first = 10241024; _second = 10241024; this.textBox1.Text = null; _sign = null; this.textBox1.Text = null; } //開(kāi)始初始化數(shù)據(jù) _sign = "-"; this.textBox1.Text += "-"; _second = 10241024; _number = null; return; } } private void button14_Click(object sender, EventArgs e) { //設(shè)置乘號(hào)計(jì)算數(shù) SetNumber(Convert.ToDouble(_number)); if (_sign == null || _second == 10241024) { _sign = "*"; this.textBox1.Text += "*"; return; } if (_second != 10241024) { //開(kāi)始進(jìn)行計(jì)算 Computer ComPro = new Computer(_sign, _first, _second); this.textBox1.Text = ComPro.Comt(out _first).ToString(); //驗(yàn)證除數(shù)為零的情況 if (_first == 10241024.10241023) { this.textBox1.Text = "0"; MessageBox.Show("除數(shù)不能為零!"); _number = null; _first = 10241024; _second = 10241024; this.textBox1.Text = null; _sign = null; this.textBox1.Text = null; } //開(kāi)始初始化數(shù)據(jù) _sign = "*"; this.textBox1.Text += "*"; _second = 10241024; _number = null; return; } } /// <summary> /// 設(shè)置除號(hào)計(jì)算數(shù) /// </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) { //開(kāi)始進(jìn)行計(jì)算 Computer ComPro = new Computer(_sign, _first, _second); this.textBox1.Text = ComPro.Comt(out _first).ToString(); //驗(yàn)證除數(shù)為零的情況 if (_first == 10241024.10241023) { this.textBox1.Text = "0"; this.textBox1.Text = "除數(shù)不能為零!"; _number = null; _first = 10241024; _second = 10241024; this.textBox1.Text = null; _sign = null; this.textBox1.Text = null; } //開(kāi)始初始化數(shù)據(jù) _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)); //判斷是否設(shè)置了_second的值 if (_second == 10241024) { _second = Convert.ToDouble(_number); _number = null; } //判斷是否設(shè)置了_first的值 if (_first == 10241024) { _first = Convert.ToDouble(_number); _number = null; } //判斷是否有_sign的值 if (_sign == null) { _sign = "+"; } //開(kāi)始進(jìn)行計(jì)算 Computer ComPro = new Computer(_sign, _first, _second); this.textBox1.Text = ComPro.Comt(out _first).ToString(); //驗(yàn)證除數(shù)為零的情況 if (_first == 10241024.10241023) { this.textBox1.Text = "0"; MessageBox.Show("除數(shù)不能為零!"); _number = null; _first = 10241024; _second = 10241024; this.textBox1.Text = null; _sign = null; this.textBox1.Text = null; } //開(kāi)始初始化數(shù)據(jù) _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; } //選擇相應(yīng)的運(yùn)算符進(jìn)行運(yùn)算 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; } } } //設(shè)置數(shù)字函數(shù) 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("請(qǐng)輸入數(shù)據(jù)"); 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("請(qǐng)輸入數(shù)據(jù)"); 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("請(qǐng)輸入數(shù)據(jù)"); 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("請(qǐng)輸入數(shù)據(jù)"); 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("請(qǐng)輸入數(shù)據(jù)"); 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> /// 計(jì)算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) { } } }
運(yùn)行效果:
PS:這里再為大家推薦幾款計(jì)算工具供大家進(jìn)一步參考借鑒:
在線一元函數(shù)(方程)求解計(jì)算工具:
http://tools.jb51.net/jisuanqi/equ_jisuanqi
科學(xué)計(jì)算器在線使用_高級(jí)計(jì)算器在線計(jì)算:
http://tools.jb51.net/jisuanqi/jsqkexue
在線計(jì)算器_標(biāo)準(zhǔn)計(jì)算器:
http://tools.jb51.net/jisuanqi/jsq
更多關(guān)于C#相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《C#數(shù)據(jù)結(jié)構(gòu)與算法教程》、《C#程序設(shè)計(jì)之線程使用技巧總結(jié)》、《C#常見(jiàn)控件用法教程》、《WinForm控件用法總結(jié)》、《C#數(shù)組操作技巧總結(jié)》及《C#面向?qū)ο蟪绦蛟O(shè)計(jì)入門(mén)教程》
希望本文所述對(duì)大家C#程序設(shè)計(jì)有所幫助。
上一篇:C#使用JavaScriptSerializer序列化時(shí)的時(shí)間類型處理
欄 目:C#教程
本文標(biāo)題:C#實(shí)現(xiàn)簡(jiǎn)單的計(jì)算器功能完整實(shí)例
本文地址:http://mengdiqiu.com.cn/a1/C_jiaocheng/5525.html
您可能感興趣的文章
- 01-10C#通過(guò)反射獲取當(dāng)前工程中所有窗體并打開(kāi)的方法
- 01-10關(guān)于ASP網(wǎng)頁(yè)無(wú)法打開(kāi)的解決方案
- 01-10WinForm限制窗體不能移到屏幕外的方法
- 01-10WinForm繪制圓角的方法
- 01-10C#實(shí)現(xiàn)txt定位指定行完整實(shí)例
- 01-10C#停止線程的方法
- 01-10WinForm實(shí)現(xiàn)仿視頻 器左下角滾動(dòng)新聞效果的方法
- 01-10C#通過(guò)重寫(xiě)Panel改變邊框顏色與寬度的方法
- 01-10C#實(shí)現(xiàn)清空回收站的方法
- 01-10C#實(shí)現(xiàn)讀取注冊(cè)表監(jiān)控當(dāng)前操作系統(tǒng)已安裝軟件變化的方法


閱讀排行
- 1C語(yǔ)言 while語(yǔ)句的用法詳解
- 2java 實(shí)現(xiàn)簡(jiǎn)單圣誕樹(shù)的示例代碼(圣誕
- 3利用C語(yǔ)言實(shí)現(xiàn)“百馬百擔(dān)”問(wèn)題方法
- 4C語(yǔ)言中計(jì)算正弦的相關(guān)函數(shù)總結(jié)
- 5c語(yǔ)言計(jì)算三角形面積代碼
- 6什么是 WSH(腳本宿主)的詳細(xì)解釋
- 7C++ 中隨機(jī)函數(shù)random函數(shù)的使用方法
- 8正則表達(dá)式匹配各種特殊字符
- 9C語(yǔ)言十進(jìn)制轉(zhuǎn)二進(jìn)制代碼實(shí)例
- 10C語(yǔ)言查找數(shù)組里數(shù)字重復(fù)次數(shù)的方法
本欄相關(guān)
- 01-10C#通過(guò)反射獲取當(dāng)前工程中所有窗體并
- 01-10關(guān)于ASP網(wǎng)頁(yè)無(wú)法打開(kāi)的解決方案
- 01-10WinForm限制窗體不能移到屏幕外的方法
- 01-10WinForm繪制圓角的方法
- 01-10C#實(shí)現(xiàn)txt定位指定行完整實(shí)例
- 01-10WinForm實(shí)現(xiàn)仿視頻 器左下角滾動(dòng)新
- 01-10C#停止線程的方法
- 01-10C#實(shí)現(xiàn)清空回收站的方法
- 01-10C#通過(guò)重寫(xiě)Panel改變邊框顏色與寬度的
- 01-10C#實(shí)現(xiàn)讀取注冊(cè)表監(jiān)控當(dāng)前操作系統(tǒng)已
隨機(jī)閱讀
- 01-11Mac OSX 打開(kāi)原生自帶讀寫(xiě)NTFS功能(圖文
- 01-10使用C語(yǔ)言求解撲克牌的順子及n個(gè)骰子
- 08-05DEDE織夢(mèng)data目錄下的sessions文件夾有什
- 01-10SublimeText編譯C開(kāi)發(fā)環(huán)境設(shè)置
- 01-10C#中split用法實(shí)例總結(jié)
- 04-02jquery與jsp,用jquery
- 08-05dedecms(織夢(mèng))副欄目數(shù)量限制代碼修改
- 01-10delphi制作wav文件的方法
- 08-05織夢(mèng)dedecms什么時(shí)候用欄目交叉功能?
- 01-11ajax實(shí)現(xiàn)頁(yè)面的局部加載