<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>
關(guān) 閉

新聞中心

EEPW首頁(yè) > 工控自動(dòng)化 > 設計應用 > 基于Qt環(huán)境下物理實(shí)驗數據處理系統的設計與實(shí)現

基于Qt環(huán)境下物理實(shí)驗數據處理系統的設計與實(shí)現

作者: 時(shí)間:2016-10-15 來(lái)源:網(wǎng)絡(luò ) 收藏

摘要:基于物理實(shí)驗數據的處理復雜性與繁瑣性,采用軟件所提供的C++編程環(huán)境,進(jìn)行實(shí)驗軟件開(kāi)發(fā)。以實(shí)驗為實(shí)例,設計研發(fā)得到一套實(shí)驗數據計算分析的處理軟件??蛇m應邁克爾遜于涉儀實(shí)驗需求,可運行于windows 98、windows 7、Unix等不同平臺,方便各個(gè)不同系統地移植使用。其兼容逐差法、最小二乘法等多種不同算法。界面美觀(guān),設計合理,提供了一個(gè)通用型實(shí)驗數據處理平臺。

本文引用地址:http://dyxdggzs.com/article/201610/307168.htm

應用現代軟件科學(xué)技術(shù)改進(jìn)傳統實(shí)驗,是適應課程創(chuàng )新發(fā)展的需求。研制具有簡(jiǎn)潔方便的實(shí)驗數據處理工作平臺,應用于繁瑣的物理實(shí)驗數據處理中,適應于不同物理參數的測試需求;并且具備有其自身的個(gè)性化特點(diǎn),適合特殊性物理參數測試需求。全篇以邁克爾遜實(shí)驗數據處理軟件實(shí)例作為個(gè)案來(lái)展開(kāi),具體描述整個(gè)軟件的設計與開(kāi)發(fā)。

作為系統開(kāi)發(fā)的環(huán)境,具有不可替代的優(yōu)勢。提供的C++應用程序開(kāi)發(fā)框架,可以輕松實(shí)現“一次編寫(xiě),隨處編譯”的跨平臺解決方案,編寫(xiě)的應用程序能完美運行于從windows 98到windows 7,從Mac OSX到Linux,從Solaris,HP—UX到其他基于X11的眾多Unix平臺上。這讓編寫(xiě)的應用程序可以運行在不同的系統,方便移植,甚至能夠在經(jīng)過(guò)簡(jiǎn)單的修改后輕松移植至應用廣泛的android平臺。Qt設計師是強大的跨平臺GUI布局和格式構建器。

同時(shí)Qt是一個(gè)跨平臺的圖形用戶(hù)界面應用程序開(kāi)發(fā)的C++工具箱。它提供給應用程序開(kāi)發(fā)者建立藝術(shù)級的圖形用戶(hù)界面所需的各種功能,從而直觀(guān)的對可視化用戶(hù)交互界面進(jìn)行設計。Qt是完全面向對象的,易于擴展,并且允許真正地組件編程。

1 實(shí)驗原理簡(jiǎn)介

實(shí)驗原理如圖1所示,從光源S發(fā)出的光線(xiàn)經(jīng)半反射鏡的反射和透射后分為兩束光線(xiàn),一束向上一束向右,向上的光線(xiàn)又經(jīng)C反射回來(lái),向右的光線(xiàn)經(jīng)補償板后被反射鏡D反射回來(lái)在半反射鏡處被再次反射向下,最后兩束光線(xiàn)在觀(guān)察屏上相遇,產(chǎn)生干涉。干涉儀的整體結構如圖2所示,圖中1~16為儀器上各個(gè)部件的數字編號,可查詢(xún)相關(guān)資料。

a.jpg

2 系統軟件總架構

軟件功能的實(shí)現依靠3種機制:C++面向對象編程機制,Qt的信號與槽機制,Qt的事件機制。

Qt編程是由C++體系實(shí)現,面向對象的編程方法和Qt豐富的類(lèi)庫,使用戶(hù)能夠更簡(jiǎn)單靈活的實(shí)現各種功能。在QtCreator的幫助模式下,可以查詢(xún)所有類(lèi)的信息。應用這種機制,可以使程序結構靈活,層次感強。

軟件整體構架包括主界面與啟動(dòng)界面兩大部分構成。學(xué)生在做完相應的邁克爾遜干涉實(shí)驗后,即可啟動(dòng)軟件,進(jìn)行數據輸入與計算。在數據的輸入過(guò)程辨清環(huán)變數與數據組數,使用不同算法進(jìn)行數據處理,采用二者比較精確值,操作簡(jiǎn)便和人性化。系統構架圖如圖3所示。

b.jpg

其中qidong.cpp類(lèi)下提供的軟件信息包括軟件版本號,開(kāi)發(fā)作者,開(kāi)發(fā)日期等并且添加圖片使界面更為美觀(guān)。log.cpp提供包括學(xué)生信息錄入,和學(xué)號信息驗證提示等功能。mainwindow.cpp提供的主程序界面內容及其所包含的兩個(gè)核心文件,zuixiao.cpp和zhucha.cpp這是該軟件主要算法程序最小二乘法和逐差法包括它們相應的誤差計算方法。最后mvedit.cpp是界面美觀(guān)與焦點(diǎn)等復合問(wèn)題處理。

3 界面設計與布局優(yōu)化

3.1 啟動(dòng)界面優(yōu)化

1)布局優(yōu)化:?jiǎn)?dòng)程序,進(jìn)入啟動(dòng)界面,界面出現版本號,開(kāi)發(fā)作者等信息優(yōu)化布局。

