基于qt的科學(xué)計(jì)算器的設(shè)計(jì)與實(shí)現(xiàn)本科畢業(yè)論文設(shè)計(jì)_第1頁(yè)
基于qt的科學(xué)計(jì)算器的設(shè)計(jì)與實(shí)現(xiàn)本科畢業(yè)論文設(shè)計(jì)_第2頁(yè)
基于qt的科學(xué)計(jì)算器的設(shè)計(jì)與實(shí)現(xiàn)本科畢業(yè)論文設(shè)計(jì)_第3頁(yè)
基于qt的科學(xué)計(jì)算器的設(shè)計(jì)與實(shí)現(xiàn)本科畢業(yè)論文設(shè)計(jì)_第4頁(yè)
基于qt的科學(xué)計(jì)算器的設(shè)計(jì)與實(shí)現(xiàn)本科畢業(yè)論文設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩70頁(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)介

基于qt的科學(xué)計(jì)算器的設(shè)計(jì)與實(shí)現(xiàn)

畢業(yè)設(shè)計(jì)(論文)原創(chuàng)性聲明和使用授權(quán)說(shuō)明原創(chuàng)性聲明本人鄭重承諾:所呈交的畢業(yè)設(shè)計(jì)(論文),是我個(gè)人在指導(dǎo)教師的指導(dǎo)下進(jìn)行的研究工作及取得的成果。盡我所知,除文中特別加以標(biāo)注和致謝的地方外,不包含其他人或組織已經(jīng)發(fā)表或公布過(guò)的研究成果,也不包含我為獲得及其它教育機(jī)構(gòu)的學(xué)位或?qū)W歷而使用過(guò)的材料。對(duì)本研究提供過(guò)幫助和做出過(guò)貢獻(xiàn)的個(gè)人或集體,均已在文中作了明確的說(shuō)明并表示了謝意。作者簽名:日期:指導(dǎo)教師簽名:日期:使用授權(quán)說(shuō)明本人完全了解大學(xué)關(guān)于收集、保存、使用畢業(yè)設(shè)計(jì)(論文)的規(guī)定,即:按照學(xué)校要求提交畢業(yè)設(shè)計(jì)(論文)的印刷本和電子版本;學(xué)校有權(quán)保存畢業(yè)設(shè)計(jì)(論文)的印刷本和電子版,并提供目錄檢索與閱覽服務(wù);學(xué)??梢圆捎糜坝?、縮印、數(shù)字化或其它復(fù)制手段保存論文;在不以贏利為目的前提下,學(xué)??梢怨颊撐牡牟糠只蛉?jī)?nèi)容。作者簽名:日期:

學(xué)位論文原創(chuàng)性聲明本人鄭重聲明:所呈交的論文是本人在導(dǎo)師的指導(dǎo)下獨(dú)立進(jìn)行研究所取得的研究成果。除了文中特別加以標(biāo)注引用的內(nèi)容外,本論文不包含任何其他個(gè)人或集體已經(jīng)發(fā)表或撰寫(xiě)的成果作品。對(duì)本文的研究做出重要貢獻(xiàn)的個(gè)人和集體,均已在文中以明確方式標(biāo)明。本人完全意識(shí)到本聲明的法律后果由本人承擔(dān)。作者簽名: 日期:年月日學(xué)位論文版權(quán)使用授權(quán)書(shū)本學(xué)位論文作者完全了解學(xué)校有關(guān)保留、使用學(xué)位論文的規(guī)定,同意學(xué)校保留并向國(guó)家有關(guān)部門(mén)或機(jī)構(gòu)送交論文的復(fù)印件和電子版,允許論文被查閱和借閱。本人授權(quán)大學(xué)可以將本學(xué)位論文的全部或部分內(nèi)容編入有關(guān)數(shù)據(jù)庫(kù)進(jìn)行檢索,可以采用影印、縮印或掃描等復(fù)制手段保存和匯編本學(xué)位論文。涉密論文按學(xué)校規(guī)定處理。作者簽名: 日期:年月日導(dǎo)師簽名:日期:年月日

注意事項(xiàng)1.設(shè)計(jì)(論文)的內(nèi)容包括:1)封面(按教務(wù)處制定的標(biāo)準(zhǔn)封面格式制作)2)原創(chuàng)性聲明3)中文摘要(300字左右)、關(guān)鍵詞4)外文摘要、關(guān)鍵詞5)目次頁(yè)(附件不統(tǒng)一編入)6)論文主體部分:引言(或緒論)、正文、結(jié)論7)參考文獻(xiàn)8)致謝9)附錄(對(duì)論文支持必要時(shí))2.論文字?jǐn)?shù)要求:理工類(lèi)設(shè)計(jì)(論文)正文字?jǐn)?shù)不少于1萬(wàn)字(不包括圖紙、程序清單等),文科類(lèi)論文正文字?jǐn)?shù)不少于1.2萬(wàn)字。3.附件包括:任務(wù)書(shū)、開(kāi)題報(bào)告、外文譯文、譯文原文(復(fù)印件)。4.文字、圖表要求:1)文字通順,語(yǔ)言流暢,書(shū)寫(xiě)字跡工整,打印字體及大小符合要求,無(wú)錯(cuò)別字,不準(zhǔn)請(qǐng)他人代寫(xiě)2)工程設(shè)計(jì)類(lèi)題目的圖紙,要求部分用尺規(guī)繪制,部分用計(jì)算機(jī)繪制,所有圖紙應(yīng)符合國(guó)家技術(shù)標(biāo)準(zhǔn)規(guī)范。圖表整潔,布局合理,文字注釋必須使用工程字書(shū)寫(xiě),不準(zhǔn)用徒手畫(huà)3)畢業(yè)論文須用A4單面打印,論文50頁(yè)以上的雙面打印4)圖表應(yīng)繪制于無(wú)格子的頁(yè)面上5)軟件工程類(lèi)課題應(yīng)有程序清單,并提供電子文檔5.裝訂順序1)設(shè)計(jì)(論文)2)附件:按照任務(wù)書(shū)、開(kāi)題報(bào)告、外文譯文、譯文原文(復(fù)印件)次序裝訂

指導(dǎo)教師評(píng)閱書(shū)指導(dǎo)教師評(píng)價(jià):一、撰寫(xiě)(設(shè)計(jì))過(guò)程1、學(xué)生在論文(設(shè)計(jì))過(guò)程中的治學(xué)態(tài)度、工作精神□優(yōu)□良□中□及格□不及格2、學(xué)生掌握專(zhuān)業(yè)知識(shí)、技能的扎實(shí)程度□優(yōu)□良□中□及格□不及格3、學(xué)生綜合運(yùn)用所學(xué)知識(shí)和專(zhuān)業(yè)技能分析和解決問(wèn)題的能力□優(yōu)□良□中□及格□不及格4、研究方法的科學(xué)性;技術(shù)線路的可行性;設(shè)計(jì)方案的合理性□優(yōu)□良□中□及格□不及格5、完成畢業(yè)論文(設(shè)計(jì))期間的出勤情況□優(yōu)□良□中□及格□不及格二、論文(設(shè)計(jì))質(zhì)量1、論文(設(shè)計(jì))的整體結(jié)構(gòu)是否符合撰寫(xiě)規(guī)范?□優(yōu)□良□中□及格□不及格2、是否完成指定的論文(設(shè)計(jì))任務(wù)(包括裝訂及附件)?□優(yōu)□良□中□及格□不及格三、論文(設(shè)計(jì))水平1、論文(設(shè)計(jì))的理論意義或?qū)鉀Q實(shí)際問(wèn)題的指導(dǎo)意義□優(yōu)□良□中□及格□不及格2、論文的觀念是否有新意?設(shè)計(jì)是否有創(chuàng)意?□優(yōu)□良□中□及格□不及格3、論文(設(shè)計(jì)說(shuō)明書(shū))所體現(xiàn)的整體水平□優(yōu)□良□中□及格□不及格建議成績(jī):□優(yōu)□良□中□及格□不及格(在所選等級(jí)前的□內(nèi)畫(huà)“√”)指導(dǎo)教師:(簽名)單位:(蓋章)年月日

