您好,登錄后才能下訂單哦!
這篇文章主要介紹C#如何實現簡易計算器小功能,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!
具體內容如下
簡易的登陸界面。
具有幻燈片效果。(picturebox time控件)
計算器支持多位數,小數,括號的運算。
音樂是一個練習用的小控件(Listbox),可以選擇指定的歌曲播放,直接忽略掉吧。
數字和運算符都為button,輸入和輸出的為textbox
在所有button控件的click事件均為加上所對應的文本。
例如:數字1所對應的button就為
textBox1.Text += '1';
運算符同理
textBox1.Text += '*';
核心代碼均在‘=’的click的事件中
Stack<double> vs = new Stack<double>();//運算符棧 Stack<char> vvs = new Stack<char>();//操作符棧 string a = textBox1.Text + '='; string b = ""; vvs.Push('='); for (int i = 0; i < a.Length; i++) { if (a[i] >= '0' && a[i] <= '9'||a[i]=='.') { b += a[i]; } else if (a[i] == '=') { if (b != "") vs.Push(Convert.ToDouble(b)); while (vvs.Peek() != '=') { char t = vvs.Pop(); double d = vs.Pop(); if (vs.Count() != 0) { double j = vs.Pop(); vs.Push(Jisuan(d, t, j)); } else { MessageBox.Show("你輸入的有問題"); textBox1.Text = ""; } } } else { if (b != "") vs.Push(Convert.ToDouble(b)); switch (Bijiao(vvs.Peek(), a[i])) { case '>': while (vvs.Count != 1 && vvs.Peek() != '(') { char th = vvs.Pop(); double f = vs.Pop(); double g = vs.Pop(); vs.Push(Jisuan(f, th, g)); } if (vvs.Peek() == '(' && a[i] == ')') { vvs.Pop(); } else { vvs.Push(a[i]); } break; case '<': vvs.Push(a[i]); break; case '=': while (vvs.Peek() != '=') { char th = vvs.Pop(); double f = vs.Pop(); double g = vs.Pop(); vs.Push(Jisuan(f, th, g)); } break; } b = ""; } } textBox1.Text = ""; if(vs.Count()!=0) { textBox1.Text = vs.Peek().ToString(); } }
所用到的方法(函數)
public double Jisuan(double c, char t, double a)//用來計算的方法 { switch (t) { case '+': return a + c; case '-': return a - c; case '*': return a * c; case '/': if (c == 0) { MessageBox.Show("0不能作為被除數"); return 0; } else return a / c; case '%': return a % c; default: return 0; } } char Bijiao(char theta1, char theta2)//比較運算符優先級的方法 { if ((theta1 == '(' && theta2 == ')') || (theta1 == '#' && theta2 == '#')) { return '='; } else if (theta1 == '(' || theta1 == '#' || theta2 == '(' || (theta1 == '+' || theta1 == '-') && (theta2 == '*' || theta2 == '/')) { return '<'; } else return '>'; }
為了使計算器更加美觀,可以添加picturebox控件等等。
以上是“C#如何實現簡易計算器小功能”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。