影音先锋男人资源在线观看,精品国产日韩亚洲一区91,中文字幕日韩国产,2018av男人天堂,青青伊人精品,久久久久久久综合日本亚洲,国产日韩欧美一区二区三区在线

課程設(shè)計(jì)計(jì)算器設(shè)計(jì)

上傳人:仙*** 文檔編號(hào):29514685 上傳時(shí)間:2021-10-07 格式:DOC 頁(yè)數(shù):24 大小:950.50KB
收藏 版權(quán)申訴 舉報(bào) 下載
課程設(shè)計(jì)計(jì)算器設(shè)計(jì)_第1頁(yè)
第1頁(yè) / 共24頁(yè)
課程設(shè)計(jì)計(jì)算器設(shè)計(jì)_第2頁(yè)
第2頁(yè) / 共24頁(yè)
課程設(shè)計(jì)計(jì)算器設(shè)計(jì)_第3頁(yè)
第3頁(yè) / 共24頁(yè)

下載文檔到電腦,查找使用更方便

15 積分

下載資源

還剩頁(yè)未讀,繼續(xù)閱讀

資源描述:

《課程設(shè)計(jì)計(jì)算器設(shè)計(jì)》由會(huì)員分享,可在線閱讀,更多相關(guān)《課程設(shè)計(jì)計(jì)算器設(shè)計(jì)(24頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。

1、鄭州華信學(xué)院 課程設(shè)計(jì)說(shuō)明書(shū) 題目: 計(jì)算器的設(shè)計(jì) 姓 名: 院 (系): 信息工程學(xué)院 專業(yè)班級(jí): 計(jì)算機(jī)科學(xué)與技術(shù) 學(xué) 號(hào): 1401110128 指導(dǎo)教師: 成 績(jī): 時(shí)間: 2015 年 11月 1 日 2015 年 12 月 4 日 鄭州華信學(xué)院 課程設(shè)計(jì)任務(wù)書(shū) 題目

2、 計(jì)算器的設(shè)計(jì) 專業(yè)、班級(jí) 計(jì)算機(jī)科學(xué)與技術(shù)一班 學(xué)號(hào) 1401110128 姓名 摘要: 計(jì)算器在人們的日常中是比較的常見(jiàn)的電子產(chǎn)品之一??墒撬€在發(fā)展之中,以后必將出現(xiàn)功能更加強(qiáng)大的計(jì)算器,基于這樣的理念,本次設(shè)計(jì)是用單片機(jī)來(lái)設(shè)計(jì)的八位計(jì)算器。該設(shè)計(jì)系統(tǒng)是以AT89C51為單片機(jī),用7SEG為顯示位控制,P1口作為輸入端,外接4X4的鍵盤,通過(guò)鍵盤掃描來(lái)對(duì)輸入數(shù)的控制,并外接驅(qū)動(dòng)電路,系統(tǒng)采用LCD數(shù)碼管作為顯示器,軟件程序采用均采用C語(yǔ)言編寫,便于移植與升級(jí)。報(bào)告詳細(xì)介紹了整個(gè)系統(tǒng)的

3、硬件組成結(jié)構(gòu)、工作原理和系統(tǒng)的軟件程序設(shè)計(jì)。計(jì)算器將完成的功能有整數(shù)的加,減,乘,除等功能。 關(guān)鍵字:c++ MFC編程 完 成 期 限: 指導(dǎo)教師簽名: 課程負(fù)責(zé)人簽名: 年 月 日 前言 隨著社會(huì)的發(fā)展,科學(xué)的進(jìn)步,人們的生活水平在逐步的提高,尤其是微電子技術(shù)的發(fā)展,猶如雨后春筍般的變化。電子產(chǎn)品的更新速度快就不足驚奇了,單片機(jī)的應(yīng)用已經(jīng)越來(lái)越貼近生活,用單片機(jī)來(lái)實(shí)現(xiàn)一些電子設(shè)計(jì)也變得 容易起來(lái)。 近年來(lái)

4、,單片機(jī)以其體積小、價(jià)格廉、面向控制等獨(dú)特優(yōu)點(diǎn),在各種工業(yè)控制、儀器儀表、設(shè)備、產(chǎn)品的自動(dòng)化、智能化方面獲得了廣泛的應(yīng)用。與此同時(shí),單片機(jī)應(yīng)用系統(tǒng)的可靠性成為人們?cè)絹?lái)越關(guān)注的重要課題。影響可靠性的因素是多方面的,如構(gòu)成系統(tǒng)的元器件本身的可靠性、系統(tǒng)本身各部分之間的相互耦合因素等。其中系統(tǒng)的抗干擾性能是系統(tǒng)可靠性的重要指標(biāo)。本設(shè)計(jì)采用80S51芯片,實(shí)現(xiàn)了利用單片機(jī)進(jìn)行了一個(gè)簡(jiǎn)單計(jì)算器設(shè)計(jì)。允許對(duì)輸入數(shù)據(jù)進(jìn)行加減乘除運(yùn)算及LED顯示。如果設(shè)計(jì)對(duì)象是更為復(fù)雜的計(jì)算器系統(tǒng),其實(shí)際原理與方法與本設(shè)計(jì)基本相同。另外,實(shí)例所設(shè)計(jì)的計(jì)算器是用LED數(shù)碼管顯示的,當(dāng)然也可以用其他的器件顯示,如LED顯示屏,這

