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ì)入門教程》
希望本文所述對(duì)大家C#程序設(shè)計(jì)有所幫助。
- C#計(jì)算器編寫(xiě)代碼
- C#編寫(xiě)的windows計(jì)算器的實(shí)例代碼
- C#開(kāi)發(fā)簡(jiǎn)易winform計(jì)算器程序
- C#實(shí)現(xiàn)簡(jiǎn)單計(jì)算器功能
- C#實(shí)現(xiàn)簡(jiǎn)單加減乘除計(jì)算器
- C#實(shí)現(xiàn)Winform版計(jì)算器
- C#實(shí)現(xiàn)的簡(jiǎn)單整數(shù)四則運(yùn)算計(jì)算器功能示例
- c#入門之實(shí)現(xiàn)簡(jiǎn)易存款利息計(jì)算器示例
- C# WinForm程序設(shè)計(jì)簡(jiǎn)單計(jì)算器
- C#實(shí)現(xiàn)簡(jiǎn)單的計(jì)算器小程序
相關(guān)文章
基于NET?Core?的Nuget包制作、發(fā)布和運(yùn)用流程解析(完整過(guò)程)
這篇文章主要介紹了基于NET?Core?的Nuget包制作、發(fā)布和運(yùn)用流程,本文通過(guò)圖文并茂的形式給大家介紹了Nuget包制作過(guò)程,感興趣的朋友跟隨小編一起看看吧2022-02-02
使用C#快速搭建一個(gè)在windows運(yùn)行的exe應(yīng)用
這篇文章主要介紹了使用C#快速搭建一個(gè)在windows運(yùn)行的exe應(yīng)用,這是一個(gè)比較舊的內(nèi)容,但是一直都沒(méi)有空寫(xiě),今天花點(diǎn)時(shí)間,把我掌握的C# 分享給初學(xué)的人或者感興趣的人,希望能對(duì)你有一定幫助,感興趣的小伙伴跟著小編一起來(lái)看看吧2024-07-07
spreadsheetgear插件屏蔽鼠標(biāo)右鍵的方法
今天用到spreadsheetGear插件,然后右鍵有插件自己的菜單。都是英文的,而且還能打開(kāi)新的窗體。嵌到程序里面,不太合適,所以著手屏蔽2014-02-02
C#獲取兩個(gè)數(shù)的最大公約數(shù)和最小公倍數(shù)示例
本文介紹了使用C#獲取兩個(gè)數(shù)的最大公約數(shù)和最小公倍數(shù)的示例,大家參考使用吧2014-01-01
Visual Studio 2019配置vue項(xiàng)目的圖文教程詳解
這篇文章主要介紹了Visual Studio 2019配置vue項(xiàng)目的教程,本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作,具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-03-03
WPF利用TabControl控件實(shí)現(xiàn)拖拽排序功能
在UI交互中,拖拽操作是一種非常簡(jiǎn)單友好的交互,這篇文章主要為大家介紹了WPF如何利用TabControl控件實(shí)現(xiàn)拖拽排序功能,需要的小伙伴可以參考一下2023-10-10
Unity實(shí)現(xiàn)紅酒識(shí)別的示例代碼
本文主要介紹了如何通過(guò)Unity實(shí)現(xiàn)紅酒識(shí)別,可以實(shí)現(xiàn)識(shí)別圖像中的紅酒標(biāo)簽,返回紅酒名稱、國(guó)家、產(chǎn)區(qū)、酒莊、類型、糖分、葡萄品種、酒品描述等信息,感興趣的可以學(xué)習(xí)一下2022-02-02

