午夜亚洲国产日本电影一区二区三区,九九久久99综合一区二区,国产一级毛片视频,草莓视频在线观看精品最新

加急見刊

高校學生宿舍管理系統(二)

陳家祺

3.3.1系統表 1.用戶表:登記管理人員的用戶名、密碼及登錄權限。

2.學生基本情況表:詳細登記學生基本信息及學生住宿情況。

3.寢室表:登記所有宿舍的詳細情況。

4.員工表:登記所有管理人員的詳細情況。

5.人員來訪表:登記所有來訪人員的詳細情況。

6.物品出入表:詳細登記學生物品出樓信息。

7.樓房表:登記所有住宿樓情況。

8.學期注冊表:登記學生每學期的注冊情況。

9.學生財產表:登記學生物品情況。

表3.1用戶表(LoginIn)

表3.2 學生基本情況表(Student)

Y and F 表3.3寢室表(Dorm)

Y and F

表3.4 員工表(Employee)

Emp_Add 表3.5 人員來訪表(Visit)

Emp_Add

Lea_Time 表3.6 物品出入樓表(Goodsmove)

Lea_Time

G_Des 表3.7 樓房表(House)

G_Des

表3.8 學期注冊表 (Enroll)

數據長度 Enr_Year 表3.9 學生財產表(Riches)

數據長度

Enr_Year

KeySend 3.3.2 表的說明 本管理系統共用到九個表:用戶表(LoginIn)、學生基本情況表(Student)、寢室表(Dorm)、員工表(Employee)、人員來訪表(Visit)、物品出入樓表(Goodsmove)、樓房表(House)、學生財產表(Riches)、學期注冊表 (Enroll),各表之間均有一定的關系,可以進行關聯。

KeySend

1.學生基本情況表(Student)、學生財產表(Riches)、學期注冊表 (Enroll)、物品出入樓表(Goodsmove)這四個表里面都有一個相同的字段:學號(Stu_Id),通過學號這個字段就可以將系統的這四個表關聯了起來。當某個表發生插入、修改、刪除等方面的改動時,相聯的表之間也要進行相應的改動。學生基本情況表(Student)和寢室表(Dorm)也有一個相同的字段:寢室號(Dor_Id)將兩表相關聯。

2.由于員工是負責管理某棟樓房的,因此員工表(Employee),樓房表(House)這兩個表之間有一個相同的字段:樓房號(Hou_Id)來進行關聯。 3.4具體模塊設計

在系統功能模塊介紹時,我們把整個系統分為系統管理模塊、公寓管理模塊、學生管理模塊、信息查詢模塊、出入登記模塊、信息修改模塊、報表管理模塊、關于模塊八個基本模塊。其中系統管理模塊中的用戶管理和密碼修改、公寓管理模塊、信息查詢模塊、報表管理模塊是由我具體來完成的。如下圖是我們學生宿舍管理系統的主界面:

圖 3.3 宿舍管理系統主界面

3.4.1 用戶管理、密碼修改模塊功能詳細設計 1.用戶管理

圖3.4 用戶管理界面

設計思想:

當宿舍管理系統需要加入新管理員時,具有使用該功能權限的超級用戶授予新管理員以登錄該系統的用戶名稱、用戶密碼和用戶權限。像我們的后勤服務總公司中的管理人員就應該具有系統管理員的權限,宿舍樓房管理人員就應該具有一般用戶的權限。一般用戶的權限是系統管理員授予的。當然如果某管理人員離職,那么他將不能再登錄該系統,因此管理員有權收回授予其的管理權限。

具體實現:

(1).在實現該功能時,需要用到權限表LoginIn,因此需要添加一個TADOQuery控件實現窗體與數據庫之間的相關聯。

(2).在新增用戶時,考慮到在登錄該系統時,用戶名及其用戶密碼是必須輸入不能為空的,因此我們在實現具體添加新用戶時,不能允許用戶名及其密碼為空。還有重要一點就是用戶權限也是必須選擇的,因為這關系到用戶在使用宿舍管理系統時所具有權限問題。

(3).在刪除用戶時,還需要通過編碼判斷一下系統管理人員所要刪除的用戶到底存不存在。如果沒有該用戶那么也許是因為管理人員的輸入錯誤,造成所刪用戶不存在,可以重新輸入,實現刪除功能。

2.密碼修改

圖3.5 密碼修改界面

設計思想:

為了防止密碼被惡意盜用可以經常性的修改你的密碼以增強系統的安全性,密碼修改對于所有具有訪問該系統的用戶來說都可以使用。

具體實現:

(1).首先通過TADOQuery控件實現該功能模塊與數據庫的關聯。

(2).其次為了確保該功能的完整性,在點擊確認之后,需要判斷一下所有的編輯框中的輸入都不能為空。

(3).最后在確認時,還需要編程實現的是判斷原始用戶名和密碼是否一致,只有一致才有權限修改你的密碼。同是為了確保新密碼的正確性,還添加了一個確認密碼框,新密碼和確認密碼兩者所輸內容是要求完全一樣,方能修改密碼成功。

3.4.2 公寓管理模塊詳細設計 1.樓房管理

圖3.6 樓房管理界面

設計思想:

樓房管理是對每棟宿舍樓的基本信息進行錄入,在學校建設完新的宿舍樓時可以通過此窗體把該樓房的信息添加到數據庫中去。

具體實現:

(1).由于需要和數據庫表(樓房表House)相關聯,所以也添加了一個TADOQuery控件實現兩者之間的關聯。

(2).在具體實現時需要設置像樓房號這樣的具有唯一確定性的字段是不能為空的。其他字段在輸入時沒有太大限制,錄入人員在錄入時需根據自身情況再進行添加。

(3).我們還設置了一個‘備注’字段,是為了方便學校登記該樓房的其他相關情況。 2. 宿舍管理

圖3.7 宿舍管理界面

設計思想:

宿舍管理是對每棟樓房所有宿舍的一個詳細情況登記,每個宿舍在數據庫里面的信息都是就靜態的只有里面的實住人數是動態增加的,當某個宿舍增加或減少一個學生實住人數會自動加1或減1,實現動態增減。

具體實現:

(1).首先通過TADOQuery實現數據庫和窗體的相關聯,再通過TDatasouse控件實現TDBGrid和宿舍表(Dorm)的相關聯,那么Dorm表中的數據就會在TDBGrid中顯示了,可以隨時看到表中數據的動態變化。 (2).在具體設計時,首先將實住人數編輯框屬性設為ReadOnly型,因為該字段是動態添加,每當為一個學生分配一個宿舍,那么該宿舍的實住人數會自動加一,無需手工錄入。住宿費是必須輸入的,因為這和學生注冊管理是相關聯的。學生在學期注冊時,需要根據該生所住的宿舍號來查看其應交的住宿費用。居住性別也要輸入,當為某學生分配宿舍時,需要根據該生性別查一下,還能入住男生或女生的宿舍有哪些,根據所查情況再為他們分配宿舍。以免盲目分配,出現錯住造成管理混亂。

3. 員工管理

圖3.8 員工管理界面

設計思想:

員工管理是對樓房管理人員、清潔工、保衛人員進行的登記管理。該模塊是有系統管理員來完成的,普通用戶沒有使用該項功能的權限。當某棟樓房調來新員工時,系統管理員可以通過此功能來添加員工基本信息。

具體實現:

(1).首先通過TADOQuery實現數據庫和功能模塊的相關聯,再通過TDatasouse控件實現TDBGrid表格和員工信息表(Employee)的相關聯,那么員工信息表中的數據就會在TDBgrid中顯示了,可以隨時看到表中數據添加、刪除、修改等的動態變化。

(2).在該功能中需編程將‘樓房號’所對應得下拉列表框中的屬性值動態的從樓房信息表(House)中獲得的。通過動態添加可以實現當樓房表中每增加一棟樓,在員工窗體的‘樓房號’的下拉列表框中的會自動添加一棟,實現兩個表之間的動態關聯。

Y

顯示查詢結果

顯示查詢結果

結束

結束

圖3.9 信息查詢流程圖

1.按學號進行查詢

圖3.10 信息查詢界面

設計思想:

按學號查詢是具體的查詢某學生的詳細信息,包括學生的基本信息及其住宿情況。在需要調查學生的詳細情況時,可以采用該功能來實現。

具體實現:

(1).首先通過TADOQuery控件實現數據庫和該功能模塊的關聯,再通過TDatasourse實現學生信息表(Student)和TDBGrid的關聯,把學生信息顯示在下面的表格中。