5、樣就可以顯示出更多的字符,在此基礎(chǔ)上,還可以編寫更加完善的程序來(lái)實(shí)現(xiàn)更多的計(jì)算功能。設(shè)計(jì)的關(guān)鍵所在,必須非常熟悉單片機(jī)的原理與結(jié)構(gòu),同時(shí)還要對(duì)整個(gè)設(shè)計(jì)流程有很好的把握,將單片機(jī)和其他模塊完整的銜接。 目錄 1概述..............................................3 1.1課程設(shè)計(jì)的目的....................................3 1.2課程設(shè)計(jì)的內(nèi)容..............................

6、......3 2系統(tǒng)需求分析........................................3 2.1系統(tǒng)目標(biāo)..........................................3 2.2主體功能..........................................3 2.3開(kāi)發(fā)環(huán)境..........................................3 3系統(tǒng)概要設(shè)計(jì)........................................4 3.1系統(tǒng)流程圖...........................

7、.............4 3.2系統(tǒng)功能劃分......................................5 4系統(tǒng)詳細(xì)設(shè)計(jì)........................................5 4.1設(shè)計(jì)步驟..........................................5 4.2頁(yè)面設(shè)計(jì)..........................................7 5測(cè)試................................................11 5.1測(cè)試方案..................

8、........................11 5.2測(cè)試結(jié)果..........................................11 6小結(jié)................................................13 7附錄................................................14 1概述 1.1課程設(shè)計(jì)目的 1、鞏固并加深學(xué)生對(duì)C++語(yǔ)言程序設(shè)計(jì)知識(shí)的理解; 2、培養(yǎng)學(xué)生面向?qū)ο蟮某绦蛟O(shè)計(jì)思想,使學(xué)生認(rèn)識(shí)面向過(guò)程和面向?qū)ο髢煞N設(shè)計(jì)方法的區(qū)別; 3、進(jìn)一步掌

9、握和應(yīng)用VC++6.0集成開(kāi)發(fā)環(huán)境;4、提高運(yùn)用C++語(yǔ)言解決實(shí)際問(wèn)題的能力; 5、初步掌握開(kāi)發(fā)小型實(shí)用軟件的基本方法,能獨(dú)立設(shè)計(jì)、實(shí)現(xiàn)基本的MIS系統(tǒng);6、掌握書(shū)寫程序設(shè)計(jì)開(kāi)發(fā)文檔的能力(書(shū)寫課程設(shè)計(jì)實(shí)驗(yàn)報(bào)告)。 1.2課程設(shè)計(jì)內(nèi)容課題名稱: 計(jì)算器的實(shí)現(xiàn)說(shuō)明:實(shí)現(xiàn)一個(gè)計(jì)算器。要求: 1)用“計(jì)算器”的標(biāo)準(zhǔn)視圖執(zhí)行簡(jiǎn)單的計(jì)算。2)用其科學(xué)型視圖執(zhí)行高級(jí)的科學(xué)計(jì)算。 2系統(tǒng)需求分析 2.1系統(tǒng)目標(biāo) 我們?cè)趯W(xué)習(xí)生活中,常會(huì)遇到一些繁雜的數(shù)值運(yùn)算,這時(shí)候我們就必須用到科學(xué)計(jì)算器,所以便著手開(kāi)發(fā)了這個(gè)計(jì)算器程序,以便用于自己的學(xué)習(xí)工作。要計(jì)算功能有以下幾個(gè)方面:加法,減法,乘法,除法,

