簡易計算器課程設(shè)計_第1頁
已閱讀1頁,還剩17頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、<p><b>  班 級 </b></p><p>  專 業(yè) 計算機科學(xué)與技術(shù)</p><p>  學(xué) 號 學(xué)生姓名</p><p><b>  指導(dǎo)教師</b></p><p>  完成日期 2011 年 01 月 13 日</p>&l

2、t;p><b>  摘 要</b></p><p>  課程設(shè)計語言類課程的指導(dǎo)思想:使學(xué)生通過學(xué)習(xí)高級編程語言的知識、編程技術(shù)和基本算法,掌握課程設(shè)計的思想和方法,具備利用計算機求解實際問題的能力,能靈活運用高級語言進行程序設(shè)計。</p><p>  其實認真學(xué)習(xí)一門語言并不難,關(guān)鍵是所追求的學(xué)習(xí)方法和途徑。通過C語言程序設(shè)計,可以使我們掌握軟件開發(fā)過程的難

3、題分析、系統(tǒng)設(shè)計、程序編碼、測試程序等基本方法和技能。同時,還能加強我們的時間管理意識,鍛煉對難題的發(fā)現(xiàn)、分析和處理能力。我認為遇到難題并不可怕,可怕的是你不去解決,這可能是C語言課程設(shè)計的主要目的之一。</p><p>  現(xiàn)時學(xué)習(xí)生活中,常會遇到一些數(shù)目較大數(shù)據(jù)繁雜的數(shù)值運算,徒手運算起來很困難,這時候我們就必須用到計算器。人們對計算的要求不斷提高,普通的功能簡單的僅能進行四則運算的計算工具已經(jīng)不能滿足需要,

4、需要一種能進行多種計算?,F(xiàn)在已經(jīng)有一些功能較為強大、涵蓋面較廣的計算軟件,而且各種平臺的小工具仍不斷出現(xiàn)。這些大大方便了我們的生活給我們更多的選擇和實現(xiàn)方式。本程序的編寫基礎(chǔ)是MFC漢化版,它在MFC的原有基礎(chǔ)上實現(xiàn)了多漢字的支持方便了我們的使用。生成的程序可移植性強兼容性好穩(wěn)定!本程序?qū)崿F(xiàn)了加、減、乘、除、求冪、求模,求平方根,求Sin,求Cos,求Log10,求階乘,取整,求正切,以及進制之間的相互轉(zhuǎn)換。它可以直接輸入數(shù)學(xué)表達式,不

5、需要任何轉(zhuǎn)換,就可以直接輸出數(shù)學(xué)四則運算的結(jié)果。但是,每次只能運算一個表達式,按 CE清空后再計算下一組式子。本程序在進制轉(zhuǎn)換方面有一些漏洞,但一般的進制轉(zhuǎn)換結(jié)果還是準確的。</p><p><b>  第1章 選題的意義</b></p><p><b>  1.1自我介紹</b></p><p>  我的名字是涂國祥,就

6、讀于仰恩大學(xué),計算機090901班,計算機與信息學(xué)院。</p><p><b>  1.2選題</b></p><p>  我選的題目是:簡單計算器的設(shè)計</p><p>  我選這道題的原因如下:</p><p>  計算器對我們每一的學(xué)生都很熟悉,從初中到高中再到大學(xué)。但是我們只知道按下幾個按鈕計算器便會顯示出結(jié)果,

7、很少有學(xué)生分析過計算器究竟是如何運行的。C語言課程設(shè)計便是一個很好的機會,讓我去親自寫計算器的運行代碼,盡管是簡單計算器的設(shè)計,但其背后的知識那是相當(dāng)多的,對我是個挑戰(zhàn),我接受!</p><p>  運用的數(shù)據(jù)結(jié)構(gòu)和知識點</p><p>  MFC 繪圖知識 數(shù)學(xué)函數(shù) 選擇結(jié)構(gòu) 循環(huán)結(jié)構(gòu) 數(shù)組 指針 順序結(jié)構(gòu) 進制間的轉(zhuǎn)換 </p>&l

