毕业设计(论文)-C#学生宿舍管理系统.doc

上传人:来看看 文档编号:3947590 上传时间:2019-10-10 格式:DOC 页数:25 大小:314.50KB
返回 下载 相关 举报
毕业设计(论文)-C#学生宿舍管理系统.doc_第1页
第1页 / 共25页
毕业设计(论文)-C#学生宿舍管理系统.doc_第2页
第2页 / 共25页
毕业设计(论文)-C#学生宿舍管理系统.doc_第3页
第3页 / 共25页
毕业设计(论文)-C#学生宿舍管理系统.doc_第4页
第4页 / 共25页
毕业设计(论文)-C#学生宿舍管理系统.doc_第5页
第5页 / 共25页
点击查看更多>>
资源描述

《毕业设计(论文)-C#学生宿舍管理系统.doc》由会员分享,可在线阅读,更多相关《毕业设计(论文)-C#学生宿舍管理系统.doc(25页珍藏版)》请在三一文库上搜索。

1、 学号 密级 哈尔滨铁道职业技术学院毕业论文 学 院 名 称 :计算机学院 专 业 名 称 :计算机网络 学 生 姓 名 : 指 导 教 师 : 二一一年六月 1 1 摘要摘要 宿舍,是大学生在高校校园里一个重要的学习、生活、交 往的空间环境。随着高校办学规模的扩大,学生人数不断增多, 高校学生宿舍管理信息量日益庞大,如果仍采用传统的工作方 式纸媒介的账本化工作模式,会存在获取信息慢、查阅困 难、准确性差等问题,很难适应高水平宿舍管理的需要。而采 用计算机软件来实现信息的管理能很好的解决传统工作方式存 在的问题。因此,我们设计开发了学生宿舍管理系统,旨在提 高宿舍管理的效率和准确性,减少工作的

2、盲目性,对后勤管理的 现代化建设有一定的指导意义。 关键字关键字:C+;宿舍管理系统;宿舍管理系统;Access;数据库;数据库;MFC 编程编程 目 录 摘摘 要要.I 前前 言言.1 第一章管理信息系统的特点第一章管理信息系统的特点.2 1.1 管理信息系统的特点 .2 1.2 开发工具 VISUAL BASIC介绍4 第二章第二章设计依据及框图设计依据及框图9 2.1 设计平台9 2.2 设计理想10 2.3 设计框图、用户界面11 2. 4 数据库表结构12 第三章第三章 各模块功能及主要模块的流程图各模块功能及主要模块的流程图.14 3.1 各模块功能简介14 3.2 主要路程图15

3、 第四章第四章 结束语结束语.20 致致 谢谢.21 参考文献参考文献.22 附附 录录.23 前前 言言 现在的社会日新月异,发展的非常快。学校的发展也是非 常的快了,而且每年都有不同的要求。学生的量也非常的大, 资料可能经常性的发生更换,原来手工的管理模式就显的不怎 么的合适了。而且手工的数据是存放在多处的,没有使用统一 管理的模式,数据整理非常的麻烦,统计也困难,很多的情况下, 老师都是在重复一些相同的工作。做一些相似的报表,这样不 但降低了工作效率,而且非常的容易出错。在这种条件下,使 用微机管理就显的非常的合适了。只要你正确的录入,统计, 报表输出一点问题都没有的。 2 2 设计依据

4、及框图设计依据及框图 2.1 设计平台设计平台 开发本系统的过程中所用到的主要软件开发工具有: Visual C+ 6.0、Access 2000、Photoshop。现将使用情况分 别介绍如下: Visual C+ 6.0: MFC 方式设计系统界面,采用 OLE DB 方式访问数据库。 Access 2000:采用 Access 设计本系统中的数据库。 Photoshop:用于添加学生、删除学生、查询学生等等按钮 图标的美工设计。 2.2 设计思想设计思想 (1) 应用原型方法进行开发。原型方法将系统分析、设计、 实施三个阶段融为一体,使操作者更便于使用该系统,由中南民 族大学宿舍管理的实

