999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Qt與Android的實驗查錯系統設計

2017-04-10 12:05:49戴莉萍
實驗室研究與探索 2017年1期
關鍵詞:嵌入式實驗教學實驗

戴莉萍

(江西師范大學 軟件學院,南昌 330022)

基于Qt與Android的實驗查錯系統設計

戴莉萍

(江西師范大學 軟件學院,南昌 330022)

在高等教育實驗過程中,學生通過錯誤處理來提高相應技能。結合當前學生查閱習慣和Android軟件開發技術,以提高大學實驗教學效果為目的,設計了一套基于Qt與Android的實驗錯誤查詢系統。介紹了該系統的開發平臺、結構組成、數據結構以及關鍵技術。該實驗查錯系統通過快速有效搜索所出現問題的解決方案,很好地培養了學生的獨立性,加快了實驗進度,也進一步推動了實驗改革。

查錯系統; Qt技術; Android; XML操作

0 引 言

現代高等教育非常重視學生實踐能力的培養,例如計算機專業課程中實驗環節經常占據了整個教學活動的一半。學生在實驗過程中難免會遇到各種問題,出現各種錯誤;這時候往往需要指導教師指出錯誤所在,提供解決方法。但這其中受到很多因素的限制,例如調錯時間長短、實驗人數多少、實驗難度大小、是否新出現的錯誤等,一定程度上影響著實驗的完成效果。本文中的實驗查錯系統就是將以往實驗過程中出現的錯誤以及解決方法一一記錄下;學生在實現過程中可以自行查找問題的解決方法,既加快了實驗進度,又培養獨立思考能力,使得實驗效果事半功倍。

1 查錯系統的設計

該實驗查錯系統目前是針對嵌入式課程教學實驗開發的,這也是由于該門課程實驗教學特殊性所決定的。一般基礎性計算機課程例如數據結構、C語言程序設計等,實驗教材種類較多且齊全;實驗環境較為單一,通常一臺計算機和一套編譯環境足以;錯誤解決途徑比較多,如網絡資源非常豐富。而嵌入式實驗教學則有著不同的情形,實驗教學平臺的多樣化使得實驗教材的選擇性非常窄;實驗環境較為復雜,例如PC機、嵌入式開發板、各種外設及其驅動等;錯誤解決途徑較少,網絡資源少且開發板的技術支持往往滯后。因此這門課程的實驗教學需要更實用的計算機輔助教學系統來支持[1]。

系統中的錯誤信息及其解決方法來自于課程實驗指導教師和學生;由指導教師收集并整理,按照一定的數據格式將其入庫保存。學生在實驗實施過程中遇到問題時,可以根據關鍵詞搜索出相關的處理方法,然后一一閱讀,解決問題。圖1描述了該系統的結構設計。

圖1 系統結構設計

由于PC端的開發環境與查錯系統頻繁切換,一定程度上會降低效率,而且手機閱讀非常普遍,故該實驗查錯系統增加了Android功能,而Android端功能的描述則是本文的重點。

PC端的功能主要以大量數據處理和存儲為主,當然也包含了查詢功能;而Android端則主要是查詢功能的實現。由于PC端數據格式為關系型數據儲存,這里使用SQL Server;而Android端數據格式為層次型數據存儲,即XML,因此需要格式轉換功能,將關系型數據格式轉換為層次型數據格式[2-5]。

本系統的目的主要體現在3個方面:① 加強學生對于錯誤文檔化重要性的認識;② 加強學生獨立思考和解決問題的能力;③ 提高單位時間內的實驗效果。

2 查錯系統的數據結構

XML是指可擴展標記語言,是各種應用程序之間進行數據傳輸的最常用工具,并且在信息存儲和描述領域中變得越來越流行。XML數據以純文本格式進行存儲,因此提供了一種獨立于軟件和硬件的數據存儲方法,使數據更可用且更有用,從而可供各種閱讀設備使用[6-7]。

本查錯系統的Android端數據結構采用了XML層次型數據庫,根據系統的需求定義了兩個XML文件,1個關鍵詞搜索文件和1個錯誤解決方案的數據文件。關鍵詞搜索文件papers.xml較為簡單,存放了各個錯誤問題名稱,其簡化后的結構如下所示:

該關鍵詞搜索文件中各個節點只有屬性值,而沒有文本值,即XML空元素,這是便于之后的Qt程序中使用XPath技術來實現模糊查詢。另一個是存放每個問題的已有解決方法papercontent.xml文件,其內容簡化后的結構如下:

對比下PC機上的IP地址設置和實驗箱的IP地址設置,是否在同一個地址段,并且看看VS.NET環境下與設備連接的配置是否正確,例如傳輸方式設置為TCP連接傳輸