評(píng)閱教師評(píng)閱書(shū)評(píng)閱教師評(píng)價(jià):一、論文(設(shè)計(jì))質(zhì)量1、論文(設(shè)計(jì))的整體結(jié)構(gòu)是否符合撰寫(xiě)規(guī)范?□優(yōu)□良□中□及格□不及格2、是否完成指定的論文(設(shè)計(jì))任務(wù)(包括裝訂及附件)?□優(yōu)□良□中□及格□不及格二、論文(設(shè)計(jì))水平1、論文(設(shè)計(jì))的理論意義或?qū)鉀Q實(shí)際問(wèn)題的指導(dǎo)意義□優(yōu)□良□中□及格□不及格2、論文的觀念是否有新意?設(shè)計(jì)是否有創(chuàng)意?□優(yōu)□良□中□及格□不及格3、論文(設(shè)計(jì)說(shuō)明書(shū))所體現(xiàn)的整體水平□優(yōu)□良□中□及格□不及格建議成績(jī):□優(yōu)□良□中□及格□不及格(在所選等級(jí)前的□內(nèi)畫(huà)“√”)評(píng)閱教師:(簽名)單位:(蓋章)年月日i教研室(或答辯小組)及教學(xué)系意見(jiàn)教研室(或答辯小組)評(píng)價(jià):一、答辯過(guò)程1、畢業(yè)論文(設(shè)計(jì))的基本要點(diǎn)和見(jiàn)解的敘述情況□優(yōu)□良□中□及格□不及格2、對(duì)答辯問(wèn)題的反應(yīng)、理解、表達(dá)情況□優(yōu)□良□中□及格□不及格3、學(xué)生答辯過(guò)程中的精神狀態(tài)□優(yōu)□良□中□及格□不及格二、論文(設(shè)計(jì))質(zhì)量1、論文(設(shè)計(jì))的整體結(jié)構(gòu)是否符合撰寫(xiě)規(guī)范?□優(yōu)□良□中□及格□不及格2、是否完成指定的論文(設(shè)計(jì))任務(wù)(包括裝訂及附件)?□優(yōu)□良□中□及格□不及格三、論文(設(shè)計(jì))水平1、論文(設(shè)計(jì))的理論意義或?qū)鉀Q實(shí)際問(wèn)題的指導(dǎo)意義□優(yōu)□良□中□及格□不及格2、論文的觀念是否有新意?設(shè)計(jì)是否有創(chuàng)意?□優(yōu)□良□中□及格□不及格3、論文(設(shè)計(jì)說(shuō)明書(shū))所體現(xiàn)的整體水平□優(yōu)□良□中□及格□不及格評(píng)定成績(jī):□優(yōu)□良□中□及格□不及格教研室主任(或答辯小組組長(zhǎng)):(簽名)年月日教學(xué)系意見(jiàn):系主任:(簽名)年月日摘要隨著科技的飛速發(fā)展,人類(lèi)已經(jīng)進(jìn)入信息化的大時(shí)代。信息技術(shù)發(fā)展更是日新月異,計(jì)算器已經(jīng)進(jìn)入而且融入人們生活的各個(gè)領(lǐng)域,在現(xiàn)代生活中無(wú)處不在,大型復(fù)雜的計(jì)算是人腦和手工所不能勝任的,而且容易出錯(cuò)且準(zhǔn)確度不高??茖W(xué)計(jì)算器作為一種快速便捷的計(jì)算工具方便了人類(lèi)的使用。科學(xué)計(jì)算器包含簡(jiǎn)單的四則加減乘除運(yùn)算、復(fù)雜的數(shù)學(xué)運(yùn)算、二八十十六進(jìn)制之間的相互轉(zhuǎn)換等功能,具有美觀的界面,操作方便簡(jiǎn)單,能夠被用戶(hù)所接受,科學(xué)計(jì)算器在我們的日常生活、學(xué)習(xí)、工作中使用相當(dāng)廣泛,而且種類(lèi)繁多,所以科學(xué)計(jì)算器的程序設(shè)計(jì)因此應(yīng)運(yùn)產(chǎn)生。本文從課題背景、計(jì)算器的概況、計(jì)算器的相關(guān)技術(shù)、項(xiàng)目?jī)?nèi)容和要求、概要設(shè)計(jì)、設(shè)計(jì)流程、系統(tǒng)實(shí)現(xiàn)、系統(tǒng)調(diào)試等方面詳細(xì)說(shuō)明了小型科學(xué)計(jì)算器的開(kāi)發(fā)設(shè)計(jì)過(guò)程。軟件采用QtCreator設(shè)計(jì)界面結(jié)合C++面向?qū)ο缶幊陶Z(yǔ)言來(lái)開(kāi)發(fā)。科學(xué)計(jì)算器包含簡(jiǎn)單的四則運(yùn)算、復(fù)雜的數(shù)學(xué)表達(dá)式運(yùn)算、與或運(yùn)算、進(jìn)制之間的相互轉(zhuǎn)換、簡(jiǎn)易畫(huà)圖板等功能。該科學(xué)計(jì)算器具有界面可視化,用戶(hù)操作簡(jiǎn)單實(shí)用方便等優(yōu)點(diǎn),為用戶(hù)進(jìn)行復(fù)雜科學(xué)的計(jì)算提供了高效率的計(jì)算保證。關(guān)鍵詞:科學(xué)計(jì)算器;進(jìn)制轉(zhuǎn)換;QtCreator;C++;運(yùn)算DesignandimplementationofscientificcalculatorbasedonQTAbstractWiththerapiddevelopmentofscienceandtechnology,

mankindhas

enteredtheinformation

era.

Thedevelopmentofinformation

technologyis

changerapidly,thecomputershaveentered

and

integratedintovariousfields

amongpeople'slives,

evenareubiquitousinmodernlife.Thehuman’sbrain

andhand

havealreadycouldnotcompletedthecalculationoflargescalecomplex,

butalsopronetoerror

andaccuracyisnothigh.

Scientificcalculator

asakindof

quickandconvenient

calculationtool

isconvenientforhuman’s

using.

Scientificcalculator

contains

between

foursimple

add,subtract,multiplyanddivide

operations,

acomplexmathematicaloperation,two、eight、tenandsixteen’shexadecimal

conversion

functions,

witha

beautifulinterface,

simpleandconvenientoperation,and

can

beacceptedbyusers.Scientificcalculator

isquite

widely

inourdailylife,

study,

work,

andvarietyofclassifications,

sotheprogram’s

design

aboutscientificcalculator

is

produced.Fromthis

background,

calculator,

calculator

of

relatedtechnology,

projectcontent

andrequirements,

theoutlinedesign,

processdesign,

systemimplementation,

systemdebugging

aredescribedindetail

thedevelopmentanddesignprocessofthe

small.scientific

calculator.

TheprogramuseQt

Creatortooltodesigntheinterface

withthe

C++objectoriented

programminglanguage.Scientificcalculator

contains

foursimpleoperation,

complexmathematicalexpressionoperation,

and

operation,

or

betweenhexadecimal

conversion,

asimple

drawingboard

andotherfunctions.The

scientificcalculator

hasthe

advantagesof

visualinterface,

useroperation

issimpleandpractical

andconvenient,

andensuresthe

efficient

calculationfortheuserto

calculate

thecomplicatedscience.Keyword:Scientificcalculator;hexadecimal;Qt

