2023年全國(guó)碩士研究生考試考研英語(yǔ)一試題真題(含答案詳解+作文范文)_第1頁(yè)
已閱讀1頁(yè),還剩14頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、<p>  題 目: 簡(jiǎn)單的計(jì)算器 </p><p>  院 (系): 數(shù)學(xué)與計(jì)算機(jī)學(xué)院 </p><p>  年級(jí)專(zhuān)業(yè): 軟件工程 </p><p>  姓 名: </p><p>  學(xué) 號(hào):

2、 </p><p>  指導(dǎo)教師: </p><p>  2014年6月27日</p><p><b>  課程設(shè)計(jì)任務(wù)書(shū)</b></p><p>  注:任務(wù)書(shū)由指導(dǎo)教師填寫(xiě)。</p><p><b>  摘要</b><

3、;/p><p>  本課程設(shè)計(jì)將實(shí)現(xiàn)一個(gè)簡(jiǎn)單計(jì)算器。其類(lèi)似于Windows附件中自帶的計(jì)算器。這個(gè)計(jì)算器不僅實(shí)現(xiàn)了簡(jiǎn)單的四則運(yùn)算功能,還實(shí)現(xiàn)了高級(jí)的科學(xué)計(jì)算功能,而且具有簡(jiǎn)潔大方的圖文外觀(guān)。它的設(shè)計(jì)按軟件工程的方法進(jìn)行,系統(tǒng)具有良好的界面、必要的交互信息使用人員能快捷簡(jiǎn)單地進(jìn)行操作。即時(shí)準(zhǔn)確地獲得需要的計(jì)算的結(jié)果,充分降低了數(shù)字計(jì)算的難度和節(jié)約了時(shí)間,對(duì)人們的生活有一定的幫助。在課程設(shè)計(jì)中,系統(tǒng)開(kāi)發(fā)平臺(tái)為Window

4、s 7,程序設(shè)計(jì)設(shè)計(jì)語(yǔ)言采用Visual C++,在程序設(shè)計(jì)中,采用了結(jié)構(gòu)化與面向?qū)ο髢煞N解決問(wèn)題的方法。</p><p>  關(guān)鍵詞: 程序設(shè)計(jì),計(jì)算器,MFC,按鈕控件。</p><p><b>  1需求分析</b></p><p><b>  1.1 需求概述</b></p><p>  本

5、軟件主要用于計(jì)算機(jī)windows 2000/XP以上版本的用戶(hù)的使用,這次課程設(shè)計(jì)一般是實(shí)現(xiàn)簡(jiǎn)單計(jì)算器的功能。要程序能實(shí)現(xiàn):加,減,乘,除,開(kāi)方,乘方,sin,cos等運(yùn)算功能;還要實(shí)現(xiàn)數(shù)據(jù)的輸入,輸出,計(jì)算,顯示及程序退出等功能。另外還可以實(shí)現(xiàn)多種科學(xué)計(jì)算的功能,如:三角函數(shù)的計(jì)算,弧度與角度間的轉(zhuǎn)換,對(duì)數(shù)指數(shù)的計(jì)算等等。</p><p><b>  1.2 需求環(huán)境</b></p&

6、gt;<p>  本課程設(shè)計(jì)需要的設(shè)備為硬件要求和軟件配置要求具體要求如下:</p><p>  ①硬件要求:一臺(tái)計(jì)算機(jī)。</p><p>  ②軟件配置:WINDOWS、C/VC++6.0。</p><p><b>  2 設(shè)計(jì)分析</b></p><p><b>  2.1從要求分析:<

7、;/b></p><p> ?。?)界面類(lèi)似于windows系統(tǒng)中提供的計(jì)算器界面;</p><p> ?。?)能實(shí)現(xiàn)加、減、乘、除、乘方、開(kāi)方等功能。</p><p>  界面類(lèi)似于windows系統(tǒng)中提供的計(jì)算器界面,則數(shù)字的輸入和功能的執(zhí)行都通過(guò)按鍵來(lái)實(shí)現(xiàn),并且能夠在顯示區(qū)域里及時(shí)的顯示出數(shù)據(jù),所用本程序使用VC++提供的高度可視化的應(yīng)用程序開(kāi)發(fā)工具M(jìn)F