一個內核對應一個SDK,否則無法進行通信和建立交叉編譯環境。而且一個PC機上最好安裝一個SDK,兩個以上可能會存在沖突

當關閉當前的解決方案時,連接會終止。當重新打開一個解決方案時,需要重新進行運行已經拷至實驗箱上的用于網絡連接的那3個程序

可能是因為開發板箱上的電池沒有電,可以換電池

ActiveSync軟件未能正確安裝,例如與WINCE系統版本不匹配,建議使用實驗手冊中的工具,不要使用其他軟件

實驗箱設備配置不正確,按照實驗手冊中的進行相應設置,必要時可以重新燒寫設備光盤中自帶內核

關閉PC上的防火墻試一試

與搜索文件相比,正文的XML數據層次多了一層,即para節點,且該節點是文本節點,每個節點將其問題的解決方法一一進行描述。從節點來看,兩個文件的關聯之處正在于paper節點的topic屬性。

大多數與XML相關的API在Android上得到了很好的支持。而且對于Android移動設備而言,由于設備內存有限,文件整體不算太大,因此本系統將采用DOM技術來處理XML文件[8-9]。

3 查錯系統的界面設計

本查錯系統采用Qt Creator來完成系統在Android上的創建、管理、編譯和部署。Qt最大的優勢在于跨平臺開發,目前的Qt版本已經能較完整地支持Android;在復雜運算上面的效率也非常不錯[10-12]。

手機應用開發中的界面設計不同于PC應用開發中的“所見即所得”,其中很重要的一個問題就是如何實現屏幕自適應,即使得程序窗體自動適應不同大小的屏幕,根據屏幕寬度,自動調整布局。Qt提供了布局管理類來負責排列窗體上的控件,本查錯系統就充分利用了Qt的顯示控件、命令控件和布局控件,結合程序編碼靈活地完成Android端的界面設計。

以關鍵詞搜索界面為例來說明界面設計的實現過程。首先將需要使用到的控件拖至窗體上,此時不需要進行任何排列,如圖2所示。

圖2 界面初始設計

由圖2可見,使用了文本框、標簽、按鈕以及網格布局GridLayout等控件。在該窗體的初始化中添加如下的關鍵布局代碼:

DialogUITest1::DialogUITest1(QWidget *parent) :

QDialog(parent),

ui(new Ui::DialogUITest1)

{

ui->setupUi(this);

ui->namelabel->setText(tr("關鍵詞:"));

ui->searchbtn->setText(tr("查詢"));

ui->mainlayout->setSpacing(2);

ui->mainlayout->setMargin(2); ui->mainlayout->addWidget(ui->namelabel,0,0,1,1,Qt::AlignCenter); //行號,列號,行寬,列寬。

ui->mainlayout->addWidget(ui->namelinet,0,1,1,3);

ui->mainlayout->addWidget(ui->searchbtn,1,0,1,4);

ui->mainlayout->addWidget(ui->resultlstw,2,0,5,4);

setLayout(ui->mainlayout);

}

此外,調用該窗體時不需要計算屏幕的分辨率,直接顯示為全屏即可。運行效果如圖3所示。

使用布局控件的好處在于當程序在不同平臺上運行時,能夠自動調節窗體里所有控件的大小和尺寸。因此在Android環境下,可不用修改布局源碼,而直接使用。在實現過程中如果沒有使用到UI類,則可以在源文件中自定義各個控件,在使用時實例化并且按照一定的布局進行排版,這樣也可得到同樣的運行效果,這也體現出Qt開發環境的強大。

圖3 初始界面運行效果

4 查錯系統的功能實現

Android端的查錯系統主要有關鍵詞搜索和結果顯示兩個子功能,其操作對象就是之前的XML數據文件。在Qt中提供了Qt XML模塊實現了對XML數據的處理,主要是服務于兩種操作XML文檔的方法:DOM和SAX。其中DOM將XML文檔轉換成應用程序可以遍歷的樹形結構,可以隨機訪問其中的節點,且語句簡單易懂,本系統采用的就是DOM方法[13-15]。

Android端子系統對于數據的操作主要在于查詢和讀取,而XML數據的查詢則需要用到XPath技術。XPath用于XML文檔中通過元素和屬性進行導航,并使用謂詞表達式查找某個特定的節點或包含某個指定值的節點。下面這段關鍵代碼描述了如何根據關鍵詞對XML文件進行模糊查詢,即“查詢”按鈕點擊事件:

QFile file(":/xml/papers.xml");

query.setFocus(&file); query.setQuery("papers/paper[contains(@topic,'"+ui->namelinet->text()+"')]");

query.evaluateTo(&sResult);

