亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

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

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

        戴莉萍

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

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

        戴莉萍

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

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

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

        0 引 言

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

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

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

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

        圖1 系統(tǒng)結(jié)構(gòu)設(shè)計

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

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

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

        2 查錯系統(tǒng)的數(shù)據(jù)結(jié)構(gòu)

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

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

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

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

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

        當(dāng)關(guān)閉當(dāng)前的解決方案時,連接會終止。當(dāng)重新打開一個解決方案時,需要重新進(jìn)行運行已經(jīng)拷至實驗箱上的用于網(wǎng)絡(luò)連接的那3個程序

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

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

        實驗箱設(shè)備配置不正確,按照實驗手冊中的進(jìn)行相應(yīng)設(shè)置,必要時可以重新燒寫設(shè)備光盤中自帶內(nèi)核

        關(guān)閉PC上的防火墻試一試

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

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

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

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

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

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

        圖2 界面初始設(shè)計

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

        DialogUITest1::DialogUITest1(QWidget *parent) :

        QDialog(parent),

        ui(new Ui::DialogUITest1)

        {

        ui->setupUi(this);

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

        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);

        }

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

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

        圖3 初始界面運行效果

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

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

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

        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的路徑表達(dá)式來進(jìn)行節(jié)點定位,并使用了contains關(guān)鍵詞來進(jìn)行屬性topic的模糊匹配;將查詢出來的sResult字符串通過頭尾字符連接形成1個完整的XML數(shù)據(jù)片段,通過循環(huán)遍歷將屬性值一一讀取并顯示出來,運行效果如圖4所示。

        圖4 關(guān)鍵詞搜索運行效果圖

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

        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è)計使用的是文本框,而不是列表框,故無法一行一行顯示,因此,在內(nèi)容顯示增加了數(shù)字符號和換行符。其運行效果如圖5所示。

        圖5 顯示解決方案

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

        5 結(jié) 語

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

        [15] 郭東峰.基于DOM的Web數(shù)據(jù)抽取研究[J].科技創(chuàng)新與應(yī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-),女,江西南昌人,講師,主研領(lǐng)域:軟件工程、數(shù)據(jù)庫技術(shù)。E-mail: march_dai@163.com

        TP 311.1

        A

        1006-7167(2017)01-0132-04

        猜你喜歡
        窗體界面設(shè)計控件
        《京燕兒》APP界面設(shè)計
        大眾文藝(2023年22期)2023-12-10 04:27:18
        中醫(yī)養(yǎng)生APP界面設(shè)計
        大眾文藝(2022年19期)2022-10-19 08:18:18
        “共享員工”平臺界面設(shè)計
        包裝工程(2022年14期)2022-07-28 07:07:00
        面向智能手機(jī)的UI界面設(shè)計
        試談Access 2007數(shù)據(jù)庫在林業(yè)檔案管理中的應(yīng)用
        檔案天地(2019年5期)2019-06-12 05:12:02
        關(guān)于.net控件數(shù)組的探討
        軟件(2018年7期)2018-08-13 09:44:42
        基于LayeredWindow的異形窗體局部刷新
        中文信息(2014年2期)2014-03-06 23:49:14
        巧設(shè)WPS窗體控件讓表格填寫更規(guī)范
        就這樣玩會VBA中常見的自定義控件
        電腦迷(2012年24期)2012-04-29 00:44:03
        WinCE.net下圖形用戶界面的開發(fā)
        亚洲美腿丝袜 欧美另类| 亚洲一区二区三区视频免费| 日本人妻三级在线观看| 国产饥渴的富婆一凶二区| 日韩精品无码一区二区三区四区| 国产亚洲日本精品无码| 少妇高潮惨叫久久久久久| 高清国产亚洲va精品| 国产高清自产拍av在线| 日本精品免费看99久久| 国产精品免费看久久久无码| 丰满熟妇乱子伦| 国产亚洲欧美精品一区| 日本中出熟女一区二区| 亚洲av色av成人噜噜噜| 国产精品成熟老女人| 成人激情五月天| 久久精品成人91一区二区| 一区二区三区在线日本| 穿着白丝啪啪的av网站| 婷婷射精av这里只有精品| 久久精品国内一区二区三区| www.av在线.com| 亚洲精品不卡av在线免费| 精品熟人妻一区二区三区四区不卡| 无码人妻av免费一区二区三区| 国产999视频| 国产成人色污在线观看| 国产成人精品一区二区三区视频 | 深夜日韩在线观看视频| 精品无码av无码专区| 97久久精品亚洲中文字幕无码| 久久精品视频91| 国产一区二区三区特区| 无码人妻久久久一区二区三区| 国产精品狼人久久久久影院 | 日产一区一区三区区别| 国产午夜激无码av毛片不卡| 天码人妻一区二区三区| 日韩熟妇精品视频一区二区| 中文字幕一区二区在线看|