10、求冪,求模,求平方根,求Sin,求Cos。 2.2主體功能 1、十進(jìn)制數(shù)的加、減、乘、除、乘方、取模等簡(jiǎn)單計(jì)算。 2、科學(xué)計(jì)算函數(shù),包括(反)正弦、(反)余弦、(反)正切、(反)余切、開(kāi)方、指數(shù)等函數(shù)運(yùn)算。 3、以角度、弧度兩種方式實(shí)現(xiàn)上述部分函數(shù)。 2.3開(kāi)發(fā)環(huán)境 Windows操作系統(tǒng),VC++6.0,OFFICEWORD 3系統(tǒng)概要設(shè)計(jì) 3.1系統(tǒng)流程圖 圖3-1系統(tǒng)流程圖 表3-1系統(tǒng)功能表 3.2系統(tǒng)功能劃分 1)假設(shè)執(zhí)行

11、操作“+”,先輸入一個(gè)數(shù),再輸入“+”,再輸入另一個(gè)數(shù),最 后輸入“+”。整個(gè)功能“+”就執(zhí)行完畢。 2)執(zhí)行操作“Sin”,先輸入一個(gè)數(shù),在輸入“Sin”,整個(gè)功能“Sin”就執(zhí)行完畢。 3)執(zhí)行操作“n!”,先輸入一個(gè)數(shù),再輸入“n!’,整個(gè)功能“n!”執(zhí)行完畢。 4系統(tǒng)詳細(xì)設(shè)計(jì) 4.1設(shè)計(jì)步驟 打開(kāi)MicrosoftVisualC++6.0,在文件中點(diǎn)擊新建,在彈出框內(nèi)選擇MFCAppWizard[exe]工程,輸入工程名yeyahui及其所在位置,點(diǎn)擊確定,如圖4-1所示。 將彈出MFCAppWizard-step1對(duì)話框,選擇基本對(duì)話框,點(diǎn)擊完成,如圖4-2所示

12、將彈出MFCAppWizard-step1對(duì)話框,選擇基本對(duì)話框,點(diǎn)擊完成,如圖4-2所示 圖4-2基本對(duì)話框 這樣,MFCAppWizard就建立了一個(gè)基于對(duì)話窗口的程序框架,如圖4-3所示。 圖4-3新建的對(duì)話框 4.2界面設(shè)計(jì) 界面設(shè)計(jì)主要是創(chuàng)建控件,在圖4-3所示的ResoureView選項(xiàng)卡中打開(kāi)Dialog資源組,雙擊IDD_ZHOUTONG_DIALOG,在右邊的窗口中顯示出待編輯的對(duì)話框。開(kāi)始擺放控件,包括編輯框和按鈕的創(chuàng)建。按鈕的創(chuàng)建以“1”為例進(jìn)行介紹,其他按鈕的創(chuàng)建可參照此進(jìn)行操作。 1) 在圖4-3中Controls的“編輯框”按鈕上單擊鼠標(biāo)

13、左鍵,在對(duì)話框編輯窗口上合適的位置按下鼠標(biāo)左鍵并拖動(dòng)鼠標(biāo)畫(huà)出一個(gè)大小合適的編輯框。在編輯框上單擊鼠標(biāo)右鍵,在彈出的快捷萊單中選擇屬性選項(xiàng),此時(shí)彈出Edit屬性對(duì)話框,如圖4-4所示,在該對(duì)話框中輸入ID屬性。 4.2界面設(shè)計(jì) 界面設(shè)計(jì)主要是創(chuàng)建控件,在圖4-3所示的ResoureView選項(xiàng)卡中打開(kāi)Dialog資源組,雙擊IDD_ZHOUTONG_DIALOG,在右邊的窗口中顯示出待編輯的對(duì)話框。開(kāi)始擺放控件,包括編輯框和按鈕的創(chuàng)建。按鈕的創(chuàng)建以“1”為例進(jìn)行介紹,其他按鈕的創(chuàng)建可參照此進(jìn)行操作。 1)在圖4-3中Controls的“編輯框”按鈕上單擊鼠標(biāo)左鍵,在對(duì)話

