【正文】
辯記錄表。所有學(xué)生必須參加課程設(shè)計(jì)的答辯環(huán)節(jié),凡不參加答辯者,其成績(jī)一律按不及格處理。徐州師范大學(xué)物電學(xué)院課程設(shè)計(jì)報(bào)告課 程 名 稱: 計(jì)算機(jī)程序設(shè)計(jì)實(shí)訓(xùn) 題 目: 科學(xué)計(jì)算器 專 業(yè) 班 級(jí): 電子科學(xué)與技術(shù) 學(xué) 生 姓 名: 徐金富 學(xué) 生 學(xué) 號(hào): 09223034 日 期: 2011/12/10 指 導(dǎo) 教 師: 趙紀(jì)平 物電學(xué)院教務(wù)部印制說明:報(bào)告中的第一、二、三項(xiàng)由學(xué)生在課程設(shè)計(jì)開始前填寫,由指導(dǎo)教師指導(dǎo)并確認(rèn)簽字。學(xué)生成績(jī)由指導(dǎo)教師根據(jù)學(xué)生的設(shè)計(jì)情況給出各項(xiàng)分值及總評(píng)成績(jī),并填寫成績(jī)?cè)u(píng)定表。答辯小組成員應(yīng)由2人及以上教師組成。報(bào)告正文字?jǐn)?shù)一般應(yīng)不少于3000字,也可由指導(dǎo)教師根據(jù)本門課程設(shè)計(jì)的情況另行規(guī)定。課程設(shè)計(jì)完成后,由指導(dǎo)教師根據(jù)完成情況寫出總結(jié)。一、課程設(shè)計(jì)目的、任務(wù)和內(nèi)容要求:《計(jì)算機(jī)語(yǔ)言程序設(shè)計(jì)》是一門以編程實(shí)踐為主的專業(yè)課,目的在于培養(yǎng)學(xué)生利用計(jì)算機(jī)語(yǔ)言進(jìn)行軟件開發(fā)所必需的基本思想和基本技能,進(jìn)一步提高綜合應(yīng)用計(jì)算機(jī)語(yǔ)言的各種編程知識(shí)和技巧進(jìn)行程序設(shè)計(jì)的能力,通過本次課程設(shè)計(jì),學(xué)生應(yīng)能達(dá)到具備設(shè)計(jì)功能較為復(fù)雜的應(yīng)用程序的能力,同時(shí)培養(yǎng)學(xué)生自主學(xué)習(xí)和獨(dú)立創(chuàng)新的精神。 2.寫出詳細(xì)設(shè)計(jì),熟悉其中采用的關(guān)鍵技術(shù)。4.寫課程設(shè)計(jì)報(bào)告提交源程序。要求:1.應(yīng)具有簡(jiǎn)潔友好的用戶界面。3.要求程序具備正確性,可讀性和運(yùn)行的高效性。三、主要參考文獻(xiàn):【1】 王敬棟 Visual C++課程設(shè)計(jì)案例精編(M) 北京:中國(guó)水利水電出版社 2006【2】 夏崇鐠 任海軍 Vsiual C++課程設(shè)計(jì)案例精編(M)北京:清華大學(xué)出版社2008【3】 鄭阿奇Visual C++實(shí)用教程(M)北京:電子工業(yè)出版社 2010【4】 C++課程設(shè)計(jì)案例精選與編程指導(dǎo)(M),2004【5】 夏崇鐠 任海軍 Vsiual C++課程設(shè)計(jì)案例精編(M)北京:清華大學(xué)出版社 2002 指導(dǎo)教師簽字: 年 月 日徐州師范大學(xué)物理與電子工程學(xué)院課程設(shè)計(jì)報(bào)告目 錄摘 要 ……………………………………………………………………………………… IIAbstract …………………………………………………………………………………... II1緒論 …………………….…………… ……………………………………………… 1 背景、目的 …………………………………………………………………………1 簡(jiǎn)易計(jì)算器的功能……………………………………………………..……………12 設(shè)計(jì)方案簡(jiǎn)述 ………………………………………………………….……… ………2 輸入流程分析 ……………………………………………………..…………………2 計(jì)算流程分析 ……………………………………………………..…………………2 3 詳細(xì)設(shè)計(jì) ………………………………………… …………………..…………….. 4 起始設(shè)計(jì)步驟 ……………………………………………………..…………………4 ……………………………………………………..………… ……………5 4 設(shè)計(jì)結(jié)果及分析………………………………………………..…….……… …….. 10 測(cè)試設(shè)計(jì)結(jié)果 ………………………………… ………….…………………………10 設(shè)計(jì)分析 ….… ………………………………………………..……… …………… 105 總 結(jié) … …..……………………………………………… …..………………………….12 參考文獻(xiàn) ….………………..……………………… ………..………… ………… …….…13 附錄 程序代碼 ……...………………… ……………..… ……………… ……….………14 摘 要隨著計(jì)算機(jī)網(wǎng)絡(luò)通信技術(shù)、微電子技術(shù)的快速發(fā)展,作為21世紀(jì)的接班人,跟上時(shí)代的前進(jìn)步伐,這就需要適應(yīng)能夠適應(yīng)現(xiàn)實(shí)生活的節(jié)奏,現(xiàn)實(shí)生活中,很多時(shí)候要經(jīng)行計(jì)算來處理一些事務(wù),設(shè)計(jì)計(jì)算器可以幫助人們避免繁瑣的計(jì)算,也可以加快人們辦事效率,設(shè)計(jì)中運(yùn)用MFC設(shè)計(jì)的是簡(jiǎn)單計(jì)算器,包括雙目運(yùn)算和單目運(yùn)算功能??蓪?duì)輸入任意的操作數(shù),包括小數(shù)和整數(shù)及正數(shù)和負(fù)數(shù)進(jìn)行以上的所有運(yùn)算并能連續(xù)運(yùn)算。關(guān)鍵詞:簡(jiǎn)單計(jì)算器。 計(jì)算AbstractWith the puter network munication technology, the rapid development of microelectronics technology, as the successor to the 21st century, keep up the pace of the times, which need to adapt to adapt to the rhythm of real life, real life, many times to be calculated by the line deal with some matters, the design calculator can help people avoid plicated calculations, you can also expedite Renmen efficiency, the design of MFC design is the use of simple calculator, including the eyes and the unary operator function. Binocular operators include basic arithmetic, and power functions, unary include trigonometric functions, inverse trigonometric functions, factorial, logarithm, square root, reciprocal and other aspects of operations. The operation can enter any number, including decimals and integers, and positive and negative for all of the above operations and to continuous operation. When an error will give a prompt.Keywords:Simple Calculator。Calculation 41 1緒論、目的21世紀(jì),隨著科技的發(fā)展,人們生活節(jié)奏的加快,要想跟上時(shí)代的前進(jìn)步伐,這需要我們適應(yīng)能夠適應(yīng)現(xiàn)實(shí)生活的節(jié)奏,而生活中有很多方面需要進(jìn)行計(jì)算,如統(tǒng)計(jì),測(cè)量,等等各方面需要處理大量的計(jì)算任務(wù),如果只靠人腦通過筆來計(jì)算,那效率低下,還煩瑣。目前所有計(jì)算機(jī)帶自帶計(jì)算器,大大的方便人們的計(jì)算,處理事務(wù),本設(shè)計(jì)中,運(yùn)用MFC實(shí)現(xiàn)計(jì)算器的功能。當(dāng)輸入有錯(cuò)時(shí)候,可以自動(dòng)提示錯(cuò)誤。計(jì)算器的功能多少?zèng)Q定了計(jì)算器的實(shí)用價(jià)值,本設(shè)計(jì)中的簡(jiǎn)易計(jì)算器實(shí)現(xiàn)的主要功能有:1)簡(jiǎn)單的四則運(yùn)算:加、減、乘、除 以及取百分?jǐn)?shù)2)開方、冪運(yùn)算、倒數(shù)、對(duì)數(shù)、階乘、平方3)正弦、余弦、正切這些功能都是很常見的需要計(jì)算器功能,它可以幫助人們完成很多需要計(jì)算處理的功能。2 設(shè)計(jì)方案簡(jiǎn)述如圖21是整個(gè)計(jì)算器的流程圖,打開計(jì)算器程序,輸入數(shù)據(jù),調(diào)用輸入數(shù)據(jù)子程序。按下數(shù)字按鈕后,判斷m_show的正負(fù)號(hào),對(duì)其進(jìn)行相關(guān)處理,然后在判斷是否有小數(shù)點(diǎn),處理后輸出結(jié)果。若按下的是單目運(yùn)算符,則直接對(duì)其處理得出結(jié)果。算出后把結(jié)果保存至m_show中??茖W(xué)計(jì)算器總流程圖如圖22所示Y開始輸入數(shù)據(jù)子函數(shù)編輯框關(guān)聯(lián)的變量保存至data1輸入數(shù)據(jù)子函數(shù)進(jìn)行運(yùn)算運(yùn)算是否合法把結(jié)果保存到data1m_show清零彈出對(duì)話框顯示錯(cuò)誤NY是否用保存的結(jié)果繼續(xù)進(jìn)行運(yùn)算N結(jié)束jie雙目運(yùn)算符單目運(yùn)算符是否開始新一輪的計(jì)算YN圖2—2 科學(xué)計(jì)算器總流程圖3 詳細(xì)設(shè)計(jì)過程 起始設(shè)計(jì)步驟 Visual C++ ,在文件中點(diǎn)擊新建,在彈出框內(nèi)選擇MFC AppWizard[exe]工程,輸入工程名jianyijisuanqi及其所在位置,點(diǎn)擊確定.2. 將彈出MFC AppWizardstep 1對(duì)話框,選擇基本對(duì)話框,圖31這樣,MFC AppWizard就建立了一個(gè)基于對(duì)話窗口的程序框架,如圖32所示圖32 界面設(shè)計(jì)在圖2所示的Resoure View選項(xiàng)卡中打開Dialog資源組,雙擊IDD_JIANYIJISUANQI_DIALOG,在右邊的窗口中顯示出待編輯的對(duì)話框。其中按鈕的創(chuàng)建以“1”為例進(jìn)行介紹,其他按鈕的創(chuàng)建可參照它進(jìn)行操作。在編輯框上單擊鼠標(biāo)右鍵,在彈出的快捷萊單中選擇屬性選項(xiàng),此時(shí)彈出Edit屬性對(duì)話框,如圖33所示,在該對(duì)話框中輸入ID屬性,再選擇styles中將Align test中選擇Right 。在按鈕上單擊鼠標(biāo)右鍵,在彈出的快捷菜單中選擇屬性選項(xiàng),此時(shí)也彈出Push Button屬性對(duì)話框,如圖34所示,在該對(duì)話框中輸入控件的ID值和標(biāo)題屬性。各按鈕與編輯框等對(duì)象的屬性如表33 334所示表31 數(shù)字按鈕和編輯框等對(duì)象的屬性控件類型ID屬性設(shè)計(jì)Edit BOXIDC_SHOW_EDITButtonIDC_NUM1_BUTTON1ButtonIDC_NUM2_BUTTON2ButtonIDC_NUM3_BUTTON3ButtonIDC_NUM4_BUTTON4ButtonIDC_NUM5_BUTTON5ButtonIDC_NUM6_BUTTON6ButtonIDC_NUM7_BUTTON7ButtonIDC_NUM8_BUTTON8ButtonIDC_NUM9_BUTTON9ButtonIDC_NUM0_BUTTON0表32. 四則運(yùn)算的按鈕對(duì)象屬性ButtonIDC_FU1_BUTTON+ButtonIDC_FU2_BUTTON-ButtonIDC_FU3_BUTTONButtonIDC_FU4_BUTTON247。//判斷是否小數(shù)double data2=0。double data_dec=0。//輸入數(shù)據(jù)整數(shù)與小數(shù)部分double value=0。int type。在編輯框上單擊鼠標(biāo)右鍵,在彈出菜單中選擇“建立類向?qū)А辈藛雾?xiàng),彈出MFC ClassWizard對(duì)話框,選擇Member Variables選項(xiàng)卡,再將Class ,彈出Add Menber Variable,連接變量為m_show,變量類型設(shè)定為cstring 型。圖362) 給“1”按鈕連接代碼。 if(m_Flag==1) { m_Flag = 0。 m_Show+=39。 } else { if(m_Show==0) { m_Show=。139。 }其他按鈕如參照按鈕“1”來連接代碼,詳細(xì)代碼見附錄。每按下一個(gè)數(shù)字鍵按鈕,就把它累加到m_show里并刷新顯示。當(dāng)docimal=1時(shí),表示有小數(shù)點(diǎn),否則則表示無小數(shù)點(diǎn)。當(dāng)按下一個(gè)數(shù)字鍵時(shí),首先根據(jù)decimal判斷是否按下小數(shù)點(diǎn),若有即運(yùn)行count=count*10,則為此次鍵入的數(shù)所處的位數(shù),將鍵入的數(shù)除以count然后累加到編輯框所關(guān)聯(lián)的變量m_show上,若沒有則把m_show乘以10,然后累加到編輯框所關(guān)聯(lián)的變量m_show上。雙目運(yùn)算符需要兩個(gè)操作數(shù)才能運(yùn)算,所以在執(zhí)行雙目運(yùn)算符按鈕的函數(shù)代碼中,要把m_show中的值保存到變量data1中,然后把m_show清零。運(yùn)算在實(shí)現(xiàn)部分在“=”中實(shí)現(xiàn)。減法type=1)。break。break。5 總結(jié)在此我要感謝趙紀(jì)平老師,她嚴(yán)謹(jǐn)?shù)闹螌W(xué)態(tài)度、追求卓越的生活精神,特別是她教課時(shí)候的激情深深地感染著我?;赩C++下的設(shè)計(jì),可以看出VC++它的多態(tài)性,繼承性,封裝性的優(yōu)越特點(diǎn),這讓編