




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、 北京郵電大學(xué)畢業(yè)論文設(shè)計基于qt的校園導(dǎo)航系統(tǒng)的設(shè)計與實現(xiàn)摘 要本文主要是介紹利用linux系統(tǒng)和qt制作校園導(dǎo)航系統(tǒng)的設(shè)計方法。 使用的操作系統(tǒng)是linux系統(tǒng),但是在windows系統(tǒng)下也是可以使用的,所使用的語言是c+,開發(fā)工具是qt。設(shè)計的主要目的是能夠簡單地觀看整個校園的風(fēng)景,使不熟悉校園的人能夠知道每個景點的位置、介紹,查看學(xué)校的建筑物,包括建筑物的圖片以及建筑物的描述。尤其,這個系統(tǒng)可以找出兩個建筑物之間最短的距離,從而迅速地幫助不熟悉校園的人了解整個校園環(huán)境,然后找到最好的方法去參觀整個校園,除此之外,該系統(tǒng)還可以查詢兩個景點之間的所有路徑,有助于來往者跟好的選擇路徑。導(dǎo)航系
2、統(tǒng)是在linux系統(tǒng)(linux下開發(fā),windows下也可以運行)下,先利用qt制作出用戶界面,再利用c+編程語言設(shè)計出基本功能并與界面相結(jié)合。本文設(shè)計的導(dǎo)航系統(tǒng)能夠?qū)崿F(xiàn)以下三大功能:第一,它可以測量兩個建筑物之間的距離,同時在查詢兩個景點之間的路徑信息的同時,提供起始點與終點建筑物的圖片信息,便于更好的確認;第二,它可以幫助來訪者從眾多的路線中選出最短的一條,同時會提供兩點之間的所有路徑;第三,它可以在標(biāo)志性建筑添加一些描述信息和圖片,還可以查看從該建筑物到所有其他建筑物的路徑信息。關(guān)鍵詞 路徑規(guī)劃;最短路徑算法;校園導(dǎo)航;qtthe school navigate system base
3、d on linux and qt creatorabstractmainly introduced in this paper using the linux system and qt campus navigation system design method. use of the operating system is linux system, but also can use under windows system, the language is used by c + +, development tools is qt. the main purpose of desig
4、n is to be able to simply watch the scenery of the whole campus, who is familiar with the campus can know the location of each scenic spot, introduction, see the school buildings, including the structure of the pictures and the description of the building. especially, the system can find out the sho
5、rtest distance between two buildings, so as to help people who are not familiar with the campus rapidly understand the campus environment, and find the best way to visit the whole campus, in addition, the system can also query all paths between two spots, help going back and forth with good choice p
6、ath. navigation system is in the linux system (under linux development, also can run under windows), the first user produced using qt, using c + + programming language basic design. function and combining with the interface.the navigation system is designed in this paper can achieve the following th
7、ree functions: first, it can measure the distance between the two buildings, at the same time the query path information between two sites at the same time, provide the picture of the starting point and end point building information, to facilitate better confirmation; second, it can help visitors f
8、rom many choose the shortest route, at the same time will provide all the path between two points; third, it can add some description in landmark information and pictures, you can also view from the building to all the other path information of the building. key words path planning; ant algorithm; t
9、he campus navigation; qtii目錄摘 要iabstractii1 緒 論11.1概述11.2研究背景11.3研究目標(biāo)11.4本章小結(jié)12 qt簡介22.1 qt的背景介紹22.2 qt實現(xiàn)的結(jié)構(gòu)原理22.3 qt qwidget簡介32.3.1 詳細描述32.3.2 qwidget 事件簡介42.4 qt應(yīng)用程序的實現(xiàn)62.5 本章小結(jié)73 需求分析83.1 需求分析概述83.2 需求分析的特點83.3 需求分析需要完成的任務(wù)83.4 實際需求分析93.4.1 用戶需求分析93.4.2 功能需求分析93.4.3 實際需求分析93.4.4 系統(tǒng)性能需求分析93.5 本章小結(jié)
10、104 總體設(shè)計114.1 總體設(shè)計概述114.2 系統(tǒng)總體設(shè)計描述114.3 系統(tǒng)總體設(shè)計模塊劃分114.3.1 主要模塊劃分圖124.3.2 顯示系統(tǒng)主界面模塊設(shè)計124.3.3 查詢導(dǎo)航有關(guān)人員模塊設(shè)計134.3.4 導(dǎo)航主界面的模塊的設(shè)計134.4 本章總結(jié)145 詳細設(shè)計155.1 詳細設(shè)計概述155.2 校園導(dǎo)航系統(tǒng)主程序流程圖155.3 單源最短路徑算法介紹165.3.1 dijkstra(迪杰斯特拉)算法165.3.2 floyed(弗洛耶德)算法175.4 圖中節(jié)點與路徑的存儲195.4.1 節(jié)點的存儲195.4.2 節(jié)點間路徑長度的存儲195.4.3 整個圖的存儲205.5
11、 本章總結(jié)206 系統(tǒng)實現(xiàn)及運行結(jié)果216.1 界面設(shè)計216.1.1 主窗體設(shè)計216.1.2 子頁面布局設(shè)計246.1.3 更換起始點的實現(xiàn)276.1.4 點擊主頁面中的查詢路徑具體實現(xiàn)296.1.5 點擊查看景點信息描述的實現(xiàn)296.2 圖的創(chuàng)建316.3 路徑查詢的具體實現(xiàn)316.3.1 單源最短路徑算法具體實現(xiàn)326.3.2 所有可達路徑的查詢的具體實現(xiàn)336.3.3 每一個點到它可達的所有點的查詢的具體實現(xiàn)336.4 選擇系統(tǒng)是否退出的具體實現(xiàn)346.5 本章小結(jié)357 測試367.1 測試目標(biāo)367.2 測試預(yù)期結(jié)果367.3 測試用例的設(shè)計367.4 本章小結(jié)38結(jié)論39參考文
12、獻40致謝41外文原文42中文翻譯471 緒 論1.1 概述現(xiàn)在科技越來越發(fā)達,手機上的軟件,電腦上的軟件越來越多,所以開發(fā)小的程序也越來越有必要。qt具備跨平臺,易擴展,界面華麗,性能穩(wěn)定等優(yōu)點。因此,以嵌入式處理器作為硬件平臺,以qt作為程序框架,兩者的完美結(jié)合必將成為未來技術(shù)的發(fā)展方向。1.2 研究背景現(xiàn)在,汽車正在普及,道路不斷建設(shè),城際間的經(jīng)濟往來更加頻繁,活動的區(qū)域也越來越大。為了提高生活質(zhì)量,大量的休閑活動、探險活動的舉行使我們并不局限在自己認識的一小塊區(qū)域中,不認識道路,找不到目的地的情況也屢有發(fā)生。就此,各種各樣的導(dǎo)航儀逐漸走進我們的生活。無論什么導(dǎo)航儀最主要的部分都是電子地
13、圖。開發(fā)電子地圖成為了導(dǎo)航儀的關(guān)鍵。根據(jù)調(diào)查,電子地圖制作困難而且價格相當(dāng)昂貴,給導(dǎo)航儀的開發(fā)帶來了很多不便。自主繪制電子地圖,編寫電子地圖應(yīng)用程序,不管是從經(jīng)濟上還是研究上都具有非常大的意義。現(xiàn)在,各個學(xué)校都有了自己的導(dǎo)航系統(tǒng),但是開發(fā)工具語言,還有平臺不一樣。所以,如果擁有一個跨平臺的程序的話,那將會給我們的開發(fā)節(jié)省了大量的時間。qt正是一個支持多平臺的c+圖形用戶界面應(yīng)用程序框架。它提供給應(yīng)用程序開發(fā)者建立藝術(shù)級的圖形用戶界面所需的所用功能。qt是完全面向?qū)ο蟮暮苋菀讛U展,并且允許真正地組件編程。所以使用qt作為應(yīng)用程序框架是一個不錯的選擇。1.3 研究目標(biāo)本課題名為校園地理信息系統(tǒng)。本
14、系統(tǒng)以太原理工大學(xué)為模型,旨在建立一個本學(xué)校的導(dǎo)航系統(tǒng),可以根據(jù)不同人的要求,足不出戶,就可以瀏覽校園,得到各種信息基于上述背景,開發(fā)一個校園導(dǎo)航項目,使用linux搭配qt來構(gòu)建這個項目。利用qt4作為系統(tǒng)應(yīng)用層的程序框架。開發(fā)一個可以運行的小客戶端。這個客戶端雖然是在linux下開發(fā)的,但是它是可移植的,在windows下也可以運行。1.4 本章小結(jié)本章主要介紹本項目的選題背景、意義,選題目標(biāo)。通過介紹,了解當(dāng)今社會主要是校園,導(dǎo)航系統(tǒng)的需求以及重要性,明白研究該系統(tǒng)的必要性。2 qt簡介2.1 qt的背景介紹qt是一個1991年由奇趣科技開發(fā)的跨平臺c+圖形用戶界面應(yīng)用程序開發(fā)框架。它既
15、可以開發(fā)gui程序,也可用于開發(fā)非gui程序,比如控制臺工具和服務(wù)器。qt是面向?qū)ο蟮目蚣?,使用特殊的代碼生成擴展(稱為元對象編譯器(meta object compiler, moc))以及一些宏,易于擴展,允許組件編程。2008年,奇趣科技被諾基亞公司收購,qt也因此成為諾基亞旗下的編程語言工具。2012年,qt被digia收購。2014年4月,跨平臺集成開發(fā)環(huán)境qt creator 3.1.0正式發(fā)布,實現(xiàn)了對于ios的完全支持,新增winrt、beautifier等插件,廢棄了無python接口的gdb調(diào)試支持,集成了基于clang的c/c+代碼模塊,并對android支持做出了調(diào)整,
16、至此實現(xiàn)了全面支持ios、android、wp。 qt creator包含了一套用于創(chuàng)建和測試基于qt應(yīng)用程序的高效工具,包括:一個高級的c+代碼編輯器 上下文感知幫助系統(tǒng) 可視化調(diào)試器 源代碼管理 項目和構(gòu)建管理工具.優(yōu)良的跨平臺特性:qt支持下列操作系統(tǒng): microsoft windows 95/98, microsoft windows nt, linux, solaris, sunos, hp-ux, digital unix (osf/1, tru64), irix, freebsd, bsd/os, sco, aix, os390,qnx 等等。面向?qū)ο?qt 的良好封裝機制使得
17、 qt 的模塊化程度非常高,可重用性較好,對于用戶開發(fā)來說是非常 方便的。 qt 提供了一種稱為 signals/slots 的安全類型來替代 callback,這使得各個元件 之間的協(xié)同工作變得十分簡單。2.2 qt實現(xiàn)的結(jié)構(gòu)原理qt/embedded是trolltech公司開發(fā)的面向嵌入式系統(tǒng)的qt版本,與x11版本的qt在最大程度上接口兼容,采用幀緩存(framebuffer)作為底層圖形接口。qt/embedded類庫完全采用c+封裝,并且有著豐富的控件資源以及較好的可移植性,大范圍的qt/embedded api可用于多種開發(fā)項目。qt/embedded的實現(xiàn)結(jié)構(gòu)如圖2-1所示:圖2
18、-1 qt的實現(xiàn)結(jié)構(gòu)圖qt/embedded 的底層圖形引擎基于framebuffer。framebuffer 驅(qū)動程序的實現(xiàn)分為兩個方面:一方面是對lcd及其相關(guān)部分的初始化,包括畫在緩沖區(qū)的創(chuàng)建和對dma通道的設(shè)置;另外一方面是對畫面緩沖區(qū)的讀寫,具體到代碼為read、write、lseek等系統(tǒng)調(diào)用接口。至于將畫面緩沖區(qū)的內(nèi)容輸出到lcd顯示屏上,則由硬件自動完成。對于軟件來說是透明的。當(dāng)對于dma通道和畫面緩沖區(qū)設(shè)置完成后,dma開始正常工作,并將緩沖區(qū)中的內(nèi)容不斷發(fā)送到lcd上。這個過程是基于dma對于lcd的不斷刷新的。基于該特性,framebuffer驅(qū)動程序必須將畫面緩沖區(qū)的存
19、儲空間(物理空間)重新映射到一個不加高緩存和寫緩存的虛擬地址區(qū)間中,這樣能才保證應(yīng)用程序通過mmap將該緩存映射到用戶空間后,對于該畫面緩存的寫操作能夠?qū)崟r的體現(xiàn)在lcd上。qt程序是基于c+編寫的,圖形用戶界面編程同時需要運行效率和高水平的靈活性。qt通過結(jié)合c+的速度為這一領(lǐng)域提供了qt對象模型。qt把下面這些特性添加到了c+當(dāng)中: 一種被稱為信號和槽的非常強大的機制;可查詢和可設(shè)計的屬性項;強大的事件和事件過濾器;根據(jù)上下文進行國際化的字符串翻譯;完善的時間間隔驅(qū)動的計時器等。 許多qt的特性是基于qobject的繼承,通過標(biāo)準(zhǔn)c+技術(shù)實現(xiàn)的。qapplication是必須構(gòu)造的qt主對
20、象,需要在一開始的時候就構(gòu)造這個對象,并把命令行參數(shù)傳遞給這個對象,每個qt應(yīng)用程序有且僅有一個qapplication對象,該對象必須在做其他事之前創(chuàng)建,這個對象處理一些底層操作,如事件處理、字符串本地化和控制界面外觀等。信號和信號處理函數(shù)是gui應(yīng)用程序用來響應(yīng)用戶輸入的基本機制,也是所有g(shù)ui庫的核心特征,qt的信號處理機制由信號(signal)和槽(slot)構(gòu)成,它們相當(dāng)于gtk+中的信號和回調(diào)函數(shù)。在qt中回調(diào)函數(shù)就叫做槽。信號和槽用于對象間的通訊,它的基本語法為:connect(object1,signal1,object2,slot1);2.3 qt qwidget簡介2.3.
21、1 詳細描述qwidget 類是所有用戶界面對象的基類。 通俗的來講, 基本上所有的 ui 類都是由 qwidget qt 繼承出來的,而 qwidget 繼承于 qobject, 大家可以查閱 qt source 即可發(fā)現(xiàn)一些微妙的寫法,如這篇文章有詳細介紹:qt 庫對象數(shù) 據(jù)的聲明和使用 窗口層次 窗口部件是用戶界面的一個原子:它從窗口系統(tǒng)接收鼠標(biāo)、鍵盤和其它事件,并且在屏幕上 繪制自己的表現(xiàn)。每一個窗口部件都是矩形,并且它們按 z 軸順序排列的。一個窗口部件可 以被它的父窗口部件或者它前面的窗口部件蓋住一部分。 qdialog 是最普通的頂級窗口。 不被嵌入到一個父窗口部件的窗口部件被叫
22、做頂級窗口部件。 通常情況下, 頂級窗口部件是有框架和標(biāo)題欄的窗口 (盡管如果使用了一定的窗口部件標(biāo)記,創(chuàng)建頂級窗口部件時也可能沒有這些裝飾。)在 qt 中,qmainwindow 和和不同的 qdialog 的子類是最普通的頂級窗口。 一個沒有父窗口部件的窗口部件一直是頂級窗口部件。 非頂級 窗口部件是子窗口部件。 它們是它們的父窗口部件中的子窗口。 你通常不能在視覺角度從它 們的父窗口部件中辨別一個子窗口部件。在 qt 中的絕大多數(shù)其它窗口部件僅僅作為子窗口 部件才是有用的。(當(dāng)然把一個按鈕作為或者叫做頂級窗口部件也是可能的,但絕大多數(shù)人 喜歡把他們的按鈕放到其它按鈕當(dāng)中,比如 qdial
23、og。) qwidget 有很多成員函數(shù),但是它們中的一些有少量的直接功能:例如,qwidget 有一個字體屬性,但是它自己從來不用。有很多繼承它的子類提供了實際的功能,比如 qpushbutton、 qlistbox 和 qtabdialog 等等。 每一個窗口部件構(gòu)造函數(shù)接受一個或兩個標(biāo)準(zhǔn)參數(shù): 1. qwidget *parent = 0 是新窗口部件的父窗口部件。如果為 0(默認) ,新的窗口部件將是一個頂級窗口部件。如果不是,它將會使 parent 的一個孩子,并且被 parent 的幾何形狀所強 迫(除非你指定 wtype_toplevel 作為窗口部件標(biāo)記)。2.3.2 qwid
24、get 事件簡介基本事件: * paintevent() 只要窗口部件需要被重繪就被調(diào)用。每個要顯示輸出的窗口部件必須實 現(xiàn) 它并且不在 paintevent()之外在屏幕上繪制是明智的。 * resizeevent() 當(dāng)窗口部件被重新定義大小時被調(diào)用。 * mousepressevent() 當(dāng)鼠標(biāo)鍵被按下時被調(diào)用。有六個鼠標(biāo)相關(guān)事件,但是鼠標(biāo)按下和 鼠標(biāo)釋放事件是到目前為止最重要的。當(dāng)鼠標(biāo)在窗口部件內(nèi)或者當(dāng)它使用 grabmouse()來捕 獲鼠標(biāo)時,它接收鼠標(biāo)按下事件。 * mousereleaseevent() 當(dāng)鼠標(biāo)鍵被釋放時被調(diào)用。當(dāng)窗口部件已經(jīng)接收相應(yīng)的鼠標(biāo)按下 事件時,它接收
25、鼠標(biāo)釋放事件。這也就是說如果用戶在你的窗口部件內(nèi)按下鼠標(biāo),然后拖著 鼠標(biāo)到其它某個地方,然后釋放,你的窗口部件接收這個釋放事件。這里有一個例外:如果 出現(xiàn)在彈出菜單中,當(dāng)鼠標(biāo)鍵被按下時,這個彈出菜單立即會偷掉這個鼠標(biāo)事件。 * mousedoubleclickevent() 和它看起來也許不太一樣。如果用戶雙擊,窗口部件接收一個鼠標(biāo)按下事件(如果他們沒有拿牢鼠標(biāo),也許會出現(xiàn)一個或兩個鼠標(biāo)移動事件) 、一個鼠標(biāo)釋放事件并且最終是這個事件。直到你看到第二次點擊是否到來之前, 不能從一個雙擊中 辨別一個點擊。(這是為什么絕大多數(shù)圖形用戶界面圖書建議雙擊是單擊的一個擴展,而不 是一個不同行為的觸發(fā)的一
26、個原因。) 如果你的窗口部件僅僅包含子窗口部件,你也許不需要實現(xiàn)任何一個事件處理器。如果你想檢測在子窗口部件中的鼠標(biāo)點擊,請在父窗口部件的 mousepressevent()中調(diào)用子窗口部件的 hasmouse()函數(shù)。 接收鍵盤的窗口部件需要重新實現(xiàn)一些更多的事件處理器:* keypressevent() 只要鍵被按下和當(dāng)鍵已經(jīng)被按下足夠長的時間可以自動重復(fù)了就被調(diào)用。注意如果 tab 和 shift+tab 鍵被用在焦點變換機制中,它們僅僅被傳遞給窗口部件。為 了強迫那些鍵被你的窗口部件處理,你必須重新實現(xiàn) qwidget:event()。 *focusinevent() 當(dāng)窗口部件獲得鍵
27、盤焦點(假設(shè)你已經(jīng)調(diào)用 setfocuspolicy()) 時被調(diào)用。 寫得好的窗口部件意味著它們能按照一種清晰但謹(jǐn)慎的方式來獲得鍵盤焦點。 * focusoutevent() 當(dāng)窗口部件失去鍵盤焦點時被調(diào)用。 一些窗口部件也許需要實現(xiàn)一些不太普通的事件處理器:* mousemoveevent() 只要當(dāng)鼠標(biāo)鍵被按下時鼠標(biāo)移動就會被調(diào)用。 舉例來說, 對于拖動, 這個很有用。如果你調(diào)用 setmousetracking(true),盡管沒有鼠標(biāo)鍵被按下,你也會獲得鼠 標(biāo)移動事件。(注意這個使用鼠標(biāo)跟蹤的應(yīng)用程序在低下的 x 連接下不是很有用。(也可以)參考拖放信息。* keyreleaseev
28、ent() 只要鍵被釋放和當(dāng)如果這個鍵是自動重復(fù)的并且被按下一段時間時就被調(diào)用。在這種情況下窗口部件接收一個鍵釋放事件并且對于每一個重復(fù)立即有一個鍵按下事件。注意如果 tab 和 shift+tab 鍵被用在焦點變換機制中,它們僅僅被傳遞給窗口部件。為了強迫那些鍵被你的窗口部件處理,你必須重新實現(xiàn) qwidget:event()。* wheelevent() 當(dāng)窗口部件擁有焦點時,只要用戶轉(zhuǎn)動鼠標(biāo)滾輪就被調(diào)用。 * enterevent() 當(dāng)鼠標(biāo)進入這個窗口部件屏幕空間時被調(diào)用。* leaveevent() 當(dāng)鼠標(biāo)離開這個窗口部件的屏幕空間時被調(diào)用。 * moveevent() 當(dāng)窗口部件相
29、對于它的父窗口部件已經(jīng)被移動時被調(diào)用。 * closeevent() 當(dāng)用戶關(guān)閉窗口部件時(或這當(dāng) close()被調(diào)用時)被調(diào)用。 這里還有一些不太明顯的事件。它們在 qevent.h 中被列出并且你需要重新實現(xiàn) event()來處 理它們。event()的默認實現(xiàn)處理 tab 和 shift+tab(移動鍵盤焦點)并且其它絕大多數(shù)事件給 上面提到的一個或更多的特定處理器。 window flag 標(biāo)識 關(guān)于 qwidget 的 flag 的介紹: enum qt:windowtype flags qt:windowflags 這兩個參數(shù)參 閱官方文檔。 qt 的 windowflags 有
30、很多,實際使用時,若不關(guān)心窗口層次的話,大可不比太關(guān)心這個。 比如說在 window 上做應(yīng)用開發(fā),大可只關(guān)注:qt:dialog,qt:tool,qt:window 即可。但 若是做嵌入式開發(fā)就得好好看看這個屬性,整理好這部分屬性,有利于窗口管理。著重介紹幾個重要成員函數(shù):bool qwidget:close () slot 關(guān)閉這個窗口部件。如果窗口部件被關(guān)閉,返回真,否則返回假。首先它發(fā)送給這個窗口部 件一個 qcloseevent。如果它接收這個關(guān)閉事件,它就被隱藏了。 qwidget:closeevent()的默 認實現(xiàn)是接收這個關(guān)閉事件。當(dāng)最后一個可視的頂級窗口部件被關(guān)閉,qapp
31、lication:lastwindowclosed()信號被發(fā)射。 注意窗口的 enum qt:widgetattribute 屬性,窗口默認屬性是 qt:wa_macopaquesizegrip, 設(shè)置上這個屬性意味著窗口調(diào)用 close()只銷毀了 ui 想關(guān),qwidget 內(nèi)還有很多內(nèi)存空間沒 有釋放,需調(diào)用 delete 銷毀 qwidget 。若需要在調(diào)用 close 時一并銷毀窗口可以給窗口設(shè) 置 qt:wa_deleteonclose 屬性。bool qwidget:event ( qevent * e ) 虛 保護 這是主事件處理器,它處理事件 e。你可以在子類中被重新實現(xiàn)整
32、個函數(shù),但是我們建議你 使用一個特定的事件處理器來替代它。 主事件首先把事件傳遞給所有已經(jīng)被安裝的事件過濾器。 如果沒有過濾器中途截取這個事件, 它調(diào)用一個特定的事件處理器。 鍵按下和釋放事件被處理得和其它事件不同。event()檢查 tab 和 shift+tab 并且試圖適當(dāng)?shù)?移動焦點。如果沒有窗口部件被焦點移入(或者鍵按下不是 tab 或 shift+tab) ,event()調(diào)用 keypressevent()。 如果它能夠把一個事件傳遞給沒個東西, 這個函數(shù)就返回真, 否則如果沒有任何東西想要這 個事件,返回假。 也可以參考 closeevent()、focusinevent()、
33、focusoutevent()、enterevent()、keypressevent()、keyreleaseevent() 、leaveevent() 、 mousedoubleclickevent() 、 mousemoveevent() 、mousepressevent() 、 mousereleaseevent() 、 moveevent() 、paintevent() 、 resizeevent() 、 qobject:event()和 qobject:timerevent()。 void qwidget:paintevent ( qpaintevent * ) 虛 保護 這個事件處
34、理器可以在子類中被重新實現(xiàn)來接收繪制事件。繪制事件就是重新繪制這個窗口部件的所有部分的一個請求。它可以是 repaint()或 update() 的結(jié)果, 或者因為這個窗口部件原來被變暗并且現(xiàn)在已經(jīng)不再被覆蓋了, 或者其它很多原因。 很多窗口部件在當(dāng)它們被請求時, 它們很簡單地重新繪制整個界面, 但是一些比較慢的窗口 部件需要通過僅僅繪制被請求的區(qū)域 qpaintevent:region()進行優(yōu)化。 這個速度優(yōu)化不會改變 結(jié)果,在事件處理過程中,繪制僅僅發(fā)生在被改變的區(qū)域中。例如,qlistview 和 qcanvas 就是這樣做的。qt 也試圖通過把多個繪制事件合并為一個來加快繪制速度。
35、update()被調(diào)用幾次或者窗口 當(dāng) 系統(tǒng)發(fā)送幾次繪制事件,qt 把它們合并為一個比較大區(qū)域(請參考 qregion:unite())的一 個事件中。repaint()不允許這樣優(yōu)化,所以只要可能我們建議使用 update()。 當(dāng)繪制事件發(fā)生,更新區(qū)域通常被擦除,所以你正在這個窗口部件的背景上繪制。這里有一 些例外并且 qpaintevent:erased()告訴你這個窗口部件是否被擦除。 背景可以通過使用setbackgroundmode()、setpalettebackgroundcolor()或 setbackgroundpixmap()來設(shè)置。setbackgroundmode()
36、的文檔詳細描述了背景,我們建議你去 讀一下。 void qwidget:raise () 槽 把這個窗口部件升高到它的父窗口部件的棧的頂部。 如果在屏幕上有與這個窗口部件重疊的兄弟, 這個窗口部件將在它后來的這些兄弟之前變的 可視了。 也可以參考 lower()和 stackunder()。 void qwidget:repaint ( int x, int y, int w, int h, bool erase = true ) 槽 通過立即調(diào)用 paintevent()來直接重新繪制窗口部件,除非更新是失效的或者窗口部件被隱 藏。 如果 erase 為真,qt 在 paintevent()
37、調(diào)用之前擦除區(qū)域(x,y,w,h)。 如果 w 是負數(shù),它被 width()-x 替換,并且如果 h 是負數(shù),它被 height()-y 替換。 如果你需要立即重新繪制,我們建議使用 repaint(),比如在動畫期間。在絕大多數(shù)情況下, update()更好,因為它允許 qt 來優(yōu)化速度并且防止閃爍。 警告:如果你在一個函數(shù)中調(diào)用 repaint(),而它自己又被 paintevent()調(diào)用,你也許會看到無 線循環(huán)。update()函數(shù)從來不會產(chǎn)生循環(huán)。 也可以參考 update()、paintevent()、updatesenabled 和 erase()。2.4 qt應(yīng)用程序的實現(xiàn)由以
38、上簡介可知,qt是一個創(chuàng)建gui程序的c+類庫,編寫qt應(yīng)用程序的主要工作是基于已有的qt類編寫用戶類。qt提供了一組范圍相當(dāng)廣泛的c+類庫,并包含了幾種命令行和圖形界面的工具,有效地使用這些工具可以加速開發(fā)過程。qt designer:qt設(shè)計器。用來可視化地設(shè)計應(yīng)用程序界面。qt linguist:qt語言學(xué)家。用來翻譯應(yīng)用程序。以此提供對多種語言的支持。qmake:使用此工具可以由簡單的、與平臺無關(guān)的工程文件來生成編譯所需的makefile。qt assistant:關(guān)于qt的幫助文件。類似于msdn??梢钥焖俚匕l(fā)現(xiàn)你所需要的幫助。moc:元對象編譯器。uic:用戶界面編譯器。在程序編譯
39、時被自動調(diào)用,通過ui_*.h文件生成應(yīng)用程序界面。qt應(yīng)用程序的設(shè)計使用基于工程的方法,并通過.pro文件進行工程管理。實現(xiàn)應(yīng)用程序的第一步是編寫.pro文件,然后使用qt4自帶的qmake工具生成makefile,最后進行源代碼的編譯。qmake的過程如下:qmake project /生成.pro的工程文件qmake /生成makefilenmake /編譯2.5 本章小結(jié)隨著越來越多的第三方軟件公司利用qt/embedded開發(fā)嵌入式linux下的應(yīng)用軟件,qt的應(yīng)用已經(jīng)越來越廣泛。本章主要介紹了qt的背景和描述了qt實現(xiàn)的結(jié)構(gòu)原理,還簡述了qt的相關(guān)特性。此外,也介紹了qt應(yīng)用程序開
40、發(fā)時的相關(guān)工具。3 需求分析3.1 需求分析概述在系統(tǒng)工程及軟件工程中,需求分析指的是在創(chuàng)建一個新的或改變一個現(xiàn)存的系統(tǒng)或產(chǎn)品時,確定新系統(tǒng)的目的、范圍、定義和功能時所要做的所有工作。需求分析是軟件工程中的一個關(guān)鍵過程。在這個過程中,系統(tǒng)分析員和軟件工程師確定顧客的需要。只有在確定了這些需要后他們才能夠分析和尋求新系統(tǒng)的解決方法。在軟件工程的歷史中,很長時間里人們一直認為需求分析是整個軟件工程中最簡單的一個步驟,但在過去十年中越來越多的人認識到它是整個過程中最關(guān)鍵的一個過程。假如在需求分析時,分析者們未能正確地認識到顧客的需要的話,那么最后的軟件實際上不可能達到顧客的需要,或者軟件無法在規(guī)定的
41、時間里完工。3.2 需求分析的特點需求分析是一項重要的工作,也是最困難的工作。該階段工作有以下特點:(1)用戶與開發(fā)人員很難進行交流在軟件生存周期中,其它四個階段都是面向軟件技術(shù)問題,只有本階段是面向用戶的。需求分析是對用戶的業(yè)務(wù)活動進行分析,明確在用戶的業(yè)務(wù)環(huán)境中軟件系統(tǒng)應(yīng)該做什么。但是在開始時,開發(fā)人員和用戶雙方都不能準(zhǔn)確地提出系統(tǒng)要做什么?。因為軟件開發(fā)人員不是用戶問題領(lǐng)域的專家,不熟悉用戶的業(yè)務(wù)活動和業(yè)務(wù)環(huán)境,又不可能在短期內(nèi)搞清楚;而用戶不熟悉計算機應(yīng)用的有關(guān)問題。由于雙方互相不了解對方的工作,又缺乏共同語言,所以在交流時存在著隔閡。(2)用戶的需求是動態(tài)變化的對于一個大型而復(fù)雜的軟
42、件系統(tǒng),用戶很難精確完整地提出它的功能和性能要求。一開始只能提出一個大概、模糊的功能,只有經(jīng)過長時間的反復(fù)認識才逐步明確。有時進入到設(shè)計、編程階段才能明確,更有甚者,到開發(fā)后期還在提新的要求。這無疑給軟件開發(fā)帶來困難。(3)系統(tǒng)變更的代價呈非線性增長需求分析是軟件開發(fā)的基礎(chǔ)。假定在該階段發(fā)現(xiàn)一個錯誤,解決它需要用一小時的時間,到設(shè)計、編程、測試和維護階段解決,則要花2.5、5、25、100倍的時間。因此,對于大型復(fù)雜系統(tǒng)而言,首先要進行可行性研究。開發(fā)人員對用戶的要求及現(xiàn)實環(huán)境進行調(diào)查、了解,從技術(shù)、經(jīng)濟和社會因素三個方面進行研究并論證該軟件項目的可行性,根據(jù)可行性研究的結(jié)果,決定項目的取舍。
43、3.3 需求分析需要完成的任務(wù)雖然功能需求是對軟件系統(tǒng)的一項基本需求,但卻并不是唯一的需求,通常對軟件系統(tǒng)有下述幾方面的綜合要求。1.功能需求2.性能需求3.可靠性和可用性需求4.出錯處理需求5.接口需求6.約束7.逆向需求8.將來可能提出的要求3.4 實際需求分析3.4.1 用戶需求分析目前,我們可以通過各種途徑接觸校園導(dǎo)航,例如以網(wǎng)頁形式的電子地圖,如google地圖、google earth、百度地圖等,以車載gps導(dǎo)航儀的電子地圖,如garmin任我游、紐曼、新科、城際通等,還有以手機導(dǎo)航功能出現(xiàn)的電子地圖,越來越多的手機將支持導(dǎo)航功能,諾基亞2010年在大規(guī)模普及手機導(dǎo)航。對此,本項
44、目采用免費版的qt4作為程序框架,并且可以跨平臺使用,在開發(fā)成本上有著很大的優(yōu)勢。 未來幾年,配備電子地圖的電子產(chǎn)品市場將逐漸走向成熟,市場需求和產(chǎn)品銷量會保持大幅增長,產(chǎn)品供應(yīng)鏈中的各類企業(yè)將獲得巨大商機。尤其是隨著產(chǎn)品價格的不斷下降,這種快速發(fā)展的態(tài)勢會愈加明顯。電子地圖在中國市場必然會獲得更大的發(fā)展空間。由此,本項目也適應(yīng)用戶需求,開發(fā)校園導(dǎo)航的相關(guān)功能:景點信息顯示、最短路徑查找等。3.4.2 功能需求分析根據(jù)用戶需求,和對產(chǎn)品的定位,劃分以下功能:(1) 設(shè)計太原理工大學(xué)的校園平面圖,所含景點不少于5個。以圖中頂點表示校內(nèi)各景點,存放景點名稱、代號、簡介等信息;以邊表示路徑,存放路徑
45、長度等信息。 (2)為來訪客人提供圖中任意景點相關(guān)信息的查詢。(3)為來訪客人提供圖中任意景點的問路查詢,即查詢?nèi)我鈨蓚€頂點之間的一條最短的簡單路徑。3.4.3 實際需求分析1從我們學(xué)校的地圖任意選取了9個景點,并給它們的距離賦值 2本程序為用戶提供了各種各樣的查詢信息,各種查詢都可以任意選擇從代號或名稱,選擇時的任意錯誤都有做處理。本題抽象看成一個無向帶權(quán)圖。圖的結(jié)點代表景點,邊代表路徑。 (1)任意一個景點的相關(guān)信息。(2)任意兩個景點間的最短路徑并輸出了這條路徑的路線。支持功能分析:(1)設(shè)計太原理工大學(xué)的校園平面圖,所含景點不少于5個。以圖中頂點表示校內(nèi)各景點,存放景點名稱、代號、簡介
46、等信息;以邊表示路徑,存放路徑長度等信息。(2)為來訪客人提供圖中任意景點相關(guān)信息的查詢,主要包括景點圖片的觀看,景點描述信息的閱讀,景點到校園內(nèi)所有景點的可達路徑的了解。(3)為來訪客人提供圖中任意景點的問路查詢,即查詢?nèi)我鈨蓚€頂點之間的一條最短的簡單路徑,以及兩點間任意.3.4.4 系統(tǒng)性能需求分析對于該系統(tǒng),沒有嚴(yán)格的性能要求。1.首先,在沒有選擇初始點與終點是,系統(tǒng)不能夠崩潰,當(dāng)點擊查詢按鈕是,不會沒有結(jié)果顯示,導(dǎo)致程序不是很美觀,要求系統(tǒng)在初始時,有相應(yīng)的結(jié)果顯示。2.其次,可以允許運行多個界面,以防用戶需要進行路徑、景點、還有風(fēng)景的比較,以便選擇更好的參觀方式。3.5 本章小結(jié)本章
47、主要介紹了校園導(dǎo)航系統(tǒng)的需求分析,通過了解用戶的需求分析,來制定功能的需求分析,在通過功能的需求分析,來制定實際需求分析,以此為基礎(chǔ)進行導(dǎo)航系統(tǒng)的設(shè)計。4 總體設(shè)計4.1 總體設(shè)計概述總體設(shè)計概述這個階段必須回答的關(guān)鍵問題是:“概括地說,應(yīng)該如何解決這個問題? 首先,應(yīng)該考慮幾種可能的解決方案。列如,目標(biāo)系統(tǒng)的一些主要功能是用計算機自動完成還是用人工完成;如果使用計算機,那么是使用批處理方式還是人機交互方式;信息存儲使用傳統(tǒng)的文件系統(tǒng)還是數(shù)據(jù)庫。通常至少應(yīng)該考慮下述幾類可能的方案:1.低成本的解決方案。系統(tǒng)只能完成最必要的工作,不能多做一點額處的工作,只要能完成用戶需要的功能就可以了。2. 中
48、等成本的解決方案。這樣的系統(tǒng)不僅能夠很好地完成預(yù)定的任務(wù),使用起來很方便,而且可能還具有用戶沒有具體指定的某些功能和特點。雖然用戶沒有提出這些具體要求,但是系統(tǒng)分析員根據(jù)自己的知識和經(jīng)驗斷定,這些附加的能力在實踐中將證明是很有價值的。3.高成本的“十全十美”的系統(tǒng)。這樣的系統(tǒng)具有用戶可能希望有的所有功能和特點。 系統(tǒng)分析員應(yīng)該使用系統(tǒng)流程圖或其他工具描述每種可能的系統(tǒng),估計每種方案的成本和效益,還應(yīng)該在充分權(quán)衡各種方案的利弊的基礎(chǔ)上,推薦一個較好的系統(tǒng) (最佳方案),并且制定實現(xiàn)所推薦的系統(tǒng)的詳細計劃。如果用戶接受分析員推薦的系統(tǒng),則可以著手完成本階段的另一項主要工作。 上面的工作確定了解決問
49、題的策略以及目標(biāo)系統(tǒng)需要哪些程序,但是,怎樣設(shè)計這些程序呢?結(jié)構(gòu)設(shè)計的一條基本原理就是程序應(yīng)該模塊化,也就是一個大程序應(yīng)該由許多 規(guī)模適中的模塊按合理的層次結(jié)構(gòu)組織而成??傮w設(shè)計階段的第二項主要任務(wù)就是設(shè)計軟件的結(jié)構(gòu),也就是確定程序由哪些模塊組成以及模塊間的關(guān)系。通常用層次 圖或結(jié)構(gòu)圖描繪軟件的結(jié)構(gòu)。在了解了系統(tǒng)總體設(shè)計的概念及要求后,完成自己的總體設(shè)計,由于這個項目是用于畢業(yè)設(shè)計的,并不是用于其他用途的,所以,就只有一個方案,沒有顧及成本,只有軟件方面,就是一個人開發(fā)的。4.2 系統(tǒng)總體設(shè)計描述在對需求分析進行了系統(tǒng)研究后,決定了總體設(shè)計的方案。首先有一個系統(tǒng)的主界面,在這個主界面上,并沒有
50、關(guān)于導(dǎo)航的其他信息,只有進入導(dǎo)航的入口,和有關(guān)開發(fā)人員的信息(主要包括學(xué)校,所在實訓(xùn)基地,開發(fā)人員的基地指導(dǎo)老師,還有開發(fā)人員自己的信息查詢),除此之外,還有系統(tǒng)時間的顯示,查看當(dāng)時的時間,還有學(xué)校名字的顯示。其次,是導(dǎo)航系統(tǒng)的主界面,在主界面中可以查看景點信息,查看路徑,選擇終點和起點,在不需要再使用系統(tǒng)時,可以選擇退出系統(tǒng)。4.3 系統(tǒng)總體設(shè)計模塊劃分在了解了需求,分析了需求分析后,劃分出了模塊。主要的模塊由:顯示系統(tǒng)主界面 ,顯示導(dǎo)航系統(tǒng)主界面,查詢導(dǎo)航有關(guān)人員的模塊。在導(dǎo)航系統(tǒng)主界面主界面中有小的模塊,主要的模塊有:退出系統(tǒng)模塊,顯示景點信息模塊,查詢路徑模塊,選擇和更改起始點模塊。4
51、.3.1 主要模塊劃分圖在劃分完模塊后,主要的模塊由顯示系統(tǒng)主界面,有顯示校園導(dǎo)航系統(tǒng)主界面,還有查詢相關(guān)等三個主要模塊,得到主要的模塊劃分框圖,如圖4-1所示:圖4-1 主要模塊劃分圖4.3.2 顯示系統(tǒng)主界面模塊設(shè)計在我的系統(tǒng)中,首先現(xiàn)實的是整個系統(tǒng)的主界面,并不會直接進入到導(dǎo)航界面,顯得有點突兀,所以有一個整個系統(tǒng)的主界面,在從這個界面中進入到導(dǎo)航系統(tǒng)的主界面,進行過渡一下,下面是我的這個界面的框圖。其中,在選擇進入導(dǎo)航系統(tǒng)時,有兩種選擇:1.點擊開始按鈕,2在主頁面上,有一張學(xué)校的圖片,點擊圖片也會進入到導(dǎo)航主系統(tǒng)。如圖4-2所示:圖4-2 系統(tǒng)主界面模塊細分圖在退出系統(tǒng)時,也可以有多
52、種選擇,可以選擇直接推出,也可以選擇重新使用系統(tǒng),提供多種選擇。如圖4-3所示:圖4-3 退出系統(tǒng)模塊劃分圖4.3.3 查詢導(dǎo)航有關(guān)人員模塊設(shè)計不論是在系統(tǒng)主界面,還是在導(dǎo)航主界面中,在界面的下端都有一個模塊是用來查詢與該畢業(yè)設(shè)計有關(guān)的人員,有關(guān)的人員主要有所在的學(xué)校、所在的培訓(xùn)基地,開發(fā)者本人,以及開發(fā)者的基地指導(dǎo)老師,相應(yīng)的模塊設(shè)計如下。如圖4-4所示:圖4-4 查看相關(guān)人員模塊細分圖4.3.4 導(dǎo)航主界面的模塊的設(shè)計在這個畢業(yè)設(shè)計中,最重要的是,校園導(dǎo)航系統(tǒng)的實現(xiàn)。在這個系統(tǒng)中,我要實現(xiàn)的功能有查詢兩個景點之間的最短路徑,兩個景點間的所有路徑,每個景點的信息查詢(主要包括景點描述信息,該
53、景點可以到達的所有其他景點的最短路徑信息),還有在切換起始點和終點的時候,同時出現(xiàn)這兩個景點的圖片,當(dāng)點擊查詢路徑按鈕是,則在該位置上出現(xiàn)的是學(xué)校的總體布局圖。首先,得到導(dǎo)航系統(tǒng)主界面的主功能圖。如圖4-5所示:圖4-5 校園導(dǎo)航主界面模塊劃分圖在查詢路徑的時候,同時需要干兩件事,在一個地方現(xiàn)實最短路徑及其長度,在另一個地方顯示所有這兩個景點之間的路徑。如圖4-6所示:圖4-6 路徑查詢模塊細分圖4.4 本章總結(jié)在本章中,我主要的工作就是,完成總體設(shè)計,得到模塊劃分圖,和各個模塊的細分圖,在接下來的系統(tǒng)設(shè)計中,以此為基礎(chǔ)來進行詳細設(shè)計。5 詳細設(shè)計5.1 詳細設(shè)計概述總體設(shè)計階段以比較抽象概括
54、的方式提出了解決問題的辦法。詳細設(shè)計階段的任務(wù)就是把解法具體化,也就是回答下面這個關(guān)鍵問題:“應(yīng)該怎樣具體地實現(xiàn)這個系統(tǒng)呢?”。 這個階段的任務(wù)還不是編寫程序,而是設(shè)計出程序的詳細規(guī)格說明。這種規(guī)格說明的作用很類似于其他工程領(lǐng)域中工程師經(jīng)常使用的工程藍圖,它們應(yīng)該包含必要的細節(jié),程序員可以根據(jù)它們寫出實際的程序代碼。研究一下一般的詳細設(shè)計主要需要完成什么樣的功能。詳細設(shè)計的主要任務(wù)是設(shè)計每個模塊的實現(xiàn)算法、所需的局部數(shù)據(jù)結(jié)構(gòu)。詳細設(shè)計的目標(biāo)有兩個:實現(xiàn)模塊功能的算法要邏輯上正確和算法描述要簡明易懂?;救蝿?wù):(1)為每個模塊進行詳細的算法設(shè)計。用某種圖形、表格、語言等工具將每個模塊處理過程的詳
55、細算法描述出來。(2)為模塊內(nèi)的數(shù)據(jù)結(jié)構(gòu)進行設(shè)計。對于需求分析、概要設(shè)計確定的概念性的數(shù)據(jù)類型進行確切的定義。(3)為數(shù)據(jù)結(jié)構(gòu)進行物理設(shè)計,即確定數(shù)據(jù)庫的物理結(jié)構(gòu)。物理結(jié)構(gòu)主要指數(shù)據(jù)庫的存儲記錄格式、存儲記錄安排和存儲方法,這些都依賴于具體所使用的數(shù)據(jù)庫系統(tǒng)。(4)其他設(shè)計:根據(jù)軟件系統(tǒng)的類型,還可能要進行以下設(shè)計:代碼設(shè)計。為了提高數(shù)據(jù)的輸入、分類、存儲、檢索等操作,節(jié)約內(nèi)存空間,對數(shù)據(jù)庫中的某些數(shù)據(jù)項的值要進行代碼設(shè)計。輸入/輸出格式設(shè)計。人機對話設(shè)計。對于一個實時系統(tǒng),用戶與計算機頻繁對話,因此要進行對話方式、內(nèi)容、格式的具體設(shè)計。(5)編寫詳細設(shè)計說明書。(6)評審。對處理過程的算法和數(shù)據(jù)庫的物理結(jié)構(gòu)都要評審。由于該項目是自己實現(xiàn)的,所以就沒有復(fù)雜的流程。5.2 校園導(dǎo)航系統(tǒng)主程序流程圖在確定了總體設(shè)計后,畫出詳細設(shè)計中,主流程圖。點擊開始就進入了導(dǎo)航主系統(tǒng),進入到主系統(tǒng)后,就會實例化一系列的類的對象,主要是窗口的實例化,還有圖的實例化,所有的實例化后,就可以進行導(dǎo)航了。如圖5-1所示:圖5-1 程序總體流程圖5.3 單源最短路徑算法介紹在我的程序中,需要使用到路徑查詢,最重要的就是最短路徑查詢,所以需要設(shè)計一下所使用的算法。5.3.1 di
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年中國內(nèi)蒙古能源行業(yè)調(diào)查報告
- 2025年中國電動游覽觀光車行業(yè)市場深度分析及發(fā)展戰(zhàn)略規(guī)劃報告
- 中國楓木短料行業(yè)市場發(fā)展前景及發(fā)展趨勢與投資戰(zhàn)略研究報告(2024-2030)
- 2025年度數(shù)據(jù)中心應(yīng)急演練計劃
- 2025年中國恐怖奶嘴糖行業(yè)市場發(fā)展前景及發(fā)展趨勢與投資戰(zhàn)略研究報告
- 住院超30天原因的臨床路徑優(yōu)化措施
- 幼兒園中班下學(xué)期情緒管理指導(dǎo)計劃
- 中國螺紋量儀行業(yè)市場全景分析及投資策略研究報告
- 中國全過程工程咨詢行業(yè)市場前景預(yù)測及投資戰(zhàn)略研究報告
- 初三英語學(xué)習(xí)方法改進計劃
- 東北林業(yè)大學(xué)20-21高數(shù)A2期末考試含答案
- 暨南大學(xué)《微觀經(jīng)濟學(xué)》2023-2024學(xué)年第一學(xué)期期末試卷
- 原理及適用范圍 火試金法
- GB/T 44570-2024塑料制品聚碳酸酯板材
- 新疆2020年中考英語真題(含答案)
- 北京市東城區(qū)東直門中學(xué)2024-2025學(xué)年七年級上學(xué)期分班考數(shù)學(xué)試卷
- 內(nèi)蒙古地區(qū)歷年中考語文現(xiàn)代文閱讀之非連續(xù)性文本閱讀14篇(含答案)(2003-2023)
- 國家開放大學(xué)本科《理工英語3》一平臺機考總題庫2025珍藏版
- 防水包工包料合同范本
- 生物基膠粘劑的綠色合成
- 一年級下冊《讀讀童謠和兒歌》試題及答案共10套
評論
0/150
提交評論