8、C來(lái)實(shí)現(xiàn)。</p><p>  要實(shí)現(xiàn)加、減、乘、除、乘方、開(kāi)方等功能,則在程序中包含"math.h"庫(kù)函數(shù)文件,通過(guò)引用相應(yīng)的函數(shù)來(lái)實(shí)現(xiàn)乘方、開(kāi)方等功能。在輸入第一個(gè)計(jì)算參數(shù)以后,點(diǎn)擊需要執(zhí)行的計(jì)算方式,然后輸入第二個(gè)計(jì)算參數(shù),點(diǎn)擊“=”按鈕,則會(huì)在顯示區(qū)顯示出正確的結(jié)果。</p><p>  本程序從設(shè)計(jì)上來(lái)講,主要分為兩個(gè)重點(diǎn)部分,一個(gè)是數(shù)字的輸入,即逐個(gè)點(diǎn)擊單個(gè)

9、數(shù)字(包括小數(shù)點(diǎn))之后,這些數(shù)據(jù)能夠在顯示區(qū)正確的顯示。第二個(gè)是數(shù)據(jù)的計(jì)算,先輸入第一個(gè)計(jì)算參數(shù),然后選擇計(jì)算方式,再輸入第二個(gè)計(jì)算參數(shù),最后點(diǎn)擊“=”按鈕,計(jì)算結(jié)果。</p><p><b>  2.2 程序流程圖</b></p><p>  圖2.2 程序流程圖</p><p>  3各模塊的功能及程序說(shuō)明</p><

10、p>  按照程序的設(shè)計(jì),可以分為數(shù)據(jù)顯示模塊、數(shù)據(jù)輸入模塊、計(jì)算方式選擇模塊、結(jié)果計(jì)算模塊,以下逐個(gè)說(shuō)明各模塊的功能及程序說(shuō)明。</p><p>  1、數(shù)據(jù)顯示模塊。數(shù)據(jù)顯示模塊顯示用戶(hù)輸入的數(shù)字和計(jì)算器計(jì)算的結(jié)果,主要由一個(gè)編輯框組成。數(shù)字顯示框是一個(gè)編輯框控件,屬性設(shè)置為只讀模式,不能由用戶(hù)編輯。在MFC的類(lèi)向?qū)е?,給數(shù)字顯示框添加一個(gè)變量m_num,用來(lái)記錄數(shù)字的變化,當(dāng)每次操作以后,都會(huì)把數(shù)字更新

11、到界面上,顯示給用戶(hù)。</p><p>  2、數(shù)據(jù)輸入模塊。數(shù)據(jù)輸入模塊用來(lái)輸入1、2、3、4、5、6、7、8、9、0等十個(gè)數(shù)字和一個(gè)“.”小數(shù)。有一個(gè)變量m_dian來(lái)標(biāo)識(shí)小數(shù)點(diǎn)是否已經(jīng)輸入,如果變量等于1,則在同一個(gè)數(shù)據(jù)的輸入小數(shù)位,小數(shù)點(diǎn)標(biāo)識(shí)只在第一次點(diǎn)擊時(shí)有效。每一個(gè)按鍵的操作都由一個(gè)函數(shù)單獨(dú)完成,避免相互影響。每一次數(shù)據(jù)輸入,都會(huì)更新數(shù)據(jù)框的顯示,達(dá)到實(shí)時(shí)性。</p><p>

12、  3、計(jì)算方式選擇模塊。計(jì)算方式選擇用來(lái)選擇加、減、乘、除、乘方、開(kāi)方,sin,cos等8個(gè)操作,每個(gè)計(jì)算方式都有一個(gè)單獨(dú)的按鈕,每個(gè)按鈕都有一個(gè)單獨(dú)的函數(shù)來(lái)執(zhí)行。用一個(gè)int類(lèi)型的變量m_fuhao來(lái)標(biāo)識(shí)計(jì)算方式的選擇。執(zhí)行計(jì)算方式選擇以后,把原先數(shù)據(jù)框中顯示的數(shù)據(jù)賦值給第一個(gè)計(jì)算參數(shù)m_canshu1,并且對(duì)于系統(tǒng)標(biāo)識(shí)變量進(jìn)行相應(yīng)的處理。因?yàn)閷?duì)于六個(gè)函數(shù)來(lái)說(shuō),這些系統(tǒng)標(biāo)識(shí)變量的相應(yīng)處理都是相同的,所以把這些系統(tǒng)標(biāo)識(shí)變量整理為一個(gè)函