Creator;C++;convenient目錄摘要 iAbstract ii1緒論 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)開(kāi)發(fā)技術(shù)和工具 52.1系統(tǒng)介紹 52.2系統(tǒng)開(kāi)發(fā)語(yǔ)言介紹 52.3系統(tǒng)開(kāi)發(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.1UML介紹 103.5.2科學(xué)計(jì)算器用例圖 113.5.3畫(huà)圖板用例圖 124總體設(shè)計(jì) 144.1總體設(shè)計(jì)目標(biāo) 144.2功能模塊設(shè)計(jì) 144.2.1科學(xué)計(jì)算功能模塊 144.2.2畫(huà)圖板功能模塊 175詳細(xì)設(shè)計(jì) 185.1設(shè)計(jì)目的 185.2設(shè)計(jì)說(shuō)明 185.2.1UI界面風(fēng)格 185.2.2科學(xué)計(jì)算器模塊 195.2.3畫(huà)圖板模塊 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畫(huà)圖板 366.3.1畫(huà)圖板界面設(shè)計(jì) 366.3.2畫(huà)圖板功能實(shí)現(xiàn) 377系統(tǒng)測(cè)試 397.1軟件測(cè)試概述 397.1.1測(cè)試目標(biāo) 397.1.2測(cè)試方法 397.2對(duì)本系統(tǒng)的測(cè)試 407.2.1配置問(wèn)題 407.2.2信號(hào)和槽的問(wèn)題 41結(jié)束語(yǔ) 42致謝 43參考文獻(xiàn) 44英語(yǔ)原文 45中文翻譯 491緒論1.1課題背景計(jì)算器(calculator)一般是指“電子計(jì)算器”。計(jì)算器能進(jìn)行數(shù)學(xué)運(yùn)算的手持機(jī)器,擁有集成電路芯片,但結(jié)構(gòu)簡(jiǎn)單,比現(xiàn)代電腦結(jié)構(gòu)簡(jiǎn)單得多,可以說(shuō)是第一代的電子計(jì)算機(jī)(電腦),且功能也較弱,但較為方便與廉價(jià),可廣泛運(yùn)用于商業(yè)交易中,是必備的辦公用品之一。本計(jì)算器可以進(jìn)行簡(jiǎn)單的四則運(yùn)算(加、減、乘、除)但僅限于十進(jìn)制下,還可以進(jìn)行簡(jiǎn)單的科學(xué)計(jì)算開(kāi)方、平方的計(jì)算,最多可以輸入256字符,操作簡(jiǎn)便,主要采用的技術(shù)為QtCreator,不僅能鍛煉自己的編程能力,還可以根據(jù)自己的需要來(lái)編寫(xiě)適合自己的計(jì)算器。隨著科學(xué)技術(shù)的不斷提高,計(jì)算機(jī)科學(xué)日漸成熟,其強(qiáng)大的功能已為人們深刻認(rèn)識(shí),它已進(jìn)入人類(lèi)社會(huì)的各個(gè)領(lǐng)域并發(fā)揮著越來(lái)越重要的作用。在科技論文寫(xiě)作過(guò)程中,可能參考或引用大量的文獻(xiàn)和資料(許多是以電子文檔的形式存在),如果以文件的形式存儲(chǔ),管理起來(lái)十分復(fù)雜,給日常工作帶來(lái)極大的不便,甚至造成電子文檔的破壞和丟失,安全性更是難以保證。對(duì)幫助功能也有保存添加等功能。具有無(wú)法比擬的優(yōu)點(diǎn).例如:檢索迅速、查找方便、可靠性高、保密性好、壽命長(zhǎng)、成本低等。這些優(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í)方式有了很大的變化?!墩n程標(biāo)準(zhǔn)》指出數(shù)學(xué)課程需大力加強(qiáng)現(xiàn)代信息技術(shù)的運(yùn)用,發(fā)揮現(xiàn)代信息技術(shù)對(duì)數(shù)學(xué)教學(xué)改革的積極作用,使現(xiàn)代信息技術(shù)能夠成為學(xué)生學(xué)習(xí)的有效工具,成為獲取信息資源和習(xí)資源的廣闊平臺(tái)。計(jì)算器是一種小型的手持或桌面的\o"計(jì)算工具"設(shè)備,用于完成\o"數(shù)學(xué)"數(shù)學(xué)\o"計(jì)算"計(jì)算。一般的數(shù)學(xué)計(jì)算器與\o"計(jì)算機(jī)"計(jì)算機(jī)是不一樣,數(shù)學(xué)計(jì)算器通常僅能完成\o"算術(shù)"算術(shù)運(yùn)算和少量\o"邏輯"邏輯操作并顯示其結(jié)果,但一般不能修改其\o"程序"程序。除了某些尺寸可比掌上型計(jì)算器的\o"PDA"PDA之外,計(jì)算器的可攜性通常高于計(jì)算機(jī)。19世紀(jì)\o"CharlesBabbage"巴貝奇將計(jì)算工具的概念更往前推,試圖創(chuàng)建第一個(gè)可編程式計(jì)算器,但他建造的機(jī)器太重了,因而無(wú)法操作(如圖1-1所示)。圖1-11914年的機(jī)械計(jì)算器20世紀(jì)\o"1970年代"70年代開(kāi)始,微處理器技術(shù)被吸納進(jìn)計(jì)算器制程,最初的微處理器是\o"Intel"Intel于1971年為\o"日本"日本名為\o"Busicom(頁(yè)面不存在)"Busicom(ビジコン)的計(jì)算器公司生產(chǎn)的,1972年\o"惠普"惠普推出第一款掌上科學(xué)計(jì)算器\o"HP-35"HP-35(如圖1-2所示)。圖1-2卡西歐fx-140計(jì)算器\o"夏普"夏普在此領(lǐng)域是計(jì)算器制造商中的佼佼者,他們最先在計(jì)算器中采用了液晶顯示屏,還是最早把太陽(yáng)能電池安裝到計(jì)算器的企業(yè)之一。從20世紀(jì)\o"1960年代"60年代到\o"1970年代"70年代的十多年里,夏普公司把生產(chǎn)計(jì)算器所需的原件降到了3個(gè)(以前需要3000多個(gè))——硅片、顯示屏和太陽(yáng)能電池,這大大降低了計(jì)算器的生產(chǎn)成本。計(jì)算器的出現(xiàn)是人類(lèi)科技發(fā)展時(shí)代的一個(gè)重要的里程碑。人們使用計(jì)算器是時(shí)代發(fā)展的趨勢(shì),計(jì)算器的出現(xiàn)和使用可以很方便的計(jì)算復(fù)雜的四則運(yùn)算等,極大的提高了計(jì)算的速度,快捷,方便,適當(dāng)?shù)氖褂糜?jì)算器可以促進(jìn)并提高學(xué)習(xí)和工作的效率,彌補(bǔ)了人們?cè)谀X力運(yùn)算和手工運(yùn)算速度慢不準(zhǔn)確的缺陷?,F(xiàn)在的生活工作和學(xué)習(xí)中,計(jì)算器的使用無(wú)處不在。計(jì)算器的教育用途方面,有些\o"學(xué)生"學(xué)生常在寫(xiě)數(shù)學(xué)作業(yè)時(shí)使用計(jì)算器。但因擔(dān)心學(xué)生的\o"算術(shù)"基本算術(shù)能力因而受到戕害,因此許多教育人士抗拒讓學(xué)生過(guò)早使用它。而某些課程限制使用計(jì)算器運(yùn)算算術(shù),直到學(xué)到更高級(jí)的計(jì)算技巧;其他人則不同意以紙筆或心算算術(shù)的重要性,他們更注重教授評(píng)估與解決問(wèn)題的技巧。然而,還是有一些其他顧慮:例如學(xué)生可能以錯(cuò)誤的方式使用計(jì)算器,并因?qū)τ?jì)算器的信賴(lài)而盲目相信答案。教師為了破解學(xué)生的盲信,常會(huì)指導(dǎo)學(xué)生以人工驗(yàn)算并確認(rèn)其答案的正確性。當(dāng)然,學(xué)生也有可能只運(yùn)用計(jì)算器取得答案,而不了解運(yùn)算的真實(shí)意義,例如輸入(-10)×(-10),獲得100,卻不了解背后“負(fù)負(fù)得正”的規(guī)則。在此情況下,計(jì)算器成為學(xué)生的依賴(lài)而非輔助工具,使學(xué)生在考試時(shí)對(duì)任何簡(jiǎn)單的運(yùn)算都以計(jì)算器求解,并降低應(yīng)答的速度。1.2.2科學(xué)計(jì)算器的發(fā)展前景科學(xué)計(jì)算器的出現(xiàn)是科學(xué)技術(shù)發(fā)展的重要里程碑,它最早還不是以科學(xué)計(jì)算器的身份出現(xiàn)在公眾的視野中,最早是被法國(guó)科學(xué)家引用算盤(pán)的原理,進(jìn)而發(fā)明了第一臺(tái)機(jī)械式計(jì)算器,但是只能做加減運(yùn)算,操作繁瑣,后來(lái)隨著時(shí)代的發(fā)展,科技也在不斷地進(jìn)步,德國(guó)科學(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)了很多功能,并且操作簡(jiǎn)單,使用方便。如今,科學(xué)計(jì)算器的使用在人們的生活工作學(xué)習(xí)中無(wú)處不在,隨著人們對(duì)計(jì)算器的需要,它也有了更近一步的發(fā)展,計(jì)算功能增多,就我所知,美國(guó)的高校使用的科學(xué)計(jì)算器可以計(jì)算微積分等運(yùn)算,更是在腦力上使人們得到了解放。技術(shù)在發(fā)展,人們的需求也在不在的變化和增多,科學(xué)計(jì)算器的也會(huì)隨著有更大的發(fā)展和變化,發(fā)展的道路一直在延續(xù)。1.3綜述科學(xué)計(jì)算器的相關(guān)技術(shù)計(jì)算機(jī)的程序可計(jì)算極為復(fù)雜的數(shù)學(xué)程序,這是一般計(jì)算器所無(wú)法相比的,不過(guò)現(xiàn)在也有一些功能較強(qiáng)大的計(jì)算器具有編程功能。計(jì)算器的復(fù)雜度隨著使用目的而有所不同。最簡(jiǎn)單的計(jì)算器模塊應(yīng)該包含下列部件:電源,例如\o"電池"電池或\o"太陽(yáng)能板"太陽(yáng)能板顯示幕,通常以\o"LED"LED光源或\o"LCD"LCD制成,可顯示一定數(shù)量的數(shù)字(通常為八、十、十二、十六位,以十二位最常見(jiàn))電子回路十個(gè)數(shù)字鍵,從0到9\o"小數(shù)"小數(shù)點(diǎn)等于符號(hào),用于顯示運(yùn)算解四個(gè)運(yùn)算函數(shù)(加減乘除)取消鍵,用于清空目前顯示的數(shù)字電源開(kāi)關(guān)其他基本\o"函數(shù)"函數(shù),例如求\o"平方根"平方根或\o"百分比"百分比鍵(%)更高級(jí)的模塊也許會(huì)有一個(gè)單數(shù)值記憶按鍵(M+,M-),可在需要時(shí)叫回20世紀(jì)\o"1980年代"80年代早期,基本計(jì)算器開(kāi)始置入其他小型設(shè)備,例如\o"手機(jī)"手機(jī)、\o"調(diào)用器"調(diào)用器或\o"腕表"腕表??茖W(xué)計(jì)算器或工程型計(jì)算器支持\o"三角函數(shù)"三角函數(shù)、\o"微積分"微積分、\o"統(tǒng)計(jì)"統(tǒng)計(jì)與\o"函數(shù)列表"其他函數(shù)。而最先進(jìn)的現(xiàn)代計(jì)算器甚至可顯示\o"圖形計(jì)算器"圖型,并且包含\o"計(jì)算機(jī)代數(shù)系統(tǒng)"計(jì)算機(jī)代數(shù)系統(tǒng)。這種計(jì)算器可以編寫(xiě)程序,且內(nèi)含了代數(shù)方程式求解程序、經(jīng)濟(jì)模型甚至游戲程序。這類(lèi)計(jì)算器可顯示填滿顯示屏的單一數(shù)值。并可將數(shù)字以\o"科學(xué)記數(shù)法"科學(xué)記數(shù)法表現(xiàn)至9.999999999*1099。如果用戶(hù)試圖輸入一過(guò)大的數(shù)值或運(yùn)算產(chǎn)生過(guò)大數(shù)值的算式(例如輸入100!,即100\o"階乘"階乘),則計(jì)算器僅顯示“錯(cuò)誤”(error)一詞。因?yàn)榇鎯?chǔ)器如此有限的計(jì)算器無(wú)法存儲(chǔ)如此巨大的輸入(>=10^160)?!板e(cuò)誤”也用以表示數(shù)學(xué)上未定義的函數(shù)或操作,例如除以零或?qū)ω?fù)數(shù)取平方根(除了某些高級(jí)的科學(xué)計(jì)算器擁有可處理復(fù)數(shù)的特殊函數(shù),大部分科學(xué)計(jì)算器不允許\o"復(fù)數(shù)"復(fù)數(shù)的存在)。某些少數(shù)計(jì)算器可分別這兩種錯(cuò)誤的不同,雖然用戶(hù)依然難以了解error1與error2的差別何在。僅有少數(shù)公司研發(fā)與制造現(xiàn)代職業(yè)工程師與經(jīng)濟(jì)學(xué)家用的計(jì)算器:最有名的是\o"Casio"Casio、\o"夏普"夏普、\o"HP"HP與\o"德州儀器"德州儀器。這些計(jì)算器都是\o"嵌入式系統(tǒng)"嵌入式系統(tǒng)的范型。此款簡(jiǎn)單的科學(xué)計(jì)算器能實(shí)現(xiàn)加、減、乘、除、平方、冪次方、倒數(shù)、取整、取模以及位運(yùn)算,再次基礎(chǔ)上又增加了二進(jìn)制、八進(jìn)制、十進(jìn)制和十六進(jìn)制之間的轉(zhuǎn)換與運(yùn)算,并且設(shè)計(jì)有簡(jiǎn)易的畫(huà)圖板,畫(huà)圖板內(nèi)有文件的打開(kāi)與保存,橢圓、矩形、畫(huà)筆、畫(huà)刷、橡皮擦和清屏畫(huà)圖工具,還有與其對(duì)應(yīng)的屬性設(shè)置等。這些功能的實(shí)現(xiàn),用C++面向?qū)ο缶幊陶Z(yǔ)言并在QTCreator開(kāi)發(fā)平臺(tái)上設(shè)計(jì)編寫(xiě)而成。該計(jì)算器大大的降低了數(shù)字計(jì)算的難度且提高了計(jì)算的準(zhǔn)確度和精確度。界面清晰,讓人一目了然。該計(jì)算器使用簡(jiǎn)單和操作方便,對(duì)人們?cè)谏詈蛯W(xué)習(xí)有巨大的幫助作用,也方便了飛專(zhuān)業(yè)人士在日常生活中的計(jì)算操作,也對(duì)在職人員的工作有點(diǎn)幫助作用。在計(jì)算器模塊的設(shè)計(jì)中,從操作角度出發(fā),充分考慮使用者,是該計(jì)算器成為使用者的掌上助手,解決生活學(xué)習(xí)中常見(jiàn)的計(jì)算問(wèn)題。2系統(tǒng)開(kāi)發(fā)技術(shù)和工具2.1系統(tǒng)介紹設(shè)計(jì)一個(gè)功能齊備的小型科學(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)各類(lèi)不同函數(shù)及位運(yùn)算。設(shè)計(jì)實(shí)現(xiàn)顯示窗口、運(yùn)算的回退、清零等功能。支持二、八、十六、十等不同進(jìn)制數(shù)據(jù)的直接輸入、計(jì)算和數(shù)制間的相互轉(zhuǎn)換,當(dāng)點(diǎn)擊等號(hào)鍵時(shí)直接給出當(dāng)前算式的運(yùn)算結(jié)果。