8、t;p>  第2章 系統(tǒng)功能需求分析</p><p>  2.1系統(tǒng)的基本要求</p><p>  1. 算術(shù)運算功能。能夠?qū)崿F(xiàn)+、-、*、/、mod、int運算。</p><p>  2. 函數(shù)運算功能。能夠?qū)崿F(xiàn)exp、ln、sin、x^y、log、cos、x^3、n!、tan、x^2、1/x等運算。</p><p>  3. 進制之

9、間的轉(zhuǎn)換功能。能夠?qū)崿F(xiàn)十六、十、二、八進制數(shù)據(jù)之間的轉(zhuǎn)換。</p><p>  4.通過鍵盤控制字符和數(shù)字的輸入。</p><p>  2.2數(shù)據(jù)結(jié)構(gòu)設(shè)計及用法說明</p><p>  此程序調(diào)用的函數(shù)主要有<math.h> /*數(shù)學(xué)函數(shù)的定義*/<conio.h> /*屏幕操作函數(shù)*/<stdio.h> /*I/O函數(shù)*

10、/<stdlib.h> /*庫函數(shù)*/<stdarg.h> //<ctype.h> /*字符操作函數(shù)*/。基本使用:用→←↑↓控制鼠標圖形移動,當(dāng)*變量長度參數(shù)表*/<graphics.h> /*圖形函數(shù)*/<string.h> /*字符串函數(shù)*移動到相應(yīng)得按鈕時按回車鍵輸入當(dāng)前數(shù)字或執(zhí)行對應(yīng)的函數(shù)。</p><p>  加法:輸入一個被加數(shù)數(shù)

11、,按“+”,輸入被加數(shù),按“=”,輸出結(jié)果。</p><p>  乘法: 輸入一個數(shù),按“*”,輸入另個數(shù),按“=”,輸出結(jié)果。</p><p>  除法: 輸入一個被除數(shù),按“+”,輸入另個除數(shù),按“=”,輸出結(jié)果。</p><p>  求余:輸入一個數(shù),按“mod”,按“=”,輸出結(jié)果。</p><p>  取整:輸入一個數(shù),按“int”

12、,按“=”,輸出結(jié)果。</p><p>  八進制轉(zhuǎn)十進制:輸入一個八進制數(shù),按“10->8”,按“=”,輸出十進制結(jié)果。</p><p>  十六進制轉(zhuǎn)十進制:輸入一個十六進制數(shù),按下“jz”+“16- >10” 按“=”,輸出十進制結(jié)果</p><p><b>  2.3 功能模塊</b></p><p>

13、;  鍵盤控制模塊:通過int specialkey(void)和鍵盤來實現(xiàn)輸入數(shù)據(jù),操作方式的控制。</p><p>  計算模塊:通過調(diào)用math.h中的數(shù)學(xué)函數(shù),如:+、-、*、/、sin、cos、mod等來實現(xiàn)對result的賦值。</p><p>  輸出模塊:在指定位置輸出計算模塊中result的值,在指定位置輸出鍵盤控制模塊中對參量所賦的值以及在指定位置輸出鍵盤控制模塊中得到

14、的運算符。</p><p><b>  第3章 系統(tǒng)設(shè)計</b></p><p><b>  3.1流程圖</b></p><p><b>  3.2數(shù)據(jù)結(jié)構(gòu)</b></p><p>  用到了if判斷語句,for循環(huán)語句,while語句,且主要通過while語句實現(xiàn)對鍵盤、光

15、標的操作和數(shù)據(jù)、運算符的輸入,還用到了switch語句,switch語句的主要作用是實現(xiàn)對所輸入的數(shù)據(jù)的運算操作,然后將運算結(jié)果賦值給result,最后輸出。</p><p><b>  第4章 系統(tǒng)實現(xiàn)</b></p><p>  本系統(tǒng)采用 C語言開發(fā),生成可執(zhí)行文件在任何系統(tǒng)下都可以執(zhí)行,具有很好的數(shù)據(jù)處理能力和穩(wěn)定性。并且使用MFC漢化版。生成的程序可移植性強