13、數(shù)void TagFuc()初始化m_dian等部分?jǐn)?shù)據(jù),以利于代碼的重復(fù)利用。</p><p>  4、結(jié)果計(jì)算模塊。結(jié)果計(jì)算模塊是點(diǎn)擊了“=”按鍵以后,執(zhí)行相應(yīng)的計(jì)算,并且輸出結(jié)果。在其他的模塊已經(jīng)以此執(zhí)行輸入了第一個(gè)操作數(shù)據(jù)、計(jì)算方式、第二個(gè)操作數(shù)據(jù),然后在這里根據(jù)這些數(shù)據(jù)進(jìn)行計(jì)算。在這個(gè)模塊中,使用switch語(yǔ)句,分別根據(jù)計(jì)算方式的不同執(zhí)行相應(yīng)的操作。執(zhí)行完計(jì)算以后,將結(jié)果顯示在顯示框中,并且對(duì)系統(tǒng)標(biāo)識(shí)

14、變量進(jìn)行一些相應(yīng)的處理。</p><p>  5、數(shù)據(jù)初始化,開(kāi)始按鍵下一程序來(lái)實(shí)現(xiàn)初始化。</p><p><b>  4源程序</b></p><p>  根據(jù)程序模塊的劃分,下面根據(jù)模塊依次來(lái)對(duì)其他模塊的源程序進(jìn)行說(shuō)明。</p><p>  4.1初始化數(shù)據(jù)模塊:</p><p>  voi

15、d CMyDlg::OnButton21() //開(kāi)始初始化,清零按鍵</p><p><b>  {</b></p><p>  // TODO: Add your control notification handler code here</p><p>  m_canshu1=0;</p><p>  m_can

16、shu2=0;</p><p><b>  m_1=0;</b></p><p><b>  m_dian=0;</b></p><p>  m_dianshu=1;</p><p>  m_fuhao=0;</p><p><b>  m_num=0;</b

17、></p><p>  UpdateData(false);</p><p><b>  }</b></p><p>  void CMyDlg::TagFuc()//局部初始化,當(dāng)我們按了加減等符號(hào)后,可以再次輸入</p><p>  { 作為類(lèi)成員,沒(méi)有按鈕,調(diào)用啟動(dòng)<

18、/p><p><b>  m_num=0;</b></p><p><b>  m_dian=0;</b></p><p>  m_dianshu=1;</p><p><b>  m_1=0;</b></p><p>  UpdateData(false)

19、;</p><p><b>  }</b></p><p>  4.2數(shù)據(jù)輸入模塊:</p><p>  void CMyDlg::OnButton1() //按鍵1</p><p><b>  {</b></p><p>  if(m_1==1)//顯示框中原來(lái)的數(shù)據(jù)是否繼

20、續(xù)使用。剛點(diǎn)擊過(guò)加減乘除乘方開(kāi)方或者等于按鍵,則原來(lái)的數(shù)據(jù)不繼續(xù)使用</p><p><b>  {</b></p><p><b>  m_num=0;</b></p><p>  m_1=0; //0代表沒(méi)有點(diǎn)過(guò)過(guò)加減乘除乘方開(kāi)方或者等于按鍵,則原來(lái)的數(shù)據(jù)繼續(xù)使用</p><p><b

21、>  }</b></p><p><b>  {</b></p><p>  if(m_dian==0)//是否已經(jīng)輸入小數(shù)點(diǎn),0代表沒(méi)按過(guò)</p><p><b>  {</b></p><p>  m_num=10*m_num+1; //整數(shù),則把新數(shù)據(jù)加在原來(lái)數(shù)據(jù)之后<

22、;/p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p>  double jishu=1;</p><p>  for(int i=0;i<m_dianshu;i+

23、+)jishu=jishu/10;</p><p>  m_num=m_num+jishu;</p><p>  m_dianshu=m_dianshu+1;//小數(shù)點(diǎn)后的位數(shù)再加1</p><p><b>  }</b></p><p><b>  }</b></p><p&g

24、t;  UpdateData(false);</p><p><b>  }</b></p><p>  4.3計(jì)算方式選擇模塊:</p><p>  void CMyDlg::OnButton13() //加法按鍵</p><p>  {// TODO: Add your control notification h

25、andler code here</p><p>  m_fuhao=1;</p><p>  m_canshu1=m_num;</p><p><b>  TagFuc();</b></p><p><b>  m_1=0;</b></p><p><b>  }

