freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

學籍管理系統(tǒng)的設(shè)計與實現(xiàn)—畢業(yè)設(shè)計論文-資料下載頁

2024-11-29 03:49本頁面

【導讀】建立和維護以及前端應(yīng)用程序的開發(fā)兩個方面。對于前者要求建立起數(shù)據(jù)一致性。和完整性強、數(shù)據(jù)安全性好的庫。而對于后者則要求應(yīng)用程序功能完備,方便使。系統(tǒng)還可以完成對各類信息的瀏覽、查詢、添加、刪除、修改、報。求迭代,不斷修正和改進,直到形成用戶滿意的可行系統(tǒng)。關(guān)鍵字:控件、窗體、數(shù)據(jù)庫、MIS、、SQLServer2020。

  

【正文】 Flash 窗體,這是一個快閃窗體。如果一個窗體上面所放置的控件、位圖等資源比較多時,該窗體在載入時就需要較長的時間。如果一個應(yīng)用程序在啟動是消耗時間比較長,用戶在等待時或許就會有不耐煩的感覺。為了讓用戶能夠在系統(tǒng)啟動的這段時間里能夠了解到應(yīng)用程序的一些信息,需要使用到快閃窗體??扉W窗體就是在該應(yīng)用程序初始化的過程中,在用戶的系統(tǒng)平臺上率先顯示出來的一個窗體。該窗體有獨特的窗體風格,一般用來向用戶顯示一些有關(guān)程序的信息、公司的信息 或是其他一些提示性的文字和畫面。 快閃窗體在許多應(yīng)用程序中都有應(yīng)用,例如 Visual Basic 在啟動時就有一個快閃窗體。快閃窗體一般要在應(yīng)用程序加載完畢顯示出來之后,在關(guān)閉掉。有的快閃窗體上面放置了 Timer 控件,用來控制快閃窗體的關(guān)閉。在本系統(tǒng)中,則是顯示完主窗體后,通過其他程序代碼塊中的相關(guān)代碼來關(guān)閉快閃窗體。 在制作快閃窗體時,因為它的窗口風格與普通窗體的風格不同,所以需要為其窗體外觀進行一些特別的設(shè)置,具體做法如下:設(shè)置快閃窗體的 BorderStyle屬性為 0None,設(shè)置 MaxButton和 MinButton為 False。這樣就完成了快閃窗體的制作。 可以為窗體的 Click事件添加代碼,用來關(guān)閉窗體。一般用不上,因為快閃窗體的顯示和關(guān)閉一般由其他程序代碼控制。 在程序設(shè)計過程中,利用了兩個集合對象來存放要顯示于菜單上的標題文本字符串。其中,一個集合 colScore 用來存放“成績管理”菜單中的子菜單項,另一個集合 colInfo 用來存放“學生信息管理”菜單中的子菜單項。 判斷出登錄用戶的用戶級別為“系統(tǒng)級別”之后,則所有菜單項設(shè)置為Visible=True,使 其可見;然后對兩個集合分別進行循環(huán)遍歷,將從這兩個集合中搜索到的字符串添加到數(shù)形控件上去,從而形成系統(tǒng)級別的完整的操作界面。 在普通級別的用戶界面中,將只有“成績查詢”功能菜單是可以使用的,其他的“成績錄入”、“學生信息管理”以及“學生信息查詢”等菜單均為不可見的。這樣就限制了普通用戶對數(shù)據(jù)庫的操作。 對應(yīng)地,此時的操作目錄樹也只有“成績查詢”一個子節(jié)點。具體的實現(xiàn)方法依然是使用循環(huán)遍歷集合,只是在該段代碼中將只遍歷 colScore 集合。在 For循環(huán)中設(shè)置好遍歷的起點和終點,將使得只有特定的 一條項目被添加到樹形控件中去。 這種方法只是取得了一定程度上的靈活性:通過將幾個集合變量定義為模塊級變量,菜單標題字符串定義為常量字符串,從而使得該程序具備一定的靈活性。如果想要取得更大的靈活性,可能需要借助菜單數(shù)組甚至是有關(guān) INI 文件的技巧。 具體的各部分的代碼實現(xiàn)見程序清單。 學籍管理系統(tǒng)主界面設(shè)計 應(yīng)用 程序的主界面是整個應(yīng)用程序中比較重要的一個組成部分。一般而言,程序界面的設(shè)計應(yīng)該簡單、整潔。另外,對于 Windows 應(yīng)用程序的界面最好符合 Windows 標準應(yīng)用程序的一般操作 規(guī)則,而不應(yīng)該追求一些外表的華麗和與眾不同,使得用戶在操作時感到不適應(yīng)。 一個標準的 Windows應(yīng)用程序界面一般包括菜單、工具欄和狀態(tài)欄等部分。在學籍管理系統(tǒng)的界面設(shè)計中,也遵循這一風格。應(yīng)用程序主界面如圖 45 所示。 圖 45 應(yīng)用程序的主界面 應(yīng)用程序主界面的窗體設(shè)計 在應(yīng)用程序中主要應(yīng)用了菜單、工具欄、目錄樹和狀態(tài)欄來構(gòu)成系統(tǒng)的主界面。 1. 菜單的設(shè)計 菜單是 Windows 應(yīng)用程序中的重要組成部分,各個菜單項的設(shè)計功能 都按照標準界面菜單的功能進行設(shè)計。 MDI 應(yīng)用程序中,父窗體可以有自己的菜單,子窗體也可以有屬于自己的菜單。這些菜單的創(chuàng)建都可以利用 Menu Editor來進行創(chuàng)建。 然而,當一個 MDI 應(yīng)用程序的父窗體和子窗體都擁有各自的菜單時,將會出現(xiàn)菜單替代的問題,也就是說,當擁有自身菜單的子菜單為活動窗體時,該子窗體的菜單將不顯示在子窗體的本身,而是取代了父窗體原來的菜單,出現(xiàn)在父窗體菜單原來的位置。這樣,就不能在子窗體運行時使 用父窗體的菜單功能了。當該子窗體退出或是不再處于活動狀態(tài)時, MDI 應(yīng)用程 序的父窗體將不會自動重新顯示父窗體菜單。 解決這一問題的兩個方案: ? 將所有不要的父窗體菜單功能都復(fù)制到每個子窗體菜單中去。這種方法雖然可行,然而,如果帶有菜單的子窗體數(shù)量比較多的話,程序?qū)@得臃腫而且難以維護。 ? 在父窗體的菜單中包含所有子菜單所必需的菜單功能??梢栽谶\行時先讓這些子菜單功能不可見,然后當運行子菜單時,可以在子菜單對應(yīng)的GetFocus 和 LostFocus 事件中控制這些子菜單的每一項,可以使用MDI父窗體的 ActiveForm 屬性。該屬性用來獲取 MDI應(yīng)用程序中當前的活動子窗體,從 而對其進行窗體的任意操作,而不需要該窗體的名稱。 以上兩種方案中,第二種方案比較好,因為將這些菜單合并成一個菜單進行管理,在維護上比較方便,更便于操作。最好的做法是根本不需要在子窗體中放置菜單,可以用按鈕或其他方式(例如,右鍵的彈出菜單就可以實現(xiàn))來為子菜單提供具有相同功能的解決方案。 程序中包括兩個 ImageList 控件它們分別用來為工具欄和 TreeView 控件提供圖片。另外,應(yīng)用程序還包含了一個 Timer 控件。通過 Timer 控件可以對狀態(tài)欄進行定時更新。 2. ImageList 控件和 Timer 控件 ImageList 控件和 Timer 控件在應(yīng)用程序中有著比較重要的用途。在本系統(tǒng)中,只為工具欄提供了一個 ImageList 關(guān)聯(lián)。 如果想要更復(fù)雜的工具欄效果,可以將工具欄設(shè)置為與 3 個 ImageList 控件相關(guān)聯(lián)。這樣就可以分別對工具欄按鈕的正常狀態(tài)、不被激活的狀態(tài)和復(fù)選樣式或下拉樣式的按鈕在激活的狀態(tài)分別提供圖片。 3. 工具欄設(shè)計 工具欄提供了便捷的操作方式來完成應(yīng)用程序常用菜單的操作。在現(xiàn)在的Windows 應(yīng)用程序中,工具欄已經(jīng)成為非常重要的一個組成部分。 在本系統(tǒng)中,工具欄上放置了一些用來操縱界面外觀的 常用按鈕。其他應(yīng)用程序功能菜單并沒有放置到工具欄中。 工具欄的各個按鈕還需要設(shè)置一些其他的一些屬性,例如,為每個工具欄按鈕的 ToolTipText 設(shè)置相應(yīng)的文本;為每個工具欄提供相關(guān)聯(lián)的圖片索引。設(shè)置這些屬性需要通過工具欄的屬性頁來進行。將所有的非 tbrSeperate 風格的按鈕都按順序設(shè)置好對應(yīng)的圖像索引,并為每個按鈕添加上提示文本。這樣就完成了對工具欄的設(shè)置。 4. TreeView控件和狀態(tài)欄控件 現(xiàn)在的應(yīng)用程序界面常利用目錄樹來作為應(yīng)用程序的導航欄;也可以用目錄樹來完成對應(yīng)的一些菜單的操作功能。在 本系統(tǒng)中提供了使用目錄樹替代某些菜單操作的功能,用戶可以根據(jù)習慣選擇是利用菜單還是目錄樹來完成自己想要的操作。 狀態(tài)欄通常用來顯示當前界面的狀態(tài)信息。其中,樹形控件的外觀以及與ImageList 控件的關(guān)聯(lián)都將在代碼中完成,這些代碼分別在 MDI 窗體的 Load事件和 Initialize 事件中。 為狀態(tài)欄控件添加 4 個控制面板,分別用作 4 種用途:放置當前子窗體的窗口信息、備用面板、顯示當前日期的面板、顯示當前時間的面板。這些屬性需要在狀態(tài)欄的屬性頁中完成。 最后,在設(shè)計 MDI 窗體時,要為放置 TreeView 控件增加 一個容器,既PictureBox 控件,設(shè)置該控件的名稱為 picTreeView。在 MDI 窗體上,只能放置 PictureBox 、 ToolBar 和 StatusBar 等控件。因此可以利用 PictureBox控件作為容器來放置 TreeView 控件。在該容器上在放置一個 Lable 控件,用來為該目錄樹顯示一個名稱;再在 PictureBox 控件的右上角放置一個按鈕,名稱為 cmdCancelTree,用來提供關(guān)閉目錄樹的操作。要想實現(xiàn)關(guān)閉目錄樹的功能,可以通過對 PictureBox控件的 Visibal 屬性進行操作來實現(xiàn) 。為了界面的整潔,設(shè)置 TreeView控件和 PictureBox控件的寬度基本上相同,然后調(diào)整狀態(tài)欄控件中的第一個面板,使其寬度與 PictureBox控件寬度一致。 . 應(yīng)用程序界面的代碼實現(xiàn) 在窗體的公共聲名部分 ,定義了幾個字符串常量,這些常量用來記錄主要菜單中的子菜單標題字符串;同時定義了 3 個集合對象,分別用來存放菜單標題字符串,給出了對這 3個集合的初始化的子過程代碼;為 MDI窗體定義了一個只讀的公用屬性 ChildWindowsCount以及該屬性的屬性變量 mintChildWinCount,這個只讀屬性用來記錄在程序運行過程中, MDI 應(yīng)用程序中打開的子窗體數(shù)量;還定義了一個重要的子過程 MenuOperate,該過程用來把 TreeView 和菜單進行關(guān)聯(lián)。 定義三個集合對象,分別用來存放“學生信息管理” 、 “成績管理”中的子菜單標題字符串 , 以及上述兩個菜單中所有子菜單的標題字符串 。 設(shè)定目錄樹與菜單對應(yīng)的操作 , 這個地方利用了索引來查找目錄樹中與菜單中對應(yīng)的操作 。 因為已經(jīng)將所有子菜單項目按順序的加入了 AllMenu 集合中 。因此,直接通過對該集合索引的查詢就等于查找了對應(yīng)的子菜單,因此可以準確的執(zhí)行相應(yīng)的操作功能 。 MDI 窗體的載入事件中,需要 調(diào)用函數(shù),初始化 MDI 窗體的背景圖片 。 該函數(shù)在應(yīng)用程序的標準模塊 MPaintMDIBackground 中定義 。 如果圖片在資源文件中,發(fā)送 WM_SIZE 消息,使得圖片在 MDI 顯示時候就能顯現(xiàn) 。 否則需要等MDI 窗體大小發(fā)生變化的時候或接受到其他方式產(chǎn)生的重繪消息的時候背景圖片才能顯現(xiàn)圖片 。 在 MDIForm 的 Load事件里,完成了應(yīng)用程序界面所需要的初始化設(shè)置。其中包括了對背景圖片的處理。在 MDI窗體中設(shè)置背景,如果窗體放大或縮小,圖片大小固定,則會影響程序的 視覺效果。可以利用代碼使得圖片平鋪來布滿窗體的背景,也可以利用一系列的 API函數(shù)來使得一張圖片可以隨窗體改變大小,鋪滿窗體。由于該函數(shù)較復(fù)雜,本系統(tǒng)中用到的 API 函數(shù)是從一些相關(guān)書籍中引用的。 在 MDI的卸載事件中, MDI 窗體需要卸除所有不再使用的資源,釋放占用的系統(tǒng)資源。 在 MDI 的初始化事件中,窗體完成了界面的定制功能,并且完成了目錄樹的外觀顯示。 MDI窗體的 ReSize事件,用來控制窗口在應(yīng)用程序中的最小的高度和寬度。該段代碼用來限制窗口在還原或是拖動改變大小時候能保持一個最小的大小限度 。 MDI窗 體的菜單事件中,“學生查詢”子菜單的代碼實現(xiàn)過程中, 需要先調(diào)用 ActiveX DLL 中的一個窗體 , 執(zhí)行完查詢后再顯示學生查詢窗體 。 利用類中定義的初始化數(shù)據(jù)庫信息的公有方法 InitDB,可以不用直接對屬性賦值。 利用類中顯示窗體的方法,顯示通用查詢窗口 。 通用查詢窗口將向類返回一個查詢結(jié)果數(shù)據(jù)集。如果返回的數(shù)據(jù)集非空,那么就通過類將該數(shù)據(jù)集傳遞給應(yīng)用程序的窗口 frmQueryResult 所使用,用來顯示查詢結(jié)果。 “成績查詢”子菜單的代碼實現(xiàn)過程中,也 需要先調(diào)用 ActiveX DLL 中的一個窗體 , 執(zhí)行完查詢后再顯 示 成績 查詢窗體 。它的實現(xiàn)過程與“學生查詢”子菜單的實現(xiàn)基本相同。 關(guān)于對 MDI窗體中子窗體的控制,有幾點需要說明: (1) 關(guān)于子窗體的排列布局。完全可以通過對 MDI窗體的 Arrange 方法來完成對子窗體的排列,語法格式為: ParaName參數(shù) ParaName的不同取值決定了窗體的排列方式。 (2) 關(guān)于 WindowsList 復(fù)選框。在該菜單中,選中 WindowsList,則 【 窗口 】 菜單就具備了自動維護打開子窗體的能力。每次打開新的子窗體,都將在 【 窗口 】 菜單的底部動態(tài)地增加 一個菜單項,已新打開的子窗體的窗體名為標題。 (3) 關(guān)于“關(guān)閉所有子窗體”功能的實現(xiàn)。有的程序是直接用數(shù)組來設(shè)計子窗體,然后利用 For 循環(huán)將子窗體卸載;有的則是通過每次打開子窗體后,設(shè)置窗體的 Tag 屬性,然后依然利用循環(huán);也有的方法世紀路子窗體的個數(shù),從而利用 For循環(huán)。 為了簡化程序代碼的編寫,在本系統(tǒng)中直接利用 ActiveForm 屬性來實現(xiàn)關(guān)閉所有打開的子窗口。對子窗口而言,如果一個被關(guān)閉,那么另一個本來處于非激活狀態(tài)的窗體也會自動成為活動窗體,因而使得利用 ActiveForm 屬性關(guān)閉所有子窗體定額操 作成為可能。 循環(huán)只需要判斷是否在 ActiveForm 即可。 隱藏 /顯示目錄樹的操作: Private Sub mnuWindowShowTree_Click() 39。顯示目錄樹 = True 39。設(shè)置工具欄目錄樹的復(fù)選風格按鈕為按下狀態(tài) (目錄樹 ).value = tbrPressed End Sub Private Sub mnuWindowCloseTree_Click() 39。通過調(diào)用按 鈕事件,關(guān)閉目錄樹 cmdCancelTree_Click 39。設(shè)置工具欄上復(fù)選風格的“目錄樹”按鈕狀態(tài)為未按下 (目錄樹 ).v
點擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1