如今,可以開發出一套系統套用在校園教務上,它可實現多方面的功能,比如教務通知的發布、課表的實時發布等功能。通過面向對象的程式設計技術開發出適合教務使用的套用軟體,具有很高的實用價值。
在本文中主要對軟體的課表解析功能進行介紹。在對系統軟體設計之前,先要對其進行結構分層處理,即用框圖形式來表示。這樣就使得我們在進行軟體系統各部分的設計時有了明確的目的和針對性,鑒於這些我們可以很好的進行系統軟體的具體設計。結構框圖如圖1所示。
系統軟體按照功能的實現來看,從結構上主要分為三個部分,分別是課表內容獲取、數據處理、視窗顯示。當數據經過本軟體時,第一步就是要進行課表源檔案的解析,第二步是數據的處理,這裡包括存檔資料庫、數據提取分類等。第三步是將提取的數據在客戶端中顯示。通過結構分層,使得我們在對軟體系統的各個具體部分的設計有了明確的目的和針對性。事實上本文中的系統軟體設計就是根據這個分層結構來一步一步完成的。
文章中開發的系統軟體主要為校園教務服務,最終要形成一個客戶端軟體。它具備的基本功能有:
(1)能夠實時的傳送教務通知信息;
(2)具備解析課表功能,並存入資料庫,能夠對資料庫中的課表數據進行操作(查找、添加、修改、刪除等);
(3)將我們需要待傳送的數據可以自動排版在圖片所在的顯示視窗。
要建立系統軟體的整體架構,最重要的是要對各種數據的流程進行詳細的規劃。在本文設計的系統軟體中,數據要經歷各個功能模組的處理,最終得到預期效果。軟體體系數據流程如圖2所示。
從圖2中可知,本軟體體系的數據流程要經歷幾個功能模組的處理。軟體的整個結構中有來自三個方向的數據輸入:第一個是背景圖片的載入,它要經過流接口istream的裝載,然後把數據輸送給ipicture的com接口,並在顯示視窗顯示。第二個是來自客戶端的數據輸入(通知信息等),數據通過視窗類cwnd處理並在函式onpaint的作用下將數據繪製到視窗中。第三個是課表檔案的輸入,在課表解析模組的作用下得到我們需要的數據,然後存入資料庫。最後把得到的檔案送出。
該系統的軟體結構框架從整體上規劃了不同部分的設計要求和設計思路。在具體的開發過程中,還需要對這些功能進行具體的實現。這就需要我們了解在具體設計中對於每個部分的實現過程。在visual c++6.0設計平台上,對於類的定義是一個很重要的設計部分。為了實現各種套用功能,定義了不同需求的類,其最終目的是實現各個部分的具體功能。
ipicture的com接口主要管理圖像對象及其屬性,圖像對象為點陣圖、圖示和圖元等提供一種與語言無關的抽象。它和標準的字型對象一樣,也提供了對圖像對象的標準實現
該模組在jpg編碼過程中起到很重要的作用。它的主要作用是在客戶端中添加背景圖片。對該模組進行重新的定義後,可以對圖像數據進行保存和圖像流數據進行裝載。本文中定義的ipicture對象名為指針ppic,在打開背景圖片後使用函式globalalloc對圖片進行分配全局存儲空間,在進行圖像裝載後我們還需要獲取圖像的大小,這裡使用ppic->get_width得到圖片的寬度,get_height得到圖片的高度,通過這些就可以把任意的背景添加到客戶端視窗上。
在客戶端視窗中的視圖需要轉化為jpg圖片格式,在上述中我們能夠獲取視圖圖像的寬度和高度,這兩個參數能夠為程式中將要獲取視圖的範圍提供數據。下面要做的是進行在指定設備環境區域的像素位塊轉化,在進行轉化時,必須要知道目標矩形區域的x軸與y軸坐標才能對設備環境中的圖像進行剪下變換,主要是將原場景的顏色格式轉換成能夠與目標格式匹配的格式。將圖元數據通過cximage類的轉換,就能夠獲得我們感興趣的區域圖片。
顯示類preview是用於在客戶端中處理過的數據能夠顯示在視窗的類。在客戶端輸入的數據或課表解析傳過來的數據是和視窗句柄相聯的,將我們需要的數據自動的繪在視窗的特定區域。在該類中,數據的顯示是動態的,這樣的好處是可以方便的實時把其他的功能作用在視窗上。在此基礎上我們還有一些特定功能的函式和視窗句柄相聯的,比如背景顏色的變換、字型大小顏色的改變、圖片的變換等。
該模組的作用是在背景圖片中繪製教務通知等文字信息而使用的。在對函式cwnd::onpaint進行定義後它能夠實現動態的顯示信息內容,並且能夠實現實時更新內容。onpaint是wm_paint訊息的訊息處理函式,負責回響wm_paint訊息。通過類cfont來控制文字的格式,可以達到豐富的顯示效果。