26、</b></p><p>  void CMyDlg::OnButton17() //減法按鍵</p><p>  {// TODO: Add your control notification handler code here</p><p>  m_fuhao=2;</p><p>  m_canshu1=m_num;&l

27、t;/p><p><b>  TagFuc();</b></p><p><b>  m_1=0;</b></p><p><b>  }</b></p><p>  void CMyDlg::OnButton14() //乘法按鍵</p><p>  {

28、// TODO: Add your control notification handler code here</p><p>  m_fuhao=3;</p><p>  m_canshu1=m_num;</p><p><b>  TagFuc();</b></p><p><b>  m_1=0;<

29、;/b></p><p><b>  }</b></p><p>  void CMyDlg::OnButton18() //除法按鍵</p><p>  {// TODO: Add your control notification handler code here</p><p>  m_fuhao=4;&

30、lt;/p><p>  m_canshu1=m_num;</p><p><b>  TagFuc();</b></p><p><b>  m_1=0;</b></p><p><b>  }</b></p><p>  void CMyDlg::OnBu

31、tton15() //sin按鍵</p><p>  {// TODO: Add your control notification handler code here</p><p>  m_fuhao=7;</p><p>  m_canshu1=m_num;</p><p><b>  TagFuc();</b>

32、</p><p><b>  m_1=0;</b></p><p><b>  }</b></p><p>  void CMyDlg::OnButton19() //cos按鍵</p><p>  {// TODO: Add your control notification handler c

33、ode here</p><p>  m_fuhao=8;</p><p>  m_canshu1=m_num;</p><p><b>  TagFuc();</b></p><p><b>  m_1=0;</b></p><p><b>  }</b&g

34、t;</p><p>  void CMyDlg::OnButton16() //乘方按鍵</p><p>  {// TODO: Add your control notification handler code here</p><p>  m_fuhao=5;</p><p>  m_canshu1=m_num;</p>

35、<p><b>  TagFuc();</b></p><p><b>  m_1=0;</b></p><p><b>  }</b></p><p>  void CMyDlg::OnButton20() //開(kāi)方按鍵</p><p>  {// TODO:

36、 Add your control notification handler code here</p><p>  m_fuhao=6;</p><p>  m_canshu1=m_num;</p><p><b>  TagFuc();</b></p><p><b>  m_1=0;</b>&

37、lt;/p><p><b>  }</b></p><p><b>  4.4結(jié)果計(jì)算模塊</b></p><p>  void CMyDlg::OnButton12() //=按鍵</p><p><b>  {</b></p><p>  //

38、TODO: Add your control notification handler code here</p><p>  if(m_1==0)//這個(gè)判斷是為了處理用戶(hù)點(diǎn)擊完"=",沒(méi)有點(diǎn)擊其他按鍵再點(diǎn)擊"=",這種情況下,不更新第二個(gè)計(jì)算參數(shù)。</p><p><b>  {</b></p><p&g

39、t;  m_canshu2=m_num;</p><p><b>  }</b></p><p>  //if(m_tag==true)m_canshu1=m_num;</p><p>  // CString sTemp;</p><p>  //sTemp.Format("m_canshu1= %f

40、 ;m_canshu2= %f \n", m_canshu1,m_canshu2);</p><p>  //MessageBox(sTemp);</p><p>  switch(m_fuhao)//選擇符號(hào)</p><p><b>  {case 1:</b></p><p>  m_num=m_can

41、shu1+m_canshu2; //加</p><p>  UpdateData(false);</p><p><b>  break;</b></p><p><b>  case 2:</b></p><p>  m_num=m_canshu1-m_canshu2; //減<

42、;/p><p>  UpdateData(false);</p><p><b>  break;</b></p><p><b>  case 3:</b></p><p>  m_num=m_canshu1*m_canshu2; //乘</p><p>  Update

43、Data(false);</p><p><b>  break;</b></p><p><b>  case 4:</b></p><p>  m_num=m_canshu1/m_canshu2; //除</p><p>  UpdateData(false);</p>&l

44、t;p><b>  break;</b></p><p><b>  case 5:</b></p><p>  m_num=pow(m_canshu1,m_canshu2); //乘方</p><p>  UpdateData(false);</p><p><b>  brea

45、k;</b></p><p><b>  case 6:</b></p><p>  m_num=sqrt(m_canshu1); //開(kāi)方</p><p>  UpdateData(false);</p><p><b>  break;</b></p><

