畢業(yè)設(shè)計(jì)(論文)-基于qt的科學(xué)計(jì)算器的設(shè)計(jì)與實(shí)現(xiàn).doc_第1頁
畢業(yè)設(shè)計(jì)(論文)-基于qt的科學(xué)計(jì)算器的設(shè)計(jì)與實(shí)現(xiàn).doc_第2頁
畢業(yè)設(shè)計(jì)(論文)-基于qt的科學(xué)計(jì)算器的設(shè)計(jì)與實(shí)現(xiàn).doc_第3頁
畢業(yè)設(shè)計(jì)(論文)-基于qt的科學(xué)計(jì)算器的設(shè)計(jì)與實(shí)現(xiàn).doc_第4頁
畢業(yè)設(shè)計(jì)(論文)-基于qt的科學(xué)計(jì)算器的設(shè)計(jì)與實(shí)現(xiàn).doc_第5頁
已閱讀5頁,還剩45頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

基于qt的科學(xué)計(jì)算器的設(shè)計(jì)與實(shí)現(xiàn)摘 要隨著科技的飛速發(fā)展,人類已經(jīng)進(jìn)入信息化的大時代。信息技術(shù)發(fā)展更是日新月異,計(jì)算器已經(jīng)進(jìn)入而且融入人們生活的各個領(lǐng)域,在現(xiàn)代生活中無處不在,大型復(fù)雜的計(jì)算是人腦和手工所不能勝任的,而且容易出錯且準(zhǔn)確度不高??茖W(xué)計(jì)算器作為一種快速便捷的計(jì)算工具方便了人類的使用??茖W(xué)計(jì)算器包含簡單的四則加減乘除運(yùn)算、復(fù)雜的數(shù)學(xué)運(yùn)算、二八十十六進(jìn)制之間的相互轉(zhuǎn)換等功能,具有美觀的界面,操作方便簡單,能夠被用戶所接受,科學(xué)計(jì)算器在我們的日常生活、學(xué)習(xí)、工作中使用相當(dāng)廣泛,而且種類繁多,所以科學(xué)計(jì)算器的程序設(shè)計(jì)因此應(yīng)運(yùn)產(chǎn)生。本文從課題背景、計(jì)算器的概況、計(jì)算器的相關(guān)技術(shù)、項(xiàng)目內(nèi)容和要求、概要設(shè)計(jì)、設(shè)計(jì)流程、系統(tǒng)實(shí)現(xiàn)、系統(tǒng)調(diào)試等方面詳細(xì)說明了小型科學(xué)計(jì)算器的開發(fā)設(shè)計(jì)過程。軟件采用Qt Creator設(shè)計(jì)界面結(jié)合C+面向?qū)ο缶幊陶Z言來開發(fā)。科學(xué)計(jì)算器包含簡單的四則運(yùn)算、復(fù)雜的數(shù)學(xué)表達(dá)式運(yùn)算、與或運(yùn)算、進(jìn)制之間的相互轉(zhuǎn)換、簡易畫圖板等功能。該科學(xué)計(jì)算器具有界面可視化,用戶操作簡單實(shí)用方便等優(yōu)點(diǎn),為用戶進(jìn)行復(fù)雜科學(xué)的計(jì)算提供了高效率的計(jì)算保證。關(guān)鍵詞:科學(xué)計(jì)算器;進(jìn)制轉(zhuǎn)換; Qt Creator;C+;運(yùn)算全套設(shè)計(jì)加扣 3012250582Design and implementation of scientific calculator based on QTAbstract With the rapid development of science and technology,mankind hasentered the informationera.The development of informationtechnology ischange rapidly, the computers have enteredandintegrated into various fieldsamong peoples lives,even are ubiquitous in modern life .The humans brainand handhave already could not completed the calculation of large scale complex,but also prone to errorand accuracy is not high.Scientific calculatoras a kind ofquick and convenientcalculation toolis convenient for humansusing.Scientific calculatorcontainsbetweenfour simpleadd, subtract, multiply and divideoperations,a complex mathematical operation, two、eight、ten and sixteens hexadecimalconversionfunctions,with abeautiful interface,simple and convenient operation, andcanbe accepted by users. Scientific calculatoris quitewidelyin our daily life,study,work,and variety of classifications,so the programsdesignabout scientific calculatorisproduced.From thisbackground,calculator,calculatorofrelated technology,project contentand requirements,the outline design,process design,system implementation,system debuggingare described in detailthe development and design process of thesmall.scientificcalculator.The program use QtCreator tool to design the interfacewith theC+ object orientedprogramming language. Scientific calculatorcontainsfour simple operation,complex mathematical expression operation,andoperation,orbetween hexadecimalconversion,a simpledrawing boardand other functions.Thescientific calculatorhas theadvantages ofvisual interface,user operationis simple and practicaland convenient,and ensures theefficientcalculation for the user tocalculatethe complicated science.Keyword: Scientific calculator; hexadecimal; QtCreator; C+; convenient目 錄摘 要iAbstractii1 緒論11.1 課題背景11.2 綜述科學(xué)計(jì)算器的概況11.2.1 科學(xué)計(jì)算器在生活中的應(yīng)用11.2.2 科學(xué)計(jì)算器的發(fā)展前景31.3 綜述科學(xué)計(jì)算器的相關(guān)技術(shù)32 系統(tǒng)開發(fā)技術(shù)和工具52.1 系統(tǒng)介紹52.2 系統(tǒng)開發(fā)語言介紹52.3 系統(tǒng)開發(fā)工具介紹62.4 能力要求82.5 項(xiàng)目特點(diǎn)及意義83 需求分析93.1 功能需求與分析93.2 安全性分析93.3 可行性分析93.4 技術(shù)經(jīng)濟(jì)分析103.5 用例圖103.5.1 UML介紹103.5.2 科學(xué)計(jì)算器用例圖113.5.3 畫圖板用例圖124 總體設(shè)計(jì)144.1 總體設(shè)計(jì)目標(biāo)144.2 功能模塊設(shè)計(jì)144.2.1 科學(xué)計(jì)算功能模塊144.2.2 畫圖板功能模塊175 詳細(xì)設(shè)計(jì)185.1 設(shè)計(jì)目的185.2 設(shè)計(jì)說明185.2.1 UI界面風(fēng)格185.2.2 科學(xué)計(jì)算器模塊195.2.3 畫圖板模塊206 系統(tǒng)實(shí)現(xiàn)216.1 系統(tǒng)功能介紹216.2 科學(xué)計(jì)算器216.2.1 科學(xué)計(jì)算器進(jìn)制選擇功能226.2.2 科學(xué)計(jì)算器進(jìn)制轉(zhuǎn)換功能246.2.3 科學(xué)計(jì)算器清空回退功能276.2.4 科學(xué)計(jì)算器計(jì)算功能276.2.5 科學(xué)計(jì)算器其它功能356.3 畫圖板366.3.1 畫圖板界面設(shè)計(jì)366.3.2 畫圖板功能實(shí)現(xiàn)377 系統(tǒng)測試397.1 軟件測試概述397.1.1 測試目標(biāo)397.1.2 測試方法397.2 對本系統(tǒng)的測試407.2.1 配置問題407.2.2 信號和槽的問題41結(jié)束語42致 謝43參考文獻(xiàn)44英語原文45中文翻譯49441 緒論1.1 課題背景計(jì)算器(calculator)一般是指“電子計(jì)算器”。計(jì)算器能進(jìn)行數(shù)學(xué)運(yùn)算的手持機(jī)器,擁有集成電路芯片,但結(jié)構(gòu)簡單,比現(xiàn)代電腦結(jié)構(gòu)簡單得多,可以說是第一代的電子計(jì)算機(jī)(電腦),且功能也較弱,但較為方便與廉價(jià),可廣泛運(yùn)用于商業(yè)交易中,是必備的辦公用品之一。本計(jì)算器可以進(jìn)行簡單的四則運(yùn)算(加、減、乘、除)但僅限于十進(jìn)制下,還可以進(jìn)行簡單的科學(xué)計(jì)算開方、平方的計(jì)算,最多可以輸入256字符,操作簡便,主要采用的技術(shù)為Qt Creator,不僅能鍛煉自己的編程能力,還可以根據(jù)自己的需要來編寫適合自己的計(jì)算器。隨著科學(xué)技術(shù)的不斷提高,計(jì)算機(jī)科學(xué)日漸成熟,其強(qiáng)大的功能已為人們深刻認(rèn)識,它已進(jìn)入人類社會的各個領(lǐng)域并發(fā)揮著越來越重要的作用。在科技論文寫作過程中,可能參考或引用大量的文獻(xiàn)和資料(許多是以電子文檔的形式存在),如果以文件的形式存儲,管理起來十分復(fù)雜,給日常工作帶來極大的不便,甚至造成電子文檔的破壞和丟失,安全性更是難以保證。對幫助功能也有保存添加等功能。具有無法比擬的優(yōu)點(diǎn).例如:檢索迅速、查找方便、可靠性高、保密性好、壽命長、成本低等。這些優(yōu)點(diǎn)能夠極大地提高科技論文管理效率,也是企業(yè)、學(xué)校的科學(xué)化、正規(guī)化管理,與世界接軌的重要條件。1.2 綜述科學(xué)計(jì)算器的概況1.2.1 科學(xué)計(jì)算器在生活中的應(yīng)用現(xiàn)代信息技術(shù)逐漸發(fā)展并被普及和應(yīng)用,讓大家的思維方式、工作方和學(xué)習(xí)方式有了很大的變化。課程標(biāo)準(zhǔn)指出數(shù)學(xué)課程需大力加強(qiáng)現(xiàn)代信息技術(shù)的運(yùn)用,發(fā)揮現(xiàn)代信息技術(shù)對數(shù)學(xué)教學(xué)改革的積極作用,使現(xiàn)代信息技術(shù)能夠成為學(xué)生學(xué)習(xí)的有效工具,成為獲取信息資源和習(xí)資源的廣闊平臺。計(jì)算器是一種小型的手持或桌面的設(shè)備,用于完成數(shù)學(xué)計(jì)算。一般的數(shù)學(xué)計(jì)算器與計(jì)算機(jī)是不一樣,數(shù)學(xué)計(jì)算器通常僅能完成算術(shù)運(yùn)算和少量邏輯操作并顯示其結(jié)果,但一般不能修改其程序。除了某些尺寸可比掌上型計(jì)算器的PDA之外,計(jì)算器的可攜性通常高于計(jì)算機(jī)。19世紀(jì)巴貝奇將計(jì)算工具的概念更往前推,試圖創(chuàng)建第一個可編程式計(jì)算器,但他建造的機(jī)器太重了,因而無法操作(如圖1-1所示)。圖1-1 1914年的機(jī)械計(jì)算器20世紀(jì)70年代開始,微處理器技術(shù)被吸納進(jìn)計(jì)算器制程,最初的微處理器是Intel于1971年為日本名為Busicom()的計(jì)算器公司生產(chǎn)的,1972年惠普推出第一款掌上科學(xué)計(jì)算器HP-35(如圖1-2所示)。圖1-2 卡西歐fx-140計(jì)算器夏普在此領(lǐng)域是計(jì)算器制造商中的佼佼者,他們最先在計(jì)算器中采用了液晶顯示屏,還是最早把太陽能電池安裝到計(jì)算器的企業(yè)之一。從20世紀(jì)60年代到70年代的十多年里,夏普公司把生產(chǎn)計(jì)算器所需的原件降到了3個(以前需要3000多個)硅片、顯示屏和太陽能電池,這大大降低了計(jì)算器的生產(chǎn)成本。計(jì)算器的出現(xiàn)是人類科技發(fā)展時代的一個重要的里程碑。人們使用計(jì)算器是時代發(fā)展的趨勢,計(jì)算器的出現(xiàn)和使用可以很方便的計(jì)算復(fù)雜的四則運(yùn)算等,極大的提高了計(jì)算的速度,快捷,方便,適當(dāng)?shù)氖褂糜?jì)算器可以促進(jìn)并提高學(xué)習(xí)和工作的效率,彌補(bǔ)了人們在腦力運(yùn)算和手工運(yùn)算速度慢不準(zhǔn)確的缺陷。現(xiàn)在的生活工作和學(xué)習(xí)中,計(jì)算器的使用無處不在。計(jì)算器的教育用途方面,有些學(xué)生常在寫數(shù)學(xué)作業(yè)時使用計(jì)算器。但因擔(dān)心學(xué)生的基本算術(shù)能力因而受到戕害,因此許多教育人士抗拒讓學(xué)生過早使用它。而某些課程限制使用計(jì)算器運(yùn)算算術(shù),直到學(xué)到更高級的計(jì)算技巧;其他人則不同意以紙筆或心算算術(shù)的重要性,他們更注重教授評估與解決問題的技巧。然而,還是有一些其他顧慮:例如學(xué)生可能以錯誤的方式使用計(jì)算器,并因?qū)τ?jì)算器的信賴而盲目相信答案。教師為了破解學(xué)生的盲信,常會指導(dǎo)學(xué)生以人工驗(yàn)算并確認(rèn)其答案的正確性。當(dāng)然,學(xué)生也有可能只運(yùn)用計(jì)算器取得答案,而不了解運(yùn)算的真實(shí)意義,例如輸入(-10)(-10),獲得100,卻不了解背后“負(fù)負(fù)得正”的規(guī)則。在此情況下,計(jì)算器成為學(xué)生的依賴而非輔助工具,使學(xué)生在考試時對任何簡單的運(yùn)算都以計(jì)算器求解,并降低應(yīng)答的速度。1.2.2 科學(xué)計(jì)算器的發(fā)展前景科學(xué)計(jì)算器的出現(xiàn)是科學(xué)技術(shù)發(fā)展的重要里程碑,它最早還不是以科學(xué)計(jì)算器的身份出現(xiàn)在公眾的視野中,最早是被法國科學(xué)家引用算盤的原理,進(jìn)而發(fā)明了第一臺機(jī)械式計(jì)算器,但是只能做加減運(yùn)算,操作繁瑣,后來隨著時代的發(fā)展,科技也在不斷地進(jìn)步,德國科學(xué)家將機(jī)械式計(jì)算器改進(jìn)實(shí)現(xiàn)了乘除的運(yùn)算,此后,一直到了20世紀(jì)50年代末才出現(xiàn)了電子計(jì)算器。電子計(jì)算器的出現(xiàn)極大的豐富和改進(jìn)了機(jī)械式計(jì)算器,出現(xiàn)了很多功能,并且操作簡單,使用方便。如今,科學(xué)計(jì)算器的使用在人們的生活工作學(xué)習(xí)中無處不在,隨著人們對計(jì)算器的需要,它也有了更近一步的發(fā)展,計(jì)算功能增多,就我所知,美國的高校使用的科學(xué)計(jì)算器可以計(jì)算微積分等運(yùn)算,更是在腦力上使人們得到了解放。技術(shù)在發(fā)展,人們的需求也在不在的變化和增多,科學(xué)計(jì)算器的也會隨著有更大的發(fā)展和變化,發(fā)展的道路一直在延續(xù)。1.3 綜述科學(xué)計(jì)算器的相關(guān)技術(shù)計(jì)算機(jī)的程序可計(jì)算極為復(fù)雜的數(shù)學(xué)程序,這是一般計(jì)算器所無法相比的,不過現(xiàn)在也有一些功能較強(qiáng)大的計(jì)算器具有編程功能。計(jì)算器的復(fù)雜度隨著使用目的而有所不同。最簡單的計(jì)算器模塊應(yīng)該包含下列部件: 電源,例如電池或太陽能板 顯示幕,通常以LED光源或LCD制成,可顯示一定數(shù)量的數(shù)字(通常為八、十、十二、十六位,以十二位最常見) 電子回路 十個數(shù)字鍵,從0到9 小數(shù)點(diǎn) 等于符號,用于顯示運(yùn)算解 四個運(yùn)算函數(shù)(加減乘除) 取消鍵,用于清空目前顯示的數(shù)字電源開關(guān) 其他基本函數(shù),例如求平方根或百分比鍵 (%) 更高級的模塊也許會有一個單數(shù)值記憶按鍵(M+,M-),可在需要時叫回20世紀(jì)80年代早期,基本計(jì)算器開始置入其他小型設(shè)備,例如手機(jī)、調(diào)用器或腕表??茖W(xué)計(jì)算器或工程型計(jì)算器支持三角函數(shù)、微積分、統(tǒng)計(jì)與其他函數(shù)。而最先進(jìn)的現(xiàn)代計(jì)算器甚至可顯示圖型,并且包含計(jì)算機(jī)代數(shù)系統(tǒng)。這種計(jì)算器可以編寫程序,且內(nèi)含了代數(shù)方程式求解程序、經(jīng)濟(jì)模型甚至游戲程序。這類計(jì)算器可顯示填滿顯示屏的單一數(shù)值。并可將數(shù)字以科學(xué)記數(shù)法表現(xiàn)至9.999999999*1099。如果用戶試圖輸入一過大的數(shù)值或運(yùn)算產(chǎn)生過大數(shù)值的算式(例如輸入100!,即100階乘),則計(jì)算器僅顯示“錯誤”(error)一詞。因?yàn)榇鎯ζ魅绱擞邢薜挠?jì)算器無法存儲如此巨大的輸入(=10160)?!板e誤”也用以表示數(shù)學(xué)上未定義的函數(shù)或操作,例如除以零或?qū)ω?fù)數(shù)取平方根(除了某些高級的科學(xué)計(jì)算器擁有可處理復(fù)數(shù)的特殊函數(shù),大部分科學(xué)計(jì)算器不允許復(fù)數(shù)的存在)。某些少數(shù)計(jì)算器可分別這兩種錯誤的不同,雖然用戶依然難以了解error 1與error2的差別何在。僅有少數(shù)公司研發(fā)與制造現(xiàn)代職業(yè)工程師與經(jīng)濟(jì)學(xué)家用的計(jì)算器:最有名的是Casio、夏普、HP與德州儀器。這些計(jì)算器都是嵌入式系統(tǒng)的范型。此款簡單的科學(xué)計(jì)算器能實(shí)現(xiàn)加、減、乘、除、平方、冪次方、倒數(shù)、取整、取模以及位運(yùn)算,再次基礎(chǔ)上又增加了二進(jìn)制、八進(jìn)制、十進(jìn)制和十六進(jìn)制之間的轉(zhuǎn)換與運(yùn)算,并且設(shè)計(jì)有簡易的畫圖板,畫圖板內(nèi)有文件的打開與保存,橢圓、矩形、畫筆、畫刷、橡皮擦和清屏畫圖工具,還有與其對應(yīng)的屬性設(shè)置等。這些功能的實(shí)現(xiàn),用C+面向?qū)ο缶幊陶Z言并在QT Creator開發(fā)平臺上設(shè)計(jì)編寫而成。該計(jì)算器大大的降低了數(shù)字計(jì)算的難度且提高了計(jì)算的準(zhǔn)確度和精確度。界面清晰,讓人一目了然。該計(jì)算器使用簡單和操作方便,對人們在生活和學(xué)習(xí)有巨大的幫助作用,也方便了飛專業(yè)人士在日常生活中的計(jì)算操作,也對在職人員的工作有點(diǎn)幫助作用。在計(jì)算器模塊的設(shè)計(jì)中,從操作角度出發(fā),充分考慮使用者,是該計(jì)算器成為使用者的掌上助手,解決生活學(xué)習(xí)中常見的計(jì)算問題。2 系統(tǒng)開發(fā)技術(shù)和工具2.1 系統(tǒng)介紹設(shè)計(jì)一個功能齊備的小型科學(xué)計(jì)算器,具有算式編輯計(jì)算和普通計(jì)算窗口。具體要求如下:科學(xué)計(jì)算窗口:能實(shí)現(xiàn)加、減、乘、除、平方、冪次方、倒數(shù)、取整、取模運(yùn)算,在次基礎(chǔ)上又增加了二進(jìn)制、八進(jìn)制、十進(jìn)制和十六進(jìn)制之間的轉(zhuǎn)換與運(yùn)算,并可實(shí)現(xiàn)各類不同函數(shù)及位運(yùn)算。設(shè)計(jì)實(shí)現(xiàn)顯示窗口、運(yùn)算的回退、清零等功能。支持二、八、十六、十等不同進(jìn)制數(shù)據(jù)的直接輸入、計(jì)算和數(shù)制間的相互轉(zhuǎn)換,當(dāng)點(diǎn)擊等號鍵時直接給出當(dāng)前算式的運(yùn)算結(jié)果。畫圖板窗口:支持文件的打開和保存,有簡單的矩形、橢圓、畫筆、橡皮擦、清除和筆刷工具,可選取并設(shè)置畫圖工具的顏色、寬度和風(fēng)格等基本屬性。極大的表現(xiàn)了畫圖板的基本功能。2.2 系統(tǒng)開發(fā)語言介紹開發(fā)語言:C+C+語言是一種使用非常廣泛的計(jì)算機(jī)編程語言。C+是一種基于靜態(tài)數(shù)據(jù)類型檢查的、支持多重編程范式的程序設(shè)計(jì)語言。C+語言支持過程化程序設(shè)計(jì)、數(shù)據(jù)抽象、面向?qū)ο蟪绦蛟O(shè)計(jì)、泛型程序設(shè)計(jì)等多種程序設(shè)計(jì)風(fēng)格。C+語言的設(shè)計(jì)目標(biāo),就是要讓C+既具有適合于系統(tǒng)程序設(shè)計(jì)的C語言所具有的可適應(yīng)性和高效性,又能在其程序組織結(jié)構(gòu)方面具有像Simula那樣的語言設(shè)施(Simula所支持的這種程序組織結(jié)構(gòu)通常被稱為面向?qū)ο蟪绦蛟O(shè)計(jì)風(fēng)格)。在設(shè)計(jì)的時候,還做了很大的努力,使得引借自Simula的高層次的程序設(shè)計(jì)技術(shù)能夠應(yīng)用于系統(tǒng)程序設(shè)計(jì)之中。這即是說,C+所提供的抽象機(jī)制能夠被應(yīng)用于那些對效率和可適應(yīng)性具有極高要求的程序設(shè)計(jì)任務(wù)之中。采用C+面向?qū)ο笳Z言,利用抽象和封裝等機(jī)制,借助類、對象、繼承、傳遞等技術(shù)進(jìn)行構(gòu)造的軟件開發(fā)方法,它的出發(fā)點(diǎn)和目標(biāo)就是使人們在想一個問題的過程和方法時與分析、設(shè)計(jì)和實(shí)現(xiàn)系統(tǒng)的過程和方法盡最大可能的一致,即描述問題的認(rèn)知空間以及解決問題的方法空間要在結(jié)構(gòu)上盡可能的一致,這樣面向?qū)ο蠓椒ㄗ匀坏啬M了人類認(rèn)知世界的方式,所以這是一個很好的思維認(rèn)知的方法,也是特別好的一種軟件開發(fā)方法。1998的C+標(biāo)準(zhǔn)分為兩個部分:核心語言和C+標(biāo)準(zhǔn)程序庫;后者包含了大部分標(biāo)準(zhǔn)模板庫和C標(biāo)準(zhǔn)程序庫的稍加修改版本。存在許多不屬于標(biāo)準(zhǔn)部分的C+程序庫,且使用外部鏈接,程序庫甚至可以用C撰寫。C+標(biāo)準(zhǔn)程序庫充分吸收了C標(biāo)準(zhǔn)程序庫,并佐以少許的修改,使其與C+良好的運(yùn)作。另一個大型的程序庫部分,是以標(biāo)準(zhǔn)模板庫(STL)為基礎(chǔ),STL于1994年2月正式成為ANSI/ISO C+。它提供了實(shí)用的工具,如容器(如:矢量和鏈表),迭代器(廣義指針)提供容器以類似數(shù)組的訪問方式,以及算法進(jìn)行搜索和排序的運(yùn)算。此外還提供了(multi)map(關(guān)系數(shù)組)和(multi)set,它們都使用兼容的界面。因此,以下成為可能,使用模板撰寫泛型算法,它可以和任何容器或在任何以迭代器定義的串行上運(yùn)作。如同C,使用#include指令包含標(biāo)準(zhǔn)表頭,即可訪問程序庫里的功能。C+提供69個標(biāo)準(zhǔn)表頭,其中19個不再贊成使用。使用標(biāo)準(zhǔn)庫(例如:使用std:vector或std:string來取代C風(fēng)格的數(shù)組)有助于導(dǎo)向更安全和更靈活的軟件。STL在納入C+標(biāo)準(zhǔn)以前,是來自HP和后來的SGI的第三方程式庫,標(biāo)準(zhǔn)中并未稱之為“STL”,它只是標(biāo)準(zhǔn)庫中的一部分,但仍有許多人使用這個名稱,以別于其它的標(biāo)準(zhǔn)庫(輸入輸出流、國際化、診斷、C程序庫子集,等等)。和C語言相比,C+引入了更多的特性,包括:陳述性聲明,類似函數(shù)的強(qiáng)制轉(zhuǎn)型,new/delete操作符,布林類型,參考類型,默認(rèn)參數(shù),函數(shù)重載,命名空間,類型(包括所有和類型相關(guān)的特性,如繼承、成員函數(shù)、虛函數(shù)、抽象類型和構(gòu)造函數(shù)),操作符重載,模板,:操作符,異常處理和運(yùn)行時期識別。和普遍認(rèn)為的相反,C+不是第一個正式引入const關(guān)鍵字的語言。80年代早期,Bjarne Stroustrup和Dennis Retchie討論之后提供了在C語言中readonly/writeonly的實(shí)現(xiàn)機(jī)制,并在帶類型的C中取得了一定經(jīng)驗(yàn)。關(guān)鍵字const正式引入C語言是在ANSI C89。這早于第一個C+國際標(biāo)準(zhǔn)近十年,但此時const已被C+實(shí)現(xiàn)普遍采用。C+在某些案例中(見下“與C不兼容之處”),進(jìn)行比C還要多的類型檢查。以“/”起始作為注解起源自C的前身BCPL,而后被重新引入到C+。C+的一些特性,C不久之后也采用了,包括在for循環(huán)的括號中聲明,C+風(fēng)格的注解(使用/符號,和inline,雖然C99定義的inline關(guān)鍵字與C+的定義不兼容。不過,C99也引入了不存在于C+的特性,如:可變參數(shù)宏,和以數(shù)組作為參數(shù)的較佳處理;某些C+編譯器可能實(shí)現(xiàn)若干特性,以作為擴(kuò)展,但其余部分并不符合現(xiàn)存的C+特性)一個常見的混淆其實(shí)只是一個微妙的術(shù)語問題:由于它的演化來自C,在C+中的術(shù)語對象和C語言一樣是意味著存儲器區(qū)域,而不是類的實(shí)例,在其它絕大多數(shù)的面向?qū)ο笳Z言也是如此。舉例來說,在C和C+中,語句int i;定義一個int類型的對象,這就是變量的值i將在賦值時,所存入的存儲器區(qū)域。C+主要有三個編譯階段:預(yù)處理、轉(zhuǎn)譯成目標(biāo)代碼和鏈接(最后的兩個階段一般才視為真正的“編譯”)。在第一階段,預(yù)處理,會將預(yù)處理器指令替換成源代碼,然后送到下一個編譯階段。預(yù)處理指令的運(yùn)作方式是根據(jù)用戶定義的規(guī)則,簡單的把記號字符串行置換成其它的記號字符串行。它們進(jìn)行宏置換、含入其它的文件(由底層至高級的特性,例如包含模塊包單元組件)、條件式編譯和條件式含入。2.3 系統(tǒng)開發(fā)工具介紹系統(tǒng)開發(fā)集成環(huán)境:QT CreatorQt Creator是跨平臺的 Qt IDE, Qt Creator 是 Qt 被 Nokia 收購后推出的一款新的輕量級集成開發(fā)環(huán)境(IDE)。此 IDE 能夠跨平臺運(yùn)行,支持的系統(tǒng)包括 Linux(32 位及 64 位)、Mac OS X 以及 Windows。根據(jù)官方描述,Qt Creator 的設(shè)計(jì)目標(biāo)是使開發(fā)人員能夠利用 Qt 這個應(yīng)用程序框架更加快速及輕易的完成開發(fā)任務(wù)。QtCreator主要是為了幫助新Qt用戶更快速入門并運(yùn)行項(xiàng)目,還可提高有經(jīng)驗(yàn)的Qt開發(fā)人員的工作效率。使用強(qiáng)大的 C+ 代碼編輯器可快速編寫代碼。語法標(biāo)識和代碼完成功能輸入時進(jìn)行靜態(tài)代碼檢驗(yàn)以及提示樣式上下文相關(guān)的幫助代碼折疊括號匹配和括號選擇模式高級編輯功能采用C+語言設(shè)計(jì),編碼規(guī)范清晰,關(guān)鍵算法或處理須加注釋說明。Qt Creator是一款跨平臺的集成開發(fā)環(huán)境,特別針對Qt開發(fā)者,是QtSDK組成的一部分,可運(yùn)行于Windows, Linux/X11及Mac OS X等桌面操作系統(tǒng),允許開發(fā)者為多桌面環(huán)境及移動設(shè)備平臺創(chuàng)建應(yīng)用程序。它包括一個可視化調(diào)試工具和集成的 GUI 版面和外形設(shè)計(jì)師。這個編輯器的功能包括語法高亮度顯示和自動完成。Qt Creator 在 Linux 上,使用GCC的 C+ 編譯器。在 Windows,默認(rèn)安裝它可以使用MinGW或MSVC。從源代碼編譯時,也可以使用cdb。QT Creator是一個跨平臺的 C+ GUI 應(yīng)用構(gòu)架,它提供了豐富的窗口控件,具有面向?qū)ο?、易于擴(kuò)展、組件編程等特點(diǎn),最為引人注目的是目前在 Linux 上最為流行的 KDE 的桌面環(huán)境,它就是建立在 QT 庫的基礎(chǔ)之上。QT 支持多種平臺,隨著 KDE 的快速發(fā)展普及,QT 很有可能成為 Linux 系統(tǒng)窗口平臺上進(jìn)行軟件開發(fā)的 GUI 首選工具。信號和槽是 QT 的核心機(jī)制,要學(xué)會 QT 編程那么就必須對信號和槽機(jī)制有所了解。信號和槽機(jī)制是一種接口,應(yīng)用在對象之間的通信,是 QT 的核心特性,同時也是 QT 區(qū)別于其它種類工具包的重要地方。信號和槽機(jī)制是 QT 自行定義的一種通信機(jī)制,它獨(dú)立于標(biāo)準(zhǔn)的 C/C+ 語言,所以必須要正確的處理好信號和槽機(jī)制,這里借助moc(Meta Object Compiler)工具,該moc工具是一個 C+的預(yù)處理工具,為事件處理自動生成所需要的附加處理代碼。在我們所熟知的多種 GUI 工具包中,窗口小控件 (widget) 都有一個回調(diào)函數(shù)用來響應(yīng)它們能觸發(fā)的動作,這個回調(diào)函數(shù)通常是一個指針,它指向某個函數(shù)。但是,在 QT 中信號和槽機(jī)制取代了這些函數(shù)指針,使得人們在編寫這些通信程序時更為簡潔明了。 信號和槽機(jī)制能使用任意數(shù)量、任意類型的參數(shù)。在這里我設(shè)計(jì)的主窗口命名為:mainwindow。所有從 QObject 或其子類 ( 例如 Qwidget) 派生的類都可以包含信號和槽機(jī)制。當(dāng)對象改變狀態(tài)時,信號就由該對象發(fā)射出去,這就是對象所要做的事情,但它不知道另一端是誰在接收這個信號,這就是所謂的信息封裝,它保證對象被當(dāng)作一個真正的組件來使用。槽被用來接收信號,它們是對象成員函數(shù),稱為槽函數(shù)。但槽函數(shù)并不知道是否有信號和自己相連。而且,對象也不了解具體的通信機(jī)制。在編程時可以將多個信號與單個槽函數(shù)進(jìn)行連接,也可以將單個信號與多個槽函數(shù)進(jìn)行連接,甚至也可以將一個信號和另外一個信號相連,這時無論第一個信號在何時發(fā)射,那么都將立刻發(fā)射第二個信號??傊?,信號與槽機(jī)制構(gòu)成了一個很強(qiáng)大的控件編程機(jī)制。2.4 能力要求畢業(yè)設(shè)計(jì)對能力的包括: 查找文獻(xiàn)和運(yùn)用能力。 外語閱讀和翻譯能力。 獨(dú)立分析和思維能力。 獨(dú)立分析和思維能力。 書面和口頭表達(dá)能力。 綜合分析和設(shè)計(jì)能力。 使用計(jì)算機(jī)的能力。2.5 項(xiàng)目特點(diǎn)及意義隨著我國經(jīng)濟(jì)的快速發(fā)展,科學(xué)技術(shù)的不斷進(jìn)步,計(jì)算器的功能也越來越強(qiáng)大,從古代的算盤到現(xiàn)在的計(jì)算器這是一個飛速的發(fā)展。使得我們計(jì)算東西越來越便捷,速度越來越快,提高了效率,也提高了準(zhǔn)確度。主要有以下幾個特點(diǎn): 計(jì)算速度快,節(jié)省時間、人力。 科學(xué)計(jì)算窗口可以進(jìn)行各進(jìn)制的加減乘除運(yùn)算。 可對算式進(jìn)行回退、刪除等功能。 提供良好的人機(jī)交互界面,操作簡單快捷。因其方便快捷的操作模式,已經(jīng)被廣泛應(yīng)用于工程、學(xué)習(xí)、商業(yè)等日常生活中,極大的方便了人們對于數(shù)字的整合運(yùn)算。隨著社會的進(jìn)步和科技的發(fā)展,電子計(jì)算器作為一種方便、準(zhǔn)確、小巧的運(yùn)算工具早走入尋常百姓家,同時也成為學(xué)生的“寵兒”。不論是多么冗長的算式,多么復(fù)雜的運(yùn)算,只要輕輕點(diǎn)擊幾下按鍵,結(jié)果就馬上顯示在顯示屏上,結(jié)果既準(zhǔn)又快。在數(shù)學(xué)課程標(biāo)準(zhǔn)中也指出:“現(xiàn)代教育技術(shù)的發(fā)展對數(shù)學(xué)教育的價(jià)值、目標(biāo)、內(nèi)容以及學(xué)與教產(chǎn)生了重大的影響,數(shù)學(xué)課程的設(shè)計(jì)與實(shí)施應(yīng)重視運(yùn)用現(xiàn)代教育技術(shù),特別要充分考慮計(jì)算器、計(jì)算機(jī)對數(shù)學(xué)學(xué)習(xí)內(nèi)容和方式的影響,在力開發(fā)并向?qū)W生提供更為豐富的學(xué)習(xí)資源,把現(xiàn)代教育技術(shù)作為學(xué)生學(xué)習(xí)數(shù)學(xué)和解決問題強(qiáng)有力工具,致力于改變學(xué)生的學(xué)習(xí)方式,使學(xué)生樂意并有更多的投入到現(xiàn)實(shí)的、探索性的數(shù)學(xué)活動中去。而在我們?nèi)粘I钷k公中遇到的一些基本的數(shù)字運(yùn)算,以往簡單的口算筆算,然而現(xiàn)在不同了,人們對計(jì)算機(jī)、手機(jī)的依賴越來越高,遇到計(jì)算問題不再愿意去用腦去思考,而是交由手機(jī)或是電腦來完成。為了給自己設(shè)計(jì)一個能夠勝任自己學(xué)習(xí)工作的計(jì)算器,所以決定自己通過用所學(xué)的知識來編寫一個簡單的計(jì)算器。對于該項(xiàng)目我采用Qt Creator來編寫,方便自己使用,也可以方便別人,同時能使自己的技術(shù)水平得到鍛煉提高。3 需求分析3.1 功能需求與分析在程序設(shè)計(jì)中,通過設(shè)計(jì)、編制、調(diào)試一個模擬計(jì)算器的程序,加深對語法及語義分析原理的理解,并實(shí)現(xiàn)對命令語句的靈活應(yīng)用。在程序設(shè)計(jì)中,可以用兩種方法解決問題:一是傳統(tǒng)的結(jié)構(gòu)化程序設(shè)計(jì)方法,二是更先進(jìn)的面向?qū)ο蟪绦蛟O(shè)計(jì)方法。在面向?qū)ο蟪绦蛟O(shè)計(jì)中關(guān)鍵是如何將問題域中的實(shí)體(即日常所見的概念)抽取出來,作為C+程序中的類,而屬性與行為作為類的兩類要素通常是必不可少的,甚至還應(yīng)考慮類必須滿足的約束。我們?nèi)粘I畹拈_支,大額數(shù)字或是多倍小數(shù)的計(jì)算都需要計(jì)算器的幫助,處理數(shù)字的開方、冪運(yùn)算等都離不開計(jì)算器。雖然現(xiàn)在的計(jì)算器價(jià)格比較低廉,但是功能過于簡單的不能滿足個人需求,功能多的價(jià)格較貴,操作不便不說,很多功能根本用不到。所以,我們想到可不可以用自己的所學(xué)為自己設(shè)計(jì)開發(fā)一個屬于自己的簡單計(jì)算器來完成日常生活的需求。計(jì)算器是日常生活中十分便捷有效的工具,能實(shí)現(xiàn)加、減、乘、除、開方、求倒數(shù)等簡單運(yùn)算的工具。要實(shí)現(xiàn)計(jì)算功能,可以用C+和Qt的知識編寫程序來解決此問題。該計(jì)算器大大的降低了數(shù)字計(jì)算的難度及提高了計(jì)算的準(zhǔn)確度和精確度。該計(jì)算器使用非常簡單和方便,對廣大中小學(xué)生的學(xué)習(xí)有巨大幫助作用,也對在職人員的工作有點(diǎn)幫助作用。在該項(xiàng)目設(shè)計(jì)中,程序設(shè)計(jì)設(shè)計(jì)語言采用C+和Qt designer工具,在程序設(shè)計(jì)中,采用了結(jié)構(gòu)化與面向?qū)ο髢煞N解決問題的方法。3.2 安全性分析本軟件可供多用戶使用,這里首先談備份數(shù)據(jù),對一些用戶自有的數(shù)據(jù)是非常重要的,一旦用戶的自有數(shù)據(jù)遭到破壞,將造成不可彌補(bǔ)的損失,如果沒有備份的話,則后果是不堪設(shè)想。建議各級用戶都要及時妥善備份自有的數(shù)據(jù),如:歷年資料、重要方案、管理文獻(xiàn)、重要數(shù)據(jù)等,而且要備份到本機(jī)之外的存儲介質(zhì)上(如光盤、移動硬盤)。并且此程序界面使用Qt designer進(jìn)行布局,對各個空間進(jìn)行布局和排版時不容易出錯,快速便捷,提高軟件的安全性。3.3 可行性分析計(jì)算器是日常生活中非常便捷有效的小工具,它是一種小型的手持或桌面的設(shè)備,用于完成數(shù)學(xué)計(jì)算。一般的數(shù)學(xué)計(jì)算器與計(jì)算機(jī)是不一樣,數(shù)學(xué)計(jì)算器通常僅能完成算術(shù)運(yùn)算和少量邏輯操作并顯示其結(jié)果,但一般不能修改其程序。除了某些尺寸可比掌上型計(jì)算器的PDA之外,計(jì)算器的可攜性通常高于計(jì)算機(jī)。本款科學(xué)計(jì)算器具有普通計(jì)算和科學(xué)計(jì)算,能實(shí)現(xiàn)加減乘除等普通功能,還可以實(shí)現(xiàn)算是運(yùn)算,并且可以進(jìn)行進(jìn)制裝換,不再局限于十進(jìn)制,它大大的提高了我們的效率,節(jié)省了我們的時間,可促進(jìn)科技的發(fā)展,我對它的實(shí)現(xiàn)用Qt編寫,Qt designer設(shè)計(jì)的界面美觀,還可以用拖拽功能進(jìn)行設(shè)計(jì)控件的位置、大小、屬性、結(jié)構(gòu)等功能,這樣我們在編寫代碼時就不用浪費(fèi)時間對控件進(jìn)行聲明等代碼了。這降低了程序員的難度,提高了程序員的效率,并且上手快,對于第一次接觸這個軟件的人來說是一個不錯的選擇,具有一定的可行性。我們?nèi)粘I钪薪?jīng)常碰到計(jì)算的問題,而一個計(jì)算器軟件便變得非常有用,該計(jì)算器軟件所用的空間資源較少,對其他軟件影響較小。它的設(shè)計(jì)方法按照軟件工程的方法進(jìn)行,使用Qt具有良好美觀的界面,必要的信息存儲和和較好的健壯性,使用人員能夠快捷簡單的進(jìn)行操作,既可以快捷的獲得計(jì)算結(jié)果,個人們帶來方便,對人們的生活有一定的幫助。3.4 技術(shù)經(jīng)濟(jì)分析技術(shù)經(jīng)濟(jì)分析是研究技術(shù)領(lǐng)域的經(jīng)濟(jì)問題和經(jīng)濟(jì)規(guī)律的科學(xué),是研究一定技術(shù)條件下如何提高經(jīng)濟(jì)效果的科學(xué),是技術(shù)與經(jīng)濟(jì)的交叉。在技術(shù)上,用Qt編寫,結(jié)合C+,但大多數(shù)都是Qt封裝好的函數(shù)。用Qt designer進(jìn)行制作界面,做出的界面效果不僅美觀而且快捷方便。這里設(shè)計(jì)軟件所用的電腦是HP ProBook 6450b,開發(fā)工具QT從網(wǎng)上下載安裝。3.5 用例圖3.5.1 UML介紹統(tǒng)一建模語言(UML,英語:Unified Modeling Language)是非專利的第三代建模和規(guī)約語言。UML是一種開放的方法,用于說明、可視化、構(gòu)建和編寫一個正在開發(fā)的、面向?qū)ο蟮?、軟件密集系統(tǒng)的制品的開放方法。UML展現(xiàn)了一系列最佳工程實(shí)踐,這些最佳實(shí)踐在對大規(guī)模,復(fù)雜系統(tǒng)進(jìn)行建模方面,特別是在軟件架構(gòu)層次已經(jīng)被驗(yàn)證有效。UML集成了Booch,OMT和面向?qū)ο筌浖こ痰母拍?,將這些方法融合為單一的,通用的,并且可以廣泛使用的建模語言。UML打算成為可以對并發(fā)和分布式系統(tǒng)的標(biāo)準(zhǔn)建模語言。UML并不是一個工業(yè)標(biāo)準(zhǔn),但在Object Management Group的主持和資助下,UML正在逐漸成為工業(yè)標(biāo)準(zhǔn)。OMG之前曾經(jīng)呼吁業(yè)界向其提供有關(guān)對象導(dǎo)向的理論及實(shí)現(xiàn)的方法,以便制作一個嚴(yán)謹(jǐn)?shù)能浖UZ言(Software Modeling Language)。有很多業(yè)界的領(lǐng)袖亦真誠地回應(yīng)OMG,幫助她建立一個業(yè)界標(biāo)準(zhǔn)。許多人通過UML認(rèn)識了用例,UML定義為展現(xiàn)用例的圖形符號。 UML并沒有為描述用例定義書寫格式的標(biāo)準(zhǔn),因此許多人誤認(rèn)為這些圖形符號就是用例本身;然而,圖形符號只能給出最簡單的一個或一組用例的概要。UML是用例圖形符號最流行的標(biāo)準(zhǔn)。但是,還有一些其它的可選擇的標(biāo)準(zhǔn)。用例(英語:use case),或譯使用案例、用況,是軟件工程或系統(tǒng)工程中對系統(tǒng)如何反應(yīng)外界請求的描述,是一種通過用戶的使用場景來獲取需求的技術(shù)。每個用例提供了一個或多個場景,該場景說明了系統(tǒng)是如何和最終用戶或其它系統(tǒng)互動,也就是誰可以用系統(tǒng)做什么,從而獲得一個明確的業(yè)務(wù)目標(biāo)。編寫用例時要避免使用技術(shù)術(shù)語,而應(yīng)該用最終用戶或者領(lǐng)域?qū)<业恼Z言。用例一般是由軟件開發(fā)者和最終用戶共同創(chuàng)作的。在1986年,Ivar Jacobson,UML和瑞理統(tǒng)一過程2的重要貢獻(xiàn)者,提出了用例的概念。Jacobson的思想很有影響力,也很有發(fā)展力。之后在這個科目上又有很多貢獻(xiàn),在定義用例是什么和怎么有效的書寫用例方面最重要,最有影響力也最全面的,是Alistair Cockburn,他寫的書籍是編寫有效用例。用例迅速成為獲取功能需求最常用的手段。用例最初是和面向?qū)ο笠煌岢龅?。但是它不止局限于面向?qū)ο笙到y(tǒng),因?yàn)橛美龑?shí)質(zhì)上不是面向?qū)ο蟆S美龍D包含一組用例。每一用例用橢圓表示,放置在矩形框中;矩形框表示整個系統(tǒng)。矩形框外畫如圖所示的小人,表示參與者。參與者不一定是人,可以是其他軟件、硬件等等。某一參與者與某一用例用線連起來,表示該參與者和該用例有交互。3.5.2 科學(xué)計(jì)算器用例圖該科學(xué)計(jì)算器用例圖利用Visio制圖工具,用戶進(jìn)入主界面,有二進(jìn)制、八進(jìn)制、十進(jìn)制、十六進(jìn)制、畫圖板五個選項(xiàng),其中二進(jìn)制包括與運(yùn)算、或運(yùn)算、同或運(yùn)算、異或運(yùn)算,以及加減乘除運(yùn)算,八進(jìn)制包括加減乘除運(yùn)算,十進(jìn)制包括取模運(yùn)算、取整運(yùn)算、倒數(shù)運(yùn)算、冪運(yùn)算、加減乘除運(yùn)算,十六進(jìn)制包括與運(yùn)算、或運(yùn)算、同或運(yùn)算、異或運(yùn)算,以及加減乘除運(yùn)算??茖W(xué)計(jì)算器的用例圖如圖3-1所示。圖3-1 科學(xué)計(jì)算器用例圖3.5.3 畫圖板用例圖該畫圖板用例圖利用Visio制圖工具,用戶進(jìn)入主界面選擇畫圖板后,有一序列的畫圖工具可以選,包括圖片的打開保存、畫圖工具的選取、清除工具、屬性設(shè)置,其中畫圖工具有畫筆、畫刷、橢圓和矩形,清除工具包括橡皮擦和清屏。畫圖板的用例圖如圖3-2所示。圖3-2 畫圖板用例圖4 總體設(shè)計(jì)4.1 總體設(shè)計(jì)目標(biāo)該科學(xué)計(jì)算器包含的功能有:加、減、乘、除、平方、冪次方、倒數(shù)、取整、取模,二進(jìn)制、八進(jìn)制、十進(jìn)制和十六進(jìn)制之間的轉(zhuǎn)換以及位運(yùn)算,包括與運(yùn)算、或運(yùn)算、異或運(yùn)算、同或運(yùn)算,并且可以對顯示框有清零和回退的功能,同時在這些基本的運(yùn)算基礎(chǔ)上增加了畫圖板功能,畫圖板就是為了在運(yùn)算疲倦的時候用來娛樂的一種小工具,可以在畫圖板上畫一些簡單的圖形,選取顏色和風(fēng)格等簡單的功能。這款科學(xué)計(jì)算器功能強(qiáng)大,安全性高,界面簡潔友好,符合廣大用戶的基本需求,尤其是爭對計(jì)算機(jī)專業(yè)的學(xué)生,使用起來更為便捷。4.2 功能模塊設(shè)計(jì)4.2.1 科學(xué)計(jì)算功能模塊進(jìn)行加減乘除和取整取模倒數(shù)運(yùn)算。支持二、八、十六、十等不同進(jìn)制數(shù)據(jù)的直接輸入、計(jì)算和數(shù)制間的相互轉(zhuǎn)換,點(diǎn)擊等號鍵時直接給出當(dāng)前算式的運(yùn)算結(jié)果,實(shí)現(xiàn)各類不同函數(shù)及位運(yùn)算。(1) 科學(xué)計(jì)算器模塊圖如圖4-1所示。圖4-1 科學(xué)計(jì)算器模塊圖(2) 科學(xué)計(jì)算器二進(jìn)制模塊圖如圖4-2所示。圖4-2 二進(jìn)制模塊圖 滿足加減乘數(shù)四則運(yùn)算 實(shí)現(xiàn)位運(yùn)算與運(yùn)算 實(shí)現(xiàn)位運(yùn)算或運(yùn)算 實(shí)現(xiàn)位運(yùn)算同或運(yùn)算 實(shí)現(xiàn)位運(yùn)算異或運(yùn)算(3) 科學(xué)計(jì)算器八進(jìn)制模塊圖如圖4-3所示。圖4-3 八進(jìn)制模塊圖 實(shí)現(xiàn)基本的加減乘數(shù)四則運(yùn)算(4) 科學(xué)計(jì)算器十進(jìn)制模塊圖如圖4-4所示。圖4-4 十進(jìn)制模塊圖 實(shí)現(xiàn)基本的加減乘除運(yùn)算 實(shí)現(xiàn)倒數(shù)運(yùn)算 實(shí)現(xiàn)冪運(yùn)算,包括平方運(yùn)算 實(shí)現(xiàn)取整運(yùn)算 實(shí)現(xiàn)取模運(yùn)算(5) 科學(xué)計(jì)算器十六進(jìn)制模塊圖如圖4-5所示。圖4-5 十六進(jìn)制模塊圖 實(shí)現(xiàn)基本的技術(shù)減乘除四則運(yùn)算 實(shí)現(xiàn)位運(yùn)算與運(yùn)算 實(shí)現(xiàn)位運(yùn)算或運(yùn)算 實(shí)現(xiàn)位運(yùn)算同或運(yùn)算 實(shí)現(xiàn)位運(yùn)算異或運(yùn)算4.2.2 畫圖板功能模塊文件打開和保存的功能,畫圖工具橢圓、矩形、畫筆、畫刷、橡皮擦、清圖的功能,畫圖工具屬性的設(shè)置功能。畫圖板模塊圖如圖4-6所示。圖4-6 畫圖板模塊圖 圖片的打開和保存 畫圖工具的選取,比如橢圓、矩形 畫圖工具的選取,比如畫筆、畫刷5 詳細(xì)設(shè)計(jì)5.1 設(shè)計(jì)目的為了更好的滿足廣大計(jì)算機(jī)用戶對于計(jì)算器的需求,故在原有加減乘除四則基本運(yùn)算的基礎(chǔ)上,增加了二進(jìn)制、八進(jìn)制、十進(jìn)制、十六進(jìn)制的轉(zhuǎn)化,還添加了位運(yùn)算,包括與運(yùn)算、或運(yùn)算、異或運(yùn)算、同或運(yùn)算。該款計(jì)算器的設(shè)計(jì)更加新穎別致,更加符合計(jì)算機(jī)專業(yè)用戶的需求。5.2 設(shè)計(jì)說明5.2.1 UI界面風(fēng)格主界面采用Qt Creator工具設(shè)計(jì),使用多種布局管理器布局,能夠方便的對界面布局進(jìn)行修改,根據(jù)設(shè)計(jì)者的審美風(fēng)格進(jìn)行布局設(shè)計(jì)。主界面包含一個lineEdit文本顯示框,4個QRadioButton以及36個QPushButton按鈕,結(jié)合中國式審美風(fēng)格,這樣使界面變得更加美觀、整潔??茖W(xué)計(jì)算器主界面如圖5-1所示。圖5-1 科學(xué)計(jì)算器主界面5.2.2 科學(xué)計(jì)算器模塊(1) 二進(jìn)制運(yùn)行程序,在主界面選擇二進(jìn)制,二進(jìn)制的功能按鈕就會顯示,非二進(jìn)制的按鈕就會變灰色。二進(jìn)制功能: 加減乘除四則運(yùn)算 與運(yùn)算、或運(yùn)算、同或運(yùn)算、異或運(yùn)算 正負(fù)號選取 文本框清零功能 文本框回退功能(2) 八進(jìn)制運(yùn)行程序,在主界面選擇八進(jìn)制,八進(jìn)制的功能按鈕就會顯示,非八進(jìn)制的按鈕就會變灰色。八進(jìn)制功能: 加減乘除四則運(yùn)算 正負(fù)號選取 文本框清零功能 文本框回退功能(3) 十進(jìn)制運(yùn)行程序,在主界面選擇十進(jìn)制,十進(jìn)制的功能按鈕就會顯示,非十進(jìn)制的按鈕就會變灰色。十進(jìn)制功能: 加減乘除四則運(yùn)算 倒數(shù)運(yùn)算 冪運(yùn)算 取整運(yùn)算 取模運(yùn)算 正負(fù)號選取 文本框清零功能 文本框回退功能(4) 十六進(jìn)制運(yùn)行程序,在主界面選擇十六進(jìn)制,十六進(jìn)制的功能按鈕就會顯示,非十六進(jìn)制的按鈕就會變灰色。十六進(jìn)制功能: 加減乘除四則運(yùn)算 與運(yùn)算、或運(yùn)算、同或運(yùn)算、異或運(yùn)算 正負(fù)號選取 文本框清零功能 文本框回退功能 科學(xué)計(jì)算器進(jìn)制模塊5.2.3 畫圖板模塊運(yùn)行程序,在主界面選擇畫圖板按鈕,就會進(jìn)入畫圖板的界面,并顯示相應(yīng)的畫圖板功能按鈕。畫圖板功能: 保存、打開文件 畫圖工具圖形(橢圓、矩形)選取 畫圖工具畫筆、畫刷選取 清除功能(橡皮擦、清屏) 屬性設(shè)置6 系統(tǒng)實(shí)現(xiàn)6.1 系統(tǒng)功能介紹從功能上來講,本軟件的功能就是實(shí)現(xiàn)各種計(jì)算,包括普通計(jì)算和科學(xué)計(jì)算,普通計(jì)算包括加減乘除計(jì)算和算式計(jì)算,科學(xué)計(jì)算包括普通計(jì)算和二進(jìn)制的或與非運(yùn)算。該軟件還有畫圖功能,可以選取自己喜歡的畫圖工具并設(shè)置其屬性。6.2 科學(xué)計(jì)算器界面設(shè)計(jì)使用Qt designer進(jìn)行設(shè)計(jì),首先創(chuàng)建一個mainwindow.ui,這個界面為mainwindow。然后從左側(cè)的Widget Box里找相應(yīng)的控件添加到mainwindow里。首先拖出一個lineEdit控件作為算式顯示窗口和結(jié)果顯示窗口,在提取出36個QpushButton為0到F按鍵和加減乘除按鍵、小數(shù)點(diǎn)按鍵、正負(fù)號按鍵、等于按鍵、清零按鍵、刪除按鍵、回退按鍵、取整按鍵、取模按鍵、平方按鍵、冪次方按鍵、倒數(shù)按鍵、位運(yùn)算按鍵以及畫圖板按鍵。然后再把每個QpushButton名字改成相應(yīng)的符號,并且改對應(yīng)Qpushbutton的屬性,保存后行進(jìn)編譯,運(yùn)行程序就可以顯示相應(yīng)界面?,F(xiàn)在頭文件中對各個按鍵在私有的槽中進(jìn)行聲明, 例如:void on_pushButton_9_clicked();,就對9鍵進(jìn)行聲明,然后就可以在源文件中進(jìn)行編寫程序。void MainWindow:fun9() if(falg = 1)

溫馨提示

  • 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論