5、际情况出发,讲宿舍信息分层设计,有宿 舍类型到楼号,由楼号到宿舍号,在找到床铺号,便于层次化 管理。(2) 选用灵活、方便、友好的用户界面。采用操作简单 的树型图设计,便于查找学生信息,操作快捷方便; (3) 数据 库采用的是比较流行的小型数据库管理软件Access,与C+程序 的连接方式为OLE DB,该方式可以让开发人员不直接向数据源 发出指令,而是通过OLE DB接口与数据提供者进行交互,只需 要对接口进行操作,这样简化了程序的设计。 2.3 设计框图、用户界面设计框图、用户界面 本系统 “宿舍管 理”的设 计框图如 下: 主界面 生详细信 “添加学生”界面 “删除学生”界面 “学生查询

6、”界面 2.4 数据库表结构数据库表结构 本系统采用 Access 作为数据库, 使用 OLE DB 访问数据 库。根据系统功能与需 求分析,只需要创建一 个数据表 House,该表 包含学生姓名,性别,入学时间,学号,专业,宿舍类型,楼 号,房间号,床铺号,宿舍电话,备注等信息项,自然的形成 了一个树型结构。不设置主键(PRIMARY KEY),由程序根据地址 唯一确定用户信息的不二性。表结构如右所示: 3 3 各模块功能及主要模块的流程图各模块功能及主要模块的流程图 3.1 各模块功能简介各模块功能简介 1 1、罗列学生信息、罗列学生信息 在左边的树试图中,通过鼠标或者键盘选择宿舍类型、楼

7、 号或者房间号等树项,右边的列表视图就会罗列出相应宿舍类 型、楼或者房间中的所有学生的简要信息。对这些罗列出来的 学生可以对它们进行删除或者查看详细信息的操作。 2、查看学生详细信息、查看学生详细信息 选择左边树视图中的房间号,或者双击右边列表视图中的 某一学生,右边的视图就会显示该用户的详细信息(见“查看 学生详细信息”界面)。 3、添加学生、添加学生 单击工具条的【添加学生】按钮,或者选择菜单【系统维 护】-【添加学生】,弹出“添加学生”对话框,见“添加学 生”界面。在该对话框中填写完相应的信息,单击【确定】按 钮完成添加。其中“学生姓名”和“宿舍地址”是必须填写完 整的,如果不完整单击【

8、确定】按钮后系统会提示用户。 4、删除学生、删除学生 当程序的输入焦点在左边的树视图时,选择要删除的项, 单击工具条的【删除学生】按钮,或者选择菜单【系统维护】- 【删除学生】,弹出询问用户确认删除操作的对话框,见“删 除学生”界面。如果删除的是宿舍类型,则该宿舍类型中的所 有学生都被删除;如果删除是楼号,则该楼中的所有学生被删 除,如果删除的是房间号,则该房间中的所有学生都被删除; 如果删除的是学生,则该学生信息被删除。 当主窗口的右边是学生的列表视图时,并且输入焦点在其 中,选择其中要删除的学生(可以选择多个),单击工具条的 【删除学生】按钮,或者选择菜单【系统维护】-【删除学生】 ,弹出

9、询问用户确认删除操作的对话框,单击【是】按钮删除 选择的学生信息。 5、学生查询、学生查询 单击工具条中的【学生查询】按钮,或者选择菜单【系统 维护】-【学生查询】,弹出“查询学生”对话框,见“学 生查询”界面。在该对话框中填写完查询条件,单击【确 定】按钮。如果有符合条件的学生,在右边的学生列表中 就会全部罗列出来,可以对这些学生进行删除或者查看详 细信息的操作。 3.2 主要流程图主要流程图 本软件系统对学生信息的管理主要流程图: (1) 在树视图中罗列学生信息的程序流程,如图所示: 查询和罗列的 程序流程,如图所示 增加学生的程序流程,如下图所示 3.33.3 软件调试分析软件调试分析