(2).其次我還為窗體添加了一個TDBNavigator控件,可以實現數據的最上一條、上一條、下一條、最下一條瀏覽查看。當然像按學號來查詢的話也許用不到該控件,但要是按班級查詢或姓名等其他查詢,這個控件是非常有用的。因為通過班級或姓名查出來的學生信息數據量會非常大,所以需要通過該按鈕來方便、快捷的查看。

(3).在按學號查詢時首先要通過編程判斷一下,數據庫的學生信息表中是否存在該編號的學生,如果沒有系統會提醒你‘學號不存在是不是輸入錯誤,檢查一下再重新輸入’,所以只有存在學號才能進行查詢。

(4).上述完成之后,輸入所查詢的學號,那么所需學生信息就會在下面表格中顯示出來了。上圖所顯示的是所有學生信息情況。

2.按姓名進行查詢

設計思想:按學生姓名實現的查詢,雖然這樣查出來的學生有可能不止一名,但在有些情況下(比如家人、朋友來訪時,只記得學生姓名,在不清楚其學號、宿舍號的情況下,可以通過學生信息中的其它信息確定所要找的學生)可以調用此功能來實現。

3.按班級進行查詢

設計思想:實現某個班級所有學生基本信息及住宿情況的查詢。通過該功能模塊我們可以統計某個班級的宿舍分配情況,這個班級的學生都住在哪些寢室中。 4.按寢室號查詢

設計思想:在輸入寢室號時可以把該宿舍所住的所有學生的信息都統計出來,方便詳細了解某宿舍的學生住宿情況。

5.住宿情況查詢

圖3.11 住宿情況查詢界面

設計思想:

點擊多選框里的按樓房號查詢按鈕可以查看某棟樓房所有宿舍的住宿情況,看看還有哪些宿舍還有空的床位,可以入住學生。還可以查看某個宿舍的詳細情況。同時該模塊還能夠統計某棟樓房的所有學生人數。

具體實現:

(1).首先通過TADOQuery控件實現數據庫和該功能模塊的關聯,再通過TDatasourse實現寢室表(Dorm)和TDBGrid顯示表格的關聯,把宿舍信息顯示在下面的表格中。

(2).其次放置一個復選按鈕鍵,可以方便實現按樓房號和按宿舍號兩種方式的查詢。在右邊放置一個查詢框,進行查詢條件的輸入。在按樓房號查詢時,用到了模糊查詢。模糊查詢的在本部分的基本原理就是:我們在剛開始建庫時考慮到管理方便和減少冗余,在對學生進行宿舍號登記時是這么描述的如:6-502,將其樓房號和宿舍號放一個字段中,并沒有將其分開操作。所以在查詢這部分當需要按樓房號進行查詢時,就要注意了。假如我們要查5號樓的住宿情況,那么在TDBGrid表格中的顯示就應該是5-***,而6-502雖然也包含了5這個字符,但它不屬于5號樓,所以要將其排除在外。因此我們采用了模糊查詢,查詢結果只顯示所需信息。

(3).在住宿統計的實現上,我們使用的SQL集函數SUM()來實現的。它的主要功能就是計算一列值得總和(此列必須是數值型)。將要查的樓房號,輸入到查詢條件中時,還需要判斷該樓房號到底存不存在,如果存在在點擊該模塊中的‘住宿統計按鈕’,那么該樓房所有學生的總人數會在’住宿統計’按鈕右邊的Memo文本顯示控件里面進行顯示了,同時該樓房的詳細住宿情況會在表格中進行具體顯示。

3.4.4 報表管理模塊詳細設計 報表是數據庫應用程序設計中非常重要的一部份,數據庫應用程序通常都要生成報表,并且把所需信息打印出來,方便用戶存檔等得方面上的管理。由于該模塊中各小模塊實現的都是報表管理,所以宿舍交費情況報表管理、學生信息報表、員工信息報表、學生物品出入報表、住宿信息報表、來訪信息報表這六個小功能模塊只是在功能思想上不太一樣,其具體設計實現時操作基本上是差不多的,因此這里只是詳細介紹宿舍交費情況的具體設計實現,其他模塊僅介紹其設計思想。

1.宿舍交費情況報表管理

圖3.12 宿舍交費情況報表管理界面

設計思想:

該模塊實現的是對學生每學期所交納住宿費的一個詳細情況的查詢。在學生即將畢業離校時可以通過該功能模塊來查詢一下,那些同學還欠有學校住宿費,在其交清之前將不準其離校,已交清的同學就可以進行離校手續的辦理了。一般來說我們真正需要并且有用的信息就是未交清住宿費的學生清單,在學生畢業時可以通過此單來收取學生補交的住宿費等。