14、框編輯窗口上合適的位置按下鼠標(biāo)左鍵并拖動(dòng)鼠標(biāo)畫(huà)出一個(gè)大小合適的編輯框。在編輯框上單擊鼠標(biāo)右鍵,在彈出的快捷萊單中選擇屬性選項(xiàng),此時(shí)彈出Edit屬性對(duì)話框,如圖4-4所示,在該對(duì)話框中輸入ID屬性。 圖4-4Edit屬性對(duì)話框 2) 在圖4-2中Controls的“Button”按鈕上單擊鼠標(biāo)左鍵,在對(duì)話框上的合適的位置上按下鼠標(biāo)左鍵并拖動(dòng)鼠標(biāo)畫(huà)出一個(gè)大小合適的下壓式按鈕。在按鈕上單擊鼠標(biāo)右鍵,在彈出的快捷菜單中選擇屬性選項(xiàng),此時(shí)也彈出PushButton屬性對(duì)話框,如圖4-5所示,在該對(duì)話框中輸入控件的ID值和標(biāo)題屬性。 圖4-5PushButton屬性 按照上面的操作過(guò)程

15、編輯其他按鈕和編輯框等對(duì)象的屬性。 完成后界面如圖4-6所示。 圖4-6設(shè)計(jì)界面 加入標(biāo)準(zhǔn)型和科學(xué)型按鍵: 圖4-7加入標(biāo)準(zhǔn)型和科學(xué)型按鍵界面 標(biāo)準(zhǔn)型: 圖4-8標(biāo)準(zhǔn)型界面 科學(xué)型: 5測(cè)試 5.1測(cè)試方案 先用標(biāo)準(zhǔn)型進(jìn)行簡(jiǎn)單的四則運(yùn)算:+-*/,測(cè)試完成后。再用科學(xué)型進(jìn)行稍復(fù)雜的運(yùn)算:sin,cos,tan,log,ln,n!等,核對(duì)其計(jì)算結(jié)果的正確性。 5.2測(cè)試結(jié)果 經(jīng)測(cè)試標(biāo)準(zhǔn)型計(jì)算器,進(jìn)行簡(jiǎn)單的四則運(yùn)算,結(jié)果均正確,如圖5-1所示