16、、兼容性好。它可以直接輸入數(shù)學(xué)表達式,不需要任何轉(zhuǎn)換,就可以直接輸出數(shù)學(xué)四則運算的結(jié)果。</p><p>  本程序通過調(diào)用int specialkey(void) 和#include <conio.h> 來實現(xiàn)對屏幕的操作,通過調(diào)用int arrow()函數(shù),int specialkey(void) 和#include <conio.h>來實現(xiàn)對光標的操作。計算器圖形采用Turbo C

17、 2.0繪圖程序制作,大致運行畫面如下。</p><p>  光標起始位置在“A”上,通過鍵盤來控制光標的運動,如進行雙目運算1+2時,移動光標,將其指在“1”上,按“Enter”,在屏幕上會輸出“1”,再移動光標,將其指在“2”上,按“Enter”,在屏幕上會在指定位置輸出“2”,再移動光標,將其指在“=”上,按“Enter”,結(jié)果便會在指定位置輸出。</p><p>  按下“CE”可

18、以清零,重新進行下一組運算。</p><p>  按“Esc”可以退出系統(tǒng)。</p><p><b>  第5章 總結(jié)</b></p><p>  經(jīng)過了三個星期的課程設(shè)計,在設(shè)計中我們遇到了很多編程問題,最后我努力攻克一個個難關(guān),我做得是計算器的設(shè)計。</p><p>  測試階段中發(fā)現(xiàn)了幾處錯誤導(dǎo)致程序不能編譯,去上

19、網(wǎng)查找相關(guān)的資料, 又同學(xué)一起討論。通過耐心的分析源代碼終于編好了一個完整無誤的程序。在這次的c語言程序設(shè)計實習(xí)中遇到了現(xiàn)實編程中必然見到的問題通過這些問題的解決積累了編程的實踐經(jīng)驗。在實際的編程操作中發(fā)現(xiàn)自己c語言知識的不足,加深了對c語言的理解。在學(xué)習(xí)之余體驗到收獲的感覺.</p><p>  善于總結(jié),也是學(xué)習(xí)能力的一種體現(xiàn),每次完成一個編程任務(wù),完成一段代碼,都應(yīng)當(dāng)有目的的跟蹤該程序的應(yīng)用狀況,隨時總結(jié),

20、找到自己的不足,這樣所編寫的程序才能逐步提高.課程設(shè)計是培養(yǎng)學(xué)生綜合運用所學(xué)知識,發(fā)現(xiàn),提出,分析和解決實際問題,鍛煉實踐能力的重要環(huán)節(jié),是對學(xué)生實際工作能力的具體訓(xùn)練和考察過程.隨著科學(xué)技術(shù)發(fā)展的日新月異,當(dāng)今計算機應(yīng)用在生活中可以說得是無處不在。因此作為二十一世紀的大學(xué)來說掌握計算機開發(fā)技術(shù)是十分重要的。</p><p>  自從拿到題目到完成整個編程,從理論到實踐,在整整半個學(xué)期的日子里,可以學(xué)到很多很多的

21、東西,同時不僅可以鞏固了以前所學(xué)過的知識,而且學(xué)到了很多在書本上所沒有學(xué)到過的知識。通過這次課程設(shè)計使我們懂得了理論與實際相結(jié)合是很重要的,只有理論知識是遠遠不夠的,只有把所學(xué)的理論知識與實踐相我們把前面所學(xué)過的知識又重新溫故了一遍。</p><p>  通過這次課程設(shè)計,我拓寬了知識面,鍛煉了能力,綜合素質(zhì)得到較大提高。安排課程設(shè)計的基本目的,在于通過理論與實際的結(jié)合、人與人的溝通,進一步提高思想覺悟。尤其是觀

22、察、分析和解決問題的實際工作能力,以便培養(yǎng)成為能夠主動適應(yīng)社會主義現(xiàn)代化建設(shè)需要的高素質(zhì)的復(fù)合型人才。作為整個學(xué)習(xí)體系的有機組成部分,課程設(shè)計雖然安排在一周進行,但并不具有絕對獨立的意義。它的一個重要功能,在于運用學(xué)習(xí)成果,檢驗學(xué)習(xí)成果。運用學(xué)習(xí)成果,把課堂上學(xué)到的系統(tǒng)化的理論知識,嘗試性地應(yīng)用于實際設(shè)計工作,并從理論的高度對設(shè)計工作的現(xiàn)代化提出一些有針對性的建議和設(shè)想。檢驗學(xué)習(xí)成果,看一看課堂學(xué)習(xí)與實際工作到底有多大距離,并通過綜合分

