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

下載本文檔

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

文檔簡介

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

評論

0/150

提交評論