【文章內(nèi)容簡介】
th表:用來保存學(xué)生個人財產(chǎn)的基本信息,表結(jié)構(gòu)如表47所示。表47:worth表字段名稱數(shù)據(jù)類型說明學(xué)號文本主鍵姓名文本寢室號文本床位號文本鑰鎖發(fā)否文本桌子號文本電話號碼文本備注備注8. grade 表:用來保存寢室評比的信息,表結(jié)構(gòu)如表48所示。表48:grade 表字段名稱數(shù)據(jù)類型說明寢室號文本主鍵寢室長文本周評分?jǐn)?shù)字月評分?jǐn)?shù)字總評分?jǐn)?shù)字備注備注9. house 表:用來保存公寓的基本信息,表結(jié)構(gòu)如表49所示。表49:house 表字段名稱數(shù)據(jù)類型說明樓房號文本主鍵樓層數(shù)數(shù)字房間數(shù)數(shù)字建筑時間日期/時間建筑成本貸幣備注備注 10. registe表:用來保存學(xué)生的注冊交費信息,表結(jié)構(gòu)如表410所示。表410:registe表字段名稱數(shù)據(jù)類型說明學(xué)號文本主鍵姓名文本寢室號文本第一學(xué)期文本第二學(xué)期文本第三學(xué)期文本第四學(xué)期文本第五學(xué)期文本第六學(xué)期文本欠費情況文本備注文本第5章 系統(tǒng)詳細(xì)設(shè)計及其實現(xiàn) 系統(tǒng)工程框架系統(tǒng)工程框架主要簡介了學(xué)生公寓系統(tǒng)各模塊,并對數(shù)據(jù)模塊Data作了詳細(xì)的說明,并且介紹了相應(yīng)的實例。 學(xué)生公寓管理系統(tǒng)的模塊:1. 公寓管理模塊。2. 學(xué)生查詢管理模塊。3. 學(xué)生管理模塊。4. 來訪登記管理模塊。5. 系統(tǒng)管理和維護模塊。 Data 數(shù)據(jù)模塊[5],定義了數(shù)據(jù)庫連接字符串connectionStr來改變連接,步驟如下:1. 打開ADO控件頁;2. 在窗口上放一個TADOConnection控件,屬性設(shè)置如下:點ConnectionString屬性旁邊的擴展按鈕,然后在彈出的對話框中選擇Microsoft OLE DB for SQL Server,最后點測試看看連接是否成功;成功后點確定按鈕,這樣就將ConnectionString屬性設(shè)置成功。3. 在窗口上再放一個TADOQuery控件,并設(shè)置屬性Connection指向TADOConnection控件,且在SQL 屬性中設(shè)置查詢語句。4. 最后在窗體上放TDataSource控件,設(shè)置其DataSet屬性指向TADOQuery控件。 再放置一個數(shù)據(jù)瀏覽控件,并將其DataSource屬性指向TDataSource控件。 5. 將TADOQuery屬性的Active設(shè)置為True,你將看到數(shù)據(jù)感知控件中顯示連接數(shù)據(jù)庫表的內(nèi)容。 系統(tǒng)各模塊詳細(xì)設(shè)計及其實 登錄窗體與系統(tǒng)主界面設(shè)計及實現(xiàn)1. 登錄窗體設(shè)計及實現(xiàn)登錄窗體命名為LoginForm。 登錄窗體登錄窗體的主要功能是通過用戶名和密碼來驗證用戶身份的合法性。在用戶輸入完用戶名和密碼之后,程序會將用戶名和密碼與數(shù)據(jù)庫中的數(shù)據(jù)進行對比,用戶登錄的機會為3次,如果連續(xù)3次密碼錯誤,系統(tǒng)會自動關(guān)閉。不同身份登陸有不同的權(quán)限。開始是否輸入用戶名和密碼把用戶名和密碼賦值給變量用戶名是否存在用戶名與密碼是否匹配登錄成功是否失敗3次否退出程序是否否否是是是 登錄窗體流程圖登錄程序設(shè)計中,用變量inputNum來記錄輸入錯誤密碼的次數(shù),其初始值為零,登錄窗體在主窗體出現(xiàn)之前彈出,主要算法代碼如下: begin // 當(dāng)用戶名與密碼正確并且輸入次數(shù)少于三次時就登錄成功 if locate(39。用戶名39。,username,[lopartialkey]) and locate(39。密碼39。,password,[lopartialkey]) and (itimes4) then begin close。 。 (39。select * from manage where 用戶名=39。39。39。+username+39。39。39。39。+39。 and 密碼=39。39。39。+password+39。39。39。39。)。 open。 (TmainForm,mainform)。 [1].Text:=username。 [3].Text:=fieldbyname(39。權(quán)限39。).AsString。 if fieldbyname(39。權(quán)限39。).AsString=39。操作員39。 then begin with mainform do begin :=false。 :=false。 :=false。 :=false。 :=false。 :=false。 end end。2. 系統(tǒng)主界面設(shè)計及實現(xiàn)主窗體命名為mainform,主窗體有主菜單、工具欄和狀態(tài)欄。 系統(tǒng)主界面 主菜單包含了對公寓管理,寢室管理,學(xué)生管理,來訪登記管理以及員工管理五大基本功能,而且還在主菜單中運用多級菜單技術(shù),提供了學(xué)生、登記、員工的資料修改功能。工具欄按鈕設(shè)計了學(xué)生基本情況錄入、學(xué)生基本信息的查詢、來訪登記,資料修改等一些用戶常用的功能,以便用戶可以更加快速、簡單地進行操作。狀態(tài)欄可以顯示當(dāng)前操作的時間、當(dāng)前用戶名和登陸系統(tǒng)的身份。 公寓管理模塊設(shè)計及實現(xiàn)1. 公寓管理模塊主要功能1). 設(shè)置樓房情況。2). 員工處理。3). 管理樓房情況。4). 查詢公寓樓房信息。2. 樓房設(shè)置窗體設(shè)計及實現(xiàn)公寓樓房設(shè)置窗體命名為SetRoomForm。該界面可對公寓的樓房號、樓層號、起始房間、居住性別等基本信息進行設(shè)置。 樓房管理窗體確認(rèn)、取消按鈕的代碼如下://設(shè)置相應(yīng)的房間是否可用與價格的設(shè)置with dobegin close。 。 (39。update tbpd set 應(yīng)住人數(shù)=39。++39。, 價格=39。++39。, 狀態(tài)=39。39。39。++39。39。39。39。+39。, 居住性別=39。39。39。++39。39。39。39。+39。,備注=39。39。39。++39。39。39。39。)。 (39。where 寢室號 between 39。39。39。+getnum()+39。_39。+trim()+trim()+39。39。39。39。+39。 and 39。39。39。+getnum()+39。_39。+trim()+trim()+39。39。39。39。)。 if messagedlg(39。請確認(rèn)輸入,是否把記錄更新39。,mtconfirmation,[mbYes,mbNo],0)=mryes then execsql else showmessage(39。操作取消39。)。 end。把數(shù)據(jù)寫入到數(shù)據(jù)庫中去with dobeginclose。(39。select * from house where 樓房號=39。39。39。+trim()+39。39。39。39。)。open。if not eof thenbegin for i:=1 to fieldbyname(39。樓層數(shù)39。).AsInteger do (inttostr(i))。 :=0。 for i:=1 to fieldbyname(39。房間數(shù)39。).AsInteger do begin (isvalues(i))。 (isvalues(i))。 end。3. 員工處理窗體設(shè)計及實現(xiàn) 員工管理窗體命名為EmpleerForm, 。用戶在添加員工信息時,程序會識別用戶填寫的信息是否完整。當(dāng)用戶填寫信息完整以后,程序首先會在員工信息表中檢測員工號是否重復(fù),因為員工號是學(xué)生的唯一標(biāo)識,如果重復(fù),程序會提醒用戶。其次程序會根據(jù)公寓信息表和寢室信息表來檢測用戶所填的房號與樓層是否存在,如果不存在,程序會彈出信息框提醒用戶,以免造成錯誤。在用戶修改員工所住寢室信息的時候,程序也會自動檢測。 員工管理窗體部分代碼如下:procedure (Sender: TObject)。varI:integer。begin with dobeginclose。(39。select * from house where 樓房號=39。39。39。+Trim()+39。39。39。39。)。open。if RecordCount0 then begin for i:=1 to strtoint(FieldByName(39。樓層數(shù)39。).AsString) do (39。層39。+IntToStr(i))。 endelseshowmessage(39。沒有記錄,請管理員錄入數(shù)據(jù)信息39。)。end。end。//函數(shù)是用來判斷相應(yīng)的編輯框是否為空Function TryEmpty(Sender:Tobject):boolean。beginIf Trim((sender as Tedit).Text)=39。39。 then begin ShowMessage(39。當(dāng)前選項不能為空39。)。 result:=true。 (Sender as Tedit).SetFocus。 Endelse result:=false。end。end。 學(xué)生查詢管理模塊設(shè)計及實現(xiàn)1. 學(xué)生查詢管理模塊主要功能1). 按學(xué)號查詢。2). 按姓名查詢。3). 按家庭住址查詢。4). 按學(xué)生班級查詢。5). 混合查詢。2. 學(xué)生查詢管理窗體設(shè)計及實現(xiàn)學(xué)生查詢管理窗體命名為QueryForm。該窗體可以根據(jù)學(xué)生的學(xué)號、姓名、家庭住址、學(xué)生班級以及混合查詢來查詢學(xué)生的相關(guān)信息,用戶可選擇其中的任何一種方式對學(xué)生的學(xué)號,姓名,專業(yè),政治面貌等基本信息進行查詢。 學(xué)生查詢管理窗體部分功能實現(xiàn)的代碼如下:procedure (Sender: TObject)。begin//查詢學(xué)號Qstr1:=39。39。if trim()39。39。 thenQstr1:=39。where 學(xué)號 like 39。39。%39。+Trim()+39。%