16、 圖5-1四則運(yùn)算測(cè)試結(jié)果圖 測(cè)試科學(xué)型計(jì)算器,進(jìn)行sin,cos,tan,log,ln,n!等運(yùn)算,結(jié)果均正確,求sin30`(如圖5-2所示)。 圖5-2求sin30測(cè)試結(jié)果圖 求5?。ㄈ鐖D5-3所示),測(cè)試完成 圖5-3求5!測(cè)試結(jié)果圖 6小結(jié) 經(jīng)過(guò)不懈的努力,終于順利完成了這次設(shè)計(jì)。剛開(kāi)始,我頭緒不是很清楚,不知道從哪里入手,但通過(guò)老師的耐心指導(dǎo)并和同學(xué)認(rèn)真研究設(shè)計(jì)課題,跑圖書(shū)館查資料、確定基本設(shè)計(jì)方案、對(duì)所用芯片功能進(jìn)行查找、調(diào)試、上機(jī)仿

17、真等,經(jīng)歷了一次次的困難,卻積累了很多寶貴的經(jīng)驗(yàn)。在整個(gè)設(shè)計(jì)的過(guò)程中遇到的問(wèn)題主要有以下三點(diǎn),第一:基礎(chǔ)知識(shí)掌握的不牢固,主要表現(xiàn)在一些常用的電路的形式和功能不清楚,對(duì)書(shū)本上的內(nèi)容理解不夠透徹。第二:對(duì)一些常用的應(yīng)用軟件缺少應(yīng)用,體現(xiàn)在畫(huà)電路圖和系統(tǒng)的仿真的時(shí)候,對(duì)這些軟件的操作不熟練,浪費(fèi)了很多時(shí)間。第三:相關(guān)知識(shí)掌握的不夠全面,缺少系統(tǒng)設(shè)計(jì)的經(jīng)驗(yàn)。 這次設(shè)計(jì)進(jìn)一步端了我的學(xué)習(xí)態(tài)度,學(xué)會(huì)了實(shí)事求是,嚴(yán)謹(jǐn)?shù)淖黠L(fēng),對(duì)自己要嚴(yán)格要求,不能夠一知半解,要力求明明白白。急于求成是不好的,我有所感受。如果省略了那些必要的步驟,急于求成,不僅會(huì)浪費(fèi)時(shí)間,還會(huì)適得其反。我覺(jué)得動(dòng)手之前,頭腦里必須清

18、楚該怎么做,這一點(diǎn)是很重要的。就目前來(lái)說(shuō),我的動(dòng)手能力雖然差一點(diǎn),但我想,通過(guò)我的不懈努力,在這方面,我總會(huì)得到提高。這一點(diǎn),我堅(jiān)信。因?yàn)閯e人能做到的,我也一定能做到。在硬件的制作過(guò)程中我走了好多的彎路,主要是在系統(tǒng)還沒(méi)有設(shè)計(jì)很有把握就開(kāi)始動(dòng)手制作了。后來(lái)發(fā)現(xiàn)與設(shè)計(jì)的要求還有偏差,反復(fù)的改過(guò)了幾次,浪費(fèi)了大量的時(shí)間和體力。感受到設(shè)計(jì)人員要有耐心,要認(rèn)真的從要求開(kāi)始研究。軟件的編寫過(guò)程中費(fèi)了很大的力氣,因?yàn)檐浖木帉懸蠛芨撸芗?xì)心,一不小心就會(huì)調(diào)用錯(cuò)誤,很深刻的體會(huì)到作為軟件編程人員是絕不能粗心大意的。一個(gè)程序的完成的速度和質(zhì)量高低與細(xì)心與否有著很大聯(lián)系。編程時(shí),我充分使用了結(jié)構(gòu)化的思想。這

19、樣因?yàn)檎Z(yǔ)句較少,程序調(diào)試比較方便,功能模塊可以逐一的調(diào)試,充分體現(xiàn)了結(jié)構(gòu)化編程的優(yōu)勢(shì)。當(dāng)每個(gè)模塊都完成時(shí),將其功能加到一起就完成了整體的設(shè)計(jì)。在此次的畢業(yè)設(shè)計(jì)中我最大的體會(huì)就是進(jìn)一步認(rèn)識(shí)到了理論聯(lián)系實(shí)踐的重要性。一份耕耘,一份收獲。通過(guò)這段時(shí)間的設(shè)計(jì),讓我明白科學(xué)的思維方法和學(xué)習(xí)方法是多么重要,只有這樣才能夠有很高的效率,才能夠讓自己的工作更完美。總而言之,此次畢業(yè)設(shè)計(jì)讓我學(xué)到了好多平時(shí)在課堂上學(xué)不到的東西,增加了我的知識(shí)運(yùn)用能力,增強(qiáng)我的實(shí)際操作能力。謝謝老師給我們提供這么好的機(jī)會(huì),為我們之后走向社會(huì)奠定了一個(gè)好的基礎(chǔ)。 本次設(shè)計(jì)讓我學(xué)到了很多,也學(xué)會(huì)到了要怎么樣去面對(duì)困難,不要對(duì)

20、知識(shí)一知半截,要有的求實(shí)的能力,通過(guò)老師的幫助我學(xué)到了很多在平時(shí)的沒(méi)有注意到的動(dòng)?xùn)|西及知識(shí),更美沒(méi)有深入的的去理解,通過(guò)這次我要更加的明確自己。更要注重自己在各方面的鍛煉能力,把握機(jī)會(huì)。這次的設(shè)計(jì)非常的感謝老師們。 參考文獻(xiàn): [1]譚浩強(qiáng).C程序設(shè)計(jì)(第三版)(M).北京:清華大學(xué)出版社,2005. [2]譚浩強(qiáng).C程序設(shè)計(jì)題解與上機(jī)指導(dǎo)(第三版)(M).北京:清華大學(xué)出版社,2005.[3]甄煒.C++語(yǔ)言和面向?qū)ο蟪绦蛟O(shè)計(jì)教程(M).北京:機(jī)械工業(yè)出版社,2005. 7附錄 //CalculatorDlg.cpp:implementati

21、onfile #include"stdafx.h" #include"Calculator.h" #include"CalculatorDlg.h" #include"math.h" #ifdef_DEBUG #define newDEBUG_NEW #undefTHIS_FILE staticcharTHIS_FILE[]=__FILE__; #endif CAboutDlgdialogusedforAppAbout classCAboutDlg:publicCDialog{ public:CAboutDlg(); //DialogData //{{AFX_DAT

22、A(CAboutDlg)enum{IDD=IDD_ABOUTBOX}; //}}AFX_DATA //ClassWizardgeneratedvirtualfunctionoverrides //{{AFX_VIRTUAL(CAboutDlg) protected: virtualvoidDoDataExchange(CDataExchange*pDX); //DDX/DDVsupport //}}AFX_VIRTUAL //Implementation protected: //{{AFX_MSG(CAboutDlg) //}}AFX_MSG DECLARE_MESSA

23、GE_MAP()}; CAboutDlg::CAboutDlg():CDialog(CAboutDlg::IDD){ //{{AFX_DATA_INIT(CAboutDlg) //}}AFX_DATA_INIT} voidCAboutDlg::DoDataExchange(CDataExchange*pDX){ CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(CAboutDlg) //}}AFX_DATA_MAP} BEGIN_MESSAGE_MAP(CAboutDlg,CDialog) //{{AFX_MSG_MAP(CAbou

24、tDlg) //Nomessagehandlers //}}AFX_MSG_MAPEND_MESSAGE_MAP() //CCalculatorDlgdialog //CCalculatorDlgmessagehandlersBOOL CCalculatorDlg::OnInitDialog(){CDialog::OnInitDialog(); //Add"About..."menuitemtosystemmenu. //IDM_ABOUTBOXmustbeinthesystemcommandrange. ASSERT((IDM_ABOUTBOX&0xFFF0)==IDM_AB

25、OUTBOX); ASSERT(IDM_ABOUTBOX<0xF000); CMenu*pSysMenu=GetSystemMenu(FALSE); if(pSysMenu!=NULL){ CStringstrAboutMenu; strAboutMenu.LoadString(IDS_ABOUTBOX); if(!strAboutMenu.IsEmpty()){pSysMenu->AppendMenu(MF_SEPARATOR); pSysMenu->AppendMenu(MF_STRING,IDM_ABOUTBOX,strAboutMenu);}} //Settheicon

26、forthisdialog. Theframeworkdoesthisautomatically //whentheapplicationsmainwindowisnotadialog SetIcon(m_hIcon,TRUE); //Setbigicon SetIcon(m_hIcon,FALSE); //Setsmallicon //TODO:AddextrainitializationhereGetWindowRect(rcSentific); CWnd*m_pMark=GetDlgItem(IDC_DISPLAY); ASSERT(m_pMark); CRectrec

27、t;m_pMark->GetWindowRect(rect); rcStandard=rcSentific;rcStandard.right=rect.right+5; m_bIsExpand=0; m_sentific=1; OnStandard(); m_result="0."; m_isDegree=1; UpdateData(FALSE); returnTRUE; //returnTRUEunlessyousetthefocustoacontrol} voidCCalculatorDlg::OnSysCommand(UINTnID,LPARAMlParam){ i

28、f((nID&0xFFF0)==IDM_ABOUTBOX){ CAboutDlgdlgAbout;dlgAbout.DoModal();} else{CDialog::OnSysCommand(nID,lParam);}} //Ifyouaddaminimizebuttontoyourdialog,youwillneed thecodebelow //todrawtheicon.ForMFCapplicationsusingthedocument/vi //thisisautomaticallydoneforyoubytheframework. voidCCalculatorDlg

29、::OnPaint(){if(IsIconic()){CPaintDCdc(this); //devicecontextforpainting SendMessage(WM_ICONERASEBKGND,(WPARAM)dc.GetSafeHdc(),0); //Centericoninclientrectangle intcxIcon=GetSystemMetrics(SM_CXICON); int cyIcon=GetSystemMetrics(SM_CYICON); CRectrect; GetClientRect(&rect); int x=(rect.Width()-

30、cxIcon+1)/2; inty=(rect.Height()-cyIcon+1)/2; //Draw the icon dc.DrawIcon(x,y,m_hIcon);} else{CDialog::OnPaint();}} //Thesystemcallsthistoobtainthecursortodisplay whiletheuserdrags //theminimizedwindow. HCURSORCCalculatorDlg::OnQueryDragIcon(){return(HCURSOR)m_hIcon} voidCCalculatorDlg::OnOp

31、erandInput(UINTnID){ ASSERT(nID>=IDC_0&&nID<=IDC_9); if(m_errorState!=ErrNone)return;if(m_func!=FuncNone){ m_func=FuncNone;Calculate();} if(!m_bOperandAvail)m_operand=0; if(!m_bCoff)m_operand=m_operand*10+(nID-IDC_0); else{m_operand=m_operand+(nID-IDC_0)*m_coff;m_coff*=0.1;} m_bOperandAvail=T

32、RUE;UpdateDisplay();} voidCCalculatorDlg::Calculate(){if(m_errorState!=ErrNone)return; if(m_bOperandAvail){ if(m_operator==OpNone)m_accum=m_operand; elseif(m_operator==OpMultiply)m_accum*=m_operand; elseif(m_operator==OpDivide){ if(m_operand==0) m_errorState=ErrDivideByZero; elsem_accum/=m_o

33、perand;} elseif(m_operator==OpAdd)m_accum+=m_operand; elseif(m_operator==OpSubtract) m_accum-=m_operand;} m_bOperandAvail=FALSE; m_bCoff=0;m_coff=0.1; UpdateDisplay();} voidCCalculatorDlg::UpdateDisplay(){if(GetSafeHwnd()==NULL)return; if(m_errorState!=ErrNone) m_result="余數(shù)不能為0"; else{float

34、lVal=(m_bOperandAvail)?m_operand:m_accum; m_result.Format(_T("%f"),lVal);inti=m_result.GetLength(); while(m_result.GetAt(i-1)==0){m_result.Delete(i-1,1); i-=1;}}UpdateData(FALSE);} BOOLCCalculatorDlg::Keyboard(LPCTSTRszButton){switch(szButton[0]){case c:caseC:OnClear(); break; case/:OnDivid();

35、break; case+:OnAdd();break; case-:OnMinus();break; case*:OnMultiply();break; case=:OnEqual();break; default:if(szButton[0]>=0&&szButton[0]<=9{if(m_errorState!=ErrNone) returnFALSE; if(!m_bOperandAvail) m_operand=0; m_operand=m_operand*10+szButton[0]-0; m_bOperandAvail=TRUE; UpdateDisplay(

36、);} elsereturnFALSE; break} Return TRUE;} voidCCalculatorDlg::OnAdd(){ //TODO:Addyourcontrolnotificationhandlercodehere Calculate();m_operator=OpAdd;} voidCCalculatorDlg::OnMinus(){ //TODO:Addyourcontrolnotificationhandlercodehere Calculate();m_operator=OpSubtract;} voidCCalculatorDlg::OnD

37、ivid(){ //TODO:Addyourcontrolnotificationhandlercodehere Calculate();m_operator=OpDivide;} voidCCalculatorDlg::OnMultiply(){ //TODO:Addyourcontrolnotificationhandlercodehere Calculate();m_operator=OpMultiply;} voidCCalculatorDlg::OnEqual(){ //TODO:Addyourcontrolnotificationhandlercodehere Ca

38、lculate();m_operator=OpNone;} voidCCalculatorDlg::OnSign() {//TODO:Addyourcontrolnotificationhandlercodehere m_operand*=-1;UpdateDisplay();} voidCCalculatorDlg::OnSqrt(){ //TODO:Addyourcontrolnotificationhandlercodehere m_func=FuncSqrt;Run_Func();} voidCCalculatorDlg::OnReciprocal(){ //TODO:

39、Addyourcontrolnotificationhandlercodehere m_func=FuncRec;Run_Func();} voidCCalculatorDlg::OnPoint(){ //TODO:Addyourcontrolnotificationhandlercodehere m_bCoff=1;UpdateDisplay();} voidCCalculatorDlg::OnClear(){ //TODO:Addyourcontrolnotificationhandlercodehere m_operator=OpNone;m_operand=0;m_acc

40、um=0; m_bOperandAvail=FALSE; m_errorState=ErrNone; m_coff=0.1; UpdateDisplay();} BOOLCCalculatorDlg::PreTranslateMessage(MSG*pMsg){ if(m_hAccel!=NULL&&TranslateAccelerator(m_hWnd,m_hAccel,pMsg)) returnTRUE; returnCDialog::PreTranslateMessage(pMsg);} voidCCalculatorDlg::OnLog(){ //TODO:Addy

41、ourcontrolnotificationhandlercodehere m_func=FuncLog;Run_Func();} voidCCalculatorDlg::OnLn(){ //TODO:Addyourcontrolnotificationhandlercodehere m_func=FuncLn;Run_Func();} voidCCalculatorDlg::OnFactorial(){ //TODO:Addyourcontrolnotificationhandlercodehere m_func=FuncN;Run_Func();} voidCCalcula

42、torDlg::OnExp(){ //TODO:Addyourcontrolnotificationhandlercodehere m_func=FuncExp;Run_Func();} voidCCalculatorDlg::OnSentific(){ //TODO:Addyourcontrolnotificationhandlercodehere m_bIsExpand=1;m_sentific=0; ExpandToSentific();} voidCCalculatorDlg::OnSin(){ //TODO:Addyourcontrolnotificationhand

43、lercodehere m_func=FuncSin;Run_Func();} voidCCalculatorDlg::OnSquar(){ //TODO:Addyourcontrolnotificationhandlercodehere m_func=FuncSqre;Run_Func();} voidCCalculatorDlg::OnTan(){ //TODO:Addyourcontrolnotificationhandlercodehere m_func=FuncTan;Run_Func();} voidCCalculatorDlg::OnStandard(){ //

44、TODO:Addyourcontrolnotificationhandlercodehere m_bIsExpand=0;m_sentific=1; ExpandToSentific();} voidCCalculatorDlg::Run_Func(){if(m_errorState!=ErrNone)return; if(m_bOperandAvail){ if(m_func==FuncExp) m_operand=exp(m_operand); if(m_func==FuncLn)m_operand=log(m_operand); if(m_func==FuncLog) m_

45、operand=log10(m_operand); if(m_func==FuncSqrt)m_operand=sqrt(m_operand); if(m_func==FuncSqre)m_operand=pow(10,m_operand); if(m_func==FuncSin)m_operand=sin(m_operand*DtoR); if(m_func==FuncCos)m_operand=cos(m_operand*DtoR); if(m_func==FuncTan)m_operand=tan(m_operand*DtoR); if(m_func==FuncRec)m_o

46、perand=1/m_operand; if(m_func=FuncN){inti; for(i=m_operand-1;i>=1;i--) m_operand*=i;}} UpdateDisplay(); //m_func=FuncNone;} voidCCalculatorDlg::OnDegree(){ //TODO:Addyourcontrolnotificationhandlercodehere m_isDegree=0; DtoR=(2*PI)/360; UpdateData(FALSE);} voidCCalculator

47、Dlg::OnRad(){ //TODO:Addyourcontrolnotificationhandlercodehere m_isDegree=1; DtoR=1; UpdateData(TRUE);} voidCCalculatorDlg::OnCos(){ //TODO:Addyourcontrolnotificationhandlercodehere m_func=FuncCos; Run_Func();} voidCCalculatorDlg::ExpandToSentific(){ if(m_bIsExpand){SetWindowPos(NULL

48、,0,0,rcSentific.Width(), rcSentific.Height(),SWP_NOMOVE|SWP_NOZORDER); SetVisibleCtrl();} else{ SetWindowPos(NULL,0,0,rcStandard.Width(),rcSentific.Height(), SWP_NOMOVE|SWP_NOZORDER); SetVisibleCtrl();} UpdateData(FALSE);} voidCCalculatorDlg::SetVisibleCtrl(){ CWnd*pCtrl=GetWindow(GW_CHILD)

49、; CRectrcTest; CRectrcControl; CRectrcShow; GetWindowRect(rcShow); while(pCtrl!=NULL){ pCtrl->GetWindowRect(rcControl); if(rcTest.IntersectRect(rcShow,rcControl)) pCtrl->EnableWindow(TRUE); elsepCtrl->EnableWindow(FALSE); pCtrl=pCtrl->GetWindow(GW_HWNDNEXT);}} 課程設(shè)計(jì)成績(jī)?cè)u(píng)定表 評(píng)定項(xiàng)目 內(nèi)

50、 容 滿分 評(píng)分 總分 學(xué)習(xí)態(tài)度 學(xué)習(xí)認(rèn)真,態(tài)度端正,遵守紀(jì)律。 10 設(shè)計(jì)情況 認(rèn)真查閱資料,勤學(xué)好問(wèn),提出的問(wèn)題有一定的深度,分析解決問(wèn)題的能力較強(qiáng)。 40 說(shuō)明書(shū)質(zhì)量 設(shè)計(jì)方案正確、表達(dá)清楚;設(shè)計(jì)思路、實(shí)驗(yàn)(論證)方法科學(xué)合理;達(dá)到課程設(shè)計(jì)任務(wù)書(shū)規(guī)定的要求;圖、表、文字表達(dá)準(zhǔn)確規(guī)范,上交及時(shí)。 40 回答問(wèn)題情況 回答問(wèn)題準(zhǔn)確,基本概念清楚,有理有據(jù),有一定深度。 10 總成績(jī) 采用五級(jí)分制:優(yōu)、良、中、及格、不及格 指導(dǎo)教師評(píng)語(yǔ): 簽名: 年 月 日 21

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

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號(hào):ICP2024067431號(hào)-1 川公網(wǎng)安備51140202000466號(hào)


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺(tái),本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng),我們立即給予刪除!