畫(huà)圖板窗口:支持文件的打開(kāi)和保存,有簡(jiǎn)單的矩形、橢圓、畫(huà)筆、橡皮擦、清除和筆刷工具,可選取并設(shè)置畫(huà)圖工具的顏色、寬度和風(fēng)格等基本屬性。極大的表現(xiàn)了畫(huà)圖板的基本功能。2.2系統(tǒng)開(kāi)發(fā)語(yǔ)言介紹開(kāi)發(fā)語(yǔ)言:C++C++語(yǔ)言是一種使用非常廣泛的計(jì)算機(jī)編程語(yǔ)言。C++是一種基于靜態(tài)數(shù)據(jù)類(lèi)型檢查的、支持多重編程范式的程序設(shè)計(jì)語(yǔ)言。C++語(yǔ)言支持過(guò)程化程序設(shè)計(jì)、數(shù)據(jù)抽象、面向?qū)ο蟪绦蛟O(shè)計(jì)、泛型程序設(shè)計(jì)等多種程序設(shè)計(jì)風(fēng)格。C++語(yǔ)言的設(shè)計(jì)目標(biāo),就是要讓C++既具有適合于系統(tǒng)程序設(shè)計(jì)的C語(yǔ)言所具有的可適應(yīng)性和高效性,又能在其程序組織結(jié)構(gòu)方面具有像Simula那樣的語(yǔ)言設(shè)施(Simula所支持的這種程序組織結(jié)構(gòu)通常被稱(chēng)為面向?qū)ο蟪绦蛟O(shè)計(jì)風(fēng)格)。在設(shè)計(jì)的時(shí)候,還做了很大的努力,使得引借自Simula的高層次的程序設(shè)計(jì)技術(shù)能夠應(yīng)用于系統(tǒng)程序設(shè)計(jì)之中。這即是說(shuō),C++所提供的抽象機(jī)制能夠被應(yīng)用于那些對(duì)效率和可適應(yīng)性具有極高要求的程序設(shè)計(jì)任務(wù)之中。采用C++面向?qū)ο笳Z(yǔ)言,利用抽象和封裝等機(jī)制,借助類(lèi)、對(duì)象、繼承、傳遞等技術(shù)進(jìn)行構(gòu)造的軟件開(kāi)發(fā)方法,它的出發(fā)點(diǎn)和目標(biāo)就是使人們?cè)谙胍粋€(gè)問(wèn)題的過(guò)程和方法時(shí)與分析、設(shè)計(jì)和實(shí)現(xiàn)系統(tǒng)的過(guò)程和方法盡最大可能的一致,即描述問(wèn)題的認(rèn)知空間以及解決問(wèn)題的方法空間要在結(jié)構(gòu)上盡可能的一致,這樣面向?qū)ο蠓椒ㄗ匀坏啬M了人類(lèi)認(rèn)知世界的方式,所以這是一個(gè)很好的思維認(rèn)知的方法,也是特別好的一種軟件開(kāi)發(fā)方法。1998的C++\o"Standardization(頁(yè)面不存在)"標(biāo)準(zhǔn)分為兩個(gè)部分:\o"核心語(yǔ)言"核心語(yǔ)言和\o"C++標(biāo)準(zhǔn)程序庫(kù)"C++標(biāo)準(zhǔn)程序庫(kù);后者包含了大部分\o"標(biāo)準(zhǔn)模板庫(kù)"標(biāo)準(zhǔn)模板庫(kù)和C標(biāo)準(zhǔn)程序庫(kù)的稍加修改版本。存在許多不屬于標(biāo)準(zhǔn)部分的C++程序庫(kù),且使用外部鏈接,程序庫(kù)甚至可以用\o"C"C撰寫(xiě)。\o"C++標(biāo)準(zhǔn)程序庫(kù)"C++標(biāo)準(zhǔn)程序庫(kù)充分吸收了C標(biāo)準(zhǔn)程序庫(kù),并佐以少許的修改,使其與C++良好的運(yùn)作。另一個(gè)大型的程序庫(kù)部分,是以\o"標(biāo)準(zhǔn)模板庫(kù)"標(biāo)準(zhǔn)模板庫(kù)(STL)為基礎(chǔ),STL于1994年2月正式成為ANSI/ISOC++。它提供了實(shí)用的工具,如\o"容器"容器(如:\o"Array"矢量和\o"鏈表"鏈表),\o"迭代器"迭代器(廣義\o"指針"指針)提供容器以類(lèi)似數(shù)組的訪問(wèn)方式,以及\o"算法"算法進(jìn)行搜索和排序的運(yùn)算。此外還提供了(multi)map(\o"關(guān)系數(shù)組(頁(yè)面不存在)"關(guān)系數(shù)組)和(multi)set,它們都使用兼容的界面。因此,以下成為可能,使用模板撰寫(xiě)泛型算法,它可以和任何容器或在任何以迭代器定義的串行上運(yùn)作。如同C,使用#include\o"Directive(programming)(頁(yè)面不存在)"指令包含\o"標(biāo)準(zhǔn)表頭(頁(yè)面不存在)"標(biāo)準(zhǔn)表頭,即可訪問(wèn)\o"程序庫(kù)"程序庫(kù)里的功能。C++提供69個(gè)標(biāo)準(zhǔn)表頭,其中19個(gè)不再贊成使用。使用標(biāo)準(zhǔn)庫(kù)(例如:使用std::vector或std::string來(lái)取代C風(fēng)格的數(shù)組)有助于導(dǎo)向更安全和更靈活的軟件。\o"STL"STL在納入C++標(biāo)準(zhǔn)以前,是來(lái)自\o"Hewlett-Packard"HP和后來(lái)的\o"SiliconGraphics"SGI的第三方程式庫(kù),標(biāo)準(zhǔn)中并未稱(chēng)之為“STL”,它只是標(biāo)準(zhǔn)庫(kù)中的一部分,但仍有許多人使用這個(gè)名稱(chēng),以別于其它的標(biāo)準(zhǔn)庫(kù)(輸入/輸出流、國(guó)際化、診斷、C程序庫(kù)子集,等等)。和C語(yǔ)言相比,C++引入了更多的特性,包括:陳述性聲明,類(lèi)似函數(shù)的強(qiáng)制轉(zhuǎn)型,new/delete操作符,布林類(lèi)型,參考類(lèi)型,默認(rèn)參數(shù),函數(shù)重載,命名空間,類(lèi)型(包括所有和類(lèi)型相關(guān)的特性,如繼承、成員函數(shù)、虛函數(shù)、抽象類(lèi)型和構(gòu)造函數(shù)),操作符重載,模板,::操作符,異常處理和運(yùn)行時(shí)期識(shí)別。和普遍認(rèn)為的相反,C++不是第一個(gè)正式引入const關(guān)鍵字的語(yǔ)言。80年代早期,BjarneStroustrup和DennisRetchie討論之后提供了在C語(yǔ)言中readonly/writeonly的實(shí)現(xiàn)機(jī)制,并在帶類(lèi)型的C中取得了一定經(jīng)驗(yàn)。關(guān)鍵字const正式引入C語(yǔ)言是在ANSIC89。這早于第一個(gè)C++國(guó)際標(biāo)準(zhǔn)近十年,但此時(shí)const已被C++實(shí)現(xiàn)普遍采用。C++在某些案例中(見(jiàn)下“與C不兼容之處”),進(jìn)行比C還要多的類(lèi)型檢查。以“//”起始作為注解起源自C的前身\o"BCPL"BCPL,而后被重新引入到C++。C++的一些特性,C不久之后也采用了,包括在for循環(huán)的括號(hào)中聲明,C++風(fēng)格的注解(使用//符號(hào),和inline,雖然C99定義的inline關(guān)鍵字與C++的定義不兼容。不過(guò),\o"C(programminglanguage)"C99也引入了不存在于C++的特性,如:可變參數(shù)\o"宏"宏,和以數(shù)組作為參數(shù)的較佳處理;某些C++編譯器可能實(shí)現(xiàn)若干特性,以作為擴(kuò)展,但其余部分并不符合現(xiàn)存的C++特性)一個(gè)常見(jiàn)的混淆其實(shí)只是一個(gè)微妙的術(shù)語(yǔ)問(wèn)題:由于它的演化來(lái)自C,在C++中的術(shù)語(yǔ)對(duì)象和C語(yǔ)言一樣是意味著存儲(chǔ)器區(qū)域,而不是類(lèi)的實(shí)例,在其它絕大多數(shù)的\o"面向?qū)ο?面向?qū)ο笳Z(yǔ)言也是如此。舉例來(lái)說(shuō),在C和C++中,語(yǔ)句inti;定義一個(gè)int類(lèi)型的對(duì)象,這就是變量的值i將在賦值時(shí),所存入的存儲(chǔ)器區(qū)域。C++主要有三個(gè)編譯階段:預(yù)處理、轉(zhuǎn)譯成目標(biāo)代碼和鏈接(最后的兩個(gè)階段一般才視為真正的“編譯”)。在第一階段,預(yù)處理,會(huì)將預(yù)處理器指令替換成源代碼,然后送到下一個(gè)編譯階段。預(yù)處理指令的運(yùn)作方式是根據(jù)用戶(hù)定義的規(guī)則,簡(jiǎn)單的把記號(hào)字符串行置換成其它的記號(hào)字符串行。它們進(jìn)行\(zhòng)o"宏置換(頁(yè)面不存在)"宏置換、含入其它的文件(由底層至高級(jí)的特性,例如包含模塊/包/單元/組件)、條件式編譯和條件式含入。2.3系統(tǒng)開(kāi)發(fā)工具介紹系統(tǒng)開(kāi)發(fā)集成環(huán)境:QTCreatorQtCreator是跨平臺(tái)的QtIDE,QtCreator是Qt被Nokia收購(gòu)后推出的一款新的輕量級(jí)集成開(kāi)發(fā)環(huán)境(IDE)。此IDE能夠跨平臺(tái)運(yùn)行,支持的系統(tǒng)包括Linux(32位及64位)、MacOSX以及Windows。根據(jù)官方描述,QtCreator的設(shè)計(jì)目標(biāo)是使開(kāi)發(fā)人員能夠利用Qt這個(gè)應(yīng)用程序框架更加快速及輕易的完成開(kāi)發(fā)任務(wù)。QtCreator

