毕业设计(论文)-C#学生宿舍管理系统.doc_第1页
毕业设计(论文)-C#学生宿舍管理系统.doc_第2页
毕业设计(论文)-C#学生宿舍管理系统.doc_第3页
毕业设计(论文)-C#学生宿舍管理系统.doc_第4页
毕业设计(论文)-C#学生宿舍管理系统.doc_第5页
免费预览已结束,剩余20页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

学号 密级 哈尔滨铁道职业技术学院毕业论文 学 院 名 称 :计算机学院 专 业 名 称 :计算机网络 学 生 姓 名 : 指 导 教 师 : 二一一年六月 1 1 摘要摘要 宿舍,是大学生在高校校园里一个重要的学习、生活、交 往的空间环境。随着高校办学规模的扩大,学生人数不断增多, 高校学生宿舍管理信息量日益庞大,如果仍采用传统的工作方 式纸媒介的账本化工作模式,会存在获取信息慢、查阅困 难、准确性差等问题,很难适应高水平宿舍管理的需要。而采 用计算机软件来实现信息的管理能很好的解决传统工作方式存 在的问题。因此,我们设计开发了学生宿舍管理系统,旨在提 高宿舍管理的效率和准确性,减少工作的盲目性,对后勤管理的 现代化建设有一定的指导意义。 关键字关键字: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 第四章第四章 结束语结束语.20 致致 谢谢.21 参考文献参考文献.22 附附 录录.23 前前 言言 现在的社会日新月异,发展的非常快。学校的发展也是非 常的快了,而且每年都有不同的要求。学生的量也非常的大, 资料可能经常性的发生更换,原来手工的管理模式就显的不怎 么的合适了。而且手工的数据是存放在多处的,没有使用统一 管理的模式,数据整理非常的麻烦,统计也困难,很多的情况下, 老师都是在重复一些相同的工作。做一些相似的报表,这样不 但降低了工作效率,而且非常的容易出错。在这种条件下,使 用微机管理就显的非常的合适了。只要你正确的录入,统计, 报表输出一点问题都没有的。 2 2 设计依据及框图设计依据及框图 2.1 设计平台设计平台 开发本系统的过程中所用到的主要软件开发工具有: visual c+ 6.0、access 2000、photoshop。现将使用情况分 别介绍如下: visual c+ 6.0: mfc 方式设计系统界面,采用 ole db 方式访问数据库。 access 2000:采用 access 设计本系统中的数据库。 photoshop:用于添加学生、删除学生、查询学生等等按钮 图标的美工设计。 2.2 设计思想设计思想 (1) 应用原型方法进行开发。原型方法将系统分析、设计、 实施三个阶段融为一体,使操作者更便于使用该系统,由中南民 族大学宿舍管理的实际情况出发,讲宿舍信息分层设计,有宿 舍类型到楼号,由楼号到宿舍号,在找到床铺号,便于层次化 管理。(2) 选用灵活、方便、友好的用户界面。采用操作简单 的树型图设计,便于查找学生信息,操作快捷方便; (3) 数据 库采用的是比较流行的小型数据库管理软件access,与c+程序 的连接方式为ole db,该方式可以让开发人员不直接向数据源 发出指令,而是通过ole db接口与数据提供者进行交互,只需 要对接口进行操作,这样简化了程序的设计。 2.3 设计框图、用户界面设计框图、用户界面 本系统 “宿舍管 理”的设 计框图如 下: 主界面 生详细信 “添加学生”界面 “删除学生”界面 “学生查询”界面 2.4 数据库表结构数据库表结构 本系统采用 access 作为数据库, 使用 ole db 访问数据 库。根据系统功能与需 求分析,只需要创建一 个数据表 house,该表 包含学生姓名,性别,入学时间,学号,专业,宿舍类型,楼 号,房间号,床铺号,宿舍电话,备注等信息项,自然的形成 了一个树型结构。不设置主键(primary key),由程序根据地址 唯一确定用户信息的不二性。表结构如右所示: 3 3 各模块功能及主要模块的流程图各模块功能及主要模块的流程图 3.1 各模块功能简介各模块功能简介 1 1、罗列学生信息、罗列学生信息 在左边的树试图中,通过鼠标或者键盘选择宿舍类型、楼 号或者房间号等树项,右边的列表视图就会罗列出相应宿舍类 型、楼或者房间中的所有学生的简要信息。对这些罗列出来的 学生可以对它们进行删除或者查看详细信息的操作。 2、查看学生详细信息、查看学生详细信息 选择左边树视图中的房间号,或者双击右边列表视图中的 某一学生,右边的视图就会显示该用户的详细信息(见“查看 学生详细信息”界面)。 3、添加学生、添加学生 单击工具条的【添加学生】按钮,或者选择菜单【系统维 护】-【添加学生】,弹出“添加学生”对话框,见“添加学 生”界面。在该对话框中填写完相应的信息,单击【确定】按 钮完成添加。其中“学生姓名”和“宿舍地址”是必须填写完 整的,如果不完整单击【确定】按钮后系统会提示用户。 4、删除学生、删除学生 当程序的输入焦点在左边的树视图时,选择要删除的项, 单击工具条的【删除学生】按钮,或者选择菜单【系统维护】- 【删除学生】,弹出询问用户确认删除操作的对话框,见“删 除学生”界面。如果删除的是宿舍类型,则该宿舍类型中的所 有学生都被删除;如果删除是楼号,则该楼中的所有学生被删 除,如果删除的是房间号,则该房间中的所有学生都被删除; 如果删除的是学生,则该学生信息被删除。 当主窗口的右边是学生的列表视图时,并且输入焦点在其 中,选择其中要删除的学生(可以选择多个),单击工具条的 【删除学生】按钮,或者选择菜单【系统维护】-【删除学生】 ,弹出询问用户确认删除操作的对话框,单击【是】按钮删除 选择的学生信息。 5、学生查询、学生查询 单击工具条中的【学生查询】按钮,或者选择菜单【系统 维护】-【学生查询】,弹出“查询学生”对话框,见“学 生查询”界面。在该对话框中填写完查询条件,单击【确 定】按钮。如果有符合条件的学生,在右边的学生列表中 就会全部罗列出来,可以对这些学生进行删除或者查看详 细信息的操作。 3.2 主要流程图主要流程图 本软件系统对学生信息的管理主要流程图: (1) 在树视图中罗列学生信息的程序流程,如图所示: 查询和罗列的 程序流程,如图所示 增加学生的程序流程,如下图所示 3.33.3 软件调试分析软件调试分析 本软件是基于 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 产生的模板类,生成包 含数据库的 house.h见附头文件,该头文件是与数据库的接 口,经过测试,数据库链接成功; (2)实现界面框架,使用类 csplitterwnd 切分视图和动态切 换视图的类型,通过包含该类的单文件调试发现无错误后,整 体系统运行能成功切换试图。 (3)系统框架的左侧为树视图,采用 clefttreeview 类来实现; 右侧学生信息罗列采用类 cuserslistview 来实现,成功调试后 能正常显示信息。 (4)“增加学生”模块,单模块调试通过后,需要在整理系统 编写完后,再进行操作测试,添加一条记录后,发现在数据库 中有保存该记录,如果错误输入,观察是否能正常提示信息。 否则修改程序再进行调试。 (5)“查询学生”模块,该模块可以实现单项查询和组合查询, 单项查询调试通过后,编写组合查询的代码,再进行调试,看 是否能满足要求,并且能正常提示非法查询请求。 (6)“删除学生”模块,可以进行不同层次的删除操作,例如 删除宿舍将会删除该宿舍的所有成员,如果只删除某一学生, 不会影响到其他成员。本模块测试通过。 经过调试,以上各部分运行正常,能实现预期的功能。 4 4 结语结语 4.1 结论与讨论结论与讨论 结论:本文介绍的宿舍管理系统具有界面友好、操作简单、 实用性强等特点,并已开发完毕,使用效果良好,初步取得了以下 效果: (1) 操作简单,实用性强,能够快速地提供住宿学生的各 种基本信息供管理者参考和使用,大大提高了工作效率; (2) 浏 览、查询、添加实现数据库管理,纸质文件的流转被电子邮件代 替,节约了办公经费; (3) 实现了对数据的智能处理,为领导决 策起到了一定的辅助作用; (4) 使宿舍管理工作更加科学化和 规范化。 讨论:本文介绍的实现方法适合与小型的数据管理,而且 功能比较简单,在一定程度上能解决实际中宿舍管理中的问题。 但也存在一些不完善的地方,如需要保存更多的信息,实现更 多的功能,需要采用较大型的数据库管理系统,而且未来的管 理以网络化为趋势,开发一套可以联网管理的软件系统能给宿 舍管理工作带来更大的方便。 致致 谢谢 通过本次课题的设计,让我熟练的掌握了制作程序的一些 流程及规划,在此特别感谢各位老师的指导,并感谢所有协助 我完成设计的朋友,有了你们的支持,才会让我更加圆满的完 成此次课题的设计。 参考文献参考文献 1求是科技. visual c+ 6.0 数据库开发技术与工程实践. 北京:人民邮电出版社,2004 2郑莉,董渊,张瑞丰.c+语言程序设计.北京:清华大学出版 社,2003 3(美)paul j.fortier 等著.数据库技术大全.林瑶等译. 北京:电子工业出版社,1999 附录附录 各类的声明见源代码*.h 头文件,数据库连接文件见 house.h,完整源代码 见电子文档。 现将各功能函数的核心代码列表如下: 文件名称功能说明 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“ #include “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 ); 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 “lefttreeview.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,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.item.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) ctreectrl* 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_hhititem ); 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(“号楼“); 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 = pctrl-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“, strstudentname,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-getparentitem( 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 where 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* pcmdui) 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(cstring 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(); ccommand dbhouse; long* pcount = new long; if(dbhouse.open(pdoc-m_dbhouse.m_session

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论