xmlstr="";

xmlstr=xmlstr+"";

xmlstr=xmlstr+sResult;

xmlstr=xmlstr+"";

xmldoc.setContent(xmlstr);

varNodes = xmldoc.elementsByTagName("paper");

for (int i = 0; i < varNodes.count(); i++)

{

node = varNodes.at(i);

topicstr = node.toElement().attribute("topic");

ui->resultlstw->addItem(topicstr);

}

代碼中使用了XPath的路徑表達式來進行節點定位,并使用了contains關鍵詞來進行屬性topic的模糊匹配;將查詢出來的sResult字符串通過頭尾字符連接形成1個完整的XML數據片段,通過循環遍歷將屬性值一一讀取并顯示出來,運行效果如圖4所示。

圖4 關鍵詞搜索運行效果圖

從運行效果可見,原XML文件有6個節點,而最終結果只顯示了2個節點,這是由于進行了條件過濾。點擊任一條記錄,則會出現另一個窗口,列出了該問題的可能解決方案。這里涉及到Qt窗體之間的消息傳遞,可以通過信號與槽機制,也可以通過全局變量的設置;由于兩個窗體之間傳遞的值是單個,故系統中采用了后者。結果顯示窗體的代碼與關鍵詞搜索代碼比較類似,其關鍵代碼如下所示:

QFile file(":/xml/papercontent.xml");

query.setFocus(&file); query.setQuery("papers/paper [@topic='"+searchdata+"']");

...

for (int i = 0; i < varNodes.count(); i++)

{

node = varNodes.at(i);

topicstr = topicstr+QString::number(i+1)+":"+node.toElement().text()+" ";

ui->contentptxte->setPlainText(topicstr);

}

代碼中使用了XPath的精確查詢,并且由于界面設計使用的是文本框,而不是列表框,故無法一行一行顯示,因此,在內容顯示增加了數字符號和換行符。其運行效果如圖5所示。

圖5 顯示解決方案

圖5中列出了解決該問題的可能方案。由于學生在實驗過程中還可能會出現未發現的問題,因此xml數據文件的更新在PC端完成,此時Android端需要重新部署并下載。另一方面,由于Qt的可移植性,該套系統稍加修改就可運行在嵌入式實驗平臺上,從而成為一個較好的實驗案例。

5 結 語

本文通過對實驗教學現狀的分析,設計了基于Qt的實驗查錯系統;詳細描述了該系統Android端的實現過程與重點技術。該系統能夠很好地成為教師實驗指導中的助手,并且學生不僅可以通過該系統快速得到各種問題的解決方法,而且通過該系統也可以很好地了解Qt在Android上開發APP的相關知識。與此同時,該查錯系統為實驗教學提供了新的思路和方法,在未來的應用過程中仍有可改善的空間。

[1] 戴莉萍,黃龍軍,胡國雄. 淺析嵌入式實驗中錯誤的文檔化[J].實驗科學與技術, 2014,12(5):49-51,82.

[2] 熊照雷,閆慧澤,孫 立,等. 基于Android平臺的實驗數據綜合處理系統的設計和實現[J]. 實驗室研究與探索, 2014,33(12):121-125.

[3] 倪紅軍. 基于Android平臺的消息推送研究與實現[J]. 實驗室研究與探索, 2014,33(5):96-100.

[4] 李東煒,劉鎮章. 基于Android智能手機的實驗室預約系統設計[J]. 實驗技術與管理, 2012,29(12):196-198,202:

[5] 唐 璐,田傳耕,祖茂衡,等. 基于Android的實驗設備遠程控制系統設計[J]. 實驗技術與管理, 2015,32(5):150-153.

[6] 丁躍潮,張 濤. XML實用教程[M]. 北京:北京大學出版社,2006.

[7] 孫更新,李偉超,李玉玲.XML編程與應用教程(2版)[M].北京:清華大學出版社,2014.

[8] 李瑞花, 基于Android的XML解析技術的分析[J]. 計算機時代, 2010(12):31-33.

[9] 欒詠紅. 基于Android的XML解析器的分析與比較[J]. 南京曉莊學院學報, 2011(6):98-100.

[10] 殷立峰,祁淑霞,房志峰.Qt C++跨平臺圖形界面程序設計基礎[M].北京:清華大學出版社,2014.

[11] 劉匯丹,芮建武,姚延棟,等. 基于Qt的國際化圖形用戶界面設計與實現[J]. 中文信息學報, 2006,20(4):94-99.

[12] 安 峰. Qt平臺上的動態可定制界面設計[J]. 單片機與嵌入式系統應用, 2014(3):24-25,28.