主要是為了幫助新

Qt

用戶(hù)更快速入門(mén)并運(yùn)行項(xiàng)目,還可提高有經(jīng)驗(yàn)的

Qt

開(kāi)發(fā)人員的工作效率。使用強(qiáng)大的C++代碼編輯器可快速編寫(xiě)代碼。語(yǔ)法標(biāo)識(shí)和代碼完成功能輸入時(shí)進(jìn)行靜態(tài)代碼檢驗(yàn)以及提示樣式上下文相關(guān)的幫助代碼折疊括號(hào)匹配和括號(hào)選擇模式高級(jí)編輯功能采用C++語(yǔ)言設(shè)計(jì),編碼規(guī)范清晰,關(guān)鍵算法或處理須加注釋說(shuō)明。QtCreator

是一款跨平臺(tái)的集成開(kāi)發(fā)環(huán)境,特別針對(duì)Qt開(kāi)發(fā)者,是\o"Qt"Qt

SDK組成的一部分,可運(yùn)行于Windows,Linux/X11及MacOSX等桌面操作系統(tǒng),允許開(kāi)發(fā)者為多桌面環(huán)境及移動(dòng)設(shè)備平臺(tái)創(chuàng)建應(yīng)用程序。它包括一個(gè)可視化調(diào)試工具和集成的GUI版面和外形設(shè)計(jì)師。這個(gè)編輯器的功能包括\o"語(yǔ)法高亮度顯示"語(yǔ)法高亮度顯示和\o"自動(dòng)完成"自動(dòng)完成。QtCreator在Linux上,使用

\o"GCC"GCC

的C++編譯器。在Windows,默認(rèn)安裝它可以使用\o"MinGW"MinGW

\o"MicrosoftVisualC++"MSVC。從源代碼編譯時(shí),也可以使用