10、本软件是基于 Windows 的编程开发,所以,软件调试必须 在 Windows 环境下进行。调试前须做好以下准备工作: (1)需要文件 MFC42.DLL、MSVCRT.DLL,如果没有,则安装 Visual C+6.0 环境; (2)需要安装 Access 2000 的 OLE DB 驱动,如果没有,可以 安装 Access2000 以上版本; (3)需要将 StuDormMS.mdb 数据库文件与可执行文件 StuDormMS.exe 放在同一目录下,才能运行成功。 配置好之后,在 Visual C+6.0 环境下进行软件的调试。 调试分析如下: (1)首先进行数据库的导入,加入 ATL

11、 产生的模板类,生成包 含数据库的 House.H见附头文件,该头文件是与数据库的接 口,经过测试,数据库链接成功; (2)实现界面框架,使用类 CSplitterWnd 切分视图和动态切 换视图的类型,通过包含该类的单文件调试发现无错误后,整 体系统运行能成功切换试图。 (3)系统框架的左侧为树视图,采用 CLeftTreeView 类来实现; 右侧学生信息罗列采用类 CUsersListView 来实现,成功调试后 能正常显示信息。 (4)“增加学生”模块,单模块调试通过后,需要在整理系统 编写完后,再进行操作测试,添加一条记录后,发现在数据库 中有保存该记录,如果错误输入,观察是否能正常

12、提示信息。 否则修改程序再进行调试。 (5)“查询学生”模块,该模块可以实现单项查询和组合查询, 单项查询调试通过后,编写组合查询的代码,再进行调试,看 是否能满足要求,并且能正常提示非法查询请求。 (6)“删除学生”模块,可以进行不同层次的删除操作,例如 删除宿舍将会删除该宿舍的所有成员,如果只删除某一学生, 不会影响到其他成员。本模块测试通过。 经过调试,以上各部分运行正常,能实现预期的功能。 4 4 结语结语 4.1 结论与讨论结论与讨论 结论:本文介绍的宿舍管理系统具有界面友好、操作简单、 实用性强等特点,并已开发完毕,使用效果良好,初步取得了以下 效果: (1) 操作简单,实用性强,

13、能够快速地提供住宿学生的各 种基本信息供管理者参考和使用,大大提高了工作效率; (2) 浏 览、查询、添加实现数据库管理,纸质文件的流转被电子邮件代 替,节约了办公经费; (3) 实现了对数据的智能处理,为领导决 策起到了一定的辅助作用; (4) 使宿舍管理工作更加科学化和 规范化。 讨论:本文介绍的实现方法适合与小型的数据管理,而且 功能比较简单,在一定程度上能解决实际中宿舍管理中的问题。 但也存在一些不完善的地方,如需要保存更多的信息,实现更 多的功能,需要采用较大型的数据库管理系统,而且未来的管 理以网络化为趋势,开发一套可以联网管理的软件系统能给宿 舍管理工作带来更大的方便。 致致 谢

14、谢 通过本次课题的设计,让我熟练的掌握了制作程序的一些 流程及规划,在此特别感谢各位老师的指导,并感谢所有协助 我完成设计的朋友,有了你们的支持,才会让我更加圆满的完 成此次课题的设计。 参考文献参考文献 1求是科技. Visual C+ 6.0 数据库开发技术与工程实践. 北京:人民邮电出版社,2004 2郑莉,董渊,张瑞丰.C+语言程序设计.北京:清华大学出版 社,2003 3(美)Paul J.Fortier 等著.数据库技术大全.林瑶等译. 北京:电子工业出版社,1999 附录附录 各类的声明见源代码*.h 头文件,数据库连接文件见 House.h,完整源代码 见电子文档。 现将各功能

15、函数的核心代码列表如下: 文件名称功能说明 AddUserDlg.cpp添加学生信息 LeftTreeView.cpp显示树视图,完成删除操作 UsersListView.cpp实现单项、组合查询功能 UserinfoView.cpp学生详细信息显示 -Beganing of AddUserDlg.cpp- / AddUserDlg.cpp : implementation file / #include “stdafx.h“ #include “Inhabitants.h“ #include “AddUserDlg.h“ #include “InhabitantsDoc.h“ #includ

