【正文】
,mtinformation,[mbok],0)。王子芹:高校學(xué)生宿舍管理系統(tǒng)51 if =39。,mtinformation,[mbok],0)。 if =39。,mtinformation,[mbok],0)。 begin if =39。)。 next。if RecordCount0 then begin first。select * from House 39。varI:integer。 )。begin 。procedure (Sender: TObject)。39。39。)。).AsString:=trim()。Dor_Tel39。 (39。).AsString:=trim()。Dor_Id39。)。//寢室信息錄入 。,MB_OK+MB_ICONWARNING)。 if not then begin MessageBox(handle,39。39。39。 //檢查系統(tǒng)中是否存在該寢室號 。請選擇居住性別! 39。 end。 then begin messagedlg(39。 exit。39。,mtinformation,[mbok],0)。beginif =39。procedure (Sender: TObject)。 :=39。 :=39。 :=39。 end else begin showmessage(39。 :=39。 :=39。樓房信息登記完畢!39。 if messagedlg(39。).AsString:=trim()。hou_Rom39。 (39。 。 :=39。 exit。39。39。,MB _OK+MB_ICONWARNING)。 if not then begin MessageBox(handle,39。39。39。//檢查系統(tǒng)中是否存在該學(xué)號的學(xué)生 。,MB_OK+MB_ICONWARNING)。 then beginMessageBox(handle,39。end。end。39。39。)。).AsString:=。39。39。)。)。+xt+39。+39。++39。 (39。39。,mtinformation,[mbok],0)。 exit。 then begin messagedlg(39。 exit。 then begin messagedlg(39。王子芹:高校學(xué)生宿舍管理系統(tǒng)44 exit。 then begin messagedlg(39。 exit。 then begin messagedlg(39。end。 end 。 :=39。,39。:=39。)39。39。39。)and(useriD=39。39。確定刪除?!39。deleteName:= 。 :=39。,MB_OK+MB_ICONWARNING)。if then begin MessageBox(handle,39。39。39。)。+ +39。(39。 exit。 then beginMessageBox(handle,39。 exit。 then begin MessageBox(handle,39。王子芹:高校學(xué)生宿舍管理系統(tǒng)42 exit。 then begin MessageBox(handle,39。deletePass:string。end。 end 。39。!39。39。,mtconfirmation,[mbYes,mbNo],0)=mrYes then begin post。UserPower39。(39。With dobegin。,MB_OK+MB_ICONWARNING)。 then begin MessageBox(handle,39。 exit。請輸入用戶密碼!39。 end。39。39。同時也感謝機房的老師給我們提供了一個好的環(huán)境,休息日也照常開放,每次關(guān)門時,老師都不厭其煩地等我們到最后才走。首先要感謝我們的指導(dǎo)老師緱西梅老師,在初次見面時,緱老師就耐心的為我們分析該系統(tǒng),告訴我們目前宿舍管理上的種種弊端,讓我們在就具體設(shè)計該系統(tǒng)時盡可能的考慮全面,使我們對整個設(shè)計有了一個初步的認(rèn)識。程序代碼完成之后,要進(jìn)行運行調(diào)試,剛開始由于沒有調(diào)試經(jīng)驗和方法效率很低,最后在老師和同學(xué)的幫助下,終于順利完成了,自己也從中學(xué)到了不少東西。在設(shè)計的開始階段為了盡快熟悉 Delphi 語言,我詳細(xì)翻閱有關(guān)該方面的資料,對書中的基本理論知識逐章逐節(jié)地分析,同時還上機操作來加深理解。后來才發(fā)現(xiàn)在用戶輸入學(xué)號后,系統(tǒng)應(yīng)該還能夠進(jìn)行判斷該學(xué)號到底存不存在,如果沒有就應(yīng)該提示用戶輸入了不存在的學(xué)號,應(yīng)該重新進(jìn)行輸入。所以我將這一部分進(jìn)行了重新編程,實現(xiàn)了動態(tài)添加。在系統(tǒng)管理員進(jìn)行用戶的刪除時,剛開始時是用戶名正確就可以進(jìn)行刪除,測試時才發(fā)現(xiàn)也許系統(tǒng)中存在重名的用戶名,所以不能只憑借用戶名、用戶密碼、用戶權(quán)限中的一個或兩個正確就可以將該用戶刪除,必須要三者都對應(yīng)起來才能完成用戶的刪除。在解決問題的過程中我也是收獲不小,同樣的問題也許在不同的模塊中會重復(fù)出現(xiàn),通過上次調(diào)試中的所獲,這次我就可以輕松解決。我在 TQuickReport 組件上放置了一個顯示標(biāo)題的 Title Band 控件,一個顯示數(shù)據(jù)列名的 Column Header Band 和顯示數(shù)據(jù)的 Detail 組件,但在具體實現(xiàn)時每次都是只顯示標(biāo)題和數(shù)據(jù),不顯示數(shù)據(jù)列名。但可以使用字符串的任意片段匹配通配符(%或_)。因些通過 ADO 我可以方便快捷的將其進(jìn)行了關(guān)聯(lián)。在此次畢業(yè)設(shè)計中,給我印象最深的就是系統(tǒng)的調(diào)試。在某些情況下如果需要查看某個宿舍的詳細(xì)學(xué)生情況可以調(diào)用該窗體實現(xiàn)報表打印功能。設(shè)計思想:能夠?qū)崿F(xiàn)某棟樓房所有員工情況的查詢打印,如果想了解某宿舍樓工作人員的詳細(xì)情況,可以調(diào)用該模塊來實現(xiàn)。防止用戶在查詢時輸入錯誤,我們需要編程實現(xiàn)提示功能。 (3).我們?yōu)槊總€報表管理窗體設(shè)置四個 TButton 功能按鈕:查詢、報表預(yù)覽、打印報表、退出。(2).在作報表時我使用的是 TQuickRep 組件,通過該組件可以方便的把報表和代碼聯(lián)系起來,生成美觀的圖文報表。圖 宿舍交費情況報表管理界面設(shè)計思想:該模塊實現(xiàn)的是對學(xué)生每學(xué)期所交納住宿費的一個詳細(xì)情況的查詢。它的主要功能就是計算一列值得總和(此列必須是數(shù)值型)。所以在查詢這部分當(dāng)需要按樓房號進(jìn)行查詢時,就要注意了。(2).其次放置一個復(fù)選按鈕鍵,可以方便實現(xiàn)按樓房號和按宿舍號兩種方式的查詢。王子芹:高校學(xué)生宿舍管理系統(tǒng)28圖 住宿情況查詢界面設(shè)計思想:點擊多選框里的按樓房號查詢按鈕可以查看某棟樓房所有宿舍的住宿情況,看看還有哪些宿舍還有空的床位,可以入住學(xué)生。設(shè)計思想:按學(xué)生姓名實現(xiàn)的查詢,雖然這樣查出來的學(xué)生有可能不止一名,但在有些情況下(比如家人、朋友來訪時,只記得學(xué)生姓名,在不清楚其學(xué)號、宿舍號的情況下,可以通過學(xué)生信息中的其它信息確定所要找的學(xué)生)可以調(diào)用此功能來實現(xiàn)。因為通過班級或姓名查出來的學(xué)生信息數(shù)據(jù)量會非常大,所以需要通過該按鈕來方便、快捷的查看。在需要調(diào)查學(xué)生的詳細(xì)情況時,可以采用該功能來實現(xiàn)。 信息查詢模塊詳細(xì)設(shè)計按學(xué)號進(jìn)行查詢、按姓名進(jìn)行查詢、按班級查詢、按寢室號查詢這四個功能模塊在具體編程實現(xiàn)上基本上是一樣的,因為都是針對學(xué)生信息的查詢。當(dāng)某棟樓房調(diào)來新員工時,系統(tǒng)管理員可以通過此功能來添加員工基本信息。居住性別也要輸入,當(dāng)為某學(xué)生分配宿舍時,需要根據(jù)該生性別查一下,還能入住男生或女生的宿舍有哪些,王子芹:高校學(xué)生宿舍管理系統(tǒng)24根據(jù)所查情況再為他們分配宿舍。具體實現(xiàn):(1).首先通過 TADOQuery 實現(xiàn)數(shù)據(jù)庫和窗體的相關(guān)聯(lián),再通過TDatasouse 控件實現(xiàn) TDBGrid 和宿舍表(Dorm) 的相關(guān)聯(lián),那么 Dorm 表中的數(shù)據(jù)就會在 TDBGrid 中顯示了,可以隨時看到表中數(shù)據(jù)的動態(tài)變化。(2).在具體實現(xiàn)時需要設(shè)置像樓房號這樣的具有唯一確定性的字段是不能為空的。(3).最后在確認(rèn)時,還需要編程實現(xiàn)的是判斷原始用戶名和密碼是否一致,只有一致才有權(quán)限修改你的密碼。如果沒有該用戶那么也許是因為管理人員的輸王子芹:高校學(xué)生宿舍管理系統(tǒng)21入錯誤,造成所刪用戶不存在,可以重新輸入,實現(xiàn)刪除功能。具體實現(xiàn):(1).在實現(xiàn)該功能時,需要用到權(quán)限表 LoginIn,因此需要添加一個TADOQuery 控件實現(xiàn)窗體與數(shù)據(jù)庫之間的相關(guān)聯(lián)。如下圖是我們學(xué)生宿舍管理系統(tǒng)的主界面:圖 宿舍管理系統(tǒng)主界面 用戶管理、密碼修改模塊功能詳細(xì)設(shè)計王子芹:高校學(xué)生宿舍管理系統(tǒng)20圖 用戶管理界面設(shè)計思想:當(dāng)宿舍管理系統(tǒng)需要加入新管理員時,具有使用該功能權(quán)限的超級用戶授予新管理員以登錄該系統(tǒng)的用戶名稱、用戶密碼和用戶權(quán)限。學(xué)生基本情況表(Student)和寢室表(Dorm)也有一個相同的字段:寢室號(Dor_Id)將兩表相關(guān)聯(lián)。:登記學(xué)生物品情況。:登記所有來訪人員的詳細(xì)情況。 系統(tǒng)表:登記管理人員的用戶名、密碼及登錄權(quán)限。:查詢并打印某個時間段的人員來訪情況。:查詢并打印每棟宿舍樓的所有員工信息情況。王子芹:高校學(xué)生宿舍管理系統(tǒng)11:實現(xiàn)系統(tǒng)管理人員對樓房員工的修改、刪除功能。:詳細(xì)登記進(jìn)入宿舍樓的外來人員情況。:查詢每棟樓房的所有宿舍的住宿情況及宿舍樓所住學(xué)生統(tǒng)計情況。:實現(xiàn)每個學(xué)生基本信息情況的查詢功能。:登記學(xué)生在校期間所擁有的公共及私有貴重物品情王子芹:高校學(xué)生宿舍管理系統(tǒng)10況。:登記學(xué)校所有住宿樓情況。:實現(xiàn)系統(tǒng)管理人員授予或取消一般用戶登錄該系統(tǒng)的用戶名和密碼。下面將具體進(jìn)行介紹。連接不僅可以在表之間進(jìn)行,也可以使一個表同其自身進(jìn)行連接,這種連接成為自身連接,相應(yīng)得查詢成為自連接查詢??梢允褂眠B接查詢來實現(xiàn)多個表的連接。在 WHERE 子句中,可以使用謂詞 LIKE 來進(jìn)行字符串的匹配檢查。當(dāng)然用戶在查詢數(shù)據(jù)庫時往往并不需要了解全部信息,而只需要其中一部分滿足某些條件的信息。TSQL 的分類也有類似于 SQL 語言的分類,不過做了許多擴充。 SQL Server 2022 知識介紹SQL Server 2022 是 Microsoft 公司推出的 SQL Server 數(shù)據(jù)庫管理系統(tǒng),它繼承了 SQL Server 版本的優(yōu)點,同時又為它增加了許多更王子芹:高校學(xué)生宿舍管理系統(tǒng)6先進(jìn)的功能,具有使用方便、可伸縮性好、與相關(guān)軟件集成度高等優(yōu)點,應(yīng)用程序的操作系統(tǒng)支持所有 Windows 版本。該組件是設(shè)置報表外觀的主要組件, 將 TQuickRep 組件加入到窗體中,它可以定位到窗體上并擴展成全頁的尺寸,給報表一個全頁顯示的可能。TADOQuery 組件通過使用常用的 SQL 語句來讀取數(shù)據(jù),完成相應(yīng)操作。通過使用 TDataSource 組件,可以利用數(shù)據(jù)控制組件顯示、瀏覽以及修改數(shù)據(jù)集中的數(shù)據(jù)。在窗體中放置一個 TDBGrid 對象來顯示和編輯一個數(shù)據(jù)集( table 或 query)中的記錄,應(yīng)用程序可以通過數(shù)據(jù)網(wǎng)格組件來插入、刪除或編輯數(shù)據(jù)集中的數(shù)據(jù),或者只是簡單地利用它來顯示數(shù)據(jù)集中的數(shù)據(jù)記錄。TableName 是TTable 最重要的屬性之一。Delphi 憑借其強大的功能、易用性以及在開發(fā)數(shù)據(jù)庫和網(wǎng)絡(luò)應(yīng)用程序上的極大優(yōu)勢,作為一個優(yōu)秀的、體貼的、以人為本的開發(fā)工具,Delphi 一直堅持復(fù)雜問題簡單化的思想 ,而且不隱藏其細(xì)節(jié)以適應(yīng)不同層次的程序員 。由于用到的數(shù)據(jù)表格多,另外考慮到實際情況,學(xué)生基本信息的變動,還有員工信息的多少的變化,我們選用 SQL Server 作為數(shù)據(jù)庫開發(fā),而不用 Access,主要是因為 Access 存放的記錄,在實際運用中不適合此系統(tǒng);而 SQL Server 是一種常用的關(guān)系數(shù)據(jù)庫,能存放和讀取大量的數(shù)據(jù),管理眾多并發(fā)的用戶,故選用 SQL Server 數(shù)據(jù)庫。,系統(tǒng)管理員應(yīng)當(dāng)可以使用系統(tǒng)的所有模塊,普通用戶對于用戶管理模塊、學(xué)生學(xué)期注冊( 涉及到交費問題)及學(xué)生畢業(yè)離校等(此模塊需判斷該生有無欠費) 牽扯到經(jīng)濟(jì)之類的模塊是無權(quán)使用的??旖莅粹o的創(chuàng)建也是非常需要的,以方便用戶操作。 報表需求學(xué)生宿舍管理系統(tǒng)的某些信息應(yīng)當(dāng)能夠以報表形式打印出來。系統(tǒng)在實現(xiàn)上應(yīng)該具有如下功能: 。這無疑是為信息存儲量比較大的學(xué)校提供了一個方便、快捷的操作方式。21 世紀(jì)的今天,信息社會占著主流地位,計算機在各行各業(yè)中的運用已經(jīng)得到普及,自動化、信息化的管理越來越廣泛應(yīng)用于各個領(lǐng)域。目前好多學(xué)校還停留在宿舍管理人員手工記錄數(shù)據(jù)的最初階段,手工記錄對于規(guī)模小的學(xué)校來說還勉強可以接受,但對于學(xué)生信息量比較龐大,需要記錄存檔的數(shù)據(jù)比較多的高校來說,人工記錄是相當(dāng)麻煩的。而且當(dāng)查找某條記錄時,由于數(shù)據(jù)量龐大,還只能靠人工去一條條的查找,這樣不但麻煩還浪費了許多時間,效率也比較低。我們針對如此,設(shè)計了一套學(xué)生宿舍管理系統(tǒng)。本系統(tǒng)具有運行速度快、安全性高、穩(wěn)定性好的優(yōu)點,并且具備