\o"MicrosoftConsoleDebugger(頁(yè)面不存在)"cdb。QTCreator是一個(gè)跨平臺(tái)的C++GUI應(yīng)用構(gòu)架,它提供了豐富的窗口控件,具有面向?qū)ο蟆⒁子跀U(kuò)展、組件編程等特點(diǎn),最為引人注目的是目前在Linux上最為流行的KDE的桌面環(huán)境,它就是建立在QT庫(kù)的基礎(chǔ)之上。QT支持多種平臺(tái),隨著KDE的快速發(fā)展普及,QT很有可能成為L(zhǎng)inux系統(tǒng)窗口平臺(tái)上進(jìn)行軟件開(kāi)發(fā)的GUI首選工具。信號(hào)和槽是QT的核心機(jī)制,要學(xué)會(huì)QT編程那么就必須對(duì)信號(hào)和槽機(jī)制有所了解。信號(hào)和槽機(jī)制是一種接口,應(yīng)用在對(duì)象之間的通信,是QT的核心特性,同時(shí)也是QT區(qū)別于其它種類(lèi)工具包的重要地方。信號(hào)和槽機(jī)制是QT自行定義的一種通信機(jī)制,它獨(dú)立于標(biāo)準(zhǔn)的C/C++語(yǔ)言,所以必須要正確的處理好信號(hào)和槽機(jī)制,這里借助moc(MetaObjectCompiler)工具,該moc工具是一個(gè)C++的預(yù)處理工具,為事件處理自動(dòng)生成所需要的附加處理代碼。在我們所熟知的多種GUI工具包中,窗口小控件(widget)都有一個(gè)回調(diào)函數(shù)用來(lái)響應(yīng)它們能觸發(fā)的動(dòng)作,這個(gè)回調(diào)函數(shù)通常是一個(gè)指針,它指向某個(gè)函數(shù)。但是,在QT中信號(hào)和槽機(jī)制取代了這些函數(shù)指針,使得人們?cè)诰帉?xiě)這些通信程序時(shí)更為簡(jiǎn)潔明了。信號(hào)和槽機(jī)制能使用任意數(shù)量、任意類(lèi)型的參數(shù)。在這里我設(shè)計(jì)的主窗口命名為:mainwindow。所有從QObject或其子類(lèi)(例如Qwidget)派生的類(lèi)都可以包含信號(hào)和槽機(jī)制。當(dāng)對(duì)象改變狀態(tài)時(shí),信號(hào)就由該對(duì)象發(fā)射出去,這就是對(duì)象所要做的事情,但它不知道另一端是誰(shuí)在接收這個(gè)信號(hào),這就是所謂的信息封裝,它保證對(duì)象被當(dāng)作一個(gè)真正的組件來(lái)使用。槽被用來(lái)接收信號(hào),它們是對(duì)象成員函數(shù),稱(chēng)為槽函數(shù)。但槽函數(shù)并不知道是否有信號(hào)和自己相連。而且,對(duì)象也不了解具體的通信機(jī)制。在編程時(shí)可以將多個(gè)信號(hào)與單個(gè)槽函數(shù)進(jìn)行連接,也可以將單個(gè)信號(hào)與多個(gè)槽函數(shù)進(jìn)行連接,甚至也可以將一個(gè)信號(hào)和另外一個(gè)信號(hào)相連,這時(shí)無(wú)論第一個(gè)信號(hào)在何時(shí)發(fā)射,那么都將立刻發(fā)射第二個(gè)信號(hào)??傊?,信號(hào)與槽機(jī)制構(gòu)成了一個(gè)很強(qiáng)大的控件編程機(jī)制。2.4能力要求畢業(yè)設(shè)計(jì)對(duì)能力的包括:查找文獻(xiàn)和運(yùn)用能力。外語(yǔ)閱讀和翻譯能力。獨(dú)立分析和思維能力。獨(dú)立分析和思維能力。書(shū)面和口頭表達(dá)能力。綜合分析和設(shè)計(jì)能力。使用計(jì)算機(jī)的能力。2.5項(xiàng)目特點(diǎn)及意義隨著我國(guó)經(jīng)濟(jì)的快速發(fā)展,科學(xué)技術(shù)的不斷進(jìn)步,計(jì)算器的功能也越來(lái)越強(qiáng)大,從古代的算盤(pán)到現(xiàn)在的計(jì)算器這是一個(gè)飛速的發(fā)展。使得我們計(jì)算東西越來(lái)越便捷,速度越來(lái)越快,提高了效率,也提高了準(zhǔn)確度。主要有以下幾個(gè)特點(diǎn):計(jì)算速度快,節(jié)省時(shí)間、人力。科學(xué)計(jì)算窗口可以進(jìn)行各進(jìn)制的加減乘除運(yùn)算??蓪?duì)算式進(jìn)行回退、刪除等功能。提供良好的人機(jī)交互界面,操作簡(jiǎn)單快捷。因其方便快捷的操作模式,已經(jīng)被廣泛應(yīng)用于工程、學(xué)習(xí)、商業(yè)等日常生活中,極大的方便了人們對(duì)于數(shù)字的整合運(yùn)算。隨著社會(huì)的進(jìn)步和科技的發(fā)展,電子計(jì)算器作為一種方便、準(zhǔn)確、小巧的運(yùn)算工具早走入尋常百姓家,同時(shí)也成為學(xué)生的“寵兒”。不論是多么冗長(zhǎng)的算式,多么復(fù)雜的運(yùn)算,只要輕輕點(diǎn)擊幾下按鍵,結(jié)果就馬上顯示在顯示屏上,結(jié)果既準(zhǔn)又快。在《數(shù)學(xué)課程標(biāo)準(zhǔn)》中也指出:“現(xiàn)代教育技術(shù)的發(fā)展對(duì)數(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ī)對(duì)數(shù)學(xué)學(xué)習(xí)內(nèi)容和方式的影響,在力開(kāi)發(fā)并向?qū)W生提供更為豐富的學(xué)習(xí)資源,把現(xiàn)代教育技術(shù)作為學(xué)生學(xué)習(xí)數(shù)學(xué)和解決問(wèn)題強(qiáng)有力工具,致力于改變學(xué)生的學(xué)習(xí)方式,使學(xué)生樂(lè)意并有更多的投入到現(xiàn)實(shí)的、探索性的數(shù)學(xué)活動(dòng)中去。而在我們?nèi)粘I钷k公中遇到的一些基本的數(shù)字運(yùn)算,以往簡(jiǎn)單的口算筆算,然而現(xiàn)在不同了,人們對(duì)計(jì)算機(jī)、手機(jī)的依賴(lài)越來(lái)越高,遇到計(jì)算問(wèn)題不再愿意去用腦去思考,而是交由手機(jī)或是電腦來(lái)完成。為了給自己設(shè)計(jì)一個(gè)能夠勝任自己學(xué)習(xí)工作的計(jì)算器,所以決定自己通過(guò)用所學(xué)的知識(shí)來(lái)編寫(xiě)一個(gè)簡(jiǎn)單的計(jì)算器。對(duì)于該項(xiàng)目我采用QtCreator來(lái)編寫(xiě),方便自己使用,也可以方便別人,同時(shí)能使自己的技術(shù)水平得到鍛煉提高。3需求分析3.1功能需求與分析在程序設(shè)計(jì)中,通過(guò)設(shè)計(jì)、編制、調(diào)試一個(gè)模擬計(jì)算器的程序,加深對(duì)語(yǔ)法及語(yǔ)義分析原理的理解,并實(shí)現(xiàn)對(duì)命令語(yǔ)句的靈活應(yīng)用。在程序設(shè)計(jì)中,可以用兩種方法解決問(wèn)題:一是傳統(tǒng)的結(jié)構(gòu)化程序設(shè)計(jì)方法,二是更先進(jìn)的面向?qū)ο蟪绦蛟O(shè)計(jì)方法。在面向?qū)ο蟪绦蛟O(shè)計(jì)中關(guān)鍵是如何將問(wèn)題域中的實(shí)體(即日常所見(jiàn)的概念)抽取出來(lái),作為C++程序中的類(lèi),而屬性與行為作為類(lèi)的兩類(lèi)要素通常是必不可少的,甚至還應(yīng)考慮類(lèi)必須滿足的約束。我們?nèi)粘I畹拈_(kāi)支,大額數(shù)字或是多倍小數(shù)的計(jì)算都需要計(jì)算器的幫助,處理數(shù)字的開(kāi)方、冪運(yùn)算等都離不開(kāi)計(jì)算器。雖然現(xiàn)在的計(jì)算器價(jià)格比較低廉,但是功能過(guò)于簡(jiǎn)單的不能滿足個(gè)人需求,功能多的價(jià)格較貴,操作不便不說(shuō),很多功能根本用不到。所以,我們想到可不可以用自己的所學(xué)為自己設(shè)計(jì)開(kāi)發(fā)一個(gè)屬于自己的簡(jiǎn)單計(jì)算器來(lái)完成日常生活的需求。計(jì)算器是日常生活中十分便捷有效的工具,能實(shí)現(xiàn)加、減、乘、除、開(kāi)方、求倒數(shù)等簡(jiǎn)單運(yùn)算的工具。要實(shí)現(xiàn)計(jì)算功能,可以用C++和Qt的知識(shí)編寫(xiě)程序來(lái)解決此問(wèn)題。該計(jì)算器大大的降低了數(shù)字計(jì)算的難度及提高了計(jì)算的準(zhǔn)確度和精確度。該計(jì)算器使用非常簡(jiǎn)單和方便,對(duì)廣大中小學(xué)生的學(xué)習(xí)有巨大幫助作用,也對(duì)在職人員的工作有點(diǎn)幫助作用。在該項(xiàng)目設(shè)計(jì)中,程序設(shè)計(jì)設(shè)計(jì)語(yǔ)言采用C++和Qtdesigner工具,在程序設(shè)計(jì)中,采用了結(jié)構(gòu)化與面向?qū)ο髢煞N解決問(wèn)題的方法。3.2安全性分析本軟件可供多用戶(hù)使用,這里首先談備份數(shù)據(jù),對(duì)一些用戶(hù)自有的數(shù)據(jù)是非常重要的,一旦用戶(hù)的自有數(shù)據(jù)遭到破壞,將造成不可彌補(bǔ)的損失,如果沒(méi)有備份的話,則后果是不堪設(shè)想。建議各級(jí)用戶(hù)都要及時(shí)妥善備份自有的數(shù)據(jù),如:歷年資料、重要方案、管理文獻(xiàn)、重要數(shù)據(jù)等,而且要備份到本機(jī)之外的存儲(chǔ)介質(zhì)上(如光盤(pán)、移動(dòng)硬盤(pán))。并且此程序界面使用Qtdesigner進(jìn)行布局,對(duì)各個(gè)空間進(jìn)行布局和排版時(shí)不容易出錯(cuò),快速便捷,提高軟件的安全性。3.3可行性分析計(jì)算器是日常生活中非常便捷有效的小工具,它是一種小型的手持或桌面的\o"計(jì)算工具"設(shè)備,用于完成\o"數(shù)學(xué)"數(shù)學(xué)\o"計(jì)算"計(jì)算。一般的數(shù)學(xué)計(jì)算器與\o"計(jì)算機(jī)"計(jì)算機(jī)是不一樣,數(shù)學(xué)計(jì)算器通常僅能完成\o"算術(shù)"算術(shù)運(yùn)算和少量\o"邏輯"邏輯操作并顯示其結(jié)果,但一般不能修改其\o"程序"程序。除了某些尺寸可比掌上型計(jì)算器的\o"PDA"PDA之外,計(jì)算器的可攜性通常高于計(jì)算機(jī)。本款科學(xué)計(jì)算器具有普通計(jì)算和科學(xué)計(jì)算,能實(shí)現(xiàn)加減乘除等普通功能,還可以實(shí)現(xiàn)算是運(yùn)算,并且可以進(jìn)行進(jìn)制裝換,不再局限于十進(jìn)制,它大大的提高了我們的效率,節(jié)省了我們的時(shí)間,可促進(jìn)科技的發(fā)展,我對(duì)它的實(shí)現(xiàn)用Qt編寫(xiě),Qtdesigner設(shè)計(jì)的界面美觀,還可以用拖拽功能進(jìn)行設(shè)計(jì)控件的位置、大小、屬性、結(jié)構(gòu)等功能,這樣我們?cè)诰帉?xiě)代碼時(shí)就不用浪費(fèi)時(shí)間對(duì)控件進(jìn)行聲明等代碼了。這降低了程序員的難度,提高了程序員的效率,并且上手快,對(duì)于第一次接觸這個(gè)軟件的人來(lái)說(shuō)是一個(gè)不錯(cuò)的選擇,具有一定的可行性。我們?nèi)粘I钪薪?jīng)常碰到計(jì)算的問(wèn)題,而一個(gè)計(jì)算器軟件便變得非常有用,該計(jì)算器軟件所用的空間資源較少,對(duì)其他軟件影響較小。它的設(shè)計(jì)方法按照軟件工程的方法進(jìn)行,使用Qt具有良好美觀的界面,必要的信息存儲(chǔ)和和較好的健壯性,使用人員能夠快捷簡(jiǎn)單的進(jìn)行操作,既可以快捷的獲得計(jì)算結(jié)果,個(gè)人們帶來(lái)方便,對(duì)人們的生活有一定的幫助。3.4技術(shù)經(jīng)濟(jì)分析技術(shù)經(jīng)濟(jì)分析是研究技術(shù)領(lǐng)域的經(jīng)濟(jì)問(wèn)題和經(jīng)濟(jì)規(guī)律的科學(xué),是研究一定技術(shù)條件下如何提高經(jīng)濟(jì)效果的科學(xué),是技術(shù)與經(jīng)濟(jì)的交叉。在技術(shù)上,用Qt編寫(xiě),結(jié)合C++,但大多數(shù)都是Qt封裝好的函數(shù)。用Qtdesigner進(jìn)行制作界面,做出的界面效果不僅美觀而且快捷方便。這里設(shè)計(jì)軟件所用的電腦是HPProBook6450b,開(kāi)發(fā)工具QT從網(wǎng)上下載安裝。3.5用例圖3.5.1UML介紹統(tǒng)一建模語(yǔ)言(UML,\o"英語(yǔ)"英語(yǔ):UnifiedModelingLanguage)是非專(zhuān)利的第三代\o"對(duì)象建模語(yǔ)言(頁(yè)面不存在)"建模和\o"規(guī)約語(yǔ)言"規(guī)約語(yǔ)言。UML是一種開(kāi)放的方法,用于說(shuō)明、可視化、構(gòu)建和編寫(xiě)一個(gè)正在開(kāi)發(fā)的、面向?qū)ο蟮摹④浖芗到y(tǒng)的制品的開(kāi)放方法。UML展現(xiàn)了一系列最佳工程實(shí)踐,這些最佳實(shí)踐在對(duì)大規(guī)模,復(fù)雜系統(tǒng)進(jìn)行建模方面,特別是在\o"軟件架構(gòu)"軟件架構(gòu)層次已經(jīng)被驗(yàn)證有效。UML集成了\o"Booch(頁(yè)面不存在)"Booch,\o"對(duì)象建模技術(shù)(頁(yè)面不存在)"OMT和\o"面向?qū)ο筌浖こ蹋?yè)面不存在)"面向?qū)ο筌浖こ痰母拍?,將這些方法融合為單一的,通用的,并且可以廣泛使用的建模語(yǔ)言。UML打算成為可以對(duì)并發(fā)和分布式系統(tǒng)的標(biāo)準(zhǔn)建模語(yǔ)言。UML并不是一個(gè)工業(yè)標(biāo)準(zhǔn),但在\o"ObjectManagementGroup"ObjectManagementGroup的主持和資助下,UML正在逐漸成為工業(yè)標(biāo)準(zhǔn)。OMG之前曾經(jīng)呼吁業(yè)界向其提供有關(guān)\o"面向?qū)ο?對(duì)象導(dǎo)向的理論及實(shí)現(xiàn)的方法,以便制作一個(gè)嚴(yán)謹(jǐn)?shù)能浖UZ(yǔ)言(SoftwareModelingLanguage)。有很多業(yè)界的領(lǐng)袖亦真誠(chéng)地回應(yīng)OMG,幫助她建立一個(gè)業(yè)界標(biāo)準(zhǔn)。許多人通過(guò)UML認(rèn)識(shí)了用例,UML定義為\o"統(tǒng)一建模語(yǔ)言"展現(xiàn)用例的圖形符號(hào)。UML并沒(méi)有為描述用例定義書(shū)寫(xiě)格式的標(biāo)準(zhǔn),因此許多人誤認(rèn)為這些圖形符號(hào)就是用例本身;然而,圖形符號(hào)只能給出最簡(jiǎn)單的一個(gè)或一組用例的概要。UML是用例圖形符號(hào)最流行的標(biāo)準(zhǔn)。但是,還有一些其它的可選擇的標(biāo)準(zhǔn)。用例(\o"英語(yǔ)"英語(yǔ):usecase),或譯使用案例、用況,是\o"軟件工程"軟件工程或\o"系統(tǒng)工程"系統(tǒng)工程中對(duì)系統(tǒng)如何反應(yīng)外界請(qǐng)求的描述,是一種通過(guò)用戶(hù)的使用場(chǎng)景來(lái)獲取需求的技術(shù)。每個(gè)用例提供了一個(gè)或多個(gè)場(chǎng)景,該場(chǎng)景說(shuō)明了系統(tǒng)是如何和最終用戶(hù)或其它系統(tǒng)互動(dòng),也就是誰(shuí)可以用系統(tǒng)做什么,從而獲得一個(gè)明確的業(yè)務(wù)目標(biāo)。編寫(xiě)用例時(shí)要避免使用技術(shù)術(shù)語(yǔ),而應(yīng)該用最終用戶(hù)或者領(lǐng)域?qū)<业恼Z(yǔ)言。用例一般是由軟件開(kāi)發(fā)者和最終用戶(hù)共同創(chuàng)作的。在1986年,\o"IvarJacobson(頁(yè)面不存在)"IvarJacobson,\o"統(tǒng)一建模語(yǔ)言"UML和\o"RationalUnifiedProcess"瑞理統(tǒng)一過(guò)程[2]的重要貢獻(xiàn)者,提出了用例的概念。Jacobson的思想很有影響力,也很有發(fā)展力。之后在這個(gè)科目上又有很多貢獻(xiàn),在定義用例是什么和怎么有效的書(shū)寫(xiě)用例方面最重要,最有影響力也最全面的,是\o"AlistairCockburn(頁(yè)面不存在)"AlistairCockburn,他寫(xiě)的書(shū)籍是《編寫(xiě)有效用例》。用例迅速成為獲取功能需求最常用的手段。用例最初是和面向?qū)ο笠煌岢龅?。但是它不止局限于面向?qū)ο笙到y(tǒng),因?yàn)橛美龑?shí)質(zhì)上不是面向?qū)ο?。用例圖包含一組用例。每一用例用橢圓表示,放置在矩形框中;矩形框表示整個(gè)系統(tǒng)。矩形框外畫(huà)如圖所示的小人,表示參與者。參與者不一定是人,可以是其他軟件、硬件等等。某一參與者與某一用例用線連起來(lái),表示該參與者和該用例有交互。3.5.2科學(xué)計(jì)算器用例圖該科學(xué)計(jì)算器用例圖利用Visio制圖工具,用戶(hù)進(jìn)入主界面,有二進(jìn)制、八進(jìn)制、十進(jìn)制、十六進(jìn)制、畫(huà)圖板五個(gè)選項(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畫(huà)圖板用例圖該畫(huà)圖板用例圖利用Visio制圖工具,用戶(hù)進(jìn)入主界面選擇畫(huà)圖板后,有一序列的畫(huà)圖工具可以選,包括圖片的打開(kāi)保存、畫(huà)圖工具的選取、清除工具、屬性設(shè)置,其中畫(huà)圖工具有畫(huà)筆、畫(huà)刷、橢圓和矩形,清除工具包括橡皮擦和清屏。畫(huà)圖板的用例圖如圖3-2所示。圖3-2畫(huà)圖板用例圖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)算,并且可以對(duì)顯示框有清零和回退的功能,同時(shí)在這些基本的運(yùn)算基礎(chǔ)上增加了畫(huà)圖板功能,畫(huà)圖板就是為了在運(yùn)算疲倦的時(shí)候用來(lái)娛樂(lè)的一種小工具,可以在畫(huà)圖板上畫(huà)一些簡(jiǎn)單的圖形,選取顏色和風(fēng)格等簡(jiǎn)單的功能。這款科學(xué)計(jì)算器功能強(qiáng)大,安全性高,界面簡(jiǎn)潔友好,符合廣大用戶(hù)的基本需求,尤其是爭(zhēng)對(duì)計(jì)算機(jī)專(zhuān)業(yè)的學(xué)生,使用起來(lái)更為便捷。4.2功能模塊設(shè)計(jì)4.2.1科學(xué)計(jì)算功能模塊進(jìn)行加減乘除和取整取模倒數(shù)運(yùn)算。支持二、八、十六、十等不同進(jìn)制數(shù)據(jù)的直接輸入、計(jì)算和數(shù)制間的相互轉(zhuǎn)換,點(diǎn)擊等號(hào)鍵時(shí)直接給出當(dāng)前算式的運(yùn)算結(jié)果,實(shí)現(xiàn)各類(lèi)不同函數(shù)及位運(yùn)算??茖W(xué)計(jì)算器模塊圖如圖4-1所示。圖4-1科學(xué)計(jì)算器模塊圖科學(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)算科學(xué)計(jì)算器八進(jìn)制模塊圖如圖4-3所示。圖4-3八進(jìn)制模塊圖實(shí)現(xiàn)基本的加減乘數(shù)四則運(yùn)算科學(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)算科學(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畫(huà)圖板功能模塊文件打開(kāi)和保存的功能,畫(huà)圖工具橢圓、矩形、畫(huà)筆、畫(huà)刷、橡皮擦、清圖的功能,畫(huà)圖工具屬性的設(shè)置功能。畫(huà)圖板模塊圖如圖4-6所示。圖4-6畫(huà)圖板模塊圖圖片的打開(kāi)和保存畫(huà)圖工具的選取,比如橢圓、矩形畫(huà)圖工具的選取,比如畫(huà)筆、畫(huà)刷5詳細(xì)設(shè)計(jì)5.1設(shè)計(jì)目的為了更好的滿足廣大計(jì)算機(jī)用戶(hù)對(duì)于計(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ī)專(zhuān)業(yè)用戶(hù)的需求。5.2設(shè)計(jì)說(shuō)明5.2.1UI界面風(fēng)格主界面采用QtCreator工具設(shè)計(jì),使用多種布局管理器布局,能夠方便的對(duì)界面布局進(jìn)行修改,根據(jù)設(shè)計(jì)者的審美風(fēng)格進(jìn)行布局設(shè)計(jì)。主界面包含一個(gè)lineEdit文本顯示框,4個(gè)QRadioButton以及36個(gè)QPushButton按鈕,結(jié)合中國(guó)式審美風(fēng)格,這樣使界面變得更加美觀、整潔??茖W(xué)計(jì)算器主界面如圖5-1所示。圖5-1科學(xué)計(jì)算器主界面5.2.2科學(xué)計(jì)算器模塊二進(jìn)制運(yùn)行程序,在主界面選擇二進(jìn)制,二進(jìn)制的功能按鈕就會(huì)顯示,非二進(jìn)制的按鈕就會(huì)變灰色。二進(jìn)制功能:加減乘除四則運(yùn)算與運(yùn)算、或運(yùn)算、同或運(yùn)算、異或運(yùn)算正負(fù)號(hào)選取文本框清零功能文本框回退功能八進(jìn)制運(yùn)行程序,在主界面選擇八進(jìn)制,八進(jìn)制的功能按鈕就會(huì)顯示,非八進(jìn)制的按鈕就會(huì)變灰色。八進(jìn)制功能:加減乘除四則運(yùn)算正負(fù)號(hào)選取文本框清零功能文本框回退功能十進(jìn)制運(yùn)行程序,在主界面選擇十進(jìn)制,十進(jìn)制的功能按鈕就會(huì)顯示,非十進(jìn)制的按鈕就會(huì)變灰色。十進(jìn)制功能:加減乘除四則運(yùn)算倒數(shù)運(yùn)算冪運(yùn)算取整運(yùn)算取模運(yùn)算正負(fù)號(hào)選取文本框清零功能文本框回退功能十六進(jìn)制運(yùn)行程序,在主界面選擇十六進(jìn)制,十六進(jìn)制的功能按鈕就會(huì)顯示,非十六進(jìn)制的按鈕就會(huì)變灰色。十六進(jìn)制功能:加減乘除四則運(yùn)算與運(yùn)算、或運(yùn)算、同或運(yùn)算、異或運(yùn)算正負(fù)號(hào)選取文本框清零功能文本框回退功能科學(xué)計(jì)算器進(jìn)制模塊5.2.3畫(huà)圖板模塊運(yùn)行程序,在主界面選擇畫(huà)圖板按鈕,就會(huì)進(jìn)入畫(huà)圖板的界面,并顯示相應(yīng)的畫(huà)圖板功能按鈕。畫(huà)圖板功能:保存、打開(kāi)文件畫(huà)圖工具圖形(橢圓、矩形)選取畫(huà)圖工具畫(huà)筆、畫(huà)刷選取清除功能(橡皮擦、清屏)屬性設(shè)置6系統(tǒng)實(shí)現(xiàn)6.1系統(tǒng)功能介紹從功能上來(lái)講,本軟件的功能就是實(shí)現(xiàn)各種計(jì)算,包括普通計(jì)算和科學(xué)計(jì)算,普通計(jì)算包括加減乘除計(jì)算和算式計(jì)算,科學(xué)計(jì)算包括普通計(jì)算和二進(jìn)制的或與非運(yùn)算。該軟件還有畫(huà)圖功能,可以選取自己喜歡的畫(huà)圖工具并設(shè)置其屬性。6.2科學(xué)計(jì)算器界面設(shè)計(jì)使用Qtdesigner進(jìn)行設(shè)計(jì),首先創(chuàng)建一個(gè)mainwindow.ui,這個(gè)界面為mainwindow。然后從左側(cè)的WidgetBox里找相應(yīng)的控件添加到mainwindow里。首先拖出一個(gè)lineEdit控件作為算式顯示窗口和結(jié)果顯示窗口,在提取出36個(gè)QpushButton為0到F按鍵和加減乘除按鍵、小數(shù)點(diǎn)按鍵、正負(fù)號(hào)按鍵、等于按鍵、清零按鍵、刪除按鍵、回退按鍵、取整按鍵、取模按鍵、平方按鍵、冪次方按鍵、倒數(shù)按鍵、位運(yùn)算按鍵以及畫(huà)圖板按鍵。然后再把每個(gè)QpushButton名字改成相應(yīng)的符號(hào),并且改對(duì)應(yīng)Qpushbutton的屬性,保存后行進(jìn)編譯,運(yùn)行程序就可以顯示相應(yīng)界面?,F(xiàn)在頭文件中對(duì)各個(gè)按鍵在私有的槽中進(jìn)行聲明,例如:voidon_pushButton_9_clicked();,就對(duì)9鍵進(jìn)行聲明,然后就可以在源文件中進(jìn)行編寫(xiě)程序。voidMainWindow::fun9(){if(falg==1){ui->lineEdit->setText("0");falg=0;}zh=0;QStringval,value;val=ui->lineEdit->text();if(val!="0")value=val+"9";elsevalue="9";ui->lineEdit->setText(value);}通過(guò)connect(ui->pushButton_9,SIGNAL(clicked()),this,SLOT(fun9()));連接到9,使其按鍵符號(hào)點(diǎn)擊后可以在lineEdit上顯示出來(lái),在這里設(shè)計(jì)用的就是信號(hào)和槽的機(jī)制。6.2.1科學(xué)計(jì)算器進(jìn)制選擇功能本界面的主要功能是在普通計(jì)算上添加一些科學(xué)計(jì)算,如平方、冪運(yùn)算、取倒數(shù)、等功能。界面設(shè)計(jì):在窗體的基礎(chǔ)上添加一個(gè)QLineEdit按鈕,修改其屬性,變成可顯示輸入數(shù)字的和結(jié)果的文本框,然后添加三十七個(gè)QPushButton按鈕,修改其屬性,變成相應(yīng)的功能,再?gòu)淖竺姘裃RadioButton控件加到界面中,修改期屬性,使其分別為二進(jìn)制、八進(jìn)制、十進(jìn)制和十六進(jìn)制,這個(gè)控件的功能只能有一個(gè)按鍵被點(diǎn)中。再構(gòu)建和運(yùn)行,可顯示相應(yīng)的界面,達(dá)到想要的效果。程序的具體實(shí)現(xiàn):首先各個(gè)按鈕控件都得在頭文件中聲明,再到源文件中寫(xiě)相應(yīng)的代碼。在二進(jìn)制、八進(jìn)制、十進(jìn)制、十六進(jìn)制的函數(shù)中把相應(yīng)用不到的按鍵用函數(shù)寫(xiě)成不顯示,要用的顯示,然后讀取顯示窗口的內(nèi)容,把其轉(zhuǎn)換成相應(yīng)進(jìn)制的數(shù)字,并把此時(shí)窗口的狀態(tài)記錄成此時(shí)的進(jìn)制,方便其他的運(yùn)算。在其他科學(xué)運(yùn)算符的按鍵的函數(shù)編寫(xiě)代碼,讀取窗口數(shù)據(jù),然后進(jìn)行相應(yīng)的運(yùn)算,再把結(jié)果顯示到窗口。八進(jìn)制實(shí)現(xiàn)功能如圖6-1所示。圖6-1八進(jìn)制圖八進(jìn)制實(shí)現(xiàn)功能如圖6-2所示。圖6-2二進(jìn)制圖十進(jìn)制實(shí)現(xiàn)功能如圖6-3所示。圖6-3十進(jìn)制圖十六進(jìn)制實(shí)現(xiàn)功能如圖6-4所示。圖6-4十六進(jìn)制圖6.2.2科學(xué)計(jì)算器進(jìn)制轉(zhuǎn)換功能該科學(xué)計(jì)算器添加了進(jìn)制轉(zhuǎn)換功能,包括二進(jìn)制向十進(jìn)制轉(zhuǎn)換,十進(jìn)制向二進(jìn)制轉(zhuǎn)換,八進(jìn)制向十進(jìn)制轉(zhuǎn)化,十六進(jìn)制向十進(jìn)制轉(zhuǎn)化。以下逐一介紹程序是如何通過(guò)函數(shù)實(shí)現(xiàn)的。二進(jìn)制向十進(jìn)制裝換,其函數(shù)實(shí)現(xiàn)如下:longMainWindow::mypow(intx,inty){inti;longre=1;for(i=0;i<y;i++){re*=x;}returnre;}//二進(jìn)制向十進(jìn)制轉(zhuǎn)換longMainWindow::f2to10(QStringstr){longdecvalue=0;inti=0;for(i=0;i<str.size();i++){if(str.at(i)=='1'){decvalue+=long(mypow(2,(str.size()-1-i)));}}//qDebug()<<decvalue;returndecvalue;}十進(jìn)制向二進(jìn)制裝換,其函數(shù)實(shí)現(xiàn)如下:QStringMainWindow::f10to2(longn,intbase){QStringval;while(n/base){if(n%base)val.insert(0,'1');elseval.insert(0,'0');n/=base;qDebug()<<n;}if(n)val.insert(0,'1');elseval.insert(0,'0');returnval;}八進(jìn)制向十進(jìn)制裝換,其函數(shù)實(shí)現(xiàn)如下:longMainWindow::f8to10(QStringstr){longdecvalue=0;inti=0;for(i=0;i<str.size();i++){if((str.at(i)>='0')&&(str.at(i)<='7')){decvalue*=8;decvalue+=str.at(i).unicode()-48;}}//qDebug()<<decvalue;returndecvalue;}十六進(jìn)制向十進(jìn)制裝換,其函數(shù)實(shí)現(xiàn)如下:longMainWindow::f16to10(QStringstr){longdecvalue=0;inti=0;for(i=0;i<str.size();i++){if((str.at(i)>='a')&&(str.at(i)<='f')){decvalue*=16;decvalue+=str.at(i).unicode()-102+15;}elseif((str.at(i)>='A')&&(str.at(i)<='F')){decvalue*=16;decvalue+=str.at(i).unicode()-70+15;}elseif((str.at(i)>='0')&&(str.at(i)<='9')){decvalue*=16;decvalue+=str.at(i).unicode()-48;}}//qDebug()<<decvalue;returndecvalue;}6.2.3科學(xué)計(jì)算器清空回退功能此功能為清空顯示窗口,這里用QtCreator封裝好的函數(shù)clear(),直接把lineEdit清空,這樣就達(dá)到了效果,具體程序?qū)崿F(xiàn)如下介紹。//回退voidMainWindow::fun16(){QStringval,value;val=ui->lineEdit->text();if(val!="0"){intl=val.size();value=val.left(l-1);if(value.isEmpty()){ui->lineEdit->setText("0");}else{ui->lineEdit->setText(value);}}}//清零voidMainWindow::fun178(){ui->lineEdit->setText("0");bl=0;val1="0";val2="0";}6.2.4科學(xué)計(jì)算器計(jì)算功能在點(diǎn)擊進(jìn)制按鈕時(shí),后臺(tái)通過(guò)函數(shù)fun()中的switch語(yǔ)句選擇相應(yīng)的case,將八進(jìn)制轉(zhuǎn)換成十進(jìn)制,然后再嵌套一個(gè)switch語(yǔ)句,再點(diǎn)擊相應(yīng)的八進(jìn)制運(yùn)算按鈕時(shí),后臺(tái)通過(guò)匹配相應(yīng)的case語(yǔ)句,實(shí)現(xiàn)所點(diǎn)擊按鈕的運(yùn)算功能。后臺(tái)在處理二進(jìn)制、八進(jìn)制、十六進(jìn)制時(shí),都是先轉(zhuǎn)換成十進(jìn)制然后再做運(yùn)算。具體函數(shù)fun()實(shí)現(xiàn)代碼如下介紹。voidMainWindow::fun(){longllo1=0,llo2=0;intl;if(bl==0){val2=ui->lineEdit->text();bl=1;}falg=1;switch(zhfalg){case0:{switch(fh){case1:ui->lineEdit->setText(QString::number(val1.toDouble()/val2.toDouble()));break;//實(shí)現(xiàn)十進(jìn)制的"/"case2:ui->lineEdit->setText(QString::number(val1.toDouble()*val2.toDouble()));break;//實(shí)現(xiàn)十進(jìn)制的"*"case3:ui->lineEdit->setText(QString::number(val1.toDouble()-val2.toDouble()));break;//實(shí)現(xiàn)十進(jìn)制的"-"case4:ui->lineEdit->setText(QString::number(val1.toDouble()+val2.toDouble()));break;//實(shí)現(xiàn)十進(jìn)制的"+"case5:ui->lineEdit->setText(QString::number(val1.toDouble()/val2.toDouble()).section('.',0,0));break;//實(shí)現(xiàn)十進(jìn)制的"模(%)"case6:ui->lineEdit->setText(QString::number(mypow(val1.toDouble(),val2.toDouble())));break;//實(shí)現(xiàn)十進(jìn)制的"x^y"default:falg=0;break;}}break;case2:{switch(fh){case1://實(shí)現(xiàn)二進(jìn)制的"/"{llo1=f2to10(val1);llo2=f2to10(val2);ui->lineEdit->setText(QString::number((llo1/llo2),2));}break;case2://實(shí)現(xiàn)二進(jìn)制的"*"{llo1=f2to10(val1);llo2=f2to10(val2);ui->lineEdit->setText(QString::number((llo1*llo2),2));}break;case3://實(shí)現(xiàn)二進(jìn)制的"-"{llo1=f2to10(val1);llo2=f2to10(val2);ui->lineEdit->setText(QString::number((llo1-llo2),2));}break;case4://實(shí)現(xiàn)二進(jìn)制的"+"{llo1=f2to10(val1);llo2=f2to10(val2);ui->lineEdit->setText(QString::number((llo1+llo2),2));}break;case5://實(shí)現(xiàn)二進(jìn)制的"與"{if(val1.size()>=val2.size()){val2=val2.rightJustified(val1.size(),'0');}else{val1=val1.rightJustified(val2.size(),'0');}QStringzrest(val1.size(),'1');for(l=0;l<val1.size();l++){

溫馨提示

  • 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ù)網(wǎng)僅提供信息存儲(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)論