五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

【內(nèi)附源碼和文檔】基于C#語言的計算器的設(shè)計與實現(xiàn)

2023-06-27 17:38 作者:夏鈺涵-m  | 我要投稿

基于C#語言的計算器的設(shè)計與實現(xiàn)

一 需求分析

利用c#語言實現(xiàn)一個計算器程序,包括普通計算器模式、科學(xué)計算器模式;實現(xiàn)實數(shù)(包括正數(shù)、負(fù)數(shù)、0)的加、減、乘、除、平方等基本遠(yuǎn)算,并實現(xiàn)非負(fù)數(shù)的開方運(yùn)算。

二 程序設(shè)計與實現(xiàn)

首先設(shè)計主窗體,包括兩個TextBox用來顯示數(shù)據(jù),使用數(shù)據(jù)綁定實現(xiàn),在Model中實現(xiàn)INotifyPropertyChanged接口,以起到數(shù)據(jù)更改通知的功能。一個Button和Panel作為菜單來切換計算器模式。最后一個Panel用來顯示不同模式的計算器輸入面板;

其次是標(biāo)準(zhǔn)計算器輸入面板。包括常用的數(shù)字和運(yùn)算符以及Delete,CE和清除按鈕??茖W(xué)計算模式也只是多了幾個運(yùn)算符而已。在后置代碼中獲取被單擊的按鈕的名稱,調(diào)用Model中的Print方法在TextBox中顯示數(shù)據(jù)。

Model中聲明兩個字符串變量作為兩個TextBox中的數(shù)據(jù),還包括Print方法,一方面得到按鈕的名稱,另一方面調(diào)用此程序中最重要的邏輯處理方法PrintText方法。傳進(jìn)去兩個值,即當(dāng)前TextBox中顯示的數(shù)據(jù),輸出兩個值作為TextBox在一系列處理之后應(yīng)顯示的數(shù)據(jù)。

PrintAndExpression類主要負(fù)責(zé)處理TextBox的顯示和生成算術(shù)表達(dá)式。GetValue方法根據(jù)名字返回應(yīng)顯示的字符串。IsOpreation方法判斷字符串是數(shù)字,一元操作符還是二元操作符及其他符號。PrintText處理顯示格式。大致為當(dāng)輸入數(shù)字的時候在textBox1中,每按下一個操作符即將textBox1中的數(shù)字連接上操作符顯示在textBox2中,同時處理簡單的一元運(yùn)算符的運(yùn)算,生成表達(dá)式。最終將表達(dá)式傳遞給AnalyExpressions。將解析表達(dá)式運(yùn)算之后的結(jié)果返回。

AnalyExpressions解析表達(dá)式,利用堆棧來實現(xiàn),將中綴表達(dá)式分解之后保存在字符串?dāng)?shù)組中,即所謂的“后綴表達(dá)式”。大致規(guī)則為:

  • 將中綴表達(dá)式翻譯成后綴表達(dá)式

  • 輸入中綴表達(dá)式: A+B*(C+D)-E/F

  • 中綴表達(dá)式翻譯成后綴表達(dá)式的方法如下:

    • 如果ch = "(",放入堆棧

    • 如果ch = ")",依次輸出堆棧中的運(yùn)算符, 直到遇到"("為止

    • 如果ch不是")"或者"(",那么就和堆棧頂點位置的運(yùn)算符top做優(yōu)先級比較

    • 如果ch優(yōu)先級比top高,那么 將ch放入堆棧

    • 如果ch優(yōu)先級低于或者等于 top,那么輸出top,然后將ch放入堆棧

    • 如果表達(dá)式已經(jīng)讀取完成,而堆棧中還有運(yùn)算符時,依次由頂端輸出

    • 從左向右依次取得數(shù)據(jù)ch

    • 如果ch是操作數(shù),直接輸出

    • 如果ch是運(yùn)算符(含左右括號),則:

三 程序目錄結(jié)構(gòu)

程序目錄結(jié)構(gòu)如下圖所示:


  • Model.cs為程序執(zhí)行所操作的數(shù)據(jù)

Method文件夾

  • PrintAndExpression.cs為事件處理程序所調(diào)用的方法,主要用于處理顯示數(shù)據(jù)

  • AnalyExpression.cs用于將算術(shù)表達(dá)式解析為“后綴表。達(dá)式數(shù)組”并計算返回計算結(jié)果

View文件

  • NormCalculator.cs為用戶控件顯示標(biāo)準(zhǔn)計算器視圖

  • ScienceCalculator.cs用戶控件顯示科學(xué)計算器視圖

MainForm.cs為程序主窗體

Program.cs為程序入口

四 測試運(yùn)行

如下圖所示:

完整的源碼和詳細(xì)的文檔,上傳到了 【W(wǎng)RITE-BUG數(shù)字空間】

https://www.writebug.com/code/0c42cfd6-c792-11ed-8fd1-6479f0e5e323/#



【內(nèi)附源碼和文檔】基于C#語言的計算器的設(shè)計與實現(xiàn)的評論 (共 條)

分享到微博請遵守國家法律
五华县| 集贤县| 嵊泗县| 称多县| 延津县| 霸州市| 咸阳市| 福清市| 呼玛县| 邯郸市| 锡林浩特市| 玉门市| 阳信县| 于田县| 贡山| 偃师市| 福海县| 永吉县| 安庆市| 西丰县| 正阳县| 沙坪坝区| 玉屏| 宝坻区| 开原市| 紫阳县| 正蓝旗| 昌都县| 涿州市| 玉环县| 永康市| 唐山市| 北川| 雅江县| 饶河县| 二手房| 新宁县| 巴彦淖尔市| 房山区| 黄石市| 沙河市|