16、e “MainFrm.h“ #include “LeftTreeView.h“ #ifdef _DEBUG #define new DEBUG_NEW /让用户确认操作 if(this-MessageBox(“你真的要添加这条记录?“, “黑龙江粮食职业学院宿舍管理系统“,MB_YESNO)=IDNO) CDialog:OnCancel(); return; /已经存在该学生了 CString str; str.Format( “%s%d 号楼%d 号房间%d 号床铺已有学生入住!“, m_strStudentName,m_nBuildingNum,m_nRoomNum,m_nBedNum )

17、; AfxMessageBox( str ); CEdit* p = (CEdit*)GetDlgItem(IDC_EDIT_BED); p-SetFocus(); return; break; case 1: /增加成功后刷新左边的树视图 pFrame-m_pLeftView-AddUserToTree(m_strStudentName, m_nBuildingNum,m_nRoomNum,m_nBedNum); break; default: return; break; CDialog:OnOK(); #include “InhabitantsDoc.h“ #include “LeftT

18、reeView.h“ #include “MainFrm.h“ #include “UsersListView.h“ #include “UserinfoView.h“ void CLeftTreeView:AddUserToTree(CString strStudentName,int nBuildingNum,int nRoomNum,int nBedNum) HTREEITEM hSectionItem = AddSectionToTree(strStudentName); HTREEITEM hBuildingItem = AddBuildingToTree(hSectionItem,

19、nBuildingNum); HTREEITEM hCellItem = AddCellToTree(hBuildingItem,nRoomNum); if(hCellItem = NULL) return; CTreeCtrl* pCtrl = TV_INSERTSTRUCT TCItem;/插入数据项数据结构 TCItem.hParent = hCellItem; TCItem.hInsertAfter = TVI_LAST; TCItem.item.mask=TVIF_TEXT|TVIF_PARAM|TVIF_IMAGE|TVIF_SELECT EDIMAGE;/设屏蔽 TCItem.i

