• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于Qt與Android的實驗查錯系統(tǒng)設計

      2017-04-10 12:05:49戴莉萍
      實驗室研究與探索 2017年1期
      關鍵詞:窗體界面設計控件

      戴莉萍

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

      基于Qt與Android的實驗查錯系統(tǒng)設計

      戴莉萍

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

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

      查錯系統(tǒng); Qt技術; Android; XML操作

      0 引 言

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

      1 查錯系統(tǒng)的設計

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

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

      圖1 系統(tǒng)結構設計

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

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

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

      2 查錯系統(tǒng)的數(shù)據(jù)結構

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

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

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

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

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

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

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

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

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

      關閉PC上的防火墻試一試

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

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

      3 查錯系統(tǒng)的界面設計

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

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

      以關鍵詞搜索界面為例來說明界面設計的實現(xiàn)過程。首先將需要使用到的控件拖至窗體上,此時不需要進行任何排列,如圖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所示。

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

      圖3 初始界面運行效果

      4 查錯系統(tǒng)的功能實現(xiàn)

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

      Android端子系統(tǒng)對于數(shù)據(jù)的操作主要在于查詢和讀取,而XML數(shù)據(jù)的查詢則需要用到XPath技術。XPath用于XML文檔中通過元素和屬性進行導航,并使用謂詞表達式查找某個特定的節(jié)點或包含某個指定值的節(jié)點。下面這段關鍵代碼描述了如何根據(jù)關鍵詞對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的路徑表達式來進行節(jié)點定位,并使用了contains關鍵詞來進行屬性topic的模糊匹配;將查詢出來的sResult字符串通過頭尾字符連接形成1個完整的XML數(shù)據(jù)片段,通過循環(huán)遍歷將屬性值一一讀取并顯示出來,運行效果如圖4所示。

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

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

      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的精確查詢,并且由于界面設計使用的是文本框,而不是列表框,故無法一行一行顯示,因此,在內容顯示增加了數(shù)字符號和換行符。其運行效果如圖5所示。

      圖5 顯示解決方案

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

      5 結 語

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

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

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

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

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

      [5] 唐 璐,田傳耕,祖茂衡,等. 基于Android的實驗設備遠程控制系統(tǒng)設計[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的國際化圖形用戶界面設計與實現(xiàn)[J]. 中文信息學報, 2006,20(4):94-99.

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

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

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

      [15] 郭東峰.基于DOM的Web數(shù)據(jù)抽取研究[J].科技創(chuàng)新與應用,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

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

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

      TP 311.1

      A

      1006-7167(2017)01-0132-04

      猜你喜歡
      窗體界面設計控件
      《京燕兒》APP界面設計
      大眾文藝(2023年22期)2023-12-10 04:27:18
      中醫(yī)養(yǎng)生APP界面設計
      大眾文藝(2022年19期)2022-10-19 08:18:18
      “共享員工”平臺界面設計
      包裝工程(2022年14期)2022-07-28 07:07:00
      面向智能手機的UI界面設計
      湖北農機化(2020年4期)2020-07-24 09:07:46
      試談Access 2007數(shù)據(jù)庫在林業(yè)檔案管理中的應用
      檔案天地(2019年5期)2019-06-12 05:12:02
      關于.net控件數(shù)組的探討
      軟件(2018年7期)2018-08-13 09:44:42
      基于LayeredWindow的異形窗體局部刷新
      中文信息(2014年2期)2014-03-06 23:49:14
      巧設WPS窗體控件讓表格填寫更規(guī)范
      就這樣玩會VBA中常見的自定義控件
      電腦迷(2012年24期)2012-04-29 00:44:03
      WinCE.net下圖形用戶界面的開發(fā)
      建阳市| 内乡县| 东乌珠穆沁旗| 嘉鱼县| 盘锦市| 信丰县| 新田县| 军事| 澜沧| 库车县| 陵川县| 图们市| 集贤县| 武义县| 台前县| 德令哈市| 清河县| 柳林县| 高清| 平安县| 嘉义县| 石泉县| 襄城县| 东辽县| 田阳县| 丽江市| 威海市| 祁东县| 宁南县| 将乐县| 英吉沙县| 宁明县| 汝阳县| 莆田市| 吉隆县| 夏津县| 嘉禾县| 宜昌市| 平陆县| 景宁| 沁水县|