具體實現:

(1).首先通過TADOQuery控件實現數據庫和該窗體的關聯,再通過TDataSourse實現學生注冊表(Enroll)和TDBGrid的關聯,把學生交費信息顯示在列表中。

(2).在作報表時我使用的是TQuickRep組件,通過該組件可以方便的把報表和代碼聯系起來,生成美觀的圖文報表。當然還可以用TQReport頁上的控件給一個報表添加標題、頁眉、頁腳、等功能。還可以自動進行求和、計算均值等統計功能。報表設計時可以點擊選中TQuickRep控件快捷菜單的Preview,即可在設計階段預覽打印結果。

(3).我們為每個報表管理窗體設置四個TButton功能按鈕:查詢、報表預覽、打印報表、退出。報表管理,再打印報表之前首先查詢一下用戶所需信息,查詢出來后可以預覽一下信息是否正確,確定無誤之后可以點擊打印按鈕,那么所有所需信息就會詳細的詳細地顯示在紙張上,供用戶查看了。

(4).在學生注冊表里的‘交費情況’字段我們規定它只能選擇兩種情況:已交清或未交清。在編輯框中輸入已交清或未交清兩種情況的一種,點擊查詢按鈕,那么所需信息就會詳細的顯示在窗體表中。防止用戶在查詢時輸入錯誤,我們需要編程實現提示功能。

下面我們以未交清住宿費的學生為例,演示一下其報表預覽情況。

在上述窗體中輸入‘未交清’字段,則其報表顯示情況如下:

圖3.13報表預覽圖

2.學生信息報表

圖3.14 學生信息報表界面

設計思想:能夠實現某學生詳細基本情況的查詢打印。當因為某些原因需要查詢某學生信息時,可以調用該功能模塊來實現。

3.員工信息報表

設計思想:能夠實現某棟樓房所有員工情況的查詢打印,如果想了解某宿舍樓工作人員的詳細情況,可以調用該模塊來實現。

4.學生物品出入報表

設計思, , 想:能夠實現查詢某學生物品出入宿舍樓房的詳細信息。如果想查看一下該學生一段時間內的出樓情況,可以通過該窗口來實現。

5.住宿信息報表

設計思想:能夠將某宿舍的詳細學生住宿情況打印出來。在某些情況下如果需要查看某個宿舍的詳細學生情況可以調用該窗體實現報表打印功能。

6.來訪信息報表

設計思想:主要實現的是將某個時間內所有來訪人員的詳細信息打印出來,以便于查詢某些信息。

第四章 系統測試

4.1所遇問題

一個系統功能的實現,需要經過這么幾步,首先把大致的骨架給設計好,然后根據系統要求寫代碼,接著是調試程序,最后完善總結。其中最重要的兩步就是中間的兩步。在此次畢業設計中,給我印象最深的就是系統的調試。在調試過程中,遇到了不少的問題,不過經過我不斷的查閱資料,老師的指導,同學的商討,這些問題都逐漸得到了解決,現將整個的調試過程總結如下:

1.首先就是SQL Server數據庫和Delphi開發環境的相關聯。我原先使用的是BDE控件來實現SQL Server數據庫和Delphi的關聯,這中間要用到ODBC數據源,每次進行數據庫和ODBC的相聯都會發生許多錯誤。最后我在看書時發現Delphi中新的數據訪問組件都采用了ADO技術,可以不通過BDE就能使用現行的數據控件如TDBGrid和TDBEdit對數據進行直接訪問,因此縮短了ADO/OLE-DB的運行時間,更重要的是,使用ADO可以避免用戶在使用程序之前手動設置BDE和ODBC屬性,以免產生不必要的錯誤。因些通過ADO我可以方便快捷的將其進行了關聯。

2.其次就是查詢中出現的錯誤。假設我們查詢5號樓情況(如5-205,6-205,5或6代表5或6號樓,205代表宿舍號),需要程序來判斷你所查詢的是前面的數字,即使6-205中帶有5這個字符也不能將其查詢出來,因為我需要是5棟樓的詳細信息。剛開始每次都犯上述錯誤,將6號樓中帶5的宿舍也給查出來了,最后我采用了SQL中的模糊查詢,模式匹配過程中,常規字符必須與字符串中指定的字符完全匹配。但可以使用字符串的任意片段匹配通配符(%或_)。與使用=和!=字符串比較運算符相比,使用通配符可使like運算符更加靈活。通過使用like模糊查詢,終于將該功能實現了。