23、析,找出學(xué)習(xí)中存在的不足,以便為完善學(xué)習(xí)計劃,改變學(xué)習(xí)內(nèi)容與方法提供實踐依據(jù)。而這種實際能力的培養(yǎng)單靠課堂教學(xué)是遠遠不夠的,必須從課堂走向?qū)嵺`。通過課程設(shè)計,讓我們找出自身狀況與實際需要的差距,并在以后的學(xué)習(xí)期間及時補充相關(guān)知識,為求職與正式工作做好充分的知識、能力準備,從而縮短從校園走向社會的心理轉(zhuǎn)型期。課程設(shè)計促進了我系人才培養(yǎng)計劃的完善和課程設(shè)置的調(diào)整。近年來,我系為適應(yīng)學(xué)生的實踐需要陸續(xù)增</p><p>

24、;<b>  5.1致謝詞</b></p><p><b>  致謝詞</b></p><p>  感謝xx老師三周來的辛勤指導(dǎo),每當(dāng)我們遇到難題時您都能隨時幫我們很好的解決,并且告訴我們?yōu)槭裁催@樣改,指導(dǎo)得很詳細,很認真。您使我們知道了C語言程序設(shè)計 的趣味性。</p><p>  5.2主要參考文獻:</p>

25、;<p>  《C++語言程序設(shè)計與實踐》張思民</p><p><b>  5.3中心算法;</b></p><p>  設(shè)計一個類CCALDLG,類里包含主要數(shù)據(jù)成員number1和number2,主要成員函數(shù)cal,在該函數(shù)內(nèi)利用case語句實現(xiàn)各種基本計算。利用MFC實現(xiàn)人機交互。增加了清零‘求導(dǎo),開根號等功能。</p><p

26、><b>  5.4程序代碼;</b></p><p>  // jsqDlg.cpp : 實現(xiàn)文件</p><p>  #include "stdafx.h"</p><p>  #include "jsq.h"</p><p>  #include "jsqDl

27、g.h"</p><p>  #include "cmath"</p><p>  #ifdef _DEBUG</p><p>  #define new DEBUG_NEW</p><p><b>  #endif</b></p><p>  double a1;

28、 //保存計算中的第一個數(shù)</p><p>  double a2; //保存計算中的第二個數(shù)</p><p>  double a3;</p><p>  int m_sign; //用來表示運算符號,為“+”,為“-”,為“*”,為“/”</p><p>  int add=0; //用來判斷是否已經(jīng)存在別的數(shù),若沒有,則令add=

29、0;若有,則令add=1</p><p>  int point=0; //表示小數(shù)點,初始化無小數(shù)點為</p><p>  int num=0; //表示小數(shù)點后的位數(shù)</p><p>  double i=0;</p><p><b>  int m=0;</b></p><p>  //

30、 用于應(yīng)用程序“關(guān)于”菜單項的CAboutDlg 對話框</p><p>  class CAboutDlg : public CDialog</p><p><b>  {</b></p><p><b>  public:</b></p><p>  CAboutDlg();</p>

31、<p><b>  // 對話框數(shù)據(jù)</b></p><p>  enum { IDD = IDD_ABOUTBOX };</p><p>  protected:</p><p>  virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 支持</p&g

32、t;<p><b>  // 實現(xiàn)</b></p><p>  protected:</p><p>  DECLARE_MESSAGE_MAP()</p><p><b>  };</b></p><p>  CAboutDlg::CAboutDlg() : CDialog(CAbo

33、utDlg::IDD)</p><p><b>  {</b></p><p><b>  }</b></p><p>  void CAboutDlg::DoDataExchange(CDataExchange* pDX)</p><p><b>  {</b></p&

34、gt;<p>  CDialog::DoDataExchange(pDX);</p><p><b>  }</b></p><p>  BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)</p><p>  END_MESSAGE_MAP()</p><p>  // CjsqDl

35、g 對話框</p><p>  CjsqDlg::CjsqDlg(CWnd* pParent /*=NULL*/)</p><p>  : CDialog(CjsqDlg::IDD, pParent)</p><p>  , m_edit(0)</p><p><b>  {</b></p><p&g

36、t;  m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);</p><p><b>  }</b></p><p>  void CjsqDlg::DoDataExchange(CDataExchange* pDX)</p><p><b>  {</b></p>

37、;<p>  CDialog::DoDataExchange(pDX);</p><p>  DDX_Text(pDX, IDC_EDIT1, m_edit);</p><p><b>  }</b></p><p>  BEGIN_MESSAGE_MAP(CjsqDlg, CDialog)</p><p>

38、;  ON_WM_SYSCOMMAND()</p><p>  ON_WM_PAINT()</p><p>  ON_WM_QUERYDRAGICON()</p><p>  //}}AFX_MSG_MAP</p><p>  ON_BN_CLICKED(IDC_BUTTON10, &CjsqDlg::OnBnClickedButto

39、n10)</p><p>  ON_BN_CLICKED(IDC_BUTTON1, &CjsqDlg::OnBnClickedButton1)</p><p>  ON_BN_CLICKED(IDC_BUTTON2, &CjsqDlg::OnBnClickedButton2)</p><p>  ON_BN_CLICKED(IDC_BUTTON3,

40、&CjsqDlg::OnBnClickedButton3)</p><p>  ON_BN_CLICKED(IDC_BUTTON4, &CjsqDlg::OnBnClickedButton4)</p><p>  ON_BN_CLICKED(IDC_BUTTON5, &CjsqDlg::OnBnClickedButton5)</p><p>

41、  ON_BN_CLICKED(IDC_BUTTON6, &CjsqDlg::OnBnClickedButton6)</p><p>  ON_BN_CLICKED(IDC_BUTTON7, &CjsqDlg::OnBnClickedButton7)</p><p>  ON_BN_CLICKED(IDC_BUTTON8, &CjsqDlg::OnBnClicked

42、Button8)</p><p>  ON_BN_CLICKED(IDC_BUTTON9, &CjsqDlg::OnBnClickedButton9)</p><p>  ON_BN_CLICKED(IDC_BUTTON11, &CjsqDlg::OnBnClickedButton11)</p><p>  ON_BN_CLICKED(IDC_BUT

43、TON12, &CjsqDlg::OnBnClickedButton12)</p><p>  ON_BN_CLICKED(IDC_BUTTON13, &CjsqDlg::OnBnClickedButton13)</p><p>  ON_BN_CLICKED(IDC_BUTTON14, &CjsqDlg::OnBnClickedButton14)</p>

44、;<p>  ON_BN_CLICKED(IDC_BUTTON15, &CjsqDlg::OnBnClickedButton15)</p><p>  ON_BN_CLICKED(IDC_BUTTON16, &CjsqDlg::OnBnClickedButton16)</p><p>  ON_BN_CLICKED(IDC_BUTTON18, &Cjs

45、qDlg::OnBnClickedButton18)</p><p>  ON_BN_CLICKED(IDC_BUTTON17, &CjsqDlg::OnBnClickedButton17)</p><p>  ON_BN_CLICKED(IDC_BUTTON19, &CjsqDlg::OnBnClickedButton19)</p><p>  O

46、N_BN_CLICKED(IDC_BUTTON20, &CjsqDlg::OnBnClickedButton20)</p><p>  ON_BN_CLICKED(IDC_BUTTON22, &CjsqDlg::OnBnClickedButton22)</p><p>  ON_BN_CLICKED(IDC_BUTTON21, &CjsqDlg::OnBnClick

47、edButton21)</p><p>  ON_BN_CLICKED(IDC_BUTTON26, &CjsqDlg::OnBnClickedButton26)</p><p>  ON_BN_CLICKED(IDC_BUTTON23, &CjsqDlg::OnBnClickedButton23)</p><p>  END_MESSAGE_MAP(

48、)</p><p>  // CjsqDlg 消息處理程序</p><p>  BOOL CjsqDlg::OnInitDialog()</p><p><b>  {</b></p><p>  CDialog::OnInitDialog();</p><p>  // 將“關(guān)于...”菜單項添

49、加到系統(tǒng)菜單中。</p><p>  // IDM_ABOUTBOX 必須在系統(tǒng)命令范圍內(nèi)。</p><p>  ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);</p><p>  ASSERT(IDM_ABOUTBOX < 0xF000);</p><p>  CMenu* p

50、SysMenu = GetSystemMenu(FALSE);</p><p>  if (pSysMenu != NULL)</p><p><b>  {</b></p><p>  CString strAboutMenu;</p><p>  strAboutMenu.LoadString(IDS_ABOUTBO

51、X);</p><p>  if (!strAboutMenu.IsEmpty())</p><p><b>  {</b></p><p>  pSysMenu->AppendMenu(MF_SEPARATOR);</p><p>  pSysMenu->AppendMenu(MF_STRING, IDM_

52、ABOUTBOX, strAboutMenu);</p><p><b>  }</b></p><p><b>  }</b></p><p>  // 設(shè)置此對話框的圖標。當(dāng)應(yīng)用程序主窗口不是對話框時,框架將自動</p><p><b>  // 執(zhí)行此操作</b><

53、;/p><p>  SetIcon(m_hIcon, TRUE);// 設(shè)置大圖標</p><p>  SetIcon(m_hIcon, FALSE);// 設(shè)置小圖標</p><p>  // TODO: 在此添加額外的初始化代碼</p><p>  return TRUE; // 除非將焦點設(shè)置到控件,否則返回TRUE</p

54、><p><b>  }</b></p><p>  void CjsqDlg::OnSysCommand(UINT nID, LPARAM lParam)</p><p><b>  {</b></p><p>  if ((nID & 0xFFF0) == IDM_ABOUTBOX)<

55、/p><p><b>  {</b></p><p>  CAboutDlg dlgAbout;</p><p>  dlgAbout.DoModal();</p><p><b>  }</b></p><p><b>  else</b></p&g

56、t;<p><b>  {</b></p><p>  CDialog::OnSysCommand(nID, lParam);</p><p><b>  }</b></p><p><b>  }</b></p><p>  // 如果向?qū)υ捒蛱砑幼钚』粹o,則

57、需要下面的代碼</p><p>  // 來繪制該圖標。對于使用文檔/視圖模型的MFC 應(yīng)用程序,</p><p>  // 這將由框架自動完成。</p><p>  void CjsqDlg::OnPaint()</p><p>  //當(dāng)用戶拖動最小化窗口時系統(tǒng)調(diào)用此函數(shù)取得光標顯示。</p><p><

58、b>  //</b></p><p>  HCURSOR CjsqDlg::OnQueryDragIcon()</p><p><b>  {</b></p><p>  return static_cast<HCURSOR>(m_hIcon);</p><p><b>  }&l

59、t;/b></p><p>  void CjsqDlg::OnBnClickedButton10()//按鈕0</p><p><b>  {</b></p><p>  // TODO: 在此添加控件通知處理程序代碼</p><p>  if(point==0)</p><p><

60、b>  {</b></p><p>  if(add==0)</p><p><b>  {</b></p><p><b>  m_edit=0;</b></p><p><b>  }else{</b></p><p>  m_ed

61、it=m_edit*10;</p><p><b>  }</b></p><p><b>  }else{</b></p><p><b>  num++;</b></p><p><b>  }</b></p><p><

62、b>  add=1;</b></p><p>  UpdateData(false);</p><p><b>  }</b></p><p>  UpdateData(false);</p><p><b>  }</b></p><p>  void C

63、jsqDlg::OnBnClickedButton1()//按鈕1</p><p><b>  {</b></p><p>  // TODO: 在此添加控件通知處理程序代碼</p><p>  if(point==0)</p><p><b>  {</b></p><p>

64、;  if(add==0)</p><p><b>  {</b></p><p><b>  m_edit=1;</b></p><p><b>  }else{</b></p><p>  if(m_edit>=0) //判斷所輸入的是幾位數(shù);</p

65、><p><b>  {</b></p><p>  m_edit=m_edit*10+1;</p><p><b>  }else{</b></p><p>  m_edit=m_edit*10-1;</p><p><b>  }</b></p&g

66、t;<p><b>  }</b></p><p><b>  }else{</b></p><p><b>  num++;</b></p><p>  if(m_edit>=0) //判斷所輸入的是否是小數(shù);即整數(shù)+小數(shù);</p><p>

67、;  m_edit=m_edit+(double)1/pow((double)10,num);</p><p><b>  else</b></p><p>  m_edit=m_edit-(double)1/pow((double)10,num);</p><p><b>  }</b></p><p

68、><b>  add=1;</b></p><p>  UpdateData(false);</p><p><b>  }</b></p><p>  按鈕2,3,4,5,6,7,8,9與此相同;</p><p>  void CjsqDlg::OnBnClickedButton11()//

69、按鈕2x號 // 所輸入的數(shù)的兩倍;</p><p><b>  {</b></p><p>  // TODO: 在此添加控件通知處理程序代碼</p><p>  UpdateData(true);</p><p><b>  i=m_edit;</b></p><p&g

70、t;<b>  a1=i+a1;</b></p><p>  m_edit=a1;</p><p>  //UpdateData(false); // 即加上了與輸入的數(shù)相同;</p><p>  m_sign=0; </p><p>  point=0;

71、 </p><p>  add=0; </p><p><b>  num=0;</b></p><p>  OnBnClickedButton15();</p><p><b>  }</b></p><p>  void CjsqDlg:

72、:OnBnClickedButton12()//按鈕-號</p><p><b>  {</b></p><p>  // TODO: 在此添加控件通知處理程序代碼</p><p>  UpdateData(true);</p><p><b>  if(m==0)</b></p>&

73、lt;p><b>  {</b></p><p>  a1=m_edit;</p><p>  m_edit=a1;</p><p><b>  m=1;</b></p><p><b>  }else{</b></p><p><b>

74、  i=m_edit;</b></p><p><b>  a1=a1-i;</b></p><p>  m_edit=a1;</p><p><b>  m=1;</b></p><p><b>  }</b></p><p>  Upda

75、teData(false);</p><p><b>  m_sign=1;</b></p><p><b>  point=0;</b></p><p><b>  add=0;</b></p><p><b>  num=0;</b></p>

76、;<p><b>  }</b></p><p>  void CjsqDlg::OnBnClickedButton13()//按鈕*號</p><p><b>  {</b></p><p>  // TODO: 在此添加控件通知處理程序代碼</p><p>  UpdateData

77、(true);</p><p><b>  if(m==0)</b></p><p><b>  {</b></p><p>  a1=m_edit;</p><p>  m_edit=a1;</p><p><b>  m=1;</b></p&g

78、t;<p><b>  }else{</b></p><p><b>  i=m_edit;</b></p><p><b>  a1=a1*i;</b></p><p>  m_edit=a1;</p><p><b>  m=1;</b>

79、</p><p><b>  }</b></p><p>  UpdateData(false);</p><p><b>  m_sign=2;</b></p><p><b>  point=0;</b></p><p><b>  add

80、=0;</b></p><p><b>  num=0;</b></p><p>  }void CjsqDlg::OnBnClickedButton14()//按鈕/號</p><p><b>  {</b></p><p>  // TODO: 在此添加控件通知處理程序代碼</

81、p><p><b>  if(m==0)</b></p><p><b>  {</b></p><p>  UpdateData(true);</p><p>  a1=m_edit;</p><p>  m_edit=a1;</p><p>  Upd

82、ateData(false);</p><p><b>  m=1;</b></p><p><b>  }else{</b></p><p><b>  i=m_edit;</b></p><p><b>  if(i==0)</b></p>

83、<p><b>  {</b></p><p>  MessageBox(_T("除數(shù)不能為!"));</p><p>  OnBnClickedButton16();</p><p><b>  }else{</b></p><p><b>  a1=a

84、1/i;</b></p><p>  m_edit=a1;</p><p>  UpdateData(false);</p><p><b>  m=1;</b></p><p><b>  }</b></p><p><b>  }</b>

85、</p><p><b>  m_sign=3;</b></p><p><b>  point=0;</b></p><p><b>  add=0;</b></p><p><b>  num=0;</b></p><p>&l

86、t;b>  }</b></p><p>  void CjsqDlg::OnBnClickedButton15()//按鈕=號</p><p><b>  {</b></p><p>  // TODO: 在此添加控件通知處理程序代碼</p><p>  UpdateData(true);</p&

87、gt;<p>  a2=m_edit;</p><p>  switch(m_sign)</p><p><b>  {</b></p><p><b>  case 0:</b></p><p><b>  a3=a1+a2;</b></p>&l

88、t;p>  m_edit=a3;</p><p>  UpdateData(false);</p><p><b>  break;</b></p><p><b>  case 1:</b></p><p><b>  a3=a1-a2;</b></p>

89、<p>  m_edit=a3;</p><p>  UpdateData(false);</p><p><b>  break;</b></p><p><b>  case 2:</b></p><p><b>  a3=a1*a2;</b></p>

90、<p>  m_edit=a3;</p><p>  UpdateData(false);</p><p><b>  break;</b></p><p><b>  case 3:</b></p><p><b>  if(a2==0)</b></p&g

91、t;<p><b>  {</b></p><p>  OnBnClickedButton16();//當(dāng)除數(shù)為時清零</p><p>  MessageBox(_T("除數(shù)不能為!"));</p><p><b>  }else{</b></p><p><

92、b>  a3=a1/a2;</b></p><p>  m_edit=a3;</p><p><b>  }</b></p><p>  UpdateData(false);</p><p><b>  break;</b></p><p><b>

93、;  }</b></p><p><b>  add=0;</b></p><p><b>  a1=0;</b></p><p><b>  a2=0;</b></p><p><b>  i=0;</b></p><p&

94、gt;<b>  m=0;</b></p><p><b>  }</b></p><p>  void CjsqDlg::OnBnClickedButton16()//清零</p><p><b>  {</b></p><p>  // TODO: 在此添加控件通知處理程序

95、代碼</p><p><b>  m_edit=0;</b></p><p>  UpdateData(false);</p><p><b>  a1=0;</b></p><p><b>  a2=0;</b></p><p><b>  

96、a3=0;</b></p><p><b>  add=0;</b></p><p><b>  num=0;</b></p><p><b>  point=0;</b></p><p><b>  m=0;</b></p>&

97、lt;p><b>  }</b></p><p>  void CjsqDlg::OnBnClickedButton17()//按鈕+/-</p><p><b>  {</b></p><p>  // TODO: 在此添加控件通知處理程序代碼</p><p>  m_edit=0-m_ed

98、it;</p><p>  UpdateData(false);</p><p><b>  }</b></p><p>  void CjsqDlg::OnBnClickedButton19()//按鈕ex</p><p><b>  {</b></p><p>  //

99、TODO: 在此添加控件通知處理程序代碼</p><p>  m_edit=sqrt(m_edit);</p><p>  UpdateData(false);</p><p><b>  }</b></p><p>  void CjsqDlg::OnBnClickedButton20()//按鈕x2</p>

100、;<p><b>  {</b></p><p>  // TODO: 在此添加控件通知處理程序代碼</p><p>  m_edit=m_edit*m_edit;</p><p>  UpdateData(false);</p><p><b>  }</b></p>

101、<p>  void CjsqDlg::OnBnClickedButton22()//按鈕3.14</p><p><b>  {</b></p><p>  // TODO: 在此添加控件通知處理程序代碼</p><p>  m_edit=exp(m_edit);</p><p>  UpdateData(f

102、alse);</p><p><b>  }</b></p><p>  void CjsqDlg::OnBnClickedButton21()//按鈕1/x;</p><p><b>  {</b></p><p>  // TODO: 在此添加控件通知處理程序代碼</p><

103、p>  m_edit=1/m_edit;</p><p>  UpdateData(false);</p><p><b>  }</b></p><p>  void CjsqDlg::OnBnClickedButton26()//按鈕CE;</p><p><b>  {</b></

104、p><p>  // TODO: 在此添加控件通知處理程序代碼</p><p><b>  m_edit=0;</b></p><p>  UpdateData(false);</p><p><b>  }</b></p><p>  void CjsqDlg::OnBnCli

105、ckedButton23()//按鈕log;</p><p><b>  {</b></p><p>  // TODO: 在此添加控件通知處理程序代碼</p><p>  m_edit=log(m_edit);</p><p>  UpdateData(false);</p><p><b

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論