最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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#異步編程由淺入深(三)之詳解Awaiter

    C#異步編程由淺入深(三)之詳解Awaiter

    這篇文章主要介紹了C#異步編程由淺入深(三)之詳解Awaiter,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-03-03
  • ASP.NET總結(jié)C#中7種獲取當(dāng)前路徑的方法

    ASP.NET總結(jié)C#中7種獲取當(dāng)前路徑的方法

    本文主要介紹了7種獲取當(dāng)前路徑的方法,并做了代碼演示,分享給大家,感興趣的朋友可以參考一下。
    2016-03-03
  • C#小知識(shí)之有趣的類型靜態(tài)構(gòu)造器

    C#小知識(shí)之有趣的類型靜態(tài)構(gòu)造器

    這篇文章主要介紹了C#小知識(shí)之有趣的類型靜態(tài)構(gòu)造器,本文直接給分實(shí)例代碼,然后分析了C#中的這一個(gè)有趣的現(xiàn)象,需要的朋友可以參考下
    2015-04-04
  • C# Winform 分頁功能的實(shí)現(xiàn)

    C# Winform 分頁功能的實(shí)現(xiàn)

    本文主要介紹了C# Winform 分頁功能的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-06-06
  • C#由當(dāng)前日期計(jì)算相應(yīng)的周一和周日的實(shí)例代碼

    C#由當(dāng)前日期計(jì)算相應(yīng)的周一和周日的實(shí)例代碼

    這篇文章介紹了C#由當(dāng)前日期計(jì)算相應(yīng)的周一和周日的實(shí)例代碼,有需要的朋友可以參考一下
    2013-09-09
  • C#內(nèi)置泛型委托之Action委托

    C#內(nèi)置泛型委托之Action委托

    這篇文章介紹了C#內(nèi)置泛型委托之Action委托的用法,文中通過示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-03-03
  • c# 二分查找算法

    c# 二分查找算法

    折半搜索,也稱二分查找算法、二分搜索,是一種在有序數(shù)組中查找某一特定元素的搜索算法
    2013-10-10
  • C#統(tǒng)計(jì)C、C++及C#程序代碼行數(shù)的方法

    C#統(tǒng)計(jì)C、C++及C#程序代碼行數(shù)的方法

    這篇文章主要介紹了C#統(tǒng)計(jì)C、C++及C#程序代碼行數(shù)的方法,較為詳細(xì)的分析了C#統(tǒng)計(jì)文本文件的原理與相關(guān)實(shí)現(xiàn)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-08-08
  • ASP.NET C#中Application的用法教程

    ASP.NET C#中Application的用法教程

    這篇文章主要給大家介紹了關(guān)于ASP.NET C#中Application的用法,在介紹Application的用法之前,先給大家介紹了Session的用法供大家參考學(xué)習(xí),文中介紹的非常詳細(xì),需要的朋友們下面跟著小編一起來學(xué)習(xí)學(xué)習(xí)吧。
    2017-05-05
  • c# 對(duì)cookies(增、刪、改、查)的操作方法

    c# 對(duì)cookies(增、刪、改、查)的操作方法

    以前覺得cookies操作無非就那么幾種,但是“杯具事件”還是很多的,下面分享一下對(duì)cookies的簡(jiǎn)單操作
    2013-04-04

最新評(píng)論

昭平县| 定兴县| 嘉义市| 兴国县| 西贡区| 河曲县| 新营市| 邢台市| 沙坪坝区| 泸西县| 琼结县| 景德镇市| 公安县| 昔阳县| 稻城县| 确山县| 普定县| 莒南县| 历史| 龙里县| 阜宁县| 普定县| 余江县| 深泽县| 柳州市| 外汇| 琼中| 阳江市| 大港区| 安溪县| 泽普县| 洪湖市| 甘德县| 长春市| 芜湖市| 广昌县| 阳西县| 洪江市| 武平县| 贵南县| 玛曲县|