2)界面美觀(guān):在Qt樣式表中添加相應的彩圖達到美觀(guān)界面的效果。

3.2 登陸界面設計

1)登陸信息:進(jìn)入啟動(dòng)界面4~5秒后,出現登陸界面,包括學(xué)生學(xué)號信息錄入和身份驗證。

2)錯誤警示:如果學(xué)生未錄入信息將不能進(jìn)入主程序,出現警示窗口。在這里體現到了Qt中最為核心的信號與槽的關(guān)鍵應用。通過(guò)信號和槽的應用實(shí)現各個(gè)界面和數據等的傳遞。比如,點(diǎn)擊按鈕“關(guān)閉窗口”就會(huì )發(fā)出一個(gè)信號,對應的槽函數close()會(huì )被調用以響應這個(gè)信號。這種機制使部件與部件,部件與后臺,部件與其他窗口,窗口與窗口之間可以進(jìn)行交流。

3.3 主界面布局設計

為了方便師生們對本物理實(shí)驗數據處理系統的使用,提升用戶(hù)體驗,需要對主界面進(jìn)行合理的布局與適當的美化。在窗口組件的分布方面,采用左右布局使界面更加緊湊。而在對窗口組件的美化方面,首先添加資源文件,然后使用其設計面下的Qt樣式表,修改界面中的文字格式和添加彩圖等功能對主界面進(jìn)行美觀(guān)優(yōu)化。

例如:為了對文字做美化處理,在Qt更改樣式中添加如下代碼

QPushButton{ffbnt:75 18pt“華文楷體”;color:rgb(0,0,255);}

從而對按鈕進(jìn)行美化處理,將字體變?yōu)榭w,調整其大小,并且改變按鈕字體顏色為藍色,從而讓使用者身心更為愉悅。

3.4 焦點(diǎn)光標的可控性

在實(shí)際使用中,由于本實(shí)驗數據個(gè)數相對較多,因此簡(jiǎn)化對于焦點(diǎn)光標的控制十分重要。

故定義繼承自L(fǎng)ineEdit類(lèi)的自定義類(lèi)QMyEdit,在類(lèi)內以鏈表形式建立對象間順序的邏輯關(guān)系。

類(lèi)定義頭文件qMyEdit.h如下

c.jpg

d.jpg

而后將LineEdit類(lèi)的文本框對象提升為QMyEdit類(lèi),并重寫(xiě)QMyEdit類(lèi)的默認鍵盤(pán)事件函數,捕捉上/下方向鍵的輸入,并按順序移動(dòng)文本框焦點(diǎn),從而實(shí)現對焦點(diǎn)光標的便捷控制,簡(jiǎn)化使用時(shí)的輸入操作。

鍵盤(pán)事件函數重寫(xiě)方式如下

e.jpg

3.5 雙算法的實(shí)現與變量數據的可控性

1)多種算法綜合實(shí)現:mainwindow類(lèi)下有兩個(gè)程序zuixiao.cpp和zhucha.cpp,分別執行該軟件的兩種核心算法:最小二乘法和逐差法,并計算兩種算法相應的誤差。逐差法在數據處理中較為普遍,而最小二乘法則是利用呈線(xiàn)性關(guān)系的兩組數據擬合為直線(xiàn),在本實(shí)驗的數據處理中只需獲取其斜率及誤差。

兩種算法的綜合應用是一個(gè)較為新穎的數據處理方法。學(xué)生的實(shí)驗數據輸入后,通過(guò)信號和槽的應用,將數據從主界面傳遞至計算部分,在處理完畢后再將結果返回主界面并顯示。同時(shí)顯示兩種方法的結果與其對應誤差,增強計算結果的可信度。

2)數據可控的實(shí)現:數據可控是指對實(shí)驗數據的個(gè)數和實(shí)驗中兩次獲取數據的間隔間光屏上環(huán)數的改變數進(jìn)行控制,從而不為單一的實(shí)驗數據獲取方式所局限。在主界面上放置兩個(gè)spin部件,用以改變輸入數據個(gè)數和環(huán)的變化個(gè)數,同時(shí)允許通過(guò)鼠標點(diǎn)擊改變數據大小。在實(shí)驗時(shí)可以根據實(shí)際情況改變數據組數與環(huán)的變化個(gè)數,從而擴大軟件的適用范圍。

f.jpg

4 實(shí)驗測試與反饋

通過(guò)對多組不同的數據對軟件進(jìn)行測試,并改變數據組數與變化環(huán)數,將軟件計算結果與傳統計算結果比較,結果完全吻合。

在有效數字保留方面保持了前后一致,確保數據處理的精確度。

g.jpg

5 結束語(yǔ)

1)軟件投入到實(shí)驗教學(xué)中后,得到了廣大師生的一致好評。方便了學(xué)生對于繁瑣數據的處理,學(xué)生在實(shí)驗方面積極性與活躍性得到了一定程度的提高。同時(shí)也使得教師在教學(xué)方面得到了相當大的幫助,提升了教學(xué)質(zhì)量。

2)在本軟件中通過(guò)對所有用戶(hù)可見(jiàn)的文本使用QString,對動(dòng)態(tài)文本使用QString::arg()函數,對所有文字文本使用tr()函數來(lái)實(shí)現國際化。

3)Qt完全面向對象,方便了系統的開(kāi)發(fā)。Qt的跨平臺特性簡(jiǎn)化了移植過(guò)程,針對不同的軟件平臺,應用程序只需要一次性開(kāi)發(fā)可實(shí)現多次編譯;實(shí)驗教學(xué)也是一門(mén)很重要的學(xué)科應用。



評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>