宿舍管理系統(tǒng)數(shù)據(jù)庫_第1頁
宿舍管理系統(tǒng)數(shù)據(jù)庫_第2頁
宿舍管理系統(tǒng)數(shù)據(jù)庫_第3頁
宿舍管理系統(tǒng)數(shù)據(jù)庫_第4頁
宿舍管理系統(tǒng)數(shù)據(jù)庫_第5頁
已閱讀5頁,還剩14頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

宿舍管理系統(tǒng)數(shù)據(jù)庫Delphi6.0高校學(xué)生宿舍管理系統(tǒng)是典型的管理系統(tǒng),其開發(fā)主要包括后臺(tái)數(shù)據(jù)庫的建立和維護(hù)以及前端應(yīng)用程序的開發(fā)兩個(gè)方面。對于后臺(tái)數(shù)據(jù)庫的建立和維護(hù)要求建立起數(shù)據(jù)一致性和完整性強(qiáng)、數(shù)據(jù)安全性好的庫。而對于前端應(yīng)用程序的開發(fā)則要求應(yīng)用程序能提供強(qiáng)大的數(shù)據(jù)操縱功能,界面友好、使用簡單方便等特點(diǎn)。我們使用Borland公司的Delphi6.0和MSSQLServer2000數(shù)據(jù)庫為開發(fā)工具,Delphi6.0是比較完備的面向數(shù)據(jù)庫開發(fā)工具,同時(shí)它也利用其提供的各種面向?qū)ο蟮拈_發(fā)工具,尤其是數(shù)據(jù)窗口這一能方便而簡潔操縱數(shù)據(jù)庫的智能化對象,提供了強(qiáng)大的數(shù)據(jù)環(huán)境,更有利于對數(shù)據(jù)庫和數(shù)據(jù)表的直接操作和處理,提高了編程效率和可靠性。舊的手工紀(jì)錄的宿舍管理方式已經(jīng)不能適應(yīng)高速發(fā)展的化時(shí)代,新的宿舍管理系統(tǒng)開發(fā)出來之后,學(xué)校的現(xiàn)有的宿舍管理將有很大的改觀,由過去的人工方式轉(zhuǎn)變?yōu)橛?jì)算機(jī)方式,由效率低、數(shù)據(jù)冗余、易產(chǎn)生錯(cuò)誤轉(zhuǎn)變?yōu)闄z索迅速、查找方便、可靠性高、存儲(chǔ)量大。這些優(yōu)點(diǎn)能夠極大地提高效率,也是學(xué)校科學(xué)化、正規(guī)化管理的重要條件。引言學(xué)生宿舍管理系統(tǒng)對于一個(gè)學(xué)校來說是必不可少的組成部分。目前好多學(xué)校還停留在宿舍管理人員手工記錄數(shù)據(jù)的最初階段,手工記錄對于規(guī)模小的學(xué)校來說還勉強(qiáng)可以接受,但對于學(xué)生量比較龐大,需要記錄存檔的數(shù)據(jù)比較多的高校來說,人工記錄是相當(dāng)麻煩的。而且當(dāng)查找某條記錄時(shí),由于數(shù)據(jù)量龐大,還只能靠人工去一條條的查找,這樣不但麻煩還浪費(fèi)了許多時(shí)間,效率也比較低。當(dāng)今社會(huì)是飛速進(jìn)步的世界,原始的記錄方式已經(jīng)被社會(huì)所淘汰了,計(jì)算機(jī)化管理正是適應(yīng)時(shí)代的產(chǎn)物。世界永遠(yuǎn)不會(huì)是一個(gè)平靜的世界,當(dāng)一種技術(shù)不能滿足需求時(shí),就會(huì)有新的技術(shù)誕生并取代舊技術(shù)。21世紀(jì)的,社會(huì)占著主流地位,計(jì)算機(jī)在各行各業(yè)中的運(yùn)用已經(jīng)得到普及,自動(dòng)化、化的管理越來越廣泛應(yīng)用于各個(gè)領(lǐng)域。我們針對如此,設(shè)計(jì)了一套學(xué)生宿舍管理系統(tǒng)。學(xué)生宿舍管理系統(tǒng)采用的是計(jì)算機(jī)化管理,系統(tǒng)做的盡量人性化,使用者會(huì)感到操作非常方便,管理人員需要做的就是將數(shù)據(jù)輸入到系統(tǒng)的數(shù)據(jù)庫中去。由于數(shù)據(jù)庫存儲(chǔ)容量相當(dāng)大,而且比較穩(wěn)定,適合較長時(shí)間的保存,也不容易丟失。這無疑是為存儲(chǔ)量比較大的學(xué)校提供了一個(gè)方便、快捷的操作方式。本系統(tǒng)具有運(yùn)行速度快、安全性高、穩(wěn)定性好的優(yōu)點(diǎn),并且具備完善的報(bào)表生成、修改功能,能夠快速的查詢學(xué)校所需的住宿。第一章系統(tǒng)需求分析目前,我們學(xué)校的宿舍管理采用的還是人工來進(jìn)行管理的,面對目前學(xué)校發(fā)展的實(shí)際狀況,我們通過實(shí)地調(diào)研之后,對宿舍管理系統(tǒng)的設(shè)計(jì)開發(fā)做了一個(gè)詳細(xì)的概述。1.1功能需求1.1.1基本功能需求本課題要實(shí)現(xiàn)的是高校學(xué)生宿舍管理系統(tǒng),在設(shè)計(jì)該系統(tǒng)時(shí),應(yīng)盡可能的貼近學(xué)生,便于用戶操作。系統(tǒng)在實(shí)現(xiàn)上應(yīng)該具有如下功能:1.系統(tǒng)要求用戶必須輸入正確的用戶名和密碼才能進(jìn)入系統(tǒng)。2.系統(tǒng)應(yīng)該提供學(xué)生住宿情況的基本登記。3.系統(tǒng)應(yīng)提供學(xué)生每學(xué)期的注冊及學(xué)生的離校處理。4.系統(tǒng)應(yīng)提供人員來訪登記及結(jié)束訪問的詳細(xì)登記。5.系統(tǒng)應(yīng)提供學(xué)生在校期間物品出入宿舍樓的詳細(xì)情況登記。6.系統(tǒng)應(yīng)提供查詢功能,以方便用戶對學(xué)生基本的查詢及樓房的查詢。7.系統(tǒng)應(yīng)提供增加、刪除、修改用戶帳戶的功能。8.系統(tǒng)還應(yīng)具有添加、修改、刪除學(xué)生及員工基本的功能。1.1.2報(bào)表需求學(xué)生宿舍管理系統(tǒng)的某些應(yīng)當(dāng)能夠以報(bào)表形式打印出來?;旧蠎?yīng)該能夠?qū)崿F(xiàn)學(xué)生基本的報(bào)表打印、某宿舍具體住宿情況的報(bào)表打印、某棟宿舍樓的所有員工打印、所有學(xué)生各年度宿舍交費(fèi)情況打印、學(xué)生物品出入的打印及人員來訪的打印等的功能。1.1.3用戶界面需求學(xué)生宿舍管理系統(tǒng)應(yīng)提供簡單、層次關(guān)系明了、清晰的操作界面,使用戶一目了然。盡可能的為用戶的錄入、查詢等功能操作提供方便??旖莅粹o的創(chuàng)建也是非常需要的,以方便用戶操作。1.2性能需求1.2.1系統(tǒng)安全性學(xué)生宿舍管理系統(tǒng)中的增加用戶、學(xué)生學(xué)期注冊、學(xué)生畢業(yè)離校等的某些模塊都是和學(xué)生住宿費(fèi)相聯(lián)系在一起的,只有每年度的住宿費(fèi)用交納完畢才準(zhǔn)許該生離校,所以在系統(tǒng)的管理權(quán)限上應(yīng)當(dāng)進(jìn)行嚴(yán)格控制,具體思想如下:1.要想對該學(xué)生宿舍管理系統(tǒng)進(jìn)行操作就應(yīng)當(dāng)具有某些操作權(quán)限。沒有權(quán)限的用戶將不能通過任何渠道來登錄該系統(tǒng),查看該系統(tǒng)的任何和數(shù)據(jù),以確保系統(tǒng)的嚴(yán)密性和安全性。2.在上述要求基礎(chǔ)上可以為該系統(tǒng)設(shè)定兩種登錄方式,程序開始運(yùn)行所有功能將是不可使用的,只有系統(tǒng)管理員登錄和普通用戶登錄兩個(gè)窗口可以使用,沒有系統(tǒng)管理員或者普通用戶的用戶名和密碼任何人都不能登錄該系統(tǒng)。3.在具體實(shí)現(xiàn)時(shí)還應(yīng)為系統(tǒng)管理員和普通用戶設(shè)定不同的權(quán)限,系統(tǒng)管理員應(yīng)當(dāng)可以使用系統(tǒng)的所有模塊,普通用戶對于用戶管理模塊、學(xué)生學(xué)期注冊及學(xué)生畢業(yè)離校等牽扯到經(jīng)濟(jì)之類的模塊是無權(quán)使用的。1.3數(shù)據(jù)庫選擇數(shù)據(jù)庫是數(shù)據(jù)管理的最新技術(shù),是計(jì)算機(jī)科學(xué)的重要分支。十年來,數(shù)據(jù)庫管理系統(tǒng)已從專用的應(yīng)用程序包發(fā)展成為通用系統(tǒng)軟件。由于數(shù)據(jù)庫具有數(shù)據(jù)結(jié)構(gòu)化、最低冗余度、較高的程序與數(shù)據(jù)獨(dú)立性、易于擴(kuò)充、易于編制應(yīng)用程序等優(yōu)點(diǎn),較大的系統(tǒng)都是建立在數(shù)據(jù)庫設(shè)計(jì)之上的。由于用到的數(shù)據(jù)表格多,另外考慮到實(shí)際情況,學(xué)生基本的變動(dòng),還有員工的多少的變化,我們選用SQLServer作為數(shù)據(jù)庫開發(fā),而不用Access,主要是因?yàn)锳ccess存放的記錄,在實(shí)際運(yùn)用中不適合此系統(tǒng);而SQLServer是一種常用的關(guān)系數(shù)據(jù)庫,能存放和讀取大量的數(shù)據(jù),管理眾多并發(fā)的用戶,故選用SQLServer數(shù)據(jù)庫。1.4環(huán)境本系統(tǒng)是以Windows系統(tǒng)為操作平臺(tái),用Delphi6.0編程語言和SQLServer數(shù)據(jù)庫來實(shí)現(xiàn)高校學(xué)生宿舍管理系統(tǒng)所需功能的。第二章相關(guān)知識(shí)點(diǎn)介紹2.1Delphi知識(shí)介紹Delphi是美國BorlandSoftwareCorporation公司的編程工具產(chǎn)品。它基于Pascal語言,具有語法嚴(yán)謹(jǐn)、結(jié)構(gòu)清晰、可讀性強(qiáng)和代碼執(zhí)行效率高等優(yōu)點(diǎn);最重要的是,它功能強(qiáng)大且易活易學(xué),利用Delphi,我們在Windows平臺(tái)下幾乎可以做任何事情。Delphi憑借其強(qiáng)大的功能、易用性以及在開發(fā)數(shù)據(jù)庫和網(wǎng)絡(luò)應(yīng)用程序上的極大優(yōu)勢,作為一個(gè)優(yōu)秀的、體貼的、以人為本的開發(fā)工具,Delphi一直堅(jiān)持復(fù)雜問題簡單化的思想,而且不隱藏其細(xì)節(jié)以適應(yīng)不同層次的程序員。在進(jìn)行宿舍管理系統(tǒng)開發(fā)時(shí),用到了Delphi中的許多重要控件,下面將主要組件進(jìn)行逐一說明。TTable組件通過BDE從一個(gè)數(shù)據(jù)庫表格中取得數(shù)據(jù)并通過TDataSourse組件將數(shù)據(jù)傳遞給一個(gè)或多個(gè)數(shù)據(jù)控制組件。而且,將從數(shù)據(jù)控制組件處得到的通過BDE傳遞給數(shù)據(jù)庫。TableName是TTable最重要的屬性之一。它是用來說明這個(gè)TTable組件所對應(yīng)的是數(shù)據(jù)庫中的哪一張數(shù)據(jù)庫表格。DatabaseName屬性是用來說明當(dāng)前數(shù)據(jù)集的,即應(yīng)用程序所利用的數(shù)據(jù)庫的名字。TDBGrid組件的作用是一個(gè)將數(shù)據(jù)集記錄顯示在網(wǎng)格中,并且可以對其中的數(shù)據(jù)進(jìn)行修改。在窗體中放置一個(gè)TDBGrid對象來顯示和一個(gè)數(shù)據(jù)集是用來在數(shù)據(jù)集中瀏覽數(shù)據(jù)和數(shù)據(jù)的。TDBNavigatoro組件是由一組控制按鈕組成,通過這些控制按鈕,用戶可以完成在數(shù)據(jù)集中移動(dòng)記錄指針,增添或刪除一項(xiàng)記錄,修改數(shù)據(jù)記錄以及向數(shù)據(jù)庫提交對數(shù)據(jù)集記錄的修改等工作。TDataSource組件提供了聯(lián)系數(shù)據(jù)集組件與數(shù)據(jù)控制組件的紐帶。通過使用TDataSource組件,可以利用數(shù)據(jù)控制組件顯示、瀏覽以及修改數(shù)據(jù)集中的數(shù)據(jù)。ADO組件頁介紹:TADOConnection是用來建立與ADO數(shù)據(jù)庫之間聯(lián)系的組件,各種ADO的數(shù)據(jù)集及操作組件可以共用這種聯(lián)系來執(zhí)行命令,讀取數(shù)據(jù),并執(zhí)行相應(yīng)的操作。TADOTable組件主要用來從單個(gè)數(shù)據(jù)表格中讀取數(shù)據(jù),完成相應(yīng)操作。它可以直接與數(shù)據(jù)庫相聯(lián),也可以通過TADOConnection來實(shí)現(xiàn)連接。TADOQuery組件通過使用常用的SQL語句來讀取數(shù)據(jù),完成相應(yīng)操作。和TTable組件相比,TQuery組件的重要性體現(xiàn)在只有使用SQL語言才能完成查詢的時(shí)候必須使用該組件,它支持復(fù)雜得嵌套查詢,也就是Select中包含著Select子查詢。它還可以使用DDLSQL語句,它可以直接與數(shù)據(jù)庫相聯(lián),也可以通過TADOConnection來實(shí)現(xiàn)連接。TQuickRep組件:報(bào)表是數(shù)據(jù)庫應(yīng)用程序設(shè)計(jì)中非常重要的一部分,數(shù)據(jù)庫應(yīng)用程序通常都要生成報(bào)表,并且打印出來。該組件是設(shè)置報(bào)表外觀的主要組件,將TQuickRep組件加入到窗體中,它可以定位到窗體上并擴(kuò)展成全頁的尺寸,給報(bào)表一個(gè)全頁顯示的可能。DataSet該屬性指定主報(bào)表將從哪一個(gè)數(shù)據(jù)集中獲得數(shù)據(jù)。對于簡單的列表類型的報(bào)表中,通常使用一個(gè)數(shù)據(jù)集。對于一個(gè)主/明細(xì)表,該屬性應(yīng)該設(shè)置為主數(shù)據(jù)集。2.2SQLServer2000知識(shí)介紹SQLServer2000是Microsoft公司推出的SQLServer數(shù)據(jù)庫管理系統(tǒng),它繼承了SQLServer7.0版本的優(yōu)點(diǎn),同時(shí)又為它增加了許多更先進(jìn)的功能,具有使用方便、可伸縮性好、與相關(guān)軟件集成度高等優(yōu)點(diǎn),應(yīng)用程序的操作系統(tǒng)支持所有Windows版本。在SQLServer中,使用的是T-SQL語言,T-SQL是ANSISQL的加強(qiáng)版語言,它提供了標(biāo)準(zhǔn)的SQL命令,由于SQL語言功能豐富、語言簡潔,使用方法靈活,倍受用戶和計(jì)算機(jī)業(yè)界的青睞,被眾多的計(jì)算機(jī)公司和軟件公司采用。經(jīng)過多年的發(fā)展,SQL語言已成為關(guān)系數(shù)據(jù)庫的標(biāo)準(zhǔn)語言。SQL語言主要有數(shù)據(jù)定義語言、數(shù)據(jù)操縱語言、數(shù)據(jù)控制語言和其他類語言要素組成。T-SQL的分類也有類似于SQL語言的分類,不過做了許多擴(kuò)充。T-SQL語言的分類如下:變量說明語句、數(shù)據(jù)定義語言、數(shù)據(jù)操縱語言、數(shù)據(jù)控制語言、流程控制語言、內(nèi)嵌函數(shù)、其他命令。在數(shù)據(jù)庫中,數(shù)據(jù)查詢是通過SELECT語句來完成的。SELECT語句可以從數(shù)據(jù)庫中按用戶要求檢索數(shù)據(jù),并將查詢結(jié)果以表格的形式返回。當(dāng)然用戶在查詢數(shù)據(jù)庫時(shí)往往并不需要了解全部,而只需要其中一部分滿足某些條件的。在這種情況下就需要在SELECT語句中加入條件以選擇數(shù)據(jù)行,這時(shí),就用到WHERE子句。WHERE子句中的條件是由表達(dá)式以及邏輯聯(lián)結(jié)詞AND、OR和NOT等組成。用戶在進(jìn)行查詢時(shí),會(huì)出現(xiàn)重復(fù)結(jié)果,這時(shí)就需要使用DISTINCT關(guān)鍵字來取消重復(fù)部分。在WHERE子句中,可以使用謂詞LIKE來進(jìn)行字符串的匹配檢查。當(dāng)用戶要對查詢結(jié)果進(jìn)行排序時(shí),就需要在SELECT語句中加入ORDERBY子句。在ORDERBY子句中,可以使用一個(gè)或多個(gè)排序,要求其優(yōu)先級次序從左到右。為了使數(shù)據(jù)庫更加精簡,最大限度的減少數(shù)據(jù)庫冗余數(shù)據(jù)??梢允褂眠B接查詢來實(shí)現(xiàn)多個(gè)表的連接。連接查詢可以分為等值連接查詢、非等值連接查詢、自身連接查詢等。表之間的連接如果是通過相等的字段值連接起來的查詢稱為等值連接查詢。在等值查詢的連接條件中,不使用等號(hào)而使用其他比較運(yùn)算符,就構(gòu)成了非等值連接查詢,可以使用的比較運(yùn)算符有〉、〉=、!=等。連接不僅可以在表之間進(jìn)行,也可以使一個(gè)表同其自身進(jìn)行連接,這種連接成為自身連接,相應(yīng)得查詢成為自連接查詢。一個(gè)數(shù)據(jù)庫能否保持的正確性、及時(shí)性、很大程度上依賴數(shù)據(jù)庫的更新功能的強(qiáng)弱與數(shù)據(jù)庫的實(shí)時(shí)更新能力,這些操作包括插入、刪除、修改,也成為更新3種操作。第三章宿舍管理系統(tǒng)詳細(xì)設(shè)計(jì)3.1系統(tǒng)功能模塊圖在整體設(shè)計(jì)中,我們將宿舍管理系統(tǒng)分為八個(gè)大的模塊:系統(tǒng)管理模塊、公寓管理模塊、學(xué)生管理模塊、查詢模塊、出入登記模塊、修改模塊、報(bào)表管理模塊、關(guān)于模塊。每個(gè)模塊將實(shí)現(xiàn)不同的功能。下面將具體進(jìn)行介紹。3.1.1系統(tǒng)管理模塊系統(tǒng)管理模塊包括:超級用戶登錄、普通用戶登錄、用戶密碼修改、用戶管理、退出系統(tǒng)五個(gè)部分。1.超級用戶登錄:實(shí)現(xiàn)系統(tǒng)管理人員登錄。2.普通用戶登錄:實(shí)現(xiàn)一般管理人員登錄。3.用戶管理:實(shí)現(xiàn)系統(tǒng)管理人員授予或取消一般用戶登錄該系統(tǒng)的用戶名和密碼。4.密碼修改:實(shí)現(xiàn)所用用戶的密碼更改功能。5.退出系統(tǒng):實(shí)現(xiàn)正常退出宿舍管理系統(tǒng)。3.1.2公寓管理模塊公寓管理模塊包括:樓房管理、宿舍管理、員工管理三個(gè)大的部分。1.樓房管理:登記學(xué)校所有住宿樓情況。2.宿舍管理:登記學(xué)校所有宿舍的情況。3.員工原理:實(shí)現(xiàn)樓房管理人員的添加功能。3.1.3學(xué)生管理模塊學(xué)生管理模塊包括:學(xué)生基本錄入、學(xué)生財(cái)物登記、學(xué)生學(xué)期注冊、學(xué)生離校管理四項(xiàng)功能.1.學(xué)生基本錄入:實(shí)現(xiàn)學(xué)生基本情況的登記及宿舍的分配功能。2.學(xué)生財(cái)物登記:登記學(xué)生在校期間所擁有的公共及私有貴重物品情況。3.學(xué)生學(xué)期注冊管理:登記學(xué)生在校期間每學(xué)期的宿舍繳費(fèi)情況。4.學(xué)生離校管理:實(shí)現(xiàn)學(xué)生畢業(yè)離校處理,注銷該學(xué)生。3.1.4查詢模塊查詢模塊基本上包括:按學(xué)號(hào)進(jìn)行查詢、按姓名進(jìn)行查詢、按班級查詢、按寢室號(hào)查詢、每棟樓房住宿情況查詢五個(gè)部分。1.按學(xué)號(hào)進(jìn)行查詢:實(shí)現(xiàn)每個(gè)學(xué)生基本情況的查詢功能。2.按姓名查詢:通過學(xué)生姓名查詢學(xué)生基本情況。3.按班級查詢:通過班級查詢某班級學(xué)生住宿情況及該班級學(xué)生。4.按寢室號(hào)查詢:查看每個(gè)宿舍所住學(xué)生情況。5.樓房住宿情況查詢:查詢每棟樓房的所有宿舍的住宿情況及宿舍樓所住學(xué)生統(tǒng)計(jì)情況。3.1.5出入登記模塊出入登記模塊包括:進(jìn)樓物品登記、出樓物品登記、人員來訪登記、結(jié)束訪問登記四個(gè)功能模塊。1.進(jìn)樓物品登記:詳細(xì)登記某學(xué)生搬入宿舍樓的物品情況。2.出樓物品登記:詳細(xì)登記某學(xué)生搬出宿舍樓的物品情況。3.人員來訪登記:詳細(xì)登記進(jìn)入宿舍樓的外來人員情況。4.結(jié)束訪問登記:詳細(xì)登記外來人員的離開情況。3.1.6修改模塊修改模塊包括:學(xué)生基本修改、員工基本修改、個(gè)人財(cái)物修改三個(gè)大的功能。1.學(xué)生基本修改:實(shí)現(xiàn)系統(tǒng)管理人員對學(xué)生基本情況所作的添加、修改、刪除。2.員工修改:實(shí)現(xiàn)系統(tǒng)管理人員對樓房員工的修改、刪除功能。3.個(gè)人財(cái)物修改:實(shí)現(xiàn)對學(xué)生個(gè)人財(cái)物的添加、修改、刪除功能。3.1.7報(bào)表管理模塊報(bào)表管理模塊包括:學(xué)生打印、員工打印、宿舍交費(fèi)情況打印、物品出入樓打印、某宿舍住宿情況打印五個(gè)功能。1.學(xué)生:查詢并打印每個(gè)學(xué)生的詳細(xì)基本情況。2.員工:查詢并打印每棟宿舍樓的所有員工情況。3.宿舍交費(fèi)情況:查詢并打印已交清或未交清住宿費(fèi)的學(xué)生。4.物品出入樓:查詢并打印某學(xué)生的物品出入宿舍樓的情況。5.宿舍住宿情況:查詢并打印某個(gè)宿舍的詳細(xì)住宿情況。6.人員來訪情況:查詢并打印某個(gè)時(shí)間段的人員來訪情況。3.1.8關(guān)于模塊此模塊是對學(xué)生宿舍管理系統(tǒng)開發(fā)者相關(guān)的一個(gè)簡單介紹。3.2系統(tǒng)E-R圖在我所設(shè)計(jì)的模塊中,主要涉及到員工、樓房、寢室這三個(gè)實(shí)體,所以在E-R圖中我只是將這三個(gè)實(shí)體的屬性進(jìn)行了詳細(xì)說明。3.3系統(tǒng)所需表綜合以上分析,要實(shí)現(xiàn)上面的所有功能模塊,共需要設(shè)計(jì)九個(gè)表,它們分別是:學(xué)生基本情況表、寢室表、員工表、樓房表、人員來訪表、學(xué)生財(cái)產(chǎn)表、學(xué)期注冊表、權(quán)限表、物品出入樓表。3.3.1系統(tǒng)表1.用戶表:登記管理人員的用戶名、密碼及登錄權(quán)限。2.學(xué)生基本情況表:詳細(xì)登記學(xué)生基本及學(xué)生住宿情況。3.寢室表:登記所有宿舍的詳細(xì)情況。4.員工表:登記所有管理人員的詳細(xì)情況。5.人員來訪表:登記所有來訪人員的詳細(xì)情況。6.物品出入表:詳細(xì)登記學(xué)生物品出樓。7.樓房表:登記所有住宿樓情況。8.學(xué)期注冊表:登記學(xué)生每學(xué)期的注冊情況。9.學(xué)生財(cái)產(chǎn)表:登記學(xué)生物品情況。YandFEmp_AddLea_TimeG_Des數(shù)據(jù)長度Enr_YearKeySend3.3.2表的說明本管理系統(tǒng)共用到九個(gè)表:用戶表、學(xué)生基本情況表、寢室表、員工表、人員來訪表、物品出入樓表、樓房表、學(xué)生財(cái)產(chǎn)表、學(xué)期注冊表,各表之間均有一定的關(guān)系,可以進(jìn)行關(guān)聯(lián)。1.學(xué)生基本情況表、學(xué)生財(cái)產(chǎn)表、學(xué)期注冊表、物品出入樓表這四個(gè)表里面都有一個(gè)相同的字段:學(xué)號(hào),通過學(xué)號(hào)這個(gè)字段就可以將系統(tǒng)的這四個(gè)表關(guān)聯(lián)了起來。當(dāng)某個(gè)表發(fā)生插入、修改、刪除等方面的改動(dòng)時(shí),相聯(lián)的表之間也要進(jìn)行相應(yīng)的改動(dòng)。學(xué)生基本情況表和寢室表也有一個(gè)相同的字段:寢室號(hào)將兩表相關(guān)聯(lián)。2.由于員工是負(fù)責(zé)管理某棟樓房的,因此員工表,樓房表這兩個(gè)表之間有一個(gè)相同的字段:樓房號(hào)來進(jìn)行關(guān)聯(lián)。3.4具體模塊設(shè)計(jì)在系統(tǒng)功能模塊介紹時(shí),我們把整個(gè)系統(tǒng)分為系統(tǒng)管理模塊、公寓管理模塊、學(xué)生管理模塊、查詢模塊、出入登記模塊、修改模塊、報(bào)表管理模塊、關(guān)于模塊八個(gè)基本模塊。其中系統(tǒng)管理模塊中的用戶管理和密碼修改、公寓管理模塊、查詢模塊、報(bào)表管理模塊是由我具體來完成的。如下圖是我們學(xué)生宿舍管理系統(tǒng)的主界面:3.4.1用戶管理、密碼修改模塊功能詳細(xì)設(shè)計(jì)1.用戶管理設(shè)計(jì)思想:當(dāng)宿舍管理系統(tǒng)需要加入新管理員時(shí),具有使用該功能權(quán)限的超級用戶授予新管理員以登錄該系統(tǒng)的用戶名稱、用戶密碼和用戶權(quán)限。像我們的后勤服務(wù)總公司中的管理人員就應(yīng)該具有系統(tǒng)管理員的權(quán)限,宿舍樓房管理人員就應(yīng)該具有一般用戶的權(quán)限。一般用戶的權(quán)限是系統(tǒng)管理員授予的。當(dāng)然如果某管理人員離職,那么他將不能再登錄該系統(tǒng),因此管理員有權(quán)收回授予其的管理權(quán)限。具體實(shí)現(xiàn):.在實(shí)現(xiàn)該功能時(shí),需要用到權(quán)限表LoginIn,因此需要添加一個(gè)TADOQuery控件實(shí)現(xiàn)窗體與數(shù)據(jù)庫之間的相關(guān)聯(lián)。.在新增用戶時(shí),考慮到在登錄該系統(tǒng)時(shí),用戶名及其用戶密碼是必須輸入不能為空的,因此我們在實(shí)現(xiàn)具體添加新用戶時(shí),不能允許用戶名及其密碼為空。還有重要一點(diǎn)就是用戶權(quán)限也是必須選擇的,因?yàn)檫@關(guān)系到用戶在使用宿舍管理系統(tǒng)時(shí)所具有權(quán)限問題。.在刪除用戶時(shí),還需要通過編碼判斷一下系統(tǒng)管理人員所要?jiǎng)h除的用戶到底存不存在。如果沒有該用戶那么也許是因?yàn)楣芾砣藛T的輸入錯(cuò)誤,造成所刪用戶不存在,可以重新輸入,實(shí)現(xiàn)刪除功能。2.密碼修改設(shè)計(jì)思想:為了防止密碼被惡意盜用可以經(jīng)常性的修改你的密碼以增強(qiáng)系統(tǒng)的安全性,密碼修改對于所有具有訪問該系統(tǒng)的用戶來說都可以使用。具體實(shí)現(xiàn):.首先通過TADOQuery控件實(shí)現(xiàn)該功能模塊與數(shù)據(jù)庫的關(guān)聯(lián)。.其次為了確保該功能的完整性,在確認(rèn)之后,需要判斷一下所有的框中的輸入都不能為空。.最后在確認(rèn)時(shí),還需要編程實(shí)現(xiàn)的是判斷原始用戶名和密碼是否一致,只有一致才有權(quán)限修改你的密碼。同是為了確保新密碼的正確性,還添加了一個(gè)確認(rèn)密碼框,新密碼和確認(rèn)密碼兩者所輸內(nèi)容是要求完全一樣,方能修改密碼成功。3.4.2公寓管理模塊詳細(xì)設(shè)計(jì)1.樓房管理設(shè)計(jì)思想:樓房管理是對每棟宿舍樓的基本進(jìn)行錄入,在學(xué)校建設(shè)完新的宿舍樓時(shí)可以通過此窗體把該樓房的添加到數(shù)據(jù)庫中去。具體實(shí)現(xiàn):.由于需要和數(shù)據(jù)庫表相關(guān)聯(lián),所以也添加了一個(gè)TADOQuery控件實(shí)現(xiàn)兩者之間的關(guān)聯(lián)。.在具體實(shí)現(xiàn)時(shí)需要設(shè)置像樓房號(hào)這樣的具有唯一確定性的字段是不能為空的。其他字段在輸入時(shí)沒有太大限制,錄入人員在錄入時(shí)需根據(jù)自身情況再進(jìn)行添加。.我們還設(shè)置了一個(gè)‘備注’字段,是為了方便學(xué)校登記該樓房的其他相關(guān)情況。2.宿舍管理設(shè)計(jì)思想:宿舍管理是對每棟樓房所有宿舍的一個(gè)詳細(xì)情況登記,每個(gè)宿舍在數(shù)據(jù)庫里面的都是就靜態(tài)的只有里面的實(shí)住人數(shù)是動(dòng)態(tài)增加的,當(dāng)某個(gè)宿舍增加或減少一個(gè)學(xué)生實(shí)住人數(shù)會(huì)自動(dòng)加1或減1,實(shí)現(xiàn)動(dòng)態(tài)增減。具體實(shí)現(xiàn):.首先通過TADOQuery實(shí)現(xiàn)數(shù)據(jù)庫和窗體的相關(guān)聯(lián),再通過TDatasouse控件實(shí)現(xiàn)TDBGrid和宿舍表的相關(guān)聯(lián),那么Dorm表中的數(shù)據(jù)就會(huì)在TDBGrid中顯示了,可以隨時(shí)看到表中數(shù)據(jù)的動(dòng)態(tài)變化。.在具體設(shè)計(jì)時(shí),首先將實(shí)住人數(shù)框?qū)傩栽O(shè)為ReadOnly型,因?yàn)樵撟侄问莿?dòng)態(tài)添加,每當(dāng)為一個(gè)學(xué)生分配一個(gè)宿舍,那么該宿舍的實(shí)住人數(shù)會(huì)自動(dòng)加一,無需手工錄入。住宿費(fèi)是必須輸入的,因?yàn)檫@和學(xué)生注冊管理是相關(guān)聯(lián)的。學(xué)生在學(xué)期注冊時(shí),需要根據(jù)該生所住的宿舍號(hào)來查看其應(yīng)交的住宿費(fèi)用。居住性別也要輸入,當(dāng)為某學(xué)生分配宿舍時(shí),需要根據(jù)該生性別查一下,還能入住男生或女生的宿舍有哪些,根據(jù)所查情況再為他們分配宿舍。以免盲目分配,出現(xiàn)錯(cuò)住造成管理混亂。3.員工管理設(shè)計(jì)思想:員工管理是對樓房管理人員、清潔工、保衛(wèi)人員進(jìn)行的登記管理。該模塊是有系統(tǒng)管理員來完成的,普通用戶沒有使用該項(xiàng)功能的權(quán)限。當(dāng)某棟樓房調(diào)來新員工時(shí),系統(tǒng)管理員可以通過此功能來添加員工基本。具體實(shí)現(xiàn):.首先通過TADOQuery實(shí)現(xiàn)數(shù)據(jù)庫和功能模塊的相關(guān)聯(lián),再通過TDatasouse控件實(shí)現(xiàn)TDBGrid表格和員工表的相關(guān)聯(lián),那么員工表中的數(shù)據(jù)就會(huì)在TDBgrid中顯示了,可以隨時(shí)看到表中數(shù)據(jù)添加、刪除、修改等的動(dòng)態(tài)變化。.在該功能中需編程將‘樓房號(hào)’所對應(yīng)得下拉列表框中的屬性值動(dòng)態(tài)的從樓房表中獲得的。通過動(dòng)態(tài)添加可以實(shí)現(xiàn)當(dāng)樓房表中每增加一棟樓,在員工窗體的‘樓房號(hào)’的下拉列表框中的會(huì)自動(dòng)添加一棟,實(shí)現(xiàn)兩個(gè)表之間的動(dòng)態(tài)關(guān)聯(lián)。3.4.3查詢模塊詳細(xì)設(shè)計(jì)按學(xué)號(hào)進(jìn)行查詢、按姓名進(jìn)行查詢、按班級查詢、按寢室號(hào)查詢這四個(gè)功能模塊在具體編程實(shí)現(xiàn)上基本上是一樣的,因?yàn)槎际轻槍W(xué)生的查詢。因此我們僅以’按學(xué)號(hào)進(jìn)行查詢’為例來說明一下這四個(gè)功能模塊的詳細(xì)實(shí)現(xiàn)過程。其余三個(gè)模塊僅介紹其實(shí)現(xiàn)思想。Y顯示查詢結(jié)果結(jié)束1.按學(xué)號(hào)進(jìn)行查詢設(shè)計(jì)思想:按學(xué)號(hào)查詢是具體的查詢某學(xué)生的詳細(xì),包括學(xué)生的基本及其住宿情況。在需要調(diào)查學(xué)生的詳細(xì)情況時(shí),可以采用該功能來實(shí)現(xiàn)。具體實(shí)現(xiàn):.首先通過TADOQuery控件實(shí)現(xiàn)數(shù)據(jù)庫和該功能模塊的關(guān)聯(lián),再通過TDatasourse實(shí)現(xiàn)學(xué)生表和TDBGrid的關(guān)聯(lián),把學(xué)生顯示在下面的表格中。.其次我還為窗體添加了一個(gè)TDBNavigator控件,可以實(shí)現(xiàn)數(shù)據(jù)的最上一條、上一條、下一條、最下一條瀏覽查看。當(dāng)然像按學(xué)號(hào)來查詢的話也許用不到該控件,但要是按班級查詢或姓名等其他查詢,這個(gè)控件是非常有用的。因?yàn)橥ㄟ^班級或姓名查出來的學(xué)生數(shù)據(jù)量會(huì)非常大,所以需要通過該按鈕來方便、快捷的查看。.在按學(xué)號(hào)查詢時(shí)首先要通過編程判斷一下,數(shù)據(jù)庫的學(xué)生表中是否存在該編號(hào)的學(xué)生,如果沒有系統(tǒng)會(huì)提醒你‘學(xué)號(hào)不存在是不是輸入錯(cuò)誤,檢查一下再重新輸入’,所以只有存在學(xué)號(hào)才能進(jìn)行查詢。.上述完成之后,輸入所查詢的學(xué)號(hào),那么所需學(xué)生就會(huì)在下面表格中顯示出來了。上圖所顯示的是所有學(xué)生情況。2.按姓名進(jìn)行查詢設(shè)計(jì)思想:按學(xué)生姓名實(shí)現(xiàn)的查詢,雖然這樣查出來的學(xué)生有可能不止一名,但在有些情況下可以調(diào)用此功能來實(shí)現(xiàn)。3.按班級進(jìn)行查詢設(shè)計(jì)思想:實(shí)現(xiàn)某個(gè)班級所有學(xué)生基本及住宿情況的查詢。通過該功能模塊我們可以統(tǒng)計(jì)某個(gè)班級的宿舍分配情況,這個(gè)班級的學(xué)生都住在哪些寢室中。4.按寢室號(hào)查詢設(shè)計(jì)思想:在輸入寢室號(hào)時(shí)可以把該宿舍所住的所有學(xué)生的都統(tǒng)計(jì)出來,方便詳細(xì)了解某宿舍的學(xué)生住宿情況。5.住宿情況查詢設(shè)計(jì)思想:多選框里的按樓房號(hào)查詢按鈕可以查看某棟樓房所有宿舍的住宿情況,看看還有哪些宿舍還有空的床位,可以入住學(xué)生。還可以查看某個(gè)宿舍的詳細(xì)情況。同時(shí)該模塊還能夠統(tǒng)計(jì)某棟樓房的所有學(xué)生人數(shù)。具體實(shí)現(xiàn):.首先通過TADOQuery控件實(shí)現(xiàn)數(shù)據(jù)庫和該功能模塊的關(guān)聯(lián),再通過TDatasourse實(shí)現(xiàn)寢室表和TDBGrid顯示表格的關(guān)聯(lián),把宿舍顯示在下面的表格中。.其次放置一個(gè)復(fù)選按鈕鍵,可以方便實(shí)現(xiàn)按樓房號(hào)和按宿舍號(hào)兩種方式的查詢。在右邊放置一個(gè)查詢框,進(jìn)行查詢條件的輸入。在按樓房號(hào)查詢時(shí),用到了模糊查詢。模糊查詢的在本部分的基本原理就是:我們在剛開始建庫時(shí)考慮到管理方便和減少冗余,在對學(xué)生進(jìn)行宿舍號(hào)登記時(shí)是這么描述的如:6-502,將其樓房號(hào)和宿舍號(hào)放一個(gè)字段中,并沒有將其分開操作。所以在查詢這部分當(dāng)需要按樓房號(hào)進(jìn)行查詢時(shí),就要注意了。假如我們要查5號(hào)樓的住宿情況,那么在TDBGrid表格中的顯示就應(yīng)該是5-***,而6-502雖然也包含了5這個(gè)字符,但它不屬于5號(hào)樓,所以要將其排除在外。因此我們采用了模糊查詢,查詢結(jié)果只顯示所需。.在住宿統(tǒng)計(jì)的實(shí)現(xiàn)上,我們使用的SQL集函數(shù)SUM來實(shí)現(xiàn)的。它的主要功能就是計(jì)算一列值得總和。將要查的樓房號(hào),輸入到查詢條件中時(shí),還需要判斷該樓房號(hào)到底存不存在,如果存在在該模塊中的‘住宿統(tǒng)計(jì)按鈕’,那么該樓房所有學(xué)生的總?cè)藬?shù)會(huì)在’住宿統(tǒng)計(jì)’按鈕右邊的Memo文本顯示控件里面進(jìn)行顯示了,同時(shí)該樓房的詳細(xì)住宿情況會(huì)在表格中進(jìn)行具體顯示。3.4.4報(bào)表管理模塊詳細(xì)設(shè)計(jì)報(bào)表是數(shù)據(jù)庫應(yīng)用程序設(shè)計(jì)中非常重要的一部份,數(shù)據(jù)庫應(yīng)用程序通常都要生成報(bào)表,并且把所需打印出來,方便用戶存檔等得方面上的管理。由于該模塊中各小模塊實(shí)現(xiàn)的都是報(bào)表管理,所以宿舍交費(fèi)情況報(bào)表管理、學(xué)生報(bào)表、員工報(bào)表、學(xué)生物品出入報(bào)表、住宿報(bào)表、來訪報(bào)表這六個(gè)小功能模塊只是在功能思想上不太一樣,其具體設(shè)計(jì)實(shí)現(xiàn)時(shí)操作基本上是差不多的,因此這里只是詳細(xì)介紹宿舍交費(fèi)情況的具體設(shè)計(jì)實(shí)現(xiàn),其他模塊僅介紹其設(shè)計(jì)思想。1.宿舍交費(fèi)情況報(bào)表管理設(shè)計(jì)思想:該模塊實(shí)現(xiàn)的是對學(xué)生每學(xué)期所交納住宿費(fèi)的一個(gè)詳細(xì)情況的查詢。在學(xué)生即將畢業(yè)離校時(shí)可以通過該功能模塊來查詢一下,那些同學(xué)還欠有學(xué)校住宿費(fèi),在其交清之前將不準(zhǔn)其離校,已交清的同學(xué)就可以進(jìn)行離校手續(xù)的辦理了。一般來說我們真正需要并且有用的就是未交清住宿費(fèi)的學(xué)生清單,在學(xué)生畢業(yè)時(shí)可以通過此單來收取學(xué)生補(bǔ)交的住宿費(fèi)等。具體實(shí)現(xiàn):.首先通過TADOQuery控件實(shí)現(xiàn)數(shù)據(jù)庫和該窗體的關(guān)聯(lián),再通過TDataSourse實(shí)現(xiàn)學(xué)生注冊表和TDBGrid的關(guān)聯(lián),把學(xué)生交費(fèi)顯示在列表中。.在作報(bào)表時(shí)我使用的是TQuickRep組件,通過該組件可以方便的把報(bào)表和代碼聯(lián)系起來,生成美觀的圖文報(bào)表。當(dāng)然還可以用TQReport頁上的控件給一個(gè)報(bào)表添加標(biāo)題、頁眉、頁腳、等功能。還可以自動(dòng)進(jìn)行求和、計(jì)算均值等統(tǒng)計(jì)功能。報(bào)表設(shè)計(jì)時(shí)可以選中TQuickRep控件快捷菜單的Preview,即可在設(shè)計(jì)階段預(yù)覽打印結(jié)果。.我們?yōu)槊總€(gè)報(bào)表管理窗體設(shè)置四個(gè)TButton功能按鈕:查詢、報(bào)表預(yù)覽、打印報(bào)表、退出。報(bào)表管理,再打印報(bào)表之前首先查詢一下用戶所需,查詢出來后可以預(yù)覽一下是否正確,確定無誤之后可以打印按鈕,那么所有所需就會(huì)詳細(xì)的詳細(xì)地顯示在紙張上,供用戶查看了。.在學(xué)生注冊表里的‘交費(fèi)情況’字段我們規(guī)定它只能選擇兩種情況:已交清或未交清。在框中輸入已交清或未交清兩種情況的一種,按鈕,那么所需就會(huì)詳細(xì)的顯示在窗體表中。防止用戶在查詢時(shí)輸入錯(cuò)誤,我們需要編程實(shí)現(xiàn)提示功能。下面我們以未交清住宿費(fèi)的學(xué)生為例,演示一下其報(bào)表預(yù)覽情況。在上述窗體中輸入‘未交清’字段,則其報(bào)表顯示情況如下:圖3.13報(bào)表預(yù)覽圖2.學(xué)生報(bào)表圖3.14學(xué)生報(bào)表界面設(shè)計(jì)思想:能夠?qū)崿F(xiàn)某學(xué)生詳細(xì)基本情況的查詢打印。當(dāng)因?yàn)槟承┰蛐枰樵兡硨W(xué)生時(shí),可以調(diào)用該功能模塊來實(shí)現(xiàn)。3.員工報(bào)表設(shè)計(jì)思想:能夠?qū)崿F(xiàn)某棟樓房所有員工情況的查詢打印,如果想了解某宿舍樓工作人員的詳細(xì)情況,可以調(diào)用該模塊來實(shí)現(xiàn)。4.學(xué)生物品出入報(bào)表設(shè)計(jì)思,,想:能夠?qū)崿F(xiàn)查詢某學(xué)生物品出入宿舍樓房的詳細(xì)。如果想查看一下該學(xué)生一段時(shí)間內(nèi)的出樓情況,可以通過該窗口來實(shí)現(xiàn)。5.住宿報(bào)表設(shè)計(jì)思想:能夠?qū)⒛乘奚岬脑敿?xì)學(xué)生住宿情況打印出來。在某些情況下如果需要查看某個(gè)宿舍的詳細(xì)學(xué)生情況可以調(diào)用該窗體實(shí)現(xiàn)報(bào)表打印功能。6.來訪報(bào)表設(shè)計(jì)思想:主要實(shí)現(xiàn)的是將某個(gè)時(shí)間內(nèi)所有來訪人員的詳細(xì)打印出來,以便于查詢某些。第四章系統(tǒng)測試4.1所遇問題一個(gè)系統(tǒng)功能的實(shí)現(xiàn),需要經(jīng)過這么幾步,首先把大致的骨架給設(shè)計(jì)好,然后根據(jù)系統(tǒng)要求寫代碼,接著是調(diào)試程序,最后完善總結(jié)。其中最重要的兩步就是中間的兩步。在此次畢業(yè)設(shè)計(jì)中,給我印象最深的就是系統(tǒng)的調(diào)試。在調(diào)試過程中,遇到了不少的問題,不過經(jīng)過我不斷的查閱資料,老師的指導(dǎo),同學(xué)的商討,這些問題都逐漸得到了解決,現(xiàn)將整個(gè)的調(diào)試過程總結(jié)如下:1.首先就是SQLServer數(shù)據(jù)庫和Delphi開發(fā)環(huán)境的相關(guān)聯(lián)。我原先使用的是BDE控件來實(shí)現(xiàn)SQLServer數(shù)據(jù)庫和Delphi的關(guān)聯(lián),這中間要用到ODBC數(shù)據(jù)源,每次進(jìn)行數(shù)據(jù)庫和ODBC的相聯(lián)都會(huì)發(fā)生許多錯(cuò)誤。最后我在看書時(shí)發(fā)現(xiàn)Delphi中新的數(shù)據(jù)訪問組件都采用了ADO技術(shù),可以不通過BDE就能使用現(xiàn)行的數(shù)據(jù)控件如TDBGrid和TDBEdit對數(shù)據(jù)進(jìn)行直接訪問,因此縮短了ADO/OLE-DB的運(yùn)行時(shí)間,更重要的是,使用ADO可以避免用戶在使用程序之前手動(dòng)設(shè)置BDE和ODBC屬性,以免產(chǎn)生不必要的錯(cuò)誤。因些通過ADO我可以方便快捷的將其進(jìn)行了關(guān)聯(lián)。2.其次就是查詢中出現(xiàn)的錯(cuò)誤。假設(shè)我們查詢

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論