欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C#實(shí)現(xiàn)簡(jiǎn)易計(jì)算器小功能

 更新時(shí)間:2022年01月29日 08:01:24   作者:rmxob  
這篇文章主要為大家詳細(xì)介紹了C#實(shí)現(xiàn)簡(jiǎn)易計(jì)算器小功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

本文實(shí)例為大家分享了C#實(shí)現(xiàn)簡(jiǎn)易計(jì)算器小功能的具體代碼,供大家參考,具體內(nèi)容如下

簡(jiǎn)易的登陸界面。

具有幻燈片效果。(picturebox time控件)
計(jì)算器支持多位數(shù),小數(shù),括號(hào)的運(yùn)算。

音樂是一個(gè)練習(xí)用的小控件(Listbox),可以選擇指定的歌曲播放,直接忽略掉吧。

建立winform窗體

數(shù)字和運(yùn)算符都為button,輸入和輸出的為textbox

基本代碼

在所有button控件的click事件均為加上所對(duì)應(yīng)的文本。
例如:數(shù)字1所對(duì)應(yīng)的button就為

textBox1.Text += '1';

運(yùn)算符同理

textBox1.Text += '*';

核心代碼

核心代碼均在‘=’的click的事件中

Stack<double> vs = new Stack<double>();//運(yùn)算符棧
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(); }
? ? ? ? }

所用到的方法(函數(shù))

public double Jisuan(double c, char t, double a)//用來計(jì)算的方法
? ? ? ? {

? ? ? ? ? ? switch (t)
? ? ? ? ? ? {
? ? ? ? ? ? ? ? case '+':
? ? ? ? ? ? ? ? ? ? return a + c;
? ? ? ? ? ? ? ? case '-':
? ? ? ? ? ? ? ? ? ? return a - c;
? ? ? ? ? ? ? ? case '*':
? ? ? ? ? ? ? ? ? ? return a * c;
? ? ? ? ? ? ? ? case '/':
? ? ? ? ? ? ? ? ? ? if (c == 0)
? ? ? ? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? ? ? ? MessageBox.Show("0不能作為被除數(shù)");
? ? ? ? ? ? ? ? ? ? ? ? return ?0;
? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? ? ? else
? ? ? ? ? ? ? ? ? ? ? ? return a / c;
? ? ? ? ? ? ? ? case '%':
? ? ? ? ? ? ? ? ? ? return a % c;
? ? ? ? ? ? ? ? default:
? ? ? ? ? ? ? ? ? ? return 0;
? ? ? ? ? ? }


? ? ? ? }
? ? ? ? char Bijiao(char theta1, char theta2)//比較運(yùn)算符優(yōu)先級(jí)的方法
? ? ? ? {
? ? ? ? ? ? if ((theta1 == '(' && theta2 == ')') || (theta1 == '#' && theta2 == '#'))
? ? ? ? ? ? {
? ? ? ? ? ? ? ? return '=';
? ? ? ? ? ? }
? ? ? ? ? ? else if (theta1 == '(' || theta1 == '#' || theta2 == '(' || (theta1
? ? ? ? ? ? ? ? ? == '+' || theta1 == '-') && (theta2 == '*' || theta2 == '/'))
? ? ? ? ? ? {
? ? ? ? ? ? ? ? return '<';
? ? ? ? ? ? }
? ? ? ? ? ? else
? ? ? ? ? ? ? ? return '>';
? ? ? ? }

為了使計(jì)算器更加美觀,可以添加picturebox控件等等。

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 如何在C#中使用只讀的 Collections

    如何在C#中使用只讀的 Collections

    這篇文章主要介紹了如何在C#中使用只讀的 Collections,幫助大家更好的理解和學(xué)習(xí)使用c#,感興趣的朋友可以了解下
    2021-04-04
  • C#常用數(shù)據(jù)結(jié)構(gòu)和算法總結(jié)

    C#常用數(shù)據(jù)結(jié)構(gòu)和算法總結(jié)

    這篇文章主要介紹了C#常用數(shù)據(jù)結(jié)構(gòu)和算法,這里我們總結(jié)了一些知識(shí)點(diǎn),可以幫助大家理解這些概念。
    2016-06-06
  • C#中async/await之線程上下文工作原理

    C#中async/await之線程上下文工作原理

    這篇文章主要為大家介紹了C#中async/await之線程上下文工作原理解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪<BR>
    2023-05-05
  • C#和SQL實(shí)現(xiàn)的字符串相似度計(jì)算代碼分享

    C#和SQL實(shí)現(xiàn)的字符串相似度計(jì)算代碼分享

    這篇文章主要介紹了C#和SQL實(shí)現(xiàn)的字符串相似度計(jì)算代碼分享,本文分別給出了C#語言和SQL語言的實(shí)現(xiàn)代碼,需要的朋友可以參考下
    2014-10-10
  • C#泛型的使用案例

    C#泛型的使用案例

    這篇文章介紹了C#泛型的使用案例,文中通過示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-10-10
  • C#中GridView動(dòng)態(tài)添加列的實(shí)現(xiàn)方法

    C#中GridView動(dòng)態(tài)添加列的實(shí)現(xiàn)方法

    這篇文章主要介紹了C#中GridView動(dòng)態(tài)添加列的實(shí)現(xiàn)方法,涉及C#中GridView的相關(guān)使用技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-07-07
  • c#數(shù)組詳解

    c#數(shù)組詳解

    這篇文章主要介紹了c#數(shù)組的一些相關(guān)知識(shí),需要的朋友可以參考下
    2007-05-05
  • C#如何檢測(cè)操作系統(tǒng)版本

    C#如何檢測(cè)操作系統(tǒng)版本

    這篇文章主要為大家詳細(xì)介紹了C#如何檢測(cè)操作系統(tǒng)版本的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-10-10
  • 微信小程序支付C#后端源碼

    微信小程序支付C#后端源碼

    這篇文章主要為大家詳細(xì)介紹了微信小程序支付C#后端源碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-08-08
  • C# Dictionary和SortedDictionary的簡(jiǎn)介

    C# Dictionary和SortedDictionary的簡(jiǎn)介

    今天小編就為大家分享一篇關(guān)于C# Dictionary和SortedDictionary的簡(jiǎn)介,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧
    2018-10-10

最新評(píng)論