編寫簡易計算器?
用C#編寫簡易計算器
1.在窗體上拖23個button
,間距設置上下和左右等寬,修改text為相應的數字或者字母,以及一個textbox和groupBox1,修改他們的text。窗體、groupBox什么的背景圖片直接插。
2. 初始化窗體
當窗體加載時,使textbox里的光標位于最右邊,即從最右邊開始輸入。
這里TextAlign為設置文本框文字位置,HorizontalAlignment為枚舉,選擇right,當然選擇哪個都行。
以下為代碼:
private void Form1_Load(object sender, EventArgs e)
{
textBox1.Text = "";//初始化內容,設置為空
textBox1.TextAlign = HorizontalAlignment.Right;//用來設置文本框的文字的位置,
}
下面這些代碼有的程序已經給了出來,多的是聲明了兩個全局變量,num1和temp。num1用來存儲第一個用戶輸入的數字,temp為存儲計算的方式,執行加法運算還是減法運算等等。
public partial class Form1 : Form
{
public double num1;
public int temp = 0;//記錄存儲計算方式
public Form1()
{
InitializeComponent();
}
3.創建小數點鍵和數字鍵的方法
兩個方法
小數點鍵方法(這里有幾種情況,當直接點擊“.”鍵時,則需要文本顯示為0. ,若文本前邊已經有數字,點擊“.”時,則需要數字加上小數點,若重復重復點擊“.”則直接提示無須重新輸入小數點)
這里button14為小數點按鈕,當然大家可以自己設置下button的name方便代碼編輯
private void button14_Click(object sender, EventArgs e)
{
//小數點按鍵,初始為空,直接按 . 鍵則顯示為0.多少
if (textBox1.Text == "")
{
textBox1.Text = "0.";
}
//如果再次輸入.則返回都輸入的字符后邊并提示信息
else if (textBox1.Text.IndexOf(".") >= 0)
{
MessageBox.Show("已經輸入小數點,無須再次輸入", "提示");
}
else
//前邊有數字時,則直接在后邊加上.
textBox1.Text = textBox1.Text + ".";
}
數字鍵方法(這個方法簡單,就不說了)
public void inputNum(int myNum)
{
//當輸入的數字不是0時,為1到9
if (myNum !=0)
{
textBox1.Text = textBox1.Text + myNum;
}
//輸入數字為0
else
textBox1.Text = "0";
}
4.數字鍵調用那個方法 注:這里的n就是0到9的數字,這九個button代碼都差不多,都調用inputNum方法就可以,把數字作為參數傳進去。
private void button1_Click(object sender, EventArgs e)
{
inputNum(n);
}
5.編寫復位鍵和退格鍵的方法
//復位鍵
private void button16_Click(object sender, EventArgs e) { textBox1.Text = " "; num1 = 0; temp = 0; }
//退格鍵,文本框里字符的長度大于1時,點擊此鍵,則刪除一個字符,即長度減一
private void button22_Click(object sender, EventArgs e) { if (textBox1.Text.Length > 0) { textBox1.Text = textBox1.Text.Substring(0, textBox1.Text.Length - 1); } }
6.編寫加減乘除、開方、平方、三次方、log/In的方法。
當點擊這幾個鍵時,相當于用num1把用戶輸入的第一個數字存到這個變量里。下面舉例加法和減法,其他的都類似,只不過temp取值不一樣。
//加法計算 private void button10_Click(object sender, EventArgs e) { temp = 1; num1 = Convert.ToDouble(textBox1.Text);//當點擊+號時,存儲第一個數字 textBox1.Text = "";//隨后讓文本框歸空 } //減法計算 private void button11_Click(object sender, EventArgs e) { temp = 2; num1 = Convert.ToDouble(textBox1.Text);//當點擊-號時,存儲第一個數字 textBox1.Text = "";//隨后讓文本框歸空 }...........................................其他方法類似
7.編寫=號鍵的方法
這里沒有定義第二個變量存儲用戶輸入的數字,因為num1已經有了,若用戶執行加減乘除這樣兩個數的運算,第二數直接由textbox里轉成double類型直接用,若用戶執行開方、平方、log/In這種單個數運算,則不要第二數的輸入,所以這里減少了存儲第二個數的麻煩,當然也可以定義兩個變量。
當用戶點擊“=“時執行此方法
private void button21_Click(object sender, EventArgs e) { switch (temp) {
//加法運算 case 1: textBox1.Text = (num1 + Convert.ToDouble(textBox1.Text)).ToString(); break;
//減法運算 case 2: textBox1.Text = (num1 - Convert.ToDouble(textBox1.Text)).ToString(); break;
//乘法運算 case 3: textBox1.Text = (num1 * Convert.ToDouble(textBox1.Text)).ToString(); break;
//除法運算,討論分母為零的情況 case 4: if (Convert.ToDouble(textBox1.Text) == 0) { MessageBox.Show("除數不能為零", "錯誤提示", MessageBoxButtons.OK, MessageBoxIcon.Warning); textBox1.Clear(); } else textBox1.Text = (num1 / Convert.ToDouble(textBox1.Text)).ToString(); break; //log運算 case 5: textBox1.Text = Math.Log(num1).ToString(); break; //In運算 case 6: textBox1.Text = Math.Log10(num1).ToString(); break; //開方運算 case 7: textBox1.Text = Math.Sqrt(num1).ToString(); break; //平方運算 case 8: textBox1.Text =(num1 * num1).ToString(); break;
//三次方運算 case 9: textBox1.Text = Math.Pow(num1, 3).ToString(); break; } }
擴展資料:C#是微軟公司發布的一種由C和C++衍生出來的面向對象的編程語言、運行于.NET Framework和.NET Core(完全開源,跨平臺)之上的高級程序設計語言。并定于在微軟職業開發者論壇(PDC)上登臺亮相。C#是微軟公司研究員Anders Hejlsberg的最新成果。C#看起來與Java有著驚人的相似;它包括了諸如單一繼承、接口、與Java幾乎同樣的語法和編譯成中間代碼再運行的過程。但是C#與Java有著明顯的不同,它借鑒了Delphi的一個特點,與COM(組件對象模型)是直接集成的,而且它是微軟公司 .NET windows網絡框架的主角。