[13] 魏 楠,張沛朋.基于XML技術的數據庫查詢設計的討論[J].高等函授學報(自然科學版),2012,25(4):81-82.

[14] 王靜婷,王艷麗,王振輝.半結構化數據裝載到數據倉庫的設計與實現[J].計算機與數字工程,2014,42(11):2198-2201.

[15] 郭東峰.基于DOM的Web數據抽取研究[J].科技創新與應用,2013(18):77.

Design of Query System for Experimental Errors Based on Qt and Android

DAILi-ping

(School of Software, Jiangxi Normal University, Nanchang 330022, China)

During the experiment, students improve their skill by overcome all kinds of errors. Considering their current reading habits and Android development technologies, a query system for experimental errors has been designed and implemented to benefit the experimental procedure. This paper introduces the developing platform, modules, data structure and key technologies. This query system can search the corresponding solutions effectively. The system could train students' independence and fasten the experimental procedure, and promote experiment teaching reform.

error query; Qt technology; Android; XML manipulation

2016-04-28

嵌入式實驗課程錯誤管理系統的研究與實現(JXJG-14-2-20)

戴莉萍(1979-),女,江西南昌人,講師,主研領域:軟件工程、數據庫技術。E-mail: march_dai@163.com

TP 311.1

A

1006-7167(2017)01-0132-04

猜你喜歡
嵌入式實驗教學實驗
記一次有趣的實驗
小議初中化學演示實驗教學
甘肅教育(2020年4期)2020-09-11 07:42:36
電容器的實驗教學
物理之友(2020年12期)2020-07-16 05:39:20
對初中化學實驗教學的認識和體會
甘肅教育(2020年8期)2020-06-11 06:10:04
做個怪怪長實驗
搭建基于Qt的嵌入式開發平臺
嵌入式軟PLC在電鍍生產流程控制系統中的應用
電鍍與環保(2016年3期)2017-01-20 08:15:32
幾何體在高中數學實驗教學中的應用
NO與NO2相互轉化實驗的改進
實踐十號上的19項實驗
太空探索(2016年5期)2016-07-12 15:17:55
主站蜘蛛池模板: a毛片在线播放| 波多野结衣一区二区三区四区视频| 8090成人午夜精品| 欧美天堂久久| 99re免费视频| 热re99久久精品国99热| 亚洲精品福利网站| 日本成人一区| 热99精品视频| 国产毛片久久国产| 欧美日韩精品在线播放| 亚洲国产精品无码久久一线| 91在线高清视频| 69精品在线观看| 国产福利在线观看精品| 亚洲精品第五页| 色综合天天综合中文网| 伊伊人成亚洲综合人网7777| 色吊丝av中文字幕| 国产男人天堂| 成年人午夜免费视频| 99re在线观看视频| 国产精品30p| 蜜臀AVWWW国产天堂| 99久久国产综合精品女同| 欧美一级在线看| 亚洲Av激情网五月天| 国产亚洲视频免费播放| 欧美翘臀一区二区三区| 亚洲男人天堂久久| 久久精品人妻中文视频| 国产精品永久不卡免费视频 | a毛片基地免费大全| 亚洲色图欧美| 日本午夜视频在线观看| 日日拍夜夜嗷嗷叫国产| 久久国产精品电影| 免费看a毛片| 狠狠色狠狠综合久久| 日本三区视频| 老司机久久99久久精品播放| 野花国产精品入口| 国产一区二区三区精品久久呦| 国产无码精品在线播放 | 欧美日本视频在线观看| 国产成人精品在线1区| 亚洲中文无码av永久伊人| 视频国产精品丝袜第一页| 亚洲男人天堂网址| 国产91视频免费观看| 中文国产成人精品久久| 久久综合色天堂av| 无码AV高清毛片中国一级毛片| 久久精品人人做人人爽97| 国产第一页第二页| 中文字幕 91| 国产打屁股免费区网站| 国产欧美日韩91| 91黄色在线观看| 伊人久久精品亚洲午夜| 亚洲日韩精品欧美中文字幕| 天堂网国产| 国产一区二区人大臿蕉香蕉| www.亚洲一区二区三区| 日韩不卡免费视频| 91久久偷偷做嫩草影院免费看 | 一本色道久久88| 精品国产欧美精品v| 亚洲专区一区二区在线观看| 欧美日韩国产综合视频在线观看| 玖玖免费视频在线观看| 69av在线| 欧美日韩免费观看| 日本www色视频| 国产精品亚洲天堂| 欧美无专区| 国产精品对白刺激| 2020国产在线视精品在| 秋霞一区二区三区| 亚洲精品国产日韩无码AV永久免费网| 青青青国产精品国产精品美女| 亚洲不卡无码av中文字幕|