




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
北京郵電大學畢業(yè)設(shè)計PAGEPAGE3北京郵電大學畢業(yè)設(shè)計(論文)任務書第1頁畢業(yè)設(shè)計(論文)題目:基于Qt的EMD桌面系統(tǒng)畢業(yè)設(shè)計(論文)要求及原始數(shù)據(jù)(資料):1.綜述國內(nèi)外桌面系統(tǒng)研究現(xiàn)狀;2.深入了Qt與桌面系統(tǒng)的相關(guān)技術(shù)就及數(shù)據(jù)庫的基本用法;3.實現(xiàn)桌面系統(tǒng)的界面設(shè)計和功能設(shè)計;4.深入分析Qt中關(guān)于桌面系統(tǒng)的關(guān)鍵技術(shù)與編寫語言;5.訓練檢索文獻資料和利用文獻資料的能力;6.訓練撰寫技術(shù)文檔與學位論文的能力。第2頁畢業(yè)設(shè)計(論文)主要內(nèi)容:1.綜述桌面系統(tǒng)在實際生活中的應用;2.了解Qt與桌面系統(tǒng)的相關(guān)技術(shù);3.熟悉EMD桌面系統(tǒng)的的開發(fā)環(huán)境;4.深入分析Qt中關(guān)于桌面系統(tǒng)的關(guān)鍵技術(shù)與編寫語言Qt的設(shè)計流程;5.熟練掌握基于Qt的EMD桌面系統(tǒng)的編寫;6.實現(xiàn)預想中的登錄界面,桌面界面,桌面小工具應用,桌面圖標操作,移植等各個功能。學生應交出的設(shè)計文件(論文):1.內(nèi)容完整、層次清晰、敘述流暢、排版規(guī)范的畢業(yè)設(shè)計論文;2.包括畢業(yè)設(shè)計論文、源程序等內(nèi)容在內(nèi)的畢業(yè)設(shè)計電子文檔及其它相關(guān)材料。第3頁主要參考文獻(資料):[1]張春艷.基于Qt的嵌入式圖形用戶界面研究與實現(xiàn),大連海事大學,2008.42~44[2]萬長勝,金革等.用Qt進行面向?qū)ο筌浖脑O(shè)計與開發(fā),核電子學與探測技術(shù),2004,24(3).45~50[3]劉艷青,蘇桂蓮.基于Qt4的圖形用戶界面程序的設(shè)計與實現(xiàn),現(xiàn)代計算機,2009(3).120~125[4]薛嶺,蔣馥.桌面系統(tǒng)仿真的開發(fā)與應用,上海鐵道大學學報,1998(5).85~89[5]賈麗娜.基于USB盤的微型Linux桌面系統(tǒng)的設(shè)計與實現(xiàn),西安電子科技大學,2007.33~38[6]董蘭芳,劉祥春,陳意云.虛擬桌面系統(tǒng)的實現(xiàn)原理,計算機工程,2001,27(5).144~158[7]陳常松,李英成.GIS軟件市場戰(zhàn)略:開發(fā)小型桌面系統(tǒng),遙感信息,1994(4).54~60[8]PlafkeJames.CanonicalunveilsUbuntuOSforphonesdoublesasdesktopOS.ExtremeT,2013.100~110[9]PamelaRavasio,SisselGuttormsenSch?r.Inpursuitofdesktopevolution:Userproblemsandpracticeswithmoderndesktopsystems.ACMTrans.Comput.-Hum.Interact,2004.142~148[10]AleksandarIlic,LeonelSousa.CHPS:AnEnvironmentforCollaborativeExecutiononHeterogeneousDesktopSystems.IJNC,2011.118~122專業(yè)班級軟件1005班學生Qq要求設(shè)計(論文)工作起止日期2014年3月17日~2014年6月27日指導教師簽字日期2014年3月17日教研室主任審查簽字日期系主任批準簽字日期PAGEiv基于Qt的EMD桌面系統(tǒng)摘要隨著嵌入式技術(shù)的不斷發(fā)展,現(xiàn)代通訊技術(shù)的日益成熟、完善,以及新一代通訊標準的出現(xiàn),現(xiàn)在人們使用具備高級商務功能的智能移動計算設(shè)備已成為可能,從而對基于這一類設(shè)備的桌面系統(tǒng)也提出了更高的要求。桌面系統(tǒng)的技術(shù)熱點和發(fā)展趨勢在于桌面操作系統(tǒng)和辦公套件能為家庭、企業(yè)、政府及其他領(lǐng)域提供了基礎(chǔ)使用環(huán)境,而且必須適應、滿足實際使用模式的多樣性與硬件平臺的差異性,諸如移動終端、個人工作站、商務辦公、政府協(xié)同處理以及國內(nèi)外硬件平臺的差異性,所以桌面操作系統(tǒng)和辦公套件是現(xiàn)今時代最具代表性的基礎(chǔ)信息化工具軟件,同時也是軟件、應用、服務的使用基礎(chǔ)平臺。系統(tǒng)由登錄/退出、簡單數(shù)據(jù)庫操作、桌面小工具、桌面應用圖標管理和操作、系統(tǒng)移植等模塊組成。本系統(tǒng)是在以Qt4.7.2的版本為運行平臺,以c++為編程語言來開發(fā)的,實現(xiàn)了一個簡單地桌面系統(tǒng)。關(guān)鍵詞:Qt;嵌入式;桌面系統(tǒng);c++BasedontheQTEMDdesktopsystemAbstractWiththecontinuousdevelopmentofembeddedtechnology,moderncommunicationtechnologybecomingmorematureandperfect,andtheemergenceofanewgenerationofcommunicationstandard,nowpeopleusehaveadvancedbusinessfunctionofintelligentmobilecomputingdeviceshasbecomepossibletodesktopsystembasedonthiskindofequipmentisalsoputforwardhigherrequirements.Desktophotspotsanddevelopingtrendsoftechnologyliesinitsdesktopoperatingsystemandofficesuiteforfamilies,businesses,governmentsandotherareasprovidethebasistousetheenvironment,andmustadapttoandmeetthediversityofactualusagepatternsandthedifferencesofhardwareplatform,suchasmobileterminal,personalworkstation,businessoffice,thegovernmentcoordinationtreatmentaswellasthehardwareplatformofthedifferencesbetweenbothathomeandabroad,sothedesktopoperatingsystemandofficesuiteisthebasisofthepresentageisthemostrepresentativeinformationtoolsoftware,andsoftware,applicationandserviceplatform.Systembythelogin/exit,simpledatabaseoperations,desktopgadgets,desktopiconmanagementandoperation,systemmodules,etc.ThissystemisinQt4.7.2versionasoperationplatform,basedonc++programminglanguagetodevelopandimplementasimpledesktopsystems.Keywords:Qt;embedded;Desktopsystem;c++
目錄TOC\o"1-3"\h\u摘要 iAbstract ii1緒論 11.1課題背景 11.2課題開發(fā)意義 31.3本文結(jié)構(gòu) 31.4項目設(shè)計原則 42關(guān)鍵技術(shù) 52.1關(guān)于Qt的相關(guān)介紹 52.1.1簡介 52.1.2發(fā)行版本 52.1.3MFC介紹 62.1.4Qt與MFC比較 62.1.5使用Qt開發(fā)的成功案例 82.2關(guān)于嵌入式的相關(guān)介紹 102.3c++語言的簡單介紹 112.4EMD的簡單介紹 143總體分析與設(shè)計 153.1基于Qt的EMD桌面系統(tǒng)可行性分析 153.2基于Qt的EMD桌面系統(tǒng)需求分析 153.3基于Qt的EMD桌面系統(tǒng)的目標設(shè)計 163.4基于Qt的EMD桌面系統(tǒng)總體功能模塊設(shè)計 163.5基于Qt的EMD桌面系統(tǒng)各功能模塊設(shè)計 164系統(tǒng)實現(xiàn) 174.1桌面登錄/退出模塊 174.2簡單數(shù)據(jù)庫模塊實現(xiàn) 184.3桌面界面設(shè)計 184.4桌面小工具模塊 204.4.1幫助 204.4.2日歷 214.4.3計算器 214.4.4音樂播放器 234.4.5時鐘 244.4.6用戶信息管理 244.4.7菜單信息管理 254.5桌面系統(tǒng)的EMD模塊 264.5.1交叉編譯寫好的應用程序 264.5.2復制可執(zhí)行文件到QPEDIR/bin目錄下 264.5.3自定義應用程序的桌面文件(.desktop) 264.5.4為應用程序添加圖標 264.5.5制作包含應用程序的文件系統(tǒng)映像 274.5.6使用U盤將文件系統(tǒng)映像復制到PC機 274.5.7使用DNW工具將文件系統(tǒng)映像燒寫到Nand
Flash中 27結(jié)論 29參考文獻 30致謝 31外文原文 32譯文 39PAGE421緒論1.1課題背景電腦操作系統(tǒng)指的是在計算機上借助硬件運行并完成計算(應用)的軟件,在桌面操作系統(tǒng)誕生之前,最有名的操作系統(tǒng)就是DOS,但是DOS的操作界面十分不友好,僅僅是代碼而已,為此,微軟公司推出了它們的第一個圖形界面操作系統(tǒng)-windows1.0,盡管只有256色,但是在當時已經(jīng)夠吸引人了,直到今天macos·windows·linux三國鼎立的局面。操作系統(tǒng)按應用領(lǐng)域來劃分,有桌面操作系統(tǒng)、服務器操作系統(tǒng)和嵌入式操作系統(tǒng)3種。桌面操作系統(tǒng)是其中應用最為廣泛的系統(tǒng)。桌面操作系統(tǒng)基本上是根據(jù)人在鍵盤和鼠標發(fā)出的命令進行工作,對人的動作和反應在時序上的要求并不很嚴格。從應用環(huán)境來看,桌面操作系統(tǒng)面向復雜多變的各類應用。開發(fā)界面來看,桌面操作系統(tǒng)給開發(fā)人員提供一個“黑箱”,讓開發(fā)人員通過一系列標準的系統(tǒng)調(diào)用來使用操作系統(tǒng)的功能。桌面操作系統(tǒng)相對于嵌入式操作系統(tǒng)來說,顯得比較龐大復雜。平常生活中我們?nèi)绻团笥烟崞鸩僮飨到y(tǒng),相信大家首選聯(lián)想的是電腦操作系統(tǒng),如微軟的windows
xp或者windows
7操作系統(tǒng)等。操作系統(tǒng),簡稱OS是管理電腦硬件與軟件資源的程序,那么目前電腦操作系統(tǒng)有哪些呢?1.WINDOWS操作系統(tǒng);2.UNIX操作系;3.MAC操作系統(tǒng);4.Linux操作系統(tǒng)。Unix系統(tǒng)是1969年在貝爾實驗室誕生,最初是在中小型計算機上運用。最早移植到80286微機上的Unix系統(tǒng),稱為Xenix。
Xenix系統(tǒng)的特點是短小精干,系統(tǒng)開銷小,運行速度快。UNIX為用戶提供了一個分時的系統(tǒng)以控制計算機的活動和資源,并且提供一個交互,靈活的操作界。UNIX被設(shè)計成為能夠同時運行多進程,支持用戶之間共享數(shù)據(jù)。同時,UNIX支持模塊化結(jié)構(gòu),當你安裝UNIX操作系統(tǒng)時,你只需要安裝你工作需要的部分,例如:UNIX支持許多編程開發(fā)工具,但是如果你并不從事開發(fā)工作,你只需要安裝最少的編譯器。用戶界面同樣支持模塊化原則,互不相關(guān)的命令能夠通過管道相連接用于執(zhí)行非常復雜的操作。UNIX
有很多種,許多公司都有自己的版本,如
AT&T、Sun、HP等。Mac
OS操作系統(tǒng)是美國蘋果計算機公司為它的Macintosh計算機設(shè)計的操作系統(tǒng)的一代操作系統(tǒng),該機型于1984年推出,在當時的PC還只是DOS枯燥的字符界面的時候,Mac率先采用了一些我們至今仍為人稱道的技術(shù)。比如:GUI圖形用戶界面、多媒體應用、鼠標等,Macintosh計算機在出版、印刷、影視制作和教育等領(lǐng)域有著廣泛的應用,Microsoft
Windows至今在很多方面還有Mac的影子,最近蘋果公司又發(fā)布了目前最先進的個人電腦操作系統(tǒng)Mac
OS
X。Linux是當今電腦界一個耀眼的名字,它是目前全球最大的一個自由免費軟件,其本身是一個功能可與Unix和Windows相媲美的操作系統(tǒng),具有完備的網(wǎng)絡(luò)功能,它的用法與UNIX非常相似,因此許多用戶不再購買昂貴的UNIX,轉(zhuǎn)而投入Linux等免費系統(tǒng)的懷抱。Linux最初由芬蘭人Linus
Torvalds開發(fā),其源程序在Internet網(wǎng)上公開發(fā)布,由此,引發(fā)了全球電腦愛好者的開發(fā)熱情,許多人下載該源程序并按自己的意愿完善某一方面的功能,再發(fā)回網(wǎng)上,Linux也因此被雕琢成為一個全球最穩(wěn)定的、最有發(fā)展前景的操作系統(tǒng)。曾經(jīng)有人戲言:要是比爾·蓋茨把Windows的源代碼也作同樣處理,現(xiàn)在Windows中殘留的許多BUG(錯誤)早已不復存在,因為全世界的電腦愛好者都會成為Windows的義務測試和編程人員。
Windows操作系統(tǒng)是一款由美國微軟公司開發(fā)的窗口化操作系統(tǒng)。采用了GUI圖形化操作模式,比起從前的指令操作系統(tǒng)如DOS更為人性化。Windows操作系統(tǒng)是目前世界上使用最廣泛的操作系統(tǒng)。據(jù)微軟執(zhí)行副總裁茱莉·拉森葛林(JulieLarson-Green)透露,微軟未來在操作系統(tǒng)或?qū)⑦M行統(tǒng)一化,Windows9開始將不再包含3個版本,即Windows9、WindowsPhone和WindowsRT將合為一體。智能手機、平板電腦的流行,不僅影響了傳統(tǒng)計算機的硬件限售,甚至在系統(tǒng)層面,也對桌面系統(tǒng)帶來了一些沖擊。其中,最大的一個變化,就是桌面系統(tǒng)也逐漸開始免費。而對于用戶來說,便宜的操作系統(tǒng)自然比昂貴的更好;而比便宜更好的,則是免費的系統(tǒng)。在對用戶使用操作系統(tǒng)軟件的需求調(diào)研后,最受用戶關(guān)注的前三位因素分別是:安全性、易操作性、界面友好。操作系統(tǒng)未來的發(fā)展將聚焦在以下三個方面:1.比以往更加強大的集成搜索功能;2.更加絢麗的桌面和3D視覺效果;3.系統(tǒng)安全度有很大提升。當然,實現(xiàn)以上的功能,對于操作系統(tǒng)而言,也是要付出一些代價的,這個代價就是需要主頻更高的CPU、更大的內(nèi)存和硬盤空間做支持,以上功能才能得到更好的發(fā)揮。另外,在未來幾年的發(fā)展中,Windows和Linux操作系統(tǒng)功能會更加的相似,Linux桌面操作系統(tǒng)的市場份額將會有更大的突破。在國內(nèi),因開發(fā)“紅旗Linux”國產(chǎn)桌面操作系統(tǒng)而一炮成名的中科紅旗公司,已于今年2月10日正式關(guān)門。多少次,曾經(jīng)揚著紅旗的小企鵝成了中國開發(fā)自主操作系統(tǒng)的希望,而如今,小企鵝只能留下背影,默默地離開。今天,《21世紀經(jīng)濟報道》發(fā)表文章《中科紅旗解散國產(chǎn)操作系統(tǒng)夢斷》。報道認為,紅旗Linux系統(tǒng)是在盜版和微軟壟斷的擠壓下走到山窮水盡的地步的。但觀察者網(wǎng)從另外的渠道得知,有不少業(yè)內(nèi)技術(shù)人員認為紅旗Linux是個完全依賴國家核高基??钌娴捻椖浚以谏虡I(yè)化運營手段和技術(shù)上都問題重重,中科紅旗公司的解散主要還是由于其“內(nèi)功”的致命缺陷。紅旗Linux是由北京中科紅旗軟件技術(shù)有限公司開發(fā)的一系列Linux發(fā)行版,包括桌面版、工作站版、數(shù)據(jù)中心服務器版、HA集群版和紅旗嵌入式Linux等產(chǎn)品。目前在中國各軟件專賣店可以購買到光盤版,同時官方網(wǎng)站也提供光盤鏡像免費下載。紅旗Linux是中國較大、較成熟的Linux發(fā)行版之一。然而從紅旗Linux發(fā)行以來,圍繞這款操作系統(tǒng)就是非不斷。該系統(tǒng)改變了Linux系統(tǒng)開放源代碼的特性,改為封閉源代碼,主要商業(yè)銷售渠道是電腦廠商預置。在其發(fā)售之初,就有許多評論認為這樣的模式在商業(yè)上注定是不會成功的。而紅旗Linux遭人詬病最多的問題是據(jù)說其代碼與目前成功的商業(yè)Linux系統(tǒng)——RedHat(紅帽)操作系統(tǒng)有90%相同。中科紅旗的商業(yè)運營情況不佳,用戶數(shù)量,支持軟件都非常稀少,同時其版本更新方面也問題不斷。工信部軟件與集成電路促進中心研究員胡昌軍表示:商業(yè)公司肯定是以商業(yè)利益為主。如果說從整個市場(主要為家用PC)占有的份額來講,全球的Linux份額可能不足1%,95%或以上可能都是XP等Windows系列,蘋果的MacOS也占有一部分。因為它(國產(chǎn)系統(tǒng))占有市場份額比較小,在國內(nèi)也一樣。當然商業(yè)公司就沒有意愿去開發(fā)相關(guān)軟件。在對硬件的支持方面,像一些手機、數(shù)碼相機等產(chǎn)品,也無法和這一操作系統(tǒng)進行連接。國產(chǎn)操作系統(tǒng)也要遜于WindowsXP。中標軟件有限公司副總裁喬詠:主要原因也是因為設(shè)備廠商沒有對Linux操作系統(tǒng)提供很好的支持,就是不會給它專門提供相應的驅(qū)動,使得Linux在這方面的支持能力相對較弱。包括優(yōu)麒麟在內(nèi)的國產(chǎn)Linux操作系統(tǒng),在易用性等方面基本具備XP替代能力,但還存在生態(tài)環(huán)境差等各種問題。2013年末,國產(chǎn)電腦操作系統(tǒng)紅旗Linux遭遇“滑鐵盧”,中科紅旗軟件技術(shù)有限公司經(jīng)營發(fā)生嚴重困難,董事會于2013年12月13日決議從即日起解散公司。但國產(chǎn)操作系統(tǒng)的研發(fā)并未就此結(jié)束,目前國內(nèi)還有多家公司在從事相關(guān)開發(fā)運營工作,而在世界范圍內(nèi),Linux系統(tǒng)的商業(yè)化運用也還處于方興未艾的階段。中國工程院院士鄔賀銓認為,微軟停止對WindowsXP技術(shù)支持一事,給國產(chǎn)操作系統(tǒng)的發(fā)展帶來了一個難得的契機,“別以為現(xiàn)在的蘋果、谷歌很強大,已經(jīng)動不了,創(chuàng)新才是永恒的。只要能堅持創(chuàng)新,那么什么時候都有機會?!?014年4月8日起,美國微軟公司停止了對WindowsXP操作系統(tǒng)提供服務支持,這引起了社會和廣大用戶的廣泛關(guān)注和對信息安全的擔憂。工信部對此表示,將繼續(xù)加大力度,支持Linux的國產(chǎn)操作系統(tǒng)的研發(fā)和應用,并希望用戶可以使用國產(chǎn)操作系統(tǒng)。1.2課題開發(fā)意義中國工程院院士倪光南表示,電腦上的應用程序都是在操作系統(tǒng)的支持之下工作的。舉個例子來說,操作系統(tǒng)就好像地基,應用程序就好像地基上的房子,都是通過地基到房子里的。也就是說,只要電腦聯(lián)網(wǎng),誰掌控了操作系統(tǒng),就掌握了這臺電腦上所有的操作信息。中國工程院院士倪光南:操作系統(tǒng)廠商很容易取得用戶的各種敏感信息,你的身份、賬戶、通訊錄、手機號……那么多數(shù)據(jù)在一起,如果你用大數(shù)據(jù)分析,我們國家經(jīng)濟社會的這種活動情況其實都可以了解。統(tǒng)計的數(shù)字比統(tǒng)計部門的數(shù)字還準確、更快。倪光南說,這種擔心并不是杞人憂天。棱鏡事件的主角斯諾登透露的資料顯示,微軟公司曾與美國政府合作,幫助美國國家安全局,獲得互聯(lián)網(wǎng)上的加密文件數(shù)據(jù)。倪光南表示,由于操作系統(tǒng)關(guān)系到國家的信息安全,俄羅斯、德國等國家已經(jīng)推行,在政府部門的電腦中,采用本國的操作系統(tǒng)軟件。由于國內(nèi)電腦用戶的不斷增加,而國產(chǎn)操作系統(tǒng)是建立在Windows或者Linux的基礎(chǔ)二次開發(fā)的操作系統(tǒng)。國內(nèi)暫且還沒有獨立開發(fā)系統(tǒng)的能力。希望我們可以有自己開發(fā)的桌面操作系統(tǒng)。本系統(tǒng)的想法也不是很成熟,技術(shù)還很欠缺,但我知道還會有很多人在這條路上一直走下去。1.3本文結(jié)構(gòu)具體地講,各章研究內(nèi)容如下:第一章,首先介紹了本文研究背景,探討了研究意義,然后對桌面系統(tǒng)的研究和發(fā)展概況進行了簡單回顧,本章同時綜述了其研究的目的和意義,最后概述了本文的主要內(nèi)容。第二章,首先介紹了本課題使用到的主要關(guān)鍵技術(shù),并進行詳細分析。第三章,首先對整個項目進行了可行性分析和需求分析,給出了整個框架的結(jié)構(gòu)圖,并結(jié)合源代碼具體分析了技術(shù)的實現(xiàn)方法。第四章,重點介紹了該桌面系統(tǒng)的實現(xiàn)與使用方法,并且在后面附上了運行結(jié)果的圖片。最后是本課題結(jié)論、參考的一些文獻、致謝信和外文翻譯。1.4項目設(shè)計原則1.統(tǒng)一設(shè)計原則 統(tǒng)籌規(guī)劃和統(tǒng)一設(shè)計系統(tǒng)結(jié)構(gòu)。尤其是應用系統(tǒng)建設(shè)結(jié)構(gòu)、數(shù)據(jù)模型結(jié)構(gòu)、數(shù)據(jù)存儲結(jié)構(gòu)以及系統(tǒng)擴展規(guī)劃等內(nèi)容,均需從全局出發(fā)、從長遠的角度考慮。2.先進性原則 系統(tǒng)構(gòu)成必須采用成熟、具有國內(nèi)先進水平,并符合國際發(fā)展趨勢的技術(shù)、軟件產(chǎn)品和設(shè)備。保證先進的同時還要保證技術(shù)的穩(wěn)定、安全性。3.高可靠/高安全性原則 系統(tǒng)設(shè)計和數(shù)據(jù)架構(gòu)設(shè)計中充分考慮系統(tǒng)的安全和可靠。4.標準化原則 系統(tǒng)各項技術(shù)遵循國際標準、國家標準、行業(yè)和相關(guān)規(guī)范。5.成熟性原則 系統(tǒng)要采用國際主流、成熟的體系架構(gòu)來構(gòu)建,實現(xiàn)跨平臺的應用。6.適用性原則 保護已有資源,急用先行,在滿足應用需求的前提下,盡量降低建設(shè)成本。7.可擴展性原則 盡可能設(shè)計的簡明,降低各功能模塊的耦合度,并充分考慮兼容性。系統(tǒng)能夠支持對各種格式數(shù)據(jù)的存儲。
2關(guān)鍵技術(shù)2.1關(guān)于Qt的相關(guān)介紹2.1.1簡介QtCreator包括項目生成向?qū)?、高級的C++代碼編輯器、瀏覽文件及類的工具、集成了QtDesigner、QtAssistant、QtLinguist、圖形化的GDB調(diào)試前端,集成qmake構(gòu)建工具等。下面介紹Qt功能和優(yōu)勢:
1.QtCreator主要是為了幫助新Qt用戶更快速入門并運行項目,還可提高有經(jīng)驗的Qt開發(fā)人員的工作效率。
2.使用強大的C++代碼編輯器可快速編寫代碼。
3.語法標識和代碼完成功能輸入時進行靜態(tài)代碼檢驗以及提示樣式上下文相關(guān)的幫助代碼折疊括號匹配和括號選擇模式高級編輯功能。
4.使用瀏覽工具管理源代碼。
5.集成了領(lǐng)先的版本控制軟件,包括Git、Perforce和Subversion開放式文件,無須知曉確切的名稱或位置搜索類和文件跨不同位置或文件沿用符號在頭文件和源文件,或在聲明和定義之間切換。
6.為Qt跨平臺開發(fā)人員的需求而量身定制。
7.集成了特定于Qt的功能,如信號與槽(Signals&Slots)圖示調(diào)試器,對Qt類結(jié)構(gòu)可一目了然集成了QtDesigner可視化布局和格式構(gòu)建器只需單擊一下就可生成和運行Qt項目。2.1.2發(fā)行版本Qt是一個跨平臺的C++圖形用戶界面庫,由挪威TrollTech公司于1995年底出品。Trolltech公司在1994年成立,但是在1992年,成立Trolltech公司的那批程序員就已經(jīng)開始設(shè)計Qt了,Qt的第一個商業(yè)版本于1995年推出。2008年1月31日,Nokia公司宣布通過公開競購的方式收購TrollTech公司,旗下包括Qt在內(nèi)的技術(shù)都歸入Nokia旗下。并且Nokia針對自己的移動設(shè)備平臺規(guī)劃的需要,將Qt按不同的版本發(fā)行:1.Qt商業(yè)版:提供給商業(yè)軟件開發(fā)。它們提供傳統(tǒng)商業(yè)軟件發(fā)行版并且提供在協(xié)議有效期內(nèi)的免費升級和技術(shù)支持服務。2.Qt開源版:僅僅為了開發(fā)自由和開放源碼軟件,提供了和商業(yè)版本同樣的功能。GNU通用公共許可證下,它是免費的。2009年3月發(fā)布的Qt4.5起,諾基亞為Qt增添開源LGPL授權(quán)選擇。2009年5月11日起,諾基亞QtSoftware宣布Qt源代碼庫面向公眾開放,Qt開發(fā)人員可通過為Qt以及與Qt相關(guān)的項目貢獻代碼、翻譯、示例以及其他內(nèi)容,協(xié)助引導和塑造Qt未來的發(fā)展。為了便于這些內(nèi)容的管理,QtSoftware啟用了基于Git和Gitorious開源項目的Web源代碼管理系統(tǒng)。Qt專業(yè)版和企業(yè)版是Qt的商業(yè)版本。2.1.3MFC介紹MFC(MicrosoftFoundationClasses)是微軟基礎(chǔ)類庫的簡稱,是微軟公司實現(xiàn)的一個c++類庫,主要封裝了大部分的windowsAPI函數(shù),vc++是微軟公司開發(fā)的c/c++的集成開發(fā)環(huán)境,所謂集成開發(fā)環(huán)境,就是說利用它你可以編輯,編譯,調(diào)試,而不是使用多種工具輪換操作,靈活性較大。有時人們說vc呢也指它的內(nèi)部編譯器,集成開發(fā)環(huán)境必須有一個編譯器內(nèi)核,要不有什么用,例如DevC++其中一個編譯器內(nèi)核就是gcc。MFC除了是一個類庫以外,還是一個框架,你應該試過,在vc++里新建一個MFC的工程,開發(fā)環(huán)境會自動幫你產(chǎn)生許多文件,同時它使用了mfcxx.dll。xx是版本,它封裝了mfc內(nèi)核,所以你在你的代碼看不到原本的SDK編程中的消息循環(huán)等等東西,因為MFC框架幫你封裝好了,這樣你就可以專心的考慮你程序的邏輯,而不是這些每次編程都要重復的東西,但是由于是通用框架,沒有最好的針對性,當然也就喪失了一些靈活性和效率但是MFC的封裝很淺,所以效率上損失不大,靈活性還可以,雖然也有很多缺陷,但還是一個比較好的東西。MFC下創(chuàng)建一個窗口對象分兩步,首先創(chuàng)建MFC窗口對象,然后創(chuàng)建對應的Windows窗口。在內(nèi)存使用上,MFC窗口對象可以在?;蛘叨?使用new創(chuàng)建)中創(chuàng)建。具體表述:創(chuàng)建MFC窗口對象。通過定義一個CWnd或其派生類的實例變量或者動態(tài)創(chuàng)建一個MFC窗口的實例,前者在??臻g創(chuàng)建一個MFC窗口對象,后者在堆空間創(chuàng)建一個MFC窗口對象。調(diào)用相應的窗口創(chuàng)建函數(shù),創(chuàng)建Windows窗口對象。2.1.4Qt與MFC比較Qt和MFC的差異在于其設(shè)計的差異。MFC的根本目的是訪問包裝起來的用C語言寫的windows的API。這絕非好的面向?qū)ο蟮脑O(shè)計模式,在很多地方,你必須提供一個包含15個成員的C語言的struct,但是其中只有一個與你所期望的相關(guān),或者必須用舊式的參數(shù)來調(diào)用你的函數(shù)。MFC還有許多讓人摸不著頭腦的地方,函數(shù)名沒有任何的連續(xù)性。比如,如果你創(chuàng)建了一個graphical類,直到調(diào)用了creat()以后該類才會被創(chuàng)建。然而對dialogs,必須要等到OnInitDialog()才能創(chuàng)建這個對象。奇怪的是到了views,創(chuàng)建該類的函數(shù)名竟然成了OnInitUpdate(),你自己創(chuàng)建一個類用他們的方式調(diào)用它,你的程序崩潰了。比如說有一個dialog包含CEdit控件,如果沒有調(diào)用DoModal()你就不能使用GetWindowText()。否則將會莫名其妙的失敗??傊?,MFC充滿了丈二和尚摸不著頭腦的事情,并且,這種錯誤很難調(diào)試。(誠然,MFC是為了封裝WindowAPI。用MFC比WinowsAPI會簡單些,但確實有些函數(shù)的調(diào)用時機、先后順序,如果不是用過一段時間,確實可能因此導致問題。)
Qt恰恰相反,它的架構(gòu)明顯是經(jīng)過精心設(shè)計的面向?qū)ο蟮摹t因此在命名,繼承,類的組織等方面保持了優(yōu)秀的一致性。你只需要提供唯一一個方法的參數(shù),僅此一個。在不同的類中調(diào)用方式也是有很強的連貫性。返回值也很有邏輯性。所有一切達到了簡單和強大的和諧統(tǒng)一。一旦你使用了其中一個類,其他的類也就觸類旁通,因為他們是一致的。在Qt中可以利用Edit控件,用C++創(chuàng)建類的方法來創(chuàng)建自己的QLineEdit。永遠可以馬上訪問任何的方法,不管它是顯示還是隱藏。在這里沒有迷局,一切都按照你認為的簡單的方式來運作。
MFC是事件驅(qū)動的架構(gòu)。要執(zhí)行任何操作,都必須是對特定的消息作出響應。Windows對應用程序發(fā)送的信息數(shù)以千計,遺憾的是,要分清楚這些分繁蕪雜的消息是很困難的,并且關(guān)于這方面的文檔并不能很好的解決這些問題。Qt的消息機制是建立在SIGNAL()發(fā)送和SLOT()接受的基礎(chǔ)上的。這個機制是對象間建立聯(lián)系的核心機制。利用SIGNAL()可以傳遞任何的參數(shù)。他的功能非常的強大。可以直接大傳遞信號給SLOT(),因此可以清楚的理解要發(fā)生的事情。一個類所發(fā)送的信號的數(shù)量通常非常的小(4或者5),并且文檔也非常的齊全。這讓你感覺到一切盡在掌握之中。SIGNAL/SLOT機制類似于Java中l(wèi)istener機制,不過這種機制更加輕量級,功能更齊全。
MFC無法創(chuàng)建大小動態(tài)可變的子窗口,必須重新手動修改代碼來改變窗口的位置(這恰好解釋了為什么windows里的dialog是不可以改變的)這個問題在軟件進行國際化翻譯的時候更加嚴重,因為許多國家表達相同意思需要更長的詞匯和句子,必須要對每個語言的版本重新修改自己的軟件。
在Qt中,任何東西都可以手動的敲出來,因為它很簡單:為了得到一個utton,可以這樣些button=newPushButton("buttonName",MyParentName);如果想在按下某個按鈕以后想調(diào)用某斷代碼的執(zhí)行,可以這樣寫:connect(button,SIGNAL(clicked()),qApp,SLOT(action()));Qt擁有非常簡單而又不失強大的layout機制,以至于不使用它就是在浪費時間了。
Qt還提供了一個圖形用戶工具,QtDesigner,可以用來幫助建立用戶界面??梢孕薷乃褂玫娜魏慰丶膶傩浴2挥脤⑺麄兎旁趪栏竦奈恢茫梢酝ㄟ^layout完美的組織他們。這個工具所產(chǎn)生的代碼我們是可以實際上閱讀并且可以理解的。生成的代碼單獨放在一個文件里,在編程的同時,你可以隨心所欲的多次重新生成用戶界面。QtDesigner可以讓你完成許多在MFC中不可能完成的任務,比如用預先填好的生成listview,在每個tab上用不同的view來使用tab控制。
用戶選擇圖形開發(fā)環(huán)境的時候,幫助文檔是否周全是左右其選擇的重要因素。Visual的開發(fā)環(huán)境的幫助文檔MSDN(這個還要單獨掏錢購買)非常的龐大,有10個CDROM光盤。他包羅萬象,涵蓋廣泛。但是難免有泥沙俱下,主題模糊,關(guān)鍵信息不突出的遺憾。其鏈接設(shè)計的也很糟糕,通過鏈接很難從一個類跳轉(zhuǎn)到其父類或者子類以及相關(guān)的類。如果你搜索一個關(guān)鍵字,不管是VisualC++,VisualJ++,VisualBasic,只要包含這些關(guān)鍵字的信息統(tǒng)統(tǒng)的返回來。
Qt的文檔設(shè)計的相當優(yōu)秀。你可以到上面一睹芳容。Qt的文檔完備且詳細的覆蓋了Qt的方方面面,竟然僅有18M。每一個類和方法都被詳盡描述,巨細靡遺,舉例充實。通過Trolltech公司提供的鏈接或者是QtAssistant工具,可以方便的從一個類或者方法跳轉(zhuǎn)到其他的類。文檔還包含了一個初學者教程和一些典型應用的例子。同時還提供了FAQ和郵件列表,方便通過Internet或者用戶群來查閱。如果你購買了授權(quán),在一天之內(nèi)你將會得到Trolltech公司的技術(shù)支持。實際上,Qt優(yōu)秀的幫助文檔使得尋求外部幫助的機會大大減少。Tolltech公司的一個宗旨是:有如此優(yōu)秀的Qt產(chǎn)品以及其幫助文檔,技術(shù)支持是多余的。
使用MFC,如果要顯示unicode,在編譯鏈接的時候必須用到特殊的參數(shù)(和改變可執(zhí)行文件執(zhí)行的入口),必須在每個string前面加上T,將char修改成TCHAR,每個字符串處理函數(shù)(strcpy(),strdup(),strcat())都要改變成另外的函數(shù)名。更令人惱火的是支持Unicode的軟件竟然不能和不支持Unicode的DLL一起工作。當使用外部DLL來開發(fā)的時候,這是個很嚴重的問題,但是你毫無選擇。
使用Qt,字符串用QString來處理,其本身是與生俱來的Unicode.不需要改變什么東西。不要在編譯/鏈接時候增添參數(shù),不要修改代碼,只需要使用QString就可以了。QSting類功能強大,你可以廣泛的使用它,并且不要擔心Unicode問題。這使得轉(zhuǎn)換為Unicode非常的方便。QSting提供了轉(zhuǎn)換為char*和UTF8的函數(shù)。顯然,MFC的CString的設(shè)計相比于Qt的QString設(shè)計有著巨大的不同。CString以char*為基礎(chǔ)提供了很少的功能。它的優(yōu)點是當需要char*類型的時候,可以直接使用CString類型。乍看起來這個好像是個優(yōu)點,其實實質(zhì)上還是有很大的缺陷的,特別是可以直接修改char*而不要更新類。在轉(zhuǎn)變?yōu)閁nicode的時候這個也碰到很大的麻煩。(CString隨編譯選項可以是Unicode版)相反,QString在內(nèi)部以unicode存儲string,需要時提供char*功能。實際上很少用到char*,因為整個Qt的API用文本的方式響應QString參數(shù)。QString還附帶許多其他的功能,比如自動分享QString的內(nèi)容。這是一個非常強大的類,你會喜歡在很多地方用它的。
使用MFC是可以國際化的,但是需要將每一個字符串放在一個字符串表中,在代碼中到處使用LoadString(IDENTIFIET)。然后轉(zhuǎn)化這些資源到DLL中,翻譯字符串到所需要的語言,改變圖形界面,然后調(diào)用程序使用這個DLL。整個過程是如此的繁瑣,可謂牽一發(fā)而動全身??紤]的事情要面面俱到。
使用Qt的時候,只需要將字符串置于函數(shù)tr()中,在程序開發(fā)中這算是舉手之勞??梢灾苯釉诖a中改變字符串的參考。QtLinguist,Qt的一個工具,能夠提取所有待翻譯的string并按照友好的界面顯示出來。這個用戶界面非常適合翻譯,使用字典,顯示字符串內(nèi)容,恰當?shù)膗nicode顯示,快捷方式?jīng)_突檢測,檢測未翻譯的字符串,檢測字符串修改情況,功能齊全。這個軟件可以供沒有任何編程經(jīng)驗的翻譯者使用。同時該軟件在GPL的版權(quán)下發(fā)布,可以按照你的需求來修改它。翻譯以后的文檔保存在XML中,適合軟件復用的原則。為軟件增加一種新的語言版本僅僅是用QtLinguist產(chǎn)生一個新的文件而已。在本次桌面系統(tǒng)開發(fā)中注重的是圖形化界面的使用,所以使用Qt將會對本設(shè)計有很大的幫助。由于在以前的學習中很少接觸到MFC的開發(fā),而Qt開發(fā)則是學習了有一段時間,因此本設(shè)計使用Qt開發(fā)設(shè)計。2.1.5使用Qt開發(fā)的成功案例一些著名的例子如下:3DSlicer,afreeopensourcesoftwareforvisualizationandmedicalimagecomputingAcetoneISO:鏡像文件掛載軟件;AdobePhotoshopAlbum:一個圖像組織應用程序;Arora:一款跨平臺的開源網(wǎng)頁瀏覽器;AutodeskMotionBuilder,三維角色動畫軟件;AutodeskMaya,3D建模和動畫軟件;Avidemux,aFreeSoftwareprogramdesignedformulti-purposevideoeditingandprocessingAvogadro:高級分子編輯器;B:暴雪公司開發(fā)的游戲?qū)?zhàn)平臺BOUML:一個免費的統(tǒng)一建模語言工具箱Bitcoin:比特幣chmcreator:開源的chm開發(fā)工具CineFX:一款跨平臺、開源、免費、影片剪輯,特效與合成套裝CoCoA:asoftwareforcomputationsincommutativealgebraDashExpress,anInternet-enabledpersonalnavigationdeviceDAZStudio,a3Dfigureillustration/animationapplicationDoxygen:API文件產(chǎn)生器EAGLE,toolfordesigningprintedcircuitboards(PCBs)EiskaltDC++,aprogramthatusestheDirectConnectprotocol.Emergent:神經(jīng)網(wǎng)絡(luò)模擬器。Asoftwareproductforthesimulationofelectromagneticfieldseva:Linux版QQ聊天軟件。FreeCAD,afreeandopensource3D-SolidandgeneralpurposedesignCAD/CAEFreeMat:一個自由開源的數(shù)值計算環(huán)境和編程語言FullTiltPoker,oneofthemostpopularonlinepokerprograms。Gadu-Gadu:實時通信軟件Gambas,AfreedevelopmentenvironmentbasedonaBasicinterpreterGoldenDict:一款開源的字典軟件Google地球(GoogleEarth):三維虛擬地圖軟件。GNS:Cisco網(wǎng)絡(luò)模擬器。GuitarPro6,atablatureeditor刺猬大作戰(zhàn):一個基于百戰(zhàn)天蟲的開源游戲。Hydrogen,anadvanceddrummachineImageVis3D,avolumeray-castingapplicationIpe:自由的矢量圖形編輯器ISEWebpack,afreewareEDAtoolforWindowsandLinuxdevelopedbyXilinxKadu,aPolishinstantmessengerusingtheGadu-Gaduprotocol。KDELibs:一個許多KDE程序都使用的共享庫,如Amarok、K3b、KDevelop、KOffice等。KeePassX,amulti-platformportofKeePass,anopensourcepasswordmanagerforMicrosoftWindowsLaunchy:一個開放源代碼的快捷啟動器LMMS:一個開放源代碼的音樂編輯軟件LyX:使用Qt作為界面的LaTeX軟件。Mathematica:Linux和Windows版本使用Qt作為GUIMaxwellRender,asoftwarepackagethataidsintheproductionofphotorealisticimagesfromcomputer3DmodeldataMixxx:跨平臺的開放源代碼DJ混音軟件MuseScore,一個WYSIWYG的樂譜編輯器MythTV:開源的數(shù)字視頻錄制軟件。Nuke,anode-basedcompositorPDFedit:自由的PDF編輯器PokerTH,anopensourceTexashold'emsimulatorPsi:一款XMPP網(wǎng)絡(luò)協(xié)定的實時通信軟件qBittorrent:自由的BitTorrentP2P客戶端QCad:一個用于二維設(shè)計及繪圖的CAD軟件Qjackctl,atoolforcontrollingtheJACKAudioConnectionKitQSvn,aGUISubversionclientforLinux,UNIX,MacOSXandWindowsOpera:著名的網(wǎng)頁瀏覽器。QtCreator,thefreesoftwarecross-platformintegrateddevelopmentenvironmentfromNokiaQterm:跨平臺的BBS軟件。QuantumGIS:自由的桌面GISQuasselIRC:跨平臺的IRC客戶端RealFlow,afluidanddynamicssimulatorforthe3DindustryRecoll:桌面搜索工具Rosegarden,afreesoftwaredigitalaudioworkstationprogramSciDAVis,across-platformplottinganddataanalysisprogramScribus:桌面排版軟件。Skype:一個使用人數(shù)眾多的基于P2P的VOIP聊天軟件。SMPlayer:跨平臺多媒體播放器Spotify,musicstreamingservice.Stellarium:一款天文學的自由軟件TeamSpeak:跨平臺的音效通信軟件Texmaker:一款跨平臺的開放源代碼LaTeX編輯器TeXworks,ItisagraphicaluserinterfacetothetypesettingsystemTeX.TOra,adatabaseadministrationtool[36]UniversalIndentGUI,anapplicationwhichhelpstheusertobeautify,reformatorindentvariouskindsofcode.Valknut,aprogramthatusestheDirectConnectprotocolVirtualBox:虛擬機軟件。VisIt:一個開源型交互式并行可視化與圖形分析工具,用于查看科學數(shù)據(jù)。VisTrails,ascientificworkflowmanagementandvisualizationsystemVLC多媒體播放器:一個體積小巧、功能強大的開源媒體播放器。VoxOx,aunifiedcommunicationssoftware.WordPress,basedonQtforMaemoandSymbianwpasupplicant,afreesoftwareimplementationofanIEEE802.11iXconfig:Linux的Kernel配置工具咪咕音樂:咪咕音樂是中國移動傾力打造的正版音樂播放器WPSOffice:金山軟件公司推出的辦公軟件極品飛車:韓國Gameloft游戲公司出品的著名賽車類游戲2.2關(guān)于嵌入式的相關(guān)介紹
1.嵌入式系統(tǒng)的產(chǎn)生
嵌入式系統(tǒng)誕生于微型機時代,經(jīng)過微型計算機的嵌入式專用化的短暫探索后,便進入到嵌入式系統(tǒng)獨立的微控制器發(fā)展時代。直接在嵌入式處理器與外圍集成電路技術(shù)基礎(chǔ)上發(fā)展的帶處理器內(nèi)核的單片機,即微控制器的智能化電子系統(tǒng)。即便有處理器內(nèi)核,也是嵌入式處理器而非通用微處理器。2.嵌入式系統(tǒng)的獨立發(fā)展道路
嵌入式系統(tǒng)的微控制器(MCU)發(fā)展道路,是一條擺脫“專用計算機”羈絆,獨立發(fā)展的道路。這是一條由IntelMCS51單片機、iDCX51實時多任務操作系統(tǒng)開辟的單片機獨立發(fā)展的道路。MCS51是一個在微電子學、集成電路基礎(chǔ)上,按照嵌入式應用要求,原創(chuàng)的嵌入式處理器。MCS51原創(chuàng)的體系結(jié)構(gòu)、控制型的指令系統(tǒng)與布爾空間、外部總線方式、特殊功能寄存器(SFR)的管理模式,奠定了嵌入式系統(tǒng)的硬件結(jié)構(gòu)基礎(chǔ);iDCX51是專門與MCS51單片機配置,滿足嵌入式應用要求原創(chuàng)的實時多任務操作系統(tǒng)。3.平臺模式的由來
平臺模式是知識經(jīng)濟時代的一種基本的產(chǎn)業(yè)、科技模式,是人類知識分離性規(guī)律、集成性規(guī)律發(fā)展到高級階段上的必然現(xiàn)象。它將一體化的產(chǎn)業(yè)、科技模式變革為知識平臺媒介下的平臺模式。只要對比上世紀60年代收音機產(chǎn)業(yè)與90年代的VCD/DVD產(chǎn)業(yè),就會發(fā)現(xiàn)一體化產(chǎn)業(yè)模式與平臺產(chǎn)業(yè)模式的本質(zhì)差異。
4.嵌入式系統(tǒng)的平臺模式
按照知識的分離性發(fā)展規(guī)律,知識創(chuàng)新者不從事知識應用,知識應用者不需要了解創(chuàng)新知識原理;按照集成性發(fā)展規(guī)律要求,知識創(chuàng)新者應該將創(chuàng)新知識成果集成到工具之中,轉(zhuǎn)化為知識平臺,知識應用者應該在知識平臺基礎(chǔ)上實現(xiàn)創(chuàng)新知識應用。對象學科領(lǐng)域是嵌入式系統(tǒng)的最終用戶,對象學科領(lǐng)域的電子技術(shù)應用工程師應該在一個現(xiàn)成的嵌入式系統(tǒng)平臺上實現(xiàn)嵌入式應用系統(tǒng)設(shè)計。微電子學科、嵌入式計算機學科、電子技術(shù)學科(非對象學科領(lǐng)域中的應用工程師)不是嵌入式系統(tǒng)最終用戶,這些學科的重要任務是將創(chuàng)新科技成果轉(zhuǎn)化成形形色色的知識平臺。
嵌入式系統(tǒng)是一個無限大的空間,不論是嵌入式系統(tǒng)平臺構(gòu)建還是嵌入式系統(tǒng)平臺應用,都有無限廣闊的發(fā)展空間,關(guān)鍵是把握好自己的“定位”與“分工”,了解學科的“交叉”與“融合”。近年來,隨著嵌入式硬件設(shè)備在性能上的大幅度提升和高端嵌入式應用對人機交互需求的不斷加強,在基于32位微處理器的高端嵌入式平臺中大多已使用LCD、觸摸屏等設(shè)備作為人機交互的硬件接口,并采用基于圖形庫的嵌入式桌面系統(tǒng)作為上層的人機界面。目前有多種基于Linux的嵌入式桌面系統(tǒng),Qtopia是其中比較成熟、應用廣泛的一種,它采用Qt/Embedded作為底層圖形庫。Qt/Embedded是PC平臺Linux上著名的KDE桌面系統(tǒng)所采用的Qt圖形庫的嵌入式版本。2.3c++語言的簡單介紹C++語言是一種優(yōu)秀的面向?qū)ο蟪绦蛟O(shè)計語言,它在C語言的基礎(chǔ)上發(fā)展而來,但它比C語言更容易為人們學習和掌握。C++以其獨特的語言機制在計算機科學的各個領(lǐng)域中得到了廣泛的應用。面向?qū)ο蟮脑O(shè)計思想是在原來結(jié)構(gòu)化程序設(shè)計方法基礎(chǔ)上的一個質(zhì)的飛躍,C++完美地體現(xiàn)了面向?qū)ο蟮母鞣N特性。C++的設(shè)計目標,就是要讓C++既具有適合于系統(tǒng)程序設(shè)計的C語言所具有的可適應性和高效性,又能在其程序組織結(jié)構(gòu)方面具有像Simula那樣的語言設(shè)施(Simula所支持的這種程序組織結(jié)構(gòu)通常被稱為面向?qū)ο蟪绦蛟O(shè)計風格)。在設(shè)計的時候,還做了很大的努力,使得引借自Simula的高層次的程序設(shè)計技術(shù)能夠應用于系統(tǒng)程序設(shè)計之中。這即是說,C++所提供的抽象機制能夠被應用于那些對效率和可適應性具有極高要求的程序設(shè)計任務之中。設(shè)計原則:在[Stroustrup,1994]中,C++的設(shè)計規(guī)則被分為基本規(guī)則、基于設(shè)計的規(guī)則、語言的技術(shù)性規(guī)則以及基于低層次程序設(shè)計的規(guī)則四個方面,分列在下文中?;疽?guī)則:C++的每一步演化和發(fā)展必須是由于實際問題所引起的;C++是一門語言,而不是一個完整的系統(tǒng);不能無休止的一味追求完美;C++在其存在的“當時”那個時期必須是有用處的;每一種語言特性必須有一個有根據(jù)的、明確的實現(xiàn)方案;總能提供一種變通的方法;能為意欲支持的每一種程序設(shè)計風格提供易于理解的支持方法;不強制于人??梢宰⒁獾剑疽?guī)則的最后三條暗示了兩點:對適用于真實世界中各種應用的便捷工具的強調(diào);對程序員的技術(shù)和取向(偏好)的充分考慮。從一開始,C++面向的就是那些要做實際項目的程序員。所謂的“完美”被認為是不可能達到的,這是由于C++用戶在需求、背景和待解決問題上存在著太大的不同。況且,在一門通用目的的程序設(shè)計語言的整個生存期之內(nèi),連對“完美”一詞的詮釋都可能會有極大的改變。由此可知,在語言的演化過程中,來自用戶的反饋和語言實現(xiàn)者們積累的經(jīng)驗才是最為重要的。而它基于設(shè)計的規(guī)則為:支持良好的設(shè)計方案;提供用于程序組織的語言設(shè)施;心口如一(Saywhatyoumean);所有的語言特性必須具有切實有效的承受能力;開啟一個有用的特性比避免所有的誤用更為重要;能將獨立開發(fā)的部件組合成完整的軟件。C++的一個目標就是提供更易用并具有一定承受能力的設(shè)計思想和程序設(shè)計技術(shù),進一步提高程序的質(zhì)量。這些技術(shù)中的絕大部分都源自Simula[Dahl,1970][Dahl,1972][Birtwistle,1979],并通常被作為面向?qū)ο蟪绦蛟O(shè)計和面向?qū)ο笤O(shè)計思想來討論。然而,C++的設(shè)計目標總還是在于要支持一定范圍內(nèi)的各種程序設(shè)計風格和設(shè)計思想。這與一般在語言設(shè)計方面的觀點形成一定對比。一般在語言設(shè)計上總是試圖將所有系統(tǒng)內(nèi)建于單獨一個被重點支持的、帶有強制性的程序設(shè)計風格之中(或稱典范paradigm)。技術(shù)性規(guī)則(Language-technicalrules):與靜態(tài)型別系統(tǒng)(Statictypesystem)沒有內(nèi)在的沖突;像對內(nèi)建(built-in)型別一樣對用戶自定義型別提供很好的支持;個異化(locality)行為是可取的;避免產(chǎn)生順序上的依賴關(guān)系;在對語言產(chǎn)生疑惑時,可以選取其特性中最易掌握的部分;可以因為不正當?shù)恼Z法使用而產(chǎn)生問題(Syntaxmatters(ofteninperverseways));削弱對預處理器的使用。當然,這些規(guī)則要具體結(jié)合更多關(guān)于基本目標的上下文環(huán)境來考慮。應該注意到的是,在“與C有較高的兼容性”、“不損失效率”以及“具有便捷的可用性來解決實際問題”這三個方面的要求,與在“完整的型別安全性”、“完全的通用性”以及“完善的抽象之美”這三個方面的要求形成對立。在編寫和實現(xiàn)中,一個程序從編寫到最后得到運行結(jié)果要經(jīng)歷以下一些步驟1.用C++語言編寫程序,用高級語言編寫的程序稱為“源程序”(sourceprogram)。C++的源程序是以.cpp作為后綴的(cpp是cplusplus的縮寫)?2.對源程序進行編譯,為了使計算機能執(zhí)行高級語言源程序,必須先用一種稱為“編譯器(complier)”的軟件(也稱編譯程序或編譯系統(tǒng)),把源程序翻譯成二進制形式的目標程序(objectprogram)?編譯是以源程序文件為單位分別編譯的?目標程序一般以.obj或.o作為后綴(object的縮寫)?編譯的作用是對源程序進行詞法檢查和語法檢查?編譯時對文件中的全部內(nèi)容進行檢查,編譯結(jié)束后會顯示出所有的編譯出錯信息?一般編譯系統(tǒng)給出的出錯信息分為兩種,一種是錯誤(error);一種是警告(warning)。3.將目標文件連接,在改正所有的錯誤并全部通過編譯后,得到一個或多個目標文件?此時要用系統(tǒng)提供的“連接程序(linker)”將一個程序的所有目標程序和系統(tǒng)的庫文件以及系統(tǒng)提供的其他信息連接起來,最終形成一個可執(zhí)行的二進制文件,它的后綴是.exe,是可以直接執(zhí)行的?4.運行程序運行最終形成的可執(zhí)行的二進制文件(.exe文件),得到運行結(jié)果?5.分析運行結(jié)果如果運行結(jié)果不正確,應檢查程序或算法是否有問題?面向?qū)ο蟪绦蛟O(shè)計有4個主要特點:抽象、封裝、繼承和多態(tài)性。要較好地進行面向?qū)ο蟪绦蛟O(shè)計,還必須了解面向?qū)ο蟪绦蛟O(shè)計另外兩個重要特征——繼承性和多態(tài)性。面向?qū)ο蠹夹g(shù)強調(diào)軟件的可重用性(softwarereusability)。C++語言提供了類的繼承機制,解決了軟件重用問題。在C++中可重用性是通過繼承(inheritance)這一機制來實現(xiàn)的。繼承是C++的一個重要組成部分。一個類中包含了若干數(shù)據(jù)成員和成員函數(shù)。在不同的類中,數(shù)據(jù)成員和成員函數(shù)是不相同的。但有時兩個類的內(nèi)容基本相同或有一部分相同。利用原來聲明的類Student作為基礎(chǔ),再加上新的內(nèi)容即可,以減少重復的工作量。C++提供的繼承機制就是為了解決這個問題。在C++中,所謂“繼承”就是在一個已存在的類的基礎(chǔ)上建立一個新的類。已存在的類(例如“馬”)稱為“基類(baseclass)”或“父類(fatherclass)”。新建的類(例如“公馬”)稱為“派生類(derivedclass)”或“子類(sonclass)”。一個新類從已有的類那里獲得其已有特性,這種現(xiàn)象稱為類的繼承。通過繼承,一個新建子類從已有的父類那里獲得父類的特性。從另一角度說,從已有的類(父類)產(chǎn)生一個新的子類,稱為類的派生。類的繼承是用已有的類來建立專用類的編程技術(shù)。派生類繼承了基類的所有數(shù)據(jù)成員和成員函數(shù),并可以對成員作必要的增加或調(diào)整。一個基類可以派生出多個派生類,每一個派生類又可以作為基類再派生出新的派生類,因此基類和派生類是相對而言的。C++語言優(yōu)點:C++設(shè)計成靜態(tài)類型、和C同樣高效且可移植的多用途程序設(shè)計語言;C++設(shè)計成直接的和廣泛的支持多種程序設(shè)計風格(程序化程序設(shè)計、資料對象化、面向?qū)ο蟪绦蛟O(shè)計、泛型程序設(shè)計);C++設(shè)計成給程序設(shè)計者更多的選擇,即使可能導致程序設(shè)計者選擇錯誤;C++設(shè)計成盡可能與C兼容,籍此提供一個從C到C++的平滑過渡;C++避免平臺限定或沒有普遍用途的特性;C++不使用會帶來額外開銷的特性;C++設(shè)計成無需復雜的程序設(shè)計環(huán)境。本設(shè)計是基于Qt的桌面系統(tǒng)設(shè)計,在前邊也講述了使用Qt比其他開發(fā)工具適合,而在Qt中c++是使用最廣泛的用例。使用Qt編寫的c++程序具有良好的跨平臺特性,程序員幾乎無需更改代碼,所編寫的應用程序即可運行在各種操作系統(tǒng)中,這能大幅度縮短開發(fā)周期、降低成本。Qt的c++類庫是完全面向?qū)ο蟮?,該類庫不但功能強大,而且設(shè)計精良、方便易用。Qt類庫非常復雜,該類庫不但全面覆蓋了c++的各種語言特性,還用到了MVC(Model-View-Control)框架、隱式共享、信號與槽、命令模式、抽象工廠模式、觀察者模式等。2.4EMD的簡單介紹EMD(即Embeddeddesktop)是基于qt4的嵌入式桌面系統(tǒng),和qtopia是同一類型的軟件,它的優(yōu)點是小巧,
你可以從這個軟件中學到構(gòu)建自己的桌面系統(tǒng)的方法,現(xiàn)在他不包含任何有用的應用軟件。它和QtEmbedded開源版本遵循同樣的許可證?,F(xiàn)在這個它才剛剛起步,還在不斷的擴展和優(yōu)化中,希望能有更多的人對它感興趣。
3總體分析與設(shè)計3.1基于Qt的EMD桌面系統(tǒng)可行性分析可行性研究的目的就是用最小的代價在盡可能短的時間內(nèi)確定問題是否能夠解決。達到這個目的不能靠主管猜想,而只能靠客觀分析。必須分析幾種主要的可能的解決的利弊,從而判斷原定的系統(tǒng)目標和規(guī)模是否實現(xiàn),系統(tǒng)完成后所能帶來的效益是否達到值得投資開發(fā)這個系統(tǒng)的程度。因此,可行性研究實質(zhì)上是要進行一次大大壓縮簡化了的系統(tǒng)分析和設(shè)計的過程,也就是在較高層次上以抽象的方式進行的系統(tǒng)分析和設(shè)計的過程。從以上的分析來看,我設(shè)計的桌面系統(tǒng)是一個規(guī)模不太大的的系統(tǒng),但目標明確,結(jié)構(gòu)清晰。本設(shè)計從以下三個方面進行可行性研究:1.技術(shù)可行性。本設(shè)計“基于Qt的EMD桌面系統(tǒng)”可以使用于大多數(shù)用戶。鑒于本人以前學過Qt開發(fā)技術(shù),并且對Qt非常感興趣,也設(shè)計過幾個小項目,使自己在此項目方面的技術(shù)很有信心。由于本設(shè)計非常實用,結(jié)合自己現(xiàn)有的技術(shù)加上指導老師的指導,還是能按期完成本畢業(yè)設(shè)計。2.經(jīng)濟可行性。成本方面:由于本畢業(yè)設(shè)計是軟件教學的最后一個環(huán)節(jié),所以人力自己消耗,指導老師義務指導,只需設(shè)計開發(fā)期間開發(fā)者的生活消費。所以開發(fā)本軟件的成本非常低。效益方面:這個桌面系統(tǒng)為廣大手機用戶開發(fā),用戶量非常大。所以從以上分析看本軟件在經(jīng)濟上是可行的。3.操作可行性。這個桌面系統(tǒng)為廣大手機用戶開發(fā),現(xiàn)有的開發(fā)工具和技術(shù)完全能夠?qū)崿F(xiàn)。對于用戶沒有任何的特殊要求,操作方便。該項目具有良好的易用性。所以從以上幾個方面分析來看,開發(fā)本軟件是完全可行的。3.2基于
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 公司返聘合同范本
- 債務催還合同范例
- 保溫住房建造合同范例
- 養(yǎng)生館用工合同范例
- 企業(yè)檢測長期合同范例
- 代購庫里球衣合同范例
- 冷菜成品出售合同范例
- 公司委托律師合同范例
- 書店合作加盟合同范例
- 中外技術(shù)項目合作合同范例
- 大客戶銷售培訓
- 生物化學與分子生物學實驗(終版)
- 細胞內(nèi)蛋白質(zhì)的分選和運輸細胞生物學-1
- 高血壓健康宣教-飲食課件
- 八年級-現(xiàn)在完成時復習(共26張)課件
- 電氣基礎(chǔ)知識培訓要點課件
- 福建省泉州市各縣區(qū)鄉(xiāng)鎮(zhèn)行政村村莊村名明細及行政區(qū)劃代碼
- 基坑工程施工驗收記錄表
- GB∕T 37045-2018 信息技術(shù) 生物特征識別 指紋處理芯片技術(shù)要求
- 瀝青項目運營方案參考范文
- 商品混凝土項目園區(qū)審批申請報告(范文參考)
評論
0/150
提交評論