計算器(Windows程序設計)


前言

  雖然享受着博客的方便管理(感覺博客有點丑)= v =,但是還是想自己弄個服務器來記錄生活和學習,自主性高一點,主要能放一些自己的寫的項目運行,把自己的東西匯匯總,以后給別人看方便一點,服務器上也別省錢了,能白嫖的白嫖,能py的py,實在不行再買吧。(`・ω・´)

問題描述

設計一個功能完整、界面美觀的計算器應用程序。要求:

  • (1) 用戶可通過鼠標點擊按鈕輸入運算數,在文本框中顯示,實現加、減、乘、除等四則運算及倒數、取反功能。要求實現良好的布局效果,通過對按鈕功能分類簡化編程。
  • (2) 除了鼠標輸入外,可同時實現鍵盤輸入和運算(即通過鍵盤輸入數字及運算符時,達到與按鈕點擊一樣的效果)。
  • (3) 實現小數運算和連續運算;
  • (4) 實現sqrt,sin等科學計算功能;
  • (5) 實現表達式解析等附加功能

解決思路

按鈕很多,通過不同的事件進行區分

  比如四則運算事件為DoudleClicked,而sqrt,x^2,1/x,sinx為SingleClicked,將不同的按鈕分到同一個事件當中,代碼的復用性高,邏輯清楚。

使用MSScriptControl來解決表達解釋式

 SScriptControl.ScriptControl sc = new MSScriptControl.ScriptControl();
 sc.Language = "JavaScript";
 textBox1.Text= sc.Eval(textBox2.Text.ToString()).ToString();

  其中 textBox1.Text為結果,textBox2.Text是一個字符串,比如 1+3*5-4/2 它能幫直接進行所需要的乘處優先,再算加減,所以這邊我的代碼是有問題的,在處理四則運算的時候,如果處理SingleClicked事件時就會起沖突。如果各位有興趣的話還可以自己繼續去研究效果圖如下:

        = =

源碼附上 項目傳送門


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM