軟件工程大作業(yè)_第1頁
軟件工程大作業(yè)_第2頁
軟件工程大作業(yè)_第3頁
軟件工程大作業(yè)_第4頁
軟件工程大作業(yè)_第5頁
已閱讀5頁,還剩11頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、- 1 - / 16 軟件工程大作業(yè)設計題目: 宿舍管理系統(tǒng) 學 院: 計算機科學與信息工程學院 學生姓名: 劉振帥 學 號:專業(yè)班級: 計算機科學與技術(嵌入式)13-1 2015 年 12 月 28 日- 2 - / 16宿舍管理系統(tǒng)宿舍管理系統(tǒng)摘要摘要:本系統(tǒng)根據(jù)安陽工學院宿舍管理的實際情況而設計,采用Visual C+為開發(fā)工具,數(shù)據(jù)庫采用的是最為普及的小型數(shù)據(jù)庫管理系統(tǒng)Access,能實現(xiàn)宿舍管理中的添加信息、修改信息、刪除信息、查詢信息等必不可少的功能。學生宿舍管理系統(tǒng)是應對學生宿舍管理的現(xiàn)代化、網(wǎng)絡化,逐步擺脫當前學生宿舍管理的人工管理方式,提高學生宿舍

2、管理效率而開發(fā)的,它包括宿舍學生基本信息管理、樓道工人基本信息管理、宿舍樓基本信息管理、宿舍基本信息管理、宿舍事故基本信息管理、宿舍樓物品出入基本信息管理、宿舍樓保衛(wèi)處基本信息管理、宿舍配備物品及處理管理等八大功能模塊,并提供了對各功能模塊的查詢和更新功能,且這兩種功能基本上是通過存儲過程來實現(xiàn)的,其中宿舍學生基本信息管理、宿舍基本信息管理是系統(tǒng)開發(fā)的重點。該系統(tǒng)開發(fā)由系統(tǒng)需求分析階段、概念設計階段、邏輯設計階段、數(shù)據(jù)庫實施階段、系統(tǒng)調(diào)試和測試階段、參考文獻、附錄等階段組成。關鍵字關鍵字:C+;宿舍管理系統(tǒng);Access;數(shù)據(jù)庫;MFC 編程- 3 - / 16目目 錄錄1.1. 引言引言.1

3、2.2. 設計依據(jù)及框圖設計依據(jù)及框圖.22.12.1 設計平臺設計平臺.22.22.2 設計思想設計思想.32.32.3 設計框圖設計框圖 用戶界面用戶界面.52.42.4 數(shù)據(jù)庫表結(jié)構數(shù)據(jù)庫表結(jié)構.53 3 模塊功能及流程圖模塊功能及流程圖.53.13.1 各模塊功能簡介各模塊功能簡介.63.23.2 主要流程圖主要流程圖.84.4.軟件調(diào)試分析軟件調(diào)試分析.95.5. 結(jié)語及參考文獻結(jié)語及參考文獻.9- 4 - / 161 1 引言引言宿舍,是大學生在高校校園里一個重要的學習、生活、交往的空間環(huán)境。隨著高校辦學規(guī)模的擴大,學生人數(shù)不斷增多,高校學生宿舍管理信息量日益龐大,如果仍采用傳統(tǒng)的

4、工作方式紙媒介的賬本化工作模式,會存在獲取信息慢、查閱困難、準確性差等問題,很難適應高水平宿舍管理的需要。而采用計算機軟件來實現(xiàn)信息的管理能很好的解決傳統(tǒng)工作方式存在的問題。因此,我們設計開發(fā)了學生宿舍管理系統(tǒng),旨在提高宿舍管理的效率和準確性,減少工作的盲目性,對后勤管理的現(xiàn)代化建設有一定的指導意義。2 2 設計依據(jù)及框圖設計依據(jù)及框圖2.1 設計平臺開發(fā)本系統(tǒng)的過程中所用到的主要軟件開發(fā)工具有:Visual C+ 6.0、Access 2000、Photoshop?,F(xiàn)將使用情況分別介紹如下:Visual C+ 6.0: MFC 方式設計系統(tǒng)界面,采用 OLE DB 方式訪問數(shù)據(jù)庫。Acces

5、s 2000:采用 Access 設計本系統(tǒng)中的數(shù)據(jù)庫。Photoshop:用于添加學生、刪除學生、查詢學生等等按鈕圖標的美工設計。2.2 設計思想(1) 應用原型方法進行開發(fā)。原型方法將系統(tǒng)分析、設計、實施三個階段融為一體,使操整理更便于使用該系統(tǒng),由中南民族大學宿舍管理的實際情況出發(fā),講宿舍信息分層設計,有宿舍類型到樓號,由樓號到宿舍號,在找到床鋪號,便于層次化管理。(2) 選用靈活、方便、友好的用戶界面。采用操作簡單的樹型圖設計,便于查找學生信息,操作快捷方便; (3) 數(shù)據(jù)庫采用的是比較流行的小型數(shù)據(jù)庫管理軟件Access,與C+程序的連接方式為OLE DB,該方式可以讓開發(fā)人員不直接

6、向數(shù)據(jù)源發(fā)出指令,而是通過OLE DB接口與數(shù)據(jù)提供者進行交互,只需要對接口進行操作,這樣簡化了程序的設計。2.3 設計框圖、用戶界面本系統(tǒng)“宿舍管理”的設計框圖如下:- 5 - / 16主界面 “查看學生詳細信息”界面- 6 - / 16“添加學生”界面“學生查詢”界面- 7 - / 162.4 數(shù)據(jù)庫表結(jié)構本系統(tǒng)采用 Access 作為數(shù)據(jù)庫,使用 OLE DB 訪問數(shù)據(jù)庫。根據(jù)系統(tǒng)功能與需求分析,只需要創(chuàng)建一個數(shù)據(jù)表 House,該表包含學生姓名,性別,入學時間,學號,專業(yè),宿舍類型,樓號,房間號,床鋪號,宿舍電話,備注等信息項,自然的形成了一個樹型結(jié)構。不設置主鍵(PRIMARY KE

7、Y),由程序根據(jù)位置唯一確定用戶信息的不二性。表結(jié)構如右所示:3 各模塊功能及主要模塊的流程圖3.1 各模塊功能簡介1、羅列學生信息在左邊的樹試圖中,通過鼠標或者鍵盤選擇宿舍類型、樓號或者房間號等樹項,右邊的列表視圖就會羅列出相應宿舍類型、樓或者房間中的所有學生的簡要信息。對這些羅列出來的學生可以對它們進行刪除或者查看詳細信息的操作。2、查看學生詳細信息選擇左邊樹視圖中的房間號,或者雙擊右邊列表視圖中的某一學生,右邊的視圖就會顯示該用戶的詳細信息(見“查看學生詳細信息”界面)。3、添加學生單擊工具條的【添加學生】按鈕,或者選擇菜單【系統(tǒng)維護】-【添加學生】,彈出“添加學生”對話框,見“添加學生

8、”界面。在該對話框中填寫完相應的信息,單擊【確定】按鈕完成添加。其中“學生姓名”和“宿舍位置”是必須填寫完整的,如果不完整單擊【確定】按鈕后系統(tǒng)會提示用戶。4、刪除學生當程序的輸入焦點在左邊的樹視圖時,選擇要刪除的項,單擊工具條的【刪除學生】按鈕,或者選擇菜單【系統(tǒng)維護】-【刪除學生】,彈出詢問用戶確認刪除操作的對話框,見“刪除學生”界面。如果刪除的是宿舍類型,則該宿舍類型中的所有學生都被刪除;如果刪除是樓號,則該樓中的所有學生被刪除,如果刪除的是房間號,則該房間中的所有學生都被刪除;如果刪除的是學生,則該學生信息被刪除。當主窗口的右邊是學生的列表視圖時,并且輸入焦點在其中,選擇其中要刪除的學

9、生(可以選擇多個),單擊工具條的【刪除學生】按鈕,或者選- 8 - / 16擇菜單【系統(tǒng)維護】-【刪除學生】,彈出詢問用戶確認刪除操作的對話框,單擊【是】按鈕刪除選擇的學生信息。5、學生查詢單擊工具條中的【學生查詢】按鈕,或者選擇菜單【系統(tǒng)維護】-【學生查詢】,彈出“查詢學生”對話框,見“學生查詢”界面。在該對話框中填寫完查詢條件,單擊【確定】按鈕。如果有符合條件的學生,在右邊的學生列表中就會全部羅列出來,可以對這些學生進行刪除或者查看詳細信息的操作。3.2 主要流程圖本軟件系統(tǒng)對學生信息的管理主要流程圖:(1)在樹視圖中羅列學生信息的程序流程,如圖所示:(2)查詢和羅列的程序流程,如圖所示:

10、填充樹視圖的程序流程 查詢和羅列的程序流程(3)增加學生的程序流程,如下圖所示:- 9 - / 164 軟件調(diào)試分析本軟件是基于 Windows 的編程開發(fā),所以,軟件調(diào)試必須在 Windows 環(huán)境下進行。調(diào)試前須做好以下準備工作:(1)需要文件 MFC42.DLL、MSVCRT.DLL,如果沒有,則安裝 Visual C+6.0環(huán)境;(2)需要安裝 Access 2000 的 OLE DB 驅(qū)動,如果沒有,可以安裝Access2000 以上版本;(3)需要將 StuDormMS.mdb 數(shù)據(jù)庫文件與可執(zhí)行文件 StuDormMS.exe 放在同一目錄下,才能運行成功。配置好之后,在 Vis

11、ual C+6.0 環(huán)境下進行軟件的調(diào)試。調(diào)試分析如下:(1)首先進行數(shù)據(jù)庫的導入,加入 ATL 產(chǎn)生的模板類,生成包含數(shù)據(jù)庫的House.H見附頭文件,該頭文件是與數(shù)據(jù)庫的接口,經(jīng)過測試,數(shù)據(jù)庫鏈接成功;(2)實現(xiàn)界面框架,使用類 CSplitterWnd 切分視圖和動態(tài)切換視圖的類型,通過包含該類的單文件調(diào)試發(fā)現(xiàn)無錯誤后,整體系統(tǒng)運行能成功切換試圖。(3)系統(tǒng)框架的左側(cè)為樹視圖,采用 CLeftTreeView 類來實現(xiàn);右側(cè)學生信息羅列采用類 CUsersListView 來實現(xiàn),成功調(diào)試后能正常顯示信息。(4)“增加學生”模塊,單模塊調(diào)試通過后,需要在整理系統(tǒng)編寫完后,再進行操作測試,

12、添加一條記錄后,發(fā)現(xiàn)在數(shù)據(jù)庫中有保存該記錄,如果錯誤輸入,觀察是否能正常提示信息。否則修改程序再進行調(diào)試。(5)“查詢學生”模塊,該模塊可以實現(xiàn)單項查詢和組合查詢,單項查詢調(diào)試通過后,編寫組合查詢的代碼,再進行調(diào)試,看是否能滿足要求,并且能正常提示非法查詢請求。(6)“刪除學生”模塊,可以進行不同層次的刪除操作,例如刪除宿舍將會刪除該宿舍的所有成員,如果只刪除某一學生,不會影響到其他成員。本模塊測試通過。經(jīng)過調(diào)試,以上各部分運行正常,能實現(xiàn)預期的功能。5 結(jié)語5.1 結(jié)論與討論結(jié)論:本文介紹的宿舍管理系統(tǒng)具有界面友好、操作簡單、實用性強等特點,并已開發(fā)完畢,使用效果良好,初步取得了以下效果:

13、(1) 操作簡單,實用性強,能夠快速地提供住宿學生的各種基本信息供管理者參考和使用,大大提高了工作效率; (2) 瀏覽、查詢、添加實現(xiàn)數(shù)據(jù)庫管理,紙質(zhì)文件的流轉(zhuǎn)被電子郵件代替,節(jié)約了辦公經(jīng)費; (3) 實現(xiàn)了對數(shù)據(jù)的智能處理,為領導決策起到了一定的輔助作用; (4) 使宿舍管理工作更加科學化和規(guī)范化。討論:本文介紹的實現(xiàn)方法適合與小型的數(shù)據(jù)管理,而且功能比較簡單,在一定程度上能解決實際中宿舍管理中的問題。但也存在一些不完善的地方,如需要保存更多的信息,實現(xiàn)更多的功能,需要采用較大型的數(shù)據(jù)庫管理系統(tǒng),而且未來的管理以網(wǎng)絡化為趨勢,開發(fā)一套可以聯(lián)網(wǎng)管理的軟件系統(tǒng)能給宿舍管理工作帶來更大的方便。參考

14、文獻- 10 - / 161 求是科技. Visual C+ 6.0 數(shù)據(jù)庫開發(fā)技術與工程實踐.北京:人民郵電出版社,20042 鄭莉,董淵,張瑞豐.C+語言程序設計.北京:清華大學出版社,20033 (美)Paul J.Fortier 等著.數(shù)據(jù)庫技術大全.林瑤等譯.北京:電子工業(yè)出版社,1999附錄附錄各功能函數(shù)的核心代碼文件列表如下:文件名稱功能說明AddUserDlg.cpp添加學生信息LeftTreeView.cpp顯示樹視圖,完成刪除操作UsersListView.cpp實現(xiàn)單項、組合查詢功能UserinfoView.cpp學生詳細信息顯示由于篇幅限制,現(xiàn)只列舉部分代碼,完整源代碼

15、見電子文檔。-Beganing of AddUserDlg.cpp-void CAddUserDlg:OnOK() /判斷輸入信息的合法性UpdateData(TRUE);CEdit* p;if( m_strStudentname = )AfxMessageBox(請?zhí)顚W生姓名);p = (CEdit*)GetDlgItem(IDC_EDIT_STUDENTNAME);p-SetFocus();return;if( m_strStudentName = )AfxMessageBox(請?zhí)钏奚犷愋?;p = (CEdit*)GetDlgItem(IDC_EDIT_ROOMTYPE);p-SetF

16、ocus();return;if( m_nBuildingNum = 0 )AfxMessageBox(樓號不能為零);- 11 - / 16p = (CEdit*)GetDlgItem(IDC_EDIT_BUILDINGNUM);p-SetFocus();return;if( m_nRoomNum = 0 )AfxMessageBox(房間號不能為零);p = (CEdit*)GetDlgItem(IDC_EDIT_ROOMNUM);p-SetFocus();return;if( m_nBedNum = 0 )AfxMessageBox(床鋪號不能為零);p = (CEdit*)GetDlg

17、Item(IDC_EDIT_BED);p-SetFocus();return;CMainFrame* pFrame = (CMainFrame*)AfxGetApp()-m_pMainWnd;CInhabitantsDoc* pDoc = (CInhabitantsDoc*)pFrame-GetActiveDocument();/讓用戶確認操作if(this-MessageBox(你真的要添加這條記錄?,安陽工學院宿舍管理系統(tǒng),MB_YESNO)=IDNO)CDialog:OnCancel();return;/增加學生到數(shù)據(jù)庫中USER user;user.strRoomtype = m_st

18、rStudentName;user.nBuildingnum = m_nBuildingNum;user.nRoomnum = m_nRoomNum;user.nBednum = m_nBedNum;user.strName = m_strStudentname;user.strHouseTel = m_strHomeTel;- 12 - / 16user.strSex = m_strSex;user.strNationNal = m_strNationNal;user.strMajor = m_strMajor;user.strId = m_strId;user.strRemarks = m

19、_strRemarks;switch(pDoc-AddUser(user)case 0:/已經(jīng)存在該學生了CString str;str.Format( %s%d 號樓%d 號房間%d 號床鋪已有學生入住!,m_strStudentName,m_nBuildingNum,m_nRoomNum,m_nBedNum );AfxMessageBox( str );CEdit* p = (CEdit*)GetDlgItem(IDC_EDIT_BED);p-SetFocus();return;break;case 1:/增加成功后刷新左邊的樹視圖pFrame-m_pLeftView-AddUserToT

20、ree(m_strStudentName,m_nBuildingNum,m_nRoomNum,m_nBedNum);break;default:return;break;CDialog:OnOK();-ENDING of AddUserDlg.cpp-Beganing of UsersListView.cpp-void CUsersListView:ShowUsers(CString strSql)CListCtrl* p = &GetListCtrl();/清空列表p-DeleteAllItems();- 13 - / 16if(strSql = )return;CInhabitan

21、tsDoc* pDoc = (CInhabitantsDoc*)GetDocument();CCommandCAccessor dbHouse;long* pCount = new long;/按照 strSql 查詢符合條件的學生if(dbHouse.Open(pDoc-m_dbHouse.m_session,strSql,NULL,pCount) != S_OK)AfxMessageBox(error);delete pCount;return;int iItem = 0;LV_ITEM lvitem;int iActualItem = 0;/將查詢得到的學生都逐個加入列表中if(dbHo

22、use.MoveFirst() = S_OK)dofor(int iSubItem=0;iSubItem5;iSubItem+)lvitem.mask = LVIF_TEXT|(iSubItem = 0? LVIF_IMAGE : 0);lvitem.iItem = (iSubItem = 0)? iItem : iActualItem;lvitem.iSubItem = iSubItem;lvitem.iImage = (iItem%2)?0:2;CString str = ;switch(iSubItem)case 0:/學生str = dbHouse.m_studentname;lvit

23、em.pszText =(LPTSTR)(LPCTSTR)str;break;case 1:/宿舍類型str = dbHouse.m_roomtype;lvitem.pszText = (LPTSTR)(LPCTSTR) str;- 14 - / 16break; case 2:/樓號str.Format(%d,dbHouse.m_buildingnum);lvitem.pszText = (LPTSTR)(LPCTSTR) str;break;case 3:/房間號str.Format(%d,dbHouse.m_roomnum);lvitem.pszText = (LPTSTR)(LPCTS

24、TR)str;break;case 4:/床鋪號str.Format(%d,dbHouse.m_bednum);lvitem.pszText = (LPTSTR)(LPCTSTR)str; if (iSubItem = 0)iActualItem = GetListCtrl().InsertItem(&lvitem);elseGetListCtrl().SetItem(&lvitem);iItem +;while( dbHouse.MoveNext() = S_OK );dbHouse.Close();-ENDING of UsersListView.cpp.cpp-Began

25、ing of UserinfoView.cpp.cpp-/顯示住址為 strStudentName 宿舍類型 nBuildingNum 號樓 nRoomNum 房間號 nBedNum 床鋪的住戶的詳細信息void CUserinfoView:UpdateUserInfo(CString strStudentName,int nBuildingNum,int nRoomNum,int nBedNum)- 15 - / 16/查詢該學生CString strSql;strSql.Format(select * from house where roomtype = %s and buildingnum = %d and roomnum = %d and bednum = %d,strStudentName,nBuildingNum,nRoomNum,nBedNum);CInhabitantsDoc* pDoc = (CInhabitantsDoc*)GetDocument();CCommandCAccessor dbHouse;long* pCount = new long;if(dbHouse.Open(pDoc-m_dbHouse.m_session,strSql,NULL,pCount) != S_OK)AfxMessageB

溫馨提示

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

評論

0/150

提交評論