3.在做報表過程中也出現了不少錯誤。我在TQuickReport組件上放置了一個顯示標題的Title Band控件,一個顯示數據列名的Column Header Band和顯示數據的Detail組件,但在具體實現時每次都是只顯示標題和數據,不顯示數據列名。最后我發現這是因為TQuickReport中的屬性設定錯誤。我將其Dataset設置為和TADOquery1相關聯后,列名終于顯示出來了。

在編程過程中雖然遇到了不少困難,但在老師、同學及自己的反復研究下,最后問題都得到了解決。在解決問題的過程中我也是收獲不小,同樣的問題也許在不同的模塊中會重復出現,通過上次調試中的所獲,這次我就可以輕松解決。克服一個難題的喜悅是無法用言語可以表達的,它讓我感受到了真正學到知識的那種充實感。

4.2 系統測試 經過好幾個月的努力,我們的的畢業設計高校學生宿舍管理系統也終于接近了尾聲,不過在系統測試時可讓我們花了好多功夫,為了使系統變得更加完善,我們測試了一遍又一遍。

在測試之初,由于數據庫中的數據都是剛開始編程時隨便輸入的,一點實用性也沒有,所以我們又把數據庫中的數據全部清理了一下,輸入了一些真實可用的數據,以便完成后面的數據測試。

在系統管理員進行用戶的刪除時,剛開始時是用戶名正確就可以進行刪除,測試時才發現也許系統中存在重名的用戶名,所以不能只憑借用戶名、用戶密碼、用戶權限中的一個或兩個正確就可以將該用戶刪除,必須要三者都對應起來才能完成用戶的刪除。還進行完善了的一點就是當管理員輸入錯誤的用戶名時,系統能夠對其進行提示‘本用戶信息不存在,注意核對’。

再有一點就是,在員工信息錄入窗口中有一個字段‘樓房號’,在開始的系統實現時,我是將學校所有的住宿樓都添在了 ‘樓房號’的下拉列表框的Item屬性中,是固定的。在真正系統測試時才發現,如果我們學校新建一棟宿舍樓,并且為其分配管理人員,在具體添加時就不可能為該管理人員找到其應該管理的樓房號,因為以前添加是靜態的,并沒有將新建宿舍樓房加入進去。所以我將這一部分進行了重新編程,實現了動態添加。當樓房管理模塊中新增一棟住宿樓后,員工管理模塊的樓房號會自動添加一棟。

當然在系統測試階段,我還完善了許多細節性的東西。比如在查詢模塊、報表管理模塊里面如果按學號進行查詢,剛開始只是判斷輸入的學號不能為空。后來才發現在用戶輸入學號后,系統應該還能夠進行判斷該學號到底存不存在,如果沒有就應該提示用戶輸入了不存在的學號,應該重新進行輸入。

經過一段時間的系統測試之后,我們的宿舍管理系統在整體上完善了許多,在設計上也更加具有人性化了,那么對于用戶來說會更加容易適應本系統的各項操作。

[1]薩師煊,王珊.數據庫系統概論[M].北京:高等教育出版社,1983

[2]求是科技.SQL Server 2000數據庫開發技術與工程實踐[M].北京:人民郵電出版社,2005

[3]侯太平,董愛紅.Delphi數據庫編程[M].北京:清華大學出版社,2004.6

[4]周緒.SQL Server2000中文版入門提高[M].北京:清華大學出版社,2003

[5]王華. Delphi 5編程實例與技巧[M].北京:機械工業出版社,2000

[6]龍勁松,王俞. Delphi 6 開發人員指南[M].北京:機械工業出版社,2003

[7]徐謖,張雷.Delphi應用與開發安全教程[M].北京:清華大學出版社,2005.1

[8]王業龍,范朝輝,李育龍.Delphi軟件工程案例精解[M]. 北京:電子工業出版社,2005.1

[9]黃曉敏,陳強.Delphi程序設計基礎[M].北京:清華大學出版社,2004.9

[10]趙曉玲.可視化程序教程[M].北京:機械工業出版社,2005.1

[11](美)Marco Cantu.Delphi7從入門到精通[M]. 北京:電子工業出版社,2003.10

[12](美)Clay Shannon.Delphi程序調試參考手冊[M]. 北京:中國電力出版社,2003.9

下載