46、p><b>  case 7:</b></p><p>  m_num=sin(m_canshu1); //sin</p><p>  UpdateData(false);</p><p><b>  break;</b></p><p><b>  case 8:</

47、b></p><p>  m_num=cos(m_canshu1); //cos</p><p>  UpdateData(false);</p><p><b>  break;</b></p><p><b>  default:</b></p><p>

48、<b>  break;</b></p><p><b>  }</b></p><p>  m_canshu1=m_num;</p><p><b>  m_1=1;</b></p><p><b>  }</b></p><p>

49、;<b>  5操作方法</b></p><p>  1、輸入第一個(gè)計(jì)算參數(shù),比如:2642、246.78、-578、-2.6;</p><p>  2、點(diǎn)擊選擇計(jì)算方式,比如:加、減、乘、除、乘方、開(kāi)方;</p><p>  3、輸入第二個(gè)計(jì)算參數(shù)(注:開(kāi)方計(jì)算只需要一個(gè)計(jì)算參數(shù),不需要輸入第二個(gè)計(jì)算參數(shù)。);</p><

50、p>  4、點(diǎn)擊“=”按鍵,輸入計(jì)算結(jié)果;</p><p>  5、由于程序做過(guò)處理,可以實(shí)現(xiàn)連等操作,多次點(diǎn)擊“=”按鍵計(jì)算;</p><p><b>  6實(shí)驗(yàn)結(jié)果</b></p><p>  1、按開(kāi)始,輸入15627.0956,結(jié)果如下圖顯示:</p><p>  2、按開(kāi)始,輸入300+500=,結(jié)果如下

51、圖顯示:</p><p>  3、按開(kāi)始,輸入300*100=,結(jié)果如下圖顯示:</p><p>  4、按開(kāi)始,輸入36開(kāi)方=,結(jié)果如下圖顯示:</p><p>  經(jīng)過(guò)測(cè)試程序運(yùn)行正常,實(shí)現(xiàn)了要求內(nèi)容。 </p><p><b>  7設(shè)計(jì)體會(huì)</b></p><p>  在這

52、段時(shí)間的課程設(shè)計(jì)中, 與其說(shuō)是完成設(shè)計(jì),我更覺(jué)得這是一個(gè)學(xué)習(xí)的過(guò)程。在設(shè)計(jì)過(guò)程中,我有很多的知識(shí)不懂或者已經(jīng)淡忘了,但是通過(guò)求教于老師和同學(xué),并勤于查閱資料,我又學(xué)到了很多的知識(shí)。也學(xué)到了學(xué)習(xí)方法,善于查找資料提高自己的資料查詢(xún)能力,要善于利用網(wǎng)絡(luò)來(lái)獲得知識(shí),獲得幫助。開(kāi)始著手程序設(shè)計(jì)時(shí),有些功能感覺(jué)無(wú)從下手,都不知道要干什么。這些問(wèn)題只要找到相關(guān)的資料就會(huì)得到提示從而理解所要解決問(wèn)題的大致方向。有了明確的目的,就可以發(fā)揮自己的頭腦來(lái)完

53、成它了,本人真切地感受到此次課程設(shè)計(jì)帶給我的學(xué)習(xí)動(dòng)力與興趣.我相信有了這些,將會(huì)對(duì)我以后的專(zhuān)業(yè)知識(shí)學(xué)習(xí)更加有利.</p><p>  經(jīng)過(guò)1個(gè)星期,在老師和同學(xué)的共同幫助下,終于順利完成該課程設(shè)計(jì)。正所謂“紙上談兵終覺(jué)淺,覺(jué)知此事要躬行?!彼栽诒緦W(xué)期課程設(shè)計(jì)是很及時(shí)、很必要的。這樣不僅能加深我們對(duì)c++程序設(shè)計(jì)的掌握,而且還及時(shí)、真正的做到了學(xué)以致用。</p><p>  此次課程設(shè)計(jì)的

54、順利完成,還歸功于老師殷切的指導(dǎo)和無(wú)私的幫助。在此,我向老師們表示衷心地感謝!</p><p><b>  參考文獻(xiàn)</b></p><p>  [1] 譚浩強(qiáng).c++程序設(shè)計(jì)-2版 .北京大學(xué)出版社</p><p><b>  [2] </b></p><p>  [3] 譚浩強(qiáng).c程序設(shè)計(jì)第四版

溫馨提示

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

評(píng)論

0/150

提交評(píng)論