


版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
wordword嵌入式系統課程設計報告題目:基于QT的簡單計算器專業:班級:指導教師:日期:2012-12-26第一章前言“電子計算器〞,計算器是能進展數格的低廉,攜帶方便等特點,已經被廣泛應用于工程、學習、商業貿易等日常生之一,深得使用者的青睞。linuxQT程序雖然簡單,linux環境下的常用命令,為以后進入嵌入式領域打下一定的根底。C++第二章功能需求分析Windows系統自帶的計算器程序相似,(+)、減(-)、乘(*)、除(/)、QT相信隨著以后逐步的了解,本程序將實現更多的功能。第三章開發工具簡介3.1QT簡介QTCreator所設計的,所以我覺得有必要先介QT開發工具的背景。Qt1991C++圖形界面應用程序開發框GUIGUI是面向對象語言,易于擴展,并且允許組件編程。QT所具有的優勢是:優良的跨平臺特性,Qt支持如下操作系統:MicrosoftWindowsWindowsNT,Linux,Solaris,SunOS,HP-UX,DigitalUNIXIrixFreeBSDBSD/OSSCOAIX等等。面向對象:Qt的良好封裝機制使得Qt的模塊化程度非常高,可重用性較好,對于用戶開發來說是非常方便的。Qt提供了一種稱為signals/slots的安全類型來替代callback,這使得各個元件之間的協同工作變得十分簡單。豐富的APIQt包括多達250個以上的C++類,還提供基于模板的collectionsserializationfileI/Odevicedirectorymanagementdate/timeOpenGL大量的開發文檔。第四章詳細設計過程Ubuntu10.04QTQT4.7.4〔32bitUbuntuQT環境大致過程為:g++,ubuntug++的,如果不安裝的話,后面是無法進qt應用程序進展編譯的,在終端中執行以下命令:sudoapt-getinstallg++wordQt桌面版的安裝arm-linux-gccgedit/.bashrc添加路徑〕使配置文件立即生效:source /.bashrc或者注銷logout最好重啟〔arm-linux-gcc -v查看版本信息4.安裝編譯庫文件5. QtARM的環境〔解壓編譯時間較長,具體過程不再贅述〕4.2程序實現addWidget添加部件,最后實現了根本的簡易計算機的界面。程序最終界面如下:首先創建一個工程項目,名字為jsq,接著編寫各個功能部件函數,這里仍word使用信函和槽連接機制,我們沒有使用信號和槽編輯器,而是直接在.cpp文件中添編寫其代碼來實現,首先在.h到.cpp文件中編寫相應的代碼實現其功能。例如窗體控制程序MainWidget.cpp,按鈕程序myButton.cpp,OutputString.cpp程序代碼中實現。軟件工作界面如下:下面依次介紹按鈕與所連接的槽函數相應的連接信號語句:Button*clearAllButton=createButton(tr("Clear"),SLOT(Clear()));//用createButton函數定義除法按鈕并且與除法槽函數建立Button *divisionButton = SLOT(multiplicativeOperatorClicked()));//定義乘法按鈕Button *timesButton = SLOT(multiplicativeOperatorClicked()));//定義減法按鈕Button *minusButton = SLOT(additiveOperatorClicked()));//定義加法按鈕Button *plusButton = SLOT(additiveOperatorClicked()));//定義等號按鈕Button*equalButton=createButton(tr("="),SLOT(equalClicked())); //實現代碼如下createButton函數為自己定義的函數wordword//定義createButton函數需要字符串參數和一個字符指針//在此函數內連接信號與槽Button*Calculator::createButton(constQString&text,constchar*member){Button*button=newButton(text);connect(button,SIGNAL(clicked()),this,member);returnbutton;}這樣每次為每個部件分配內存空間的時候就已經建立了相應的槽函數。本程序計算功能主要在OutputString.cpp中實現的,主要代碼如下:QString&myOutputString::getMyString(void){QStringstaticZeroStr("0");if(myString.isEmpty())returnZeroStr;staticQStringtopStr;QStringmyStr;topStr=myString.pop();if(isOperator(topStr)&&(myString.count()==3)){QStringsecondNumStr=myString.pop();QStringopeStr=myString.pop();QStringfirstNumStr=myString.pop();doublefirstNum=firstNumStr.toDouble();doublesecondNum=secondNumStr.toDouble();doubleequal=0;if(opeStr=="*")equal=firstNum*secondNum;elseif(opeStr=="/")equal=firstNum/secondNum;elseif(opeStr=="+")equal=firstNum+secondNum;elseif(opeStr=="-")equal=firstNum-secondNum;QVariantvar1(equal);myStr=var1.toString();myString.push(myStr);}if(topStr!="=")myString.push(topStr);topStr=myString.top();returntopStr;}voidmyOutputString::deleteAll(void){myString.clear();}intmyOutputString::isNumStr(QString&Str){boolok=0;Str.toInt(&ok,10);if(ok==1)return1;return0;}第五章程序測試輸入一個操作數:5word輸入操作符:+輸入另一個操作數:7點擊“=〞號按鈕,會出現結果:word最后點擊“Clear〞按鈕,可以去除之前的數據:測試程序根本無誤,目前只能完成簡單的四如此運算。第六章課程總結QTC++學習,深刻的了解到設QT就這次的課程設計報告來說,從最初的相當陌生到現在的可以理解使用。但還有一些問題沒有徹底理解。此次課程設計并沒有完全構成當初想的那樣,但認為還是根本滿足了教師的要求。對于以后學習嵌入式也打下了一定的根底,最
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
評論
0/150
提交評論