20、tem.lParam=0;/序号 TCItem.item.iImage=3;/正常图标 TCItem.item.iSelectedImage=3;/选中时图标 CString str; str.Format(“%d 号床铺“,nBedNum); TCItem.item.pszText = (LPTSTR)(LPCTSTR)str; pCtrl-InsertItem( pCtrl-SortChildren(hCellItem); /将宿舍类型加到树视图中 HTREEITEM CLeftTreeView:AddSectionToTree(CString strStudentName) CTreeC

21、trl* pCtrl = HTREEITEM hRootItem = pCtrl-GetRootItem(); if(hRootItem) while(hRootItem) CString strItemText = pCtrl-GetItemText(hRootItem); if(strItemText = strStudentName) CInhabitantsDoc* pDoc = (CInhabitantsDoc*)GetDocument(); CTreeCtrl* pCtrl = HTREEITEM hParentItem = pCtrl-GetParentItem( m_hHitI

22、tem ); CString strSql; if( hParentItem = NULL strSql.Format(“delete * from house where roomtype = %s“,strStudentName); if(this-MessageBox(“你真的要删除该宿舍区中的所有学生吗?“, “黑龙江粮食职业学院学生宿舍管理系统“,MB_YESNO)=IDNO) return; else if( hParentItem != NULL CString str = pCtrl-GetItemText(m_hHitItem); int n = str.Find(“号楼“)

23、; CString strBuildingNum = str.Left(n); strSql.Format(“delete * from house where roomtype = %s and buildingnum = %s“, strStudentName,strBuildingNum); if(this-MessageBox(“你真的要删除该楼中的所有学生吗?“, “黑龙江粮食职业学院学生宿舍管理系统“,MB_YESNO)=IDNO) return; else if( pCtrl-GetParentItem(hParentItem) != NULL CString str = pCt

24、rl-GetItemText(pCtrl-GetParentItem(m_hHitItem); int n = str.Find(“号楼“); CString strBuildingNum = str.Left(n); str = pCtrl-GetItemText(m_hHitItem); n = str.Find(“房间“); CString strRoomNum = str.Left( n ); strSql.Format(“delete * from house where roomtype = %s and buildingnum = %s and roomnum = %s“, st

25、rStudentName,strBuildingNum,strRoomNum); if(this-MessageBox(“你真的要删除该房间中的所有学生吗?“, “黑龙江粮食职业学院学生宿舍管理系统“,MB_YESNO)=IDNO) return; else /学生 CString strStudentName = pCtrl-GetItemText(pCtrl-GetParentItem( pCtrl-GetParentItem(pCtrl-GetParentItem(m_hHitItem); CString str = pCtrl-GetItemText(pCtrl-GetParentIt

26、em( pCtrl-GetParentItem(m_hHitItem); int n = str.Find(“号楼“); CString strBuildingNum = str.Left(n); str = pCtrl-GetItemText(pCtrl-GetParentItem(m_hHitItem); n = str.Find(“房间“); CString strRoomNum = str.Left( n ); CString strBedNum = pCtrl-GetItemText(m_hHitItem); strSql.Format(“delete * from house wh

27、ere roomtype = %s and buildingnum = %s and roomnum = %s and bednum = %s“, strStudentName,strBuildingNum,strRoomNum,strBedNum); if(this-MessageBox(“你真的要删除该学生吗?“,“ 黑龙江粮食职业学院 学生宿舍管理系统“,MB_YESNO)=IDNO) return; pDoc-DeleteUser(strSql); AddUsersToTree(); void CLeftTreeView:OnUpdateOperateDelete(CCmdUI* pC

28、mdUI) pCmdUI-Enable(m_hHitItem != NULL); -ENDING of LeftTreeView.cpp- -Beganing of QueryDlg.cpp.cpp- void CUserinfoView:Dump(CDumpContext #endif /_DEBUG / / CUserinfoView message handlers /显示住址为 strStudentName 宿舍类型 nBuildingNum 号楼 nRoomNum 房间号 nBedNum 床铺的住户的详细信息 void CUserinfoView:UpdateUserInfo(CSt

29、ring strStudentName,int nBuildingNum,int nRoomNum,int nBedNum) /查询该学生 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();

30、 CCommand dbHouse; long* pCount = new long; if(dbHouse.Open(pDoc-m_dbHouse.m_session,strSql,NULL,pCount) != S_OK) AfxMessageBox(“error“); delete pCount; return; /显示信息 if(dbHouse.MoveFirst() = S_OK) m_strStudentname = dbHouse.m_studentname; m_strRoomtype = dbHouse.m_roomtype; m_nBuildingnum = dbHouse

31、.m_buildingnum; m_nRoomnum = dbHouse.m_roomnum; m_nBednum = dbHouse.m_bednum; m_strHouseTel = dbHouse.m_housetel; int iItem = 0; LV_ITEM lvitem; int iActualItem = 0; /将查询得到的学生都逐个加入列表中 if(dbHouse.MoveFirst() = S_OK) do for(int iSubItem=0;iSubItemHitTest(point,NULL); if( nHitItem GetItemText(nHitItem,

32、1); CString strBuildingNum = pCtrl-GetItemText(nHitItem,2); CString strRoomNum = pCtrl-GetItemText(nHitItem,3); CString strBedNum = pCtrl-GetItemText(nHitItem,4); CMainFrame* pFrame = (CMainFrame*)AfxGetApp()-m_pMainWnd; CInhabitantsDoc* pDoc = (CInhabitantsDoc*)GetDocument(); pFrame-SwitchToView(USERINFOVIEW); pFrame-m_pUserinfoView- UpdateUserInfo(strStudentName,atoi(strBuildingNum.GetBuffer(0), atoi(strRoomNum.GetBuffer(0),atoi(strBedNum.GetBuffer(0);

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1