




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
景德鎮(zhèn)陶瓷學院工學學士學位論文第一章系統概述本科生畢業(yè)設計(論文)題目:基于WEB的高校學生宿舍管理系統景德鎮(zhèn)陶瓷學院工學學士學位論文 摘要45第四章主要功能詳細設計通過前面的需求分析和概要設計,整個系統的功能結構和數據結構已經非常清楚,利用程序實現各個系統的功能,完成各種數據結構的處理,整個系統功能包括學生信息管理,宿舍房間信息管理,住宿信息管理,衛(wèi)生紀律評比,交費信息管理,用戶管理,以及學生自助查詢頁面。另外要進行各個信息的管理,還必須通過系統的用戶認證模塊,下面我就各個模塊的詳細設計實現做解析。4.1登陸模塊的實現作為現代社會的信息管理系統,登陸模塊一般是不可缺少的,它能保證未授權的用戶進入系統非法操作,從而保證了系統的安全性。系統登陸模塊的運行界面如圖4-1所示。圖4-1學生宿舍信息系統登陸界面圖4-2學生查詢登陸界面其實現在login.aspx和loginuser.aspx中,該頁面程序通過類別選擇,跳轉到對應的登錄界面。在login.aspx頁面中根據submit變量的值是否為空可以判斷用戶是首次進入本頁面還是通過點擊‘登陸’按扭提交認證表單信息進入本頁面,如果submit變量為空就直接顯示需要填寫認證信息的表單,否則提取表單中的帳號、密碼、權限和數據庫中的信息進行比較,如果不一致就給出相應的提示信息,都正確了會設置session變量admin的邏輯值為真,然后根據session變量power重定向到管理員系統頁面和宿舍管理員頁面。在loginuser.asp中根據submit變量的值是否為空可以判斷學生是首次進入本頁面還是通過點擊‘登陸’按扭提交認證表單信息進入本頁面,如果submit變量為空就直接顯示需要填寫認證信息的表單,否則提取表單中的學號和數據庫中的學生表信息進行比較,如果不一致就給出相應的提示信息,都正確了會設置session變量studentNumber的邏輯值為真,然后重定向到學生查詢首頁。頁面登錄功能模塊的程序流程圖如下:是是Submit變量為空嗎?Submit變量為空嗎?取得學號取得登陸帳號、密碼、權限參數取得學號取得登陸帳號、密碼、權限參數是否用戶不存在是否存在該賬號?是否用戶不存在是否存在該賬號?否是否存在該學號?否是否存在該學號?是學號不存在是學號不存在否是提示密碼錯誤密碼是否正確?否是提示密碼錯誤密碼是否正確?權限宿舍管理員權限管理員權限宿舍管理員權限管理員是是是是登錄成功宿舍管理員操作頁面登錄成功管理員操作頁面登錄成功,轉到學生查詢頁面登錄成功宿舍管理員操作頁面登錄成功管理員操作頁面登錄成功,轉到學生查詢頁面顯示管理登錄頁面顯示管理登錄頁面Login.aspx程序設計的關鍵代碼如下:if(admin.checkAdmin())//如果驗證用戶名和密碼都成功{DataSetds=admin.GetAdminpowerTypeName();Session["addminUserName"]=UserName.Text;//設置登陸成功的session變量Session["powerTypeName"]=ds.Tables[0].Rows[0]["powerTypeNmae"].ToString();if(Session["powerTypeNmae"].ToString()=="管理員"){Response.Redirect("main.aspx");//轉入到系統管理員操作界面}elseif(Session["powerTypename"].ToString()=="宿舍管理員"){//設置登陸成功的session變量//Session["adminUserName"]=UserName.Text;Response.Redirect("main2.aspx");//轉入到宿舍管理員操作界面}else{ErrMessage.Text="對不起你沒有權限進行操作";}}Login.aspx程序設計的關鍵代碼如下:if(user.checkUser())//如果驗證用戶名和密碼都成功{//設置登陸成功的session變量Session["studentNumber"]=studentNumber.Text;Response.Redirect("mainUser.aspx");//轉入到主操作界面}else{this.ErrMessageText="<fontcolor=red>"+user.ErrMessage+"</font>";}4.2學生信息管理模塊的實現對住宿宿舍學生的管理,包括院系的添加刪除,新入住學生的登記,學生信息的修改,查詢,以及當有學生離開宿舍時可以對學生的信息進行刪除。對學生信息進行管理的專業(yè)信息管理界面如圖4-3所示:圖4-3專業(yè)信息管理運行界面對新入住學生的登記信息管理界面如圖4-4所示:圖4-4新生登記運行界面對學生信息維護的界面如圖4-5所示:圖4-5學生信息管理界面4.3宿舍信息管理模塊的實現對于宿舍的管理,包括宿舍的添加刪除,房間信息的修改,查詢,以及當宿舍沒有學生入住時可以對房間的信息進行刪除。對宿舍信息進行管理的添加宿舍界面如圖4-6所示:圖4-6添加宿舍界面對宿舍信息進行管理的宿舍名稱管理界面如圖4-7所示:圖4-7宿舍名稱管理界面對宿舍信息進行管理的添加房間界面如圖4-8所示:圖4-8房間信息添加界面對宿舍信息進行管理的房間信息管理界面如圖4-9所示:圖4-9房間信息管理界面4.4住宿信息管理模塊的實現對于住宿信息的管理,包括學生入住的添加,入住信息的修改,查詢,以及學生遷出房間和學生轉房間功能。對住宿信息管理的學生入住界面如圖4-10所示:圖4-10入住信息界面對住宿信息管理的住宿信息維護界面如圖4-11所示:圖4-11住宿信息維護界面對住宿信息管理的學生轉房功能界面如圖4-12所示:圖4-12學生轉房界面4.5住宿信息管理模塊的實現對于衛(wèi)生紀律評比的管理,包括寢室衛(wèi)生紀律評比信息的添加,修改,查詢的功能。對衛(wèi)生紀律評比管理的添加界面如圖4-13所示:圖4-13評比信息添加界面對衛(wèi)生紀律評比管理的維護界面如圖4-14,4-15所示:圖4-14評比信息查詢刪除界面圖4-15評比信息修改界面4.6繳費信息管理模塊的實現對于繳費信息的管理,包括繳費信息的添加,修改,查詢以及統計欠費信息的功能。對繳費信息管理的費用信息界面如圖4-16所示:圖4-16費用信息界面對繳費信息管理的費用信息維護界面如圖4-17所示圖4-17費用信息查詢刪除界面對繳費信息管理的費用信息修改界面如圖4-18所示圖4-18費用信息修改界面對繳費信息管理的欠費信息統計界面如圖4-18所示圖4-18欠費信息統計界面4.7用戶信息管理模塊的實現對于用戶信息的管理,包括用戶信息的添加,修改,查詢的功能。用戶信息管理的添加用戶界面如圖4-19所示:圖4-19新用戶添加界面用戶信息管理的刪除界面如圖4-20所示:圖4-20用戶信息的刪除界面用戶信息管理的修改界面如圖4-21所示:圖4-21用戶信息的修改界面4.8學生自助查詢模塊實現學生通過loginuser.aspx輸入正確的學號,進入學生自助查詢模塊在圖4-3所示的學生信息管理運行界面中,只要在信息查詢攔中選擇一種查詢方式,然后輸入關鍵字內容,點擊查詢按扭就可以實現相關信息的查詢了,查詢結果還是一列表方式顯示在本頁中。程序實現原理:首先構造一個要查詢所有學生信息的sql語句,如果用戶沒有選擇查詢方式,那么該值就是‘請選擇查詢方式’,否則就將該查詢方式的條件附加到該sql語句的后面,這樣查詢到到的學生信息就是我們按要求需要的了。程序流程:首先根據查詢條件構造sql語句查詢符合條件的記錄總數,然后根據得到的總數和每頁需要顯示的記錄數計算總的頁數,,根據總的頁數和當前頁計算出前一頁和后一頁變量的值,然后構造根據查詢條件在構造一個查詢符合條件的學生信息的sql語句,并將結果集定位到當前需要顯示的頁面,在該頁中通過循環(huán)每頁記錄條數那么多次輸出每個學生的信息,如果是最后一頁,遇到記錄末尾會自動退出循環(huán),再顯示分頁顯示的連接,因為上一頁和下一頁的值在前面的程序中已經計算好了,程序實現的流程圖如下:學生是否登陸了?是學生是否登陸了?是否轉到登陸頁根據查詢條件構建不同的sql查詢語句使用該sql查詢數據庫表里信息根據每頁顯示記錄數計算總的頁數并根據當前頁號顯示查詢信息4.81學生信息查詢如圖4-22所示:圖4-22學生信息查詢界面4.82房間信息查詢如圖4-23所示:圖4-23房間信息查詢界面4.83評比信息查詢如圖4-24所示:圖4-24評比信息查詢界面4.84繳費信息查詢如圖4-25所示:圖4-25繳費信息查詢界面4.85欠費清單如圖4-26所示:圖4-26欠費清單查詢界面景德鎮(zhèn)陶瓷學院工學學士學位論文 第五章編碼、實現與測試景德鎮(zhèn)陶瓷學院工學學士學位論文 第五章編碼、實現與測試第五章編碼、實現與測試5.1建立數據庫連接在App_Code下建立DataAccessHelper文件夾,聲明一個類SqlString.cs:該類為數據訪問層輔助類,公有靜態(tài)方法,將文本轉換成適合在Sql語句里使用的字符串。類源碼如下:publicclassSqlString{//公有靜態(tài)方法,將SQL字符串里面的(')轉換成('')publicstaticStringGetSafeSqlString(StringXStr){returnXStr.Replace("'","''");}//公有靜態(tài)方法,將SQL字符串里面的(')轉換成(''),再在字符串的兩邊加上(')publicstaticStringGetQuotedString(StringXStr){return("'"+GetSafeSqlString(XStr)+"'");}}在App_Code下建立DataAccessLayer文件夾,聲明一個類DataBase.cs:該類為數據庫連接類,能更合適的組織數據、更方便的維護數據、更嚴密的控制數據和更有效的利用數據。類源碼如下:usingusingSystem;usingSystem.ComponentModel;usingSystem.Collections;usingSystem.Diagnostics;usingSystem.Data;usingSystem.Data.SqlClient;usingSystem.Configuration;usingStudentApartment.DataAccessHelper;namespaceStudentApartment.DataAccessLayer{publicclassDataBase{//私有變量,數據庫連接protectedSqlConnectionConnection;protectedstringConnectionString; publicDataBase() {ConnectionString=System.Configuration.ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;} //保護方法,打開數據庫連接 privatevoidOpen() { //判斷數據庫連接是否存在 if(Connection==null) { //不存在,新建并打開 Connection=newSqlConnection(ConnectionString); Connection.Open(); } else { //存在,判斷是否處于關閉狀態(tài) if(Connection.State.Equals(ConnectionState.Closed)) Connection.Open();//連接處于關閉狀態(tài),重新打開 } }//公有方法,關閉數據庫連接 publicvoidClose() { if(Connection.State.Equals(ConnectionState.Open)) { Connection.Close();//連接處于打開狀態(tài),關閉連接 } }///<summary> ///析構函數,釋放非托管資源 ///</summary> ~DataBase() { try { if(Connection!=null) Connection.Close(); } catch{} try { Dispose(); } catch{} } //公有方法,釋放資源 publicvoidDispose() { if(Connection!=null) //確保連接被關閉 { Connection.Dispose(); Connection=null; } }//公有方法,釋放資源//公有方法,釋放資源 publicvoidDispose() { if(Connection!=null) //確保連接被關閉 { Connection.Dispose(); Connection=null; } }//公有方法,根據Sql語句,返回是否查詢到記錄publicboolGetRecord(stringXSqlString){Open();SqlDataAdapteradapter=newSqlDataAdapter(XSqlString,Connection);DataSetdataset=newDataSet();adapter.Fill(dataset);Close();if(dataset.Tables[0].Rows.Count>0){returntrue;}else{returnfalse;}}//公有方法,返回Sql語句獲得的數據值//SqlString的格式:selectcount(*)fromXXXwhere...//selectmax(XXX)fromYYYwhere...publicintGetRecordCount(stringXSqlString){stringSCount;Open();SqlCommandCmd=newSqlCommand(XSqlString,Connection);SCount=Cmd.ExecuteScalar().ToString().Trim();if(SCount=="")SCount="0";Close();returnConvert.ToInt32(SCount);//公有方法,查詢數據//公有方法,查詢數據//輸入:// 查詢條件sql語句//輸出:// 將執(zhí)行結果以DataSet返回publicDataSetGetDataSet(stringqueryString){Open();SqlDataAdapteradapter=newSqlDataAdapter(queryString,Connection);DataSetdataset=newDataSet();adapter.Fill(dataset);Close();returndataset;}//公有方法,根據Sql語句,插入記錄并返回生成的ID號publicintGetIDInsert(stringXSqlString){intCount=-1;Open();SqlCommandcmd=newSqlCommand(XSqlString,Connection);Count=Convert.ToInt32(cmd.ExecuteScalar().ToString().Trim());Close();returnCount;}//執(zhí)行插入,更新,刪除等操作,返回受影響的記錄行數publicintInsertOrUpdate(stringsqlString){Open();SqlCommandcmd=newSqlCommand(sqlString,Connection);inteffectCount=-1;try{effectCount=cmd.ExecuteNonQuery();}finally{Close();}returneffectCount;//返回受影響的行數}5.2系統管理類在App_Code下建立BusinessLogicLayer文件夾,包括管理員類Admin.cs、用戶類User.cs、學生類Student.cs、宿舍類Apartment.cs、房間類Room.cs、住宿類Live.cs、衛(wèi)生紀律類Comparison.cs、繳費類Money.cs、欠費類GiveMoneyInfo.cs。由于在這些類中,有些類的定義框架是一樣的,以下就介紹一些主要的類源碼。5.2.1管理員類Admin.cs的主要源碼//判斷用戶的登陸管理權限publicboolcheckAdmin(){stringqueryString;boolhasUser,isPasswordRight;//首先在數據庫中查詢該管理帳號是否存在queryString="select*fromadminwhereadminUserName="+SqlString.GetQuotedString(this.adminUserName);DataBasedb=newDataBase();hasUser=db.GetRecord(queryString);if(false==hasUser){errMessage="對不起,用戶名不存在!";returnfalse;}//再查詢數據庫該管理帳號的密碼是否正確queryString="select*fromadminwhereadminUserName="+SqlString.GetQuotedString(this.adminUserName);queryString=queryString+"andadminPassword="+SqlString.GetQuotedString(this.adminPassword);isPasswordRight=db.GetRecord(queryString);if(false==isPasswordRight){errMessage="對不起,用戶密碼錯誤!";returnfalse;}5.2.2住宿類Live.cs的主要源碼//學生入住房間業(yè)務功能函數//學生入住房間業(yè)務功能函數publicboolAddLiveInfo(){//首先檢查操作員輸入的學號信息是否存在stringqueryString="select*fromstudentInfowherestudentNumber="+SqlString.GetQuotedString(studentNumber);DataBasedb=newDataBase();if(false==db.GetRecord(queryString)){this.ErrMessage="你輸入學號的學生信息不存在!";returnfalse;}//然后檢查該學號的學生是否已經登記了入住信息queryString="select*fromliveInfowherestudentNumber="+SqlString.GetQuotedString(studentNumber);if(db.GetRecord(queryString)){this.ErrMessage="對不起,該學生已經入住宿舍了!";returnfalse;}//然后檢查要入住的房間人員是否已經滿了,通過剩余床位判斷Roomroom=newRoom();intleftNumberBed=room.GetLeftNumberOfBed(roomNo);if(leftNumberBed<=0){this.ErrMessage="對不起,目標房間沒有剩余床位容納學生了!";returnfalse;}//此函數判斷在系統中根據學號判斷該學生是否已經存在publicboolIsExist(){boolisExist=true;stringqueryString="select*fromshouldgiveMoneyInfowherestudentNumber="+//此函數判斷在系統中根據學號判斷該學生是否已經存在publicboolIsExist(){boolisExist=true;stringqueryString="select*fromshouldgiveMoneyInfowherestudentNumber="+SqlString.GetQuotedString(studentNumber);DataBasedb=newDataBase();if(false==db.GetRecord(queryString))isExist=false;elsethis.ErrMessage="<fontcolor=red>欠費信息已經統計過了</font>";returnisExist;}//根據查詢條件查詢數據庫中的欠費信息//根據查詢條件查詢數據庫中的欠費信息publicDataSetQueryShouldGiveMoney(stringstudentNumber,stringstudentName){stringqueryString="select*fromshouldgiveMoneyInfowherestudentNumberlike'%"+studentNumber+"%'";queryString+="andstudentNamelike'%"+studentName+"%'";DataBasedb=newDataBase();returndb.GetDataSet(queryString);}//得到所有的欠費信息的數據集publicDataSetShouldGiveMoneyALL(){stringqueryString="select*fromshouldgiveMoneyInfo";DataBasedb=newDataBase();returndb.GetDataSet(queryString);}5.3系統測試5.3.1系統測試的目的一個程序并不可能達到十分完美,難免存在一些錯誤。如果不能及時將其找出并修改,會造成系統崩潰并造成不必要的損失。通軟件測試,盡可能多的找出系統中的錯誤,以便與及時修改。宿舍管理系統是對學生宿舍進行管理的系統,一旦系統無法運行,對學校的宿舍管理帶來很多的影響。所以通過軟件測試的手段,盡可能排除程序中的錯誤,已達到程序運行穩(wěn)定的目的,使學校的工作不會因此受到影響。5.3.2系統的測試環(huán)境1、系統測試的性能要求:系統的性能要求通常指系統需要的存儲容量以及后援存儲,重新啟動和安全性,運行效率等方面的考慮。本系統運行環(huán)境為網絡版,在運行時對系統整體性能要有一定的要求,要求:軟硬件要求:系統環(huán)境winXP+sql2005硬件系統環(huán)境P42.4、512MB內存、80G硬盤系統運行時對數據的保密性要求不高對一般的數據不要求進行加密。此外,對其它軟件幾乎沒有依賴性,程序健壯性較好。系統測試2.1添加新用戶,并且修改密碼與權限:測試數據如圖5.1為:用戶名為1,密碼為a,權限為宿舍管理員。圖5.1測試數據圖測試結果如圖5.2:圖5.2測試結果圖修改密碼與權限,測試結果如圖5.3:圖5.3測試結果圖2.2錄入新生信息測試數據如圖5.4為:學號為200730457007,姓名為馮超,性別為男,政治面貌為團員,所在學院為信息工程學院,專業(yè)為計算機科學與技術,生日為1989-01-01,地址為機電,附加信息為馮老板。圖5.4測試數據圖測試結果如圖5.5:圖5.5測試結果圖2.3添加院系信息測試數據圖如圖5.6:所在學院為測試,專業(yè)名稱為測試圖5.6測試數據圖測試結果如圖5.7:圖5.7測試結果圖2.4添加宿舍信息測試數據如圖5.8:宿舍名為西區(qū)女寢圖5.8測試數據圖測試結果如圖5.9:圖5.9測試結果圖2.5添加房間信息測試數據如圖5.10:所在宿舍為西區(qū)女寢,房間編號為西區(qū)219,房間類型為6人間,價格100,總床位6,剩余6,電話0798-85835
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 江蘇南京秦淮中學2024~2025學年高二下冊期末調研數學試題學生卷
- 江蘇常州高級中學2024~2025學年高一下冊期末質量檢查數學試題學生卷
- 2024~2025學年山東泰安新泰七年級下冊4月期中數學試題【帶答案】
- 過敏原特異性免疫治療研究考核試卷
- 災害影響下的公共設施應急恢復計劃考核試卷
- 醫(yī)藥研發(fā)外包服務市場分析考核試卷
- 部編道德與法治三年級下冊教案
- 2025年中國PET薄膜帶數據監(jiān)測報告
- 2025年中國DVD沖壓件數據監(jiān)測研究報告
- 2025年中國6-16防區(qū)擴展防盜報警系統數據監(jiān)測報告
- 2025至2030中國礦用卡車行業(yè)發(fā)展趨勢分析與未來投資戰(zhàn)略咨詢研究報告
- 氟骨癥課件教學課件
- 腳手架知識試題集及答案
- 宣城宣州區(qū)“政聘企培”人才引進筆試真題2024
- 成都東方廣益投資有限公司下屬企業(yè)招聘筆試真題2024
- 中國鄉(xiāng)村建設運動課件
- 2025至2030年中國高純氮化硅行業(yè)市場全景評估及發(fā)展策略分析報告
- 2024年四川省高校畢業(yè)生“三支一扶”計劃真題
- 2025年農作物種植與管理專業(yè)考試試題及答案
- JG/T 302-2011卷簾門窗
- 小酒館合伙人合作協議書
評論
0/150
提交評論