小区住户信息管理系统

上传人:ba****u 文档编号:187938366 上传时间:2023-02-16 格式:DOCX 页数:34 大小:259.50KB
返回 下载 相关 举报
小区住户信息管理系统_第1页
第1页 / 共34页
小区住户信息管理系统_第2页
第2页 / 共34页
小区住户信息管理系统_第3页
第3页 / 共34页
点击查看更多>>
资源描述
小区住户信息管理系统学生姓名:尹能指导老师:阳慧摘 要 本系统用软件系统管理的方法代替了平时手工管理资料的方法。本系统 的主要功能有:新增住户、删除住户、查询住户。在本系统上对住户资料的操作 都会存储到Access数据库里面,进行永久性保存。使用VC+ 6.0的开发技术,初步完成了基于Access 2003的系统开发,实 现了住户的新增,住户的删除,住户的查询。基本满足了系统简单实用的需求。关键词:住户;visual C+ 6.0;Access 2003;管理系统1引言随着房地产业的日渐成熟,住宅小区物业管理不仅反映经济社会发展水平 和市管理水平,而且关系到居民生活环境与生活质量的提高。1.1课题背景及意义2003年6月8日国务院第379号令颁布了物业管理条例,标志着我国 物业管理行业将进入规范化、法制化、市场化、社会化管理。根据不完全统计, 至2006年底,全国物业管理的覆盖面只占城市物业总量的45%,经济发达的一 些城市己达60%以上,至2007年底,我国物业管理企业已超过6万家,从业人 员已突破630万人,年营业总收入超过1200亿元,物业管理社会化、市场化、 专业化、信息化发展迅速,然而物业管理在我国毕竟是新生事物。物业管理的市 场化进程各地区参差不齐,发展很不平衡。我国物业管理理论研究相对薄弱,实 际操作各环节不同程度地存在着一定缺陷和问题,物业管理模式有待于进一步探 讨研究形成。对于物业公司来说,什么才是最重要的呢?很明显,是居民,居民 是物业公司的一切工作的重点,必须要有有效的手段对居民的信息进行有效的管 理,现在已经是现代化的社会,传统的用手抄,文档资料等人工方式来管理大量 的人员资料的时代已经过去了,只有用一些现代化的管理软件,使用这些现代化 的管理软件可以极大地提高物业管理公司的工作效率,且容易修改,容易管理。 在现在这种竞争激烈的社会中,只有那些能够给客户提供优质高效的服务的公 司,才能赢得客户的青睐,而高效的管理,正是提供高质量服务的保证。1.2课程设计目的从物业管理企业的角度看,住宅小区物业管理公司是独立运行、自负盈亏的 经济实体,追求自身经济利益的最大化,在合理收取物业管理费用的基础上,发 挥自身潜能,节支开源,压缩管理成本,向管理要效益。不断采用新技术、新方 法,依靠科技进步提高管理水平与服务水平,进行合理先进的成本核算,以最小 的投入,获取最大的经济效益。住宅小区物业管理公司最基本的职能就是为小区 内居民提供舒适、安静、良好的居住环境,有利于住宅小区居民的身心健康。住户管理系统设计的指导思想使住宅小区物业管理系统选择的设备更具先 进性、成熟性、经济性并具有相当的扩充升级余地,为使未来的住宅小区物业管 理将在现有的基础上更加完善、更加先进。人们对实施住宅小区物业管理有了客 观和实际的需求。这是物业管理市场化及物业管理发展的最根本的动力和基础。1.3课题技术支持本系统具有完善的住户信息储存、修改、添加、删除、查询功能,简单实用。 本住户管理系统后台数据库采用Access数据库,以保证数据的安全、高效和稳 定。前台采用微软公司的Visual C+ 6.0作为主要的开发工具,其可与Access 数据库无缝链接。1.4可行性分析报告可行性分析报告可分为经济可行性、技术可行性还有政策可行性。(1)经济可行性从经济角度来说,该系统结构简单,易于开发,开发时所用的人力,物力较 少,且实用性好,对物业公司的工作效率的提高有不小的帮助,因此会有一定的 市场潜力,将会有不错的经济效益。(2)技术可行性从技术角度来说,本系统主要采用两个工具来进行开发,一个是微软公司的 Microsoft office Access 2003,一个是 Microsoft Visual C+ 6.0,采用这两个工 具的原因是因为本管理系统的整个结构比较简单,Access正好可以作为小型数据 库系统的数据库使用。而Visual C+ 6.0是比较成熟的应用程序开发工具,且 功能强大,足以胜任这种小型系统的开发。因此,使用这两个工具,本人可以在 一定时间内开发出一个住户管理系统。(3)政策可行性从社会角度来说,近年来,随着人民生活水平的提高,人们对住宅质量提出 更高的要求,在此前提下,我国各地涌现出了一些运用现代的计算机、控制与通 信技术的智能化住宅小区。但是许多住宅小区都存在好了平台却没有智能化的软 件在上面运行的情况,或者说缺少现代化的管理手段。因此,开发一个简单实用 的住户管理系统是迫在眉睫的事情。简而言之,开发住户管理系统是一项利国利 民的好事,是符合国家的政策法规的,所以从法律上来说是不存在问题的,故具 有法律可行性即政策可行性。2需求分析2.1系统需求分析通过对小区管理中的住户信息管理这部分的分析研究,一个住户管理系统应 该要有下面的功能:(1)罗列住户的业务流程;(2)查看住户详细信息的业务流程;(3)增加住户的业务流程;(4)查询住户的业务流程;(5)删除住户的业务流程;2.2系统层次方框图本系统的层次方框图如图2-1所示。分为三个模块,分别为增加住户、删除住户、查询用户,如图2-1所示:住户管理系统的后台系统删除用户查询用户增 加 住 户图2-1系统的层次方框图2.3数据流图:本数据流图体现了本系统内部的事务的流向,数据被处理的过程,数据的存 储过程。如图2-2所示:物业管理员事务事务.插入数据增加住 户增加请求T删除住 删除请求户流程切换查询和罗列请求-住户信息住户信息删除数据住户信息,- 显示信息住户信息表物业管理员查询和住户信息 I户查询和读取数据查看请求住户信息住户信息读取数据查看住户图2-2系统的数据流图2.4数据字典:以下便是在数据库表和程序中都用到的数据项:表2-1数据字典属性名储存代码类型备注户主姓名m_housemasterTCHAR小区名称m_sectionnameTCHAR户主所在的小区楼号m_buildingnumLONG户主所在的楼号单兀号m_cellnumLONG户主所在的单兀号房间号m_roomnumLONG户主的房间号住址电话m_housetelTCHAR户主的住址电话单位m_officeTCHAR户主所在的单位单位电话m_officetelTCHAR户主所在的单位的电话寻呼机号m_beeppagerTCHAR户主的寻呼机号码手机号m_mobi1eTCHAR户主的手机号码电子邮件m_emai1TCHAR户主的电子邮件2.5需求规格说明书:(1) 编写目的对需求分析进行补充说明,详细说明需求分析的部分细节、统一规范格式和 建立需求约束规范等。(2) 对功能的规定在数据流图与数据字典当中,已有了分析。(3) 对性能的规定系统界面友好,具有一定的健壮性,出现错误时,有良好的错误提示,系统 能够保证长时间运行等。(4) 数据格式的规范数据类型格式校验它是从数据类型和数据格式的角度来检测输入数据的正确性。例如,在输入 住户所在的小区、号楼、单元、房间时,输入的数据应该为整形,如果输入的是 其他类型或是为空都是错误的。(5) 运行环境的规定1) 设备:本系统对设备的要求很低,现在的一般的电脑主机都能运行。但运行时需要有文件MFC42.DLLMSVCRT.DLL,如果没有,安装一个Visual C+ 6.0。2) 支持软件:系统支持:Windows 2000/Xp 等。开发工具:Visual C+ 6.0、Access 2003。3系统总体设计3.1概念结构设计因本系统较为简单,因此本系统的实体只有管理员和住户,其中住户是最重 要的实体,它的主要属性有:姓名、地址、家庭电话、工作电话、单位电话、寻 呼机、手机、Emai 1。其中管理员和住户的关系是一对多的关系。如图3-1所示:图3.1系统全局实体E-R图3.2逻辑结构设计(1) 逻辑设计规范数据库逻辑设计就是将E-R图转换成关系模型的过程即将所有实体和关系转换成一系列的关系模式,转换过程中常见规则有:1) 一个实体型转换成一个关系模式。2) 一个一对一的关系模型可转换成一个独立的关系模式,也可与任意一端对应的关系模式合并。3) 一个一对多的联系可以转换成一个独立的关系模式,也可与多的那一端对应的关系模式合并。4) 一个多对多的联系可以转换成一个关系模式(2) E-R图与关系模式的转换通过对E-R图的分析,本系统只有一个关系模式,对于管理员和住户之间的关系,可以根据逻辑设计规范的规则3)转换成一个关系模式:住户(姓名,地址,家庭电话,工作电话,单位电话,寻呼机,手机,Email)(3) 逻辑结构表经过数据库系统分析和逻辑设计后,数据库的结构已经非常清晰,首先在Microsoft Access 2003中建立一个数据库Inhabitants。然后,分别建立1个 表:house表,该表与逻辑设计中一种的关系模式相对应。下面是这个数据库表 中的属性,包括属性列的名称、数据类型、长度、是否为空和备注说明等内容。 如表3-1所示:表 3-1 House 表:字段名字段类型字段大小是否为空字段说明户主姓名文本无限制否小区名称文本无限制否户主所在的小区楼号数字无限制否户主所在的楼号单兀号数字无限制否户主所在的单兀号房间号数字无限制否户主的房间号住址电话文本无限制是户主的住址电话单位文本无限制是户主所在的单位单位电话文本无限制是户主所在的单位的电话寻呼机号文本无限制是户主的寻呼机号码手机号文本无限制是户主的手机号码电子邮件文本无限制是户主的电子邮件4详细设计与实现4.1系统主要功能测试本次测试尽可能地覆盖所有模块和所有功能,以保证软件的正确性和可靠 性。测试的主要目的:(1) 通过测试来检验软件是否可以正常运行。(2) 通过测试来检验软件的所有功能是否实现。(3) 当用户出现不规范操作,系统能否发现并提醒用户改正。(4) 当出现非法操作,系统能否进行错误提示和处理。表4-1功能测试表测试功能测试目的测试方法测试结果增加住户新住户能被添加到数据库中打开数据库文件查看达到要求删除住户选中的住户能被删除打开数据库文件查看达到要求查询住户根据填入的资料查出按下查询住户的按达到要求住户钮,填入数据查询增加住户检测非法输入在添加对话框中的小 区、号楼、单元、房 间中填入符号或字母达到要求增加住户检测不规范操作在添加对话框中不填 入户主姓名、小区、 号楼、单元、房间然 后按确定达到要求查询住户检测非法输入在查询对话框中的小 区、号楼、单元、房 间中填入符号或字母达到要求4.2运行环境测试(1) 操作系统:Window 2000/ Window XP或以上版本;(2) 所需软件:Visual C+ 6.0、Access2003;4.3功能设计本系统的功能包括:增加住户、删除住户、查询住户。进入本系统后的主界面如图4-1所示:(1) 增加用户增加住户模块的功能是新添加一个住户的资料。在菜单栏和工具栏上都可以找到这个按钮,按下后,将弹出一个添加对话框。如图4-2所示:XW小区居民曾评系统- Inlabitut亲倨住户lip住户查询户君尸主姓名冻庭电话工作单位单位电话寻呼机手机Ernai职消确定图4-2增加住户然后便可根据实际在该对话框中填入数据。该模块功能实现的大概的算法 如下:管理员通过在添加对话框上填写数据的方法添加新住户的资料,在填写完 毕按下确定键后,系统先检查管理员新填入的住户资料中的户主姓名、小区、号 楼、单元和房间是否为空。如不为空,则将这几项的数据与数据库中的数据进行 逐项对比,看是否有相同项,只有唯一的项才能呗添加进数据库。在程序中,该模块功能是通过函数int CMyDoc:AddUser(USER &user)和 void CAddUserDlg:OnOK ()实现的。实现的代码如下:int CMyDoc:AddUser(USER &user)/*返回值:0 已经存在-1添加失败1添加成功*/判断是否存在该住户了CString strSql;strSql.Format(select * from house where sectionname = %s and buildingnum =%d and cellnum = %d and roomnum = %d”,user.strSectionname,user.nBuildingnum,user.nCellnum,user.nRoomnum);CCommandCAccessor dbHouse;long* pCount = new long;if(dbHouse.Open(m_dbHouse.m_session,strSql,NULL,pCount) != S_OK)AfxMessageBox(error);delete pCount;return -1;添加住户信息失败if(dbHouse.MoveFirst() = S_OK)delete pCount;dbHouse.Close();return 0;添加用户已存在delete pCount;dbHouse.Close();HRESULT hResult = m_dbHouse.Insert();if( FAILED( hResult )AfxMessageBox( _T( Error inserting the current record);return -1;添加失败return 1;添加成功void CAddUserDlg:OnOK()判断输入信息的合法性UpdateData(TRUE);CEdit* p;if( m_strHousemaster =)AfxMessageBox(请填户主姓名);p = (CEdit*)GetDlgItem(IDC_EDIT_HOUSEMASTER);p-SetFocus();return;if( m_strSectionName =)AfxMessageBox(请填小区名称);p = (CEdit*)GetDlgItem(IDC_EDIT_SECTIONNAME);p-SetFocus();return;if( m_nBuildingNum = 0 )AfxMessageBox(楼号不能为零);p = (CEdit*)GetDlgItem(IDC_EDIT_BUILDINGNUM);p-SetFocus();return;if( m_nCellNum = 0 )AfxMessageBox(单元号不能为零);p = (CEdit*)GetDlgItem(IDC_EDIT_CELLNUM);p-SetFocus();return;if( m_nRoomNum = 0 )AfxMessageBox(房间号不能为零);p = (CEdit*)GetDlgItem(IDC_EDIT_ROOMNUM);p-SetFocus();return;CMainFrame* pFrame = (CMainFrame*)AfxGetApp()-m_pMainWnd;CMyDoc* pDoc = (CMyDoc*)pFrame-GetActiveDocument();让用户确认操作if(this-MessageBox(你真的要添加这条记录?,小区居民管理系统”,MB_YESNO)=IDNO)CDialog:OnCancel();return;switch(pDoc-AddUser(user)case 0:(已经存在该住户了CString str;str.Format( %s小区的d号楼的d单元的d房间的住户已经存在 了,m_strSectionName,m_nBuildingNum,m_nCellNum,m_nRoomNum );AfxMessageBox( str );CEdit* p = (CEdit*)GetDlgItem(IDC_EDIT_ROOMNUM);p-SetFocus();return;break;case 1:增加成功后刷新左边的树视图pFrame-m_pLeftView-AddUserToTree(m_strSectionName, m_nBuildingNum,m_nCellNum,m_nRoomNum);break;default:return;break;CDialog:OnOK();程序在void CAddUserDlg:OnOK()判断管理员输入的资料是否合法,然后调用函数intCMyDoc:AddUser(USER &user)来 将资料存入数据库。(2) 删除用户本模块的功能是根据对鼠标对于系统客户区的选择来判定该删除的内容。如 果管理员此时选择的是一个住户,则删除该住户,如果选择的是一个单元的话,则将删除该单元的所有住户,如果选择的是一个小区,则删除该小区中所有住户 的资料。删除时系统的会弹出一个警告对话框,提醒管理员是否真的要删除这些 资料。如图4-3所示:如果此时鼠标选择的是右边的列表视图中的住户时,删除时也会弹出警告对 话框,如图4-4所示:图4-4删除住户在程序中本模块的实现函数是BOOL CMyDoc:DeleteUser(CString strSql)、 void CLeftTreeView:OnOperateDelete()和 void CUsersListView:OnOperateDelete()BOOL CMyDoc:DeleteUser(CString strSql) CCommandCAccessor dbHouse;long* pCount = new long;if(dbHouse.Open(m_dbHouse.m_session,strSql,NULL,pCount,DBGUID_DEFAULT,FALSE) != S_OK) AfxMessageBox(error);delete pCount;return FALSE;delete pCount;dbHouse.Close();return TRUE;void CLeftTreeView:OnOperateDelete()if(this-MessageBox(你真的要删除该楼中的所有住户吗?,小区居民管理系统”,MB_YESNO)=IDNO)return;else if( pCtrl-GetParentItem(hParentItem) != NULL& pCtrl-GetParentItem(pCtrl-GetParentItem(hParentItem) = NULL ) 单元CString strSectionName = pCtrl-GetItemText( pCtrl-GetParentItem(pCtrl-GetParentItem(m_hHitItem);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 strCellNum = str.Left( n );strSql.Format(delete * from house where sectionname = %s and buildingnum = %s and cellnum = %s, strSectionName,strBuildingNum,strCellNum);if(this-MessageBox(你真的要删除该单元中的所有住户吗?”, ”小区居民管理系统”,MB_YESNO)=IDNO)return;else用户CString strSectionName = 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 strCellNum = str.Left( n );CString strRoomNum = pCtrl-GetItemText(m_hHitItem);strSql.Format(delete * from house where sectionname = %s and buildingnum = %s and cellnum = %s and roomnum = %s”, strSectionName,strBuildingNum,strCellNum,strRoomNum);if(this-MessageBox(你真的要删除该住户吗?,小区居民管理系统 ”,MB_YESNO)=IDNO) return;pDoc-DeleteUser(strSql);AddUsersToTree();当程序的输入焦点在左边的树视图时,选择要删除的项。该函数将调用函数 BOOL CMyDoc:DeleteUser(CString strSql)来将相应住户从数据库中删除。void CUsersListView:OnOperateDelete()CListCtrl* pCtrl = &GetListCtrl();POSITION pos = pCtrl-GetFirstSelectedItemPosition();if( pos = NULL )AfxMessageBox(请选择要删除的住户);return;if(this-MessageBox(你真的要删除选择的所有住户吗?,小区居民管理系统”,MB_YESNO)=IDNO)return;删除选择的所有住户while (pos) int nHitItem = pCtrl-GetNextSelectedItem(pos);CString strSectionName = pCtrl-GetItemText(nHitItem,1);CString strBuildingNum = pCtrl-GetItemText(nHitItem,2);CString strCellNum = pCtrl-GetItemText(nHitItem,3);CString strRoomNum = pCtrl-GetItemText(nHitItem,4);CString strSql;strSql.Format(delete * from house where sectionname = %s and buildingnum = %s and cellnum = %s and roomnum = %s, strSectionName,strBuildingNum,strCellNum,strRoomNum);CMyDoc* pDoc = (CMyDoc*)GetDocument();pDoc-DeleteUser(strSql);CMainFrame* pFrame = (CMainFrame*)AfxGetApp()-m_pMainWnd; pFrame-m_pLeftView-AddUsersToTree();当输入的焦点在右边的列表视图时,调用BOOL CMyDoc:DeleteUser(CString strSql)来将相 应住户从数据库中删除。(3) 查询用户本模块的功能是弹出一个查询对话框,让管理员输入要查询的住户的某部分 资料,以此来查找住户。只要管理员输入了一部分的内容,系统便可以根据这部 分的资料,就可以查找出此住户的部分资料。如图4-5所示:身住户KB住户查询S华清嘉园 3-H 1。号楼 :白宜之单: F,号楼3太阳园S月华园I sfK/krvI疆居耕mI并居的井君宝101房间号图4-5查询住户此时如果双击此查询出来的住户,则会在客户区的右边调出一个模版对话框来显示该住户的详细资料。如图4-6所示:图4-6住户详细信息在程序中该部分的实现函数是:void CUsersListView:ShowUsers(CString strSql)void CUsersListView:ShowUsers(CString strSql)CListCtrl* p = &GetListCtrl();清空列表p-DeleteAllItems();if(strSql = )return;CMyDoc* pDoc = (CMyDoc*)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 iltem = 0;LV_ITEM lvitem;int iActualltem = 0;/将查询得到的住户都逐个加入列表中if(dbHouse.MoveFirst() = S_OK)(do(for(int iSubItem=0;iSubItemGetFirstSelectedItemPosition();if( pos = NULL )(AfxMessageBox( 请选择要删除的住户);return;if(this-MessageBox( 你真的要删除选择的所有住户吗?,小区居民管理系统,MB_YESNO)=IDNO)return;5总结5.1系统功能总结本住户管理系统可以很好地帮助物业公司管理居民小区,为居民提供更好的 服务。本文从理论和技术两个方面来实现,对“住户管理系统”的设计过程进行了详 细介绍。按照软件工程的开发流程,从需求分析,概念设计,逻辑设计,物理设 计到详细设计进行了一系列的详细分解和描述。该系统实现了对增加住户、删除 住户、查询住户的功能。该系统具有以下特色和功能:(1)界面友好且操作简便,提供了菜单,易于上手。(2)可方便地对数据库中地住户资料进行操作。(3)使用了 Visual C+ 6.0和Access 2003作为开发工具。开发思路清晰, 易于掌握和理解,对于中小型系统的开发优点尤为突出。5.2对系统的展望(1)系统功能问题本系统虽然有着易于上手和简单实用的优点,但是总的来说,整个系统的功 能还是太过于简单,而且只能实现对住户的资料的管理,离现在物业公司要用的 能够帮助他们完成大多数日常工作的物业管理软件还有一定的差距。(2)系统安全问题本系统任何人都可以使用,这的确是显得安全性不好,因为该系统会保存着 一些用户的隐私,所以安全性是该软件的一个软肋。结束语经过三个星期的努力,在指导老师耐心的指导和同学们的帮助下,住户管 理系统已经开发完成。在做该系统期间,我有幸得到了同学的帮助,在此对他们 表示最诚挚的感谢。并特别感谢我的指导导师-阳慧老师,在整个数据库实训的 过程中,是她给予了我很大的帮助,热情而又耐心的指导。专业细致的解答,才 能让我在这次实训中能比较顺利地完成课题。感谢她对我长期的支持和给我提出 的宝贵意见,使我顺利地完成了本系统的研究和开发工作。在此,再次向我的导 师表示衷心的感谢和诚挚的敬意!参考文献1孙豪.社区物业管理信息系统的设计与实现.大连:大连理工大学出版社,2007 年3 邱绪莲.基于Struts框架的智能小区物业管理系统的设计与研究D.武汉: 武汉理工大学出版社,2006年4 李兵.CORBA技术在智能小区物业管理系统中的应用.武汉:武汉理工大 学,2006年5 杜玫芳.住宅小区物业管理系统的开发与实现.武汉:华中科技大学出版 社,2005年6 冯华.Visual C+数据库开发技巧与实例.北京:机械工业出版社,2001年7 王鸿博.数据库技术及工程应用.北京:机械工业出版社,2002年8 宋瀚涛.数据库编程与应用.北京:电子工业出版社,1998年附录:设计源程序清单#include stdafx.h#include 住户管理系统.h#include MainFrm.h#include 住户管理系统Doc.h#include 住户管理系统View.h#include #include 住户管理系统_i.c#ifdef _DEBUG#define new DEBUG_NEW#undef THIS_FILEstatic char THIS_FILE = _FILE.#endifBEGIN_MESSAGE_MAP(CMyApp, CWinApp)ON_COMMAND(ID_APP_ABOUT, OnAppAbout)ON_COMMAND(ID_FILE_NEW, CWinApp:OnFileNew)ON_COMMAND(ID_FILE_OPEN, CWinApp:OnFileOpen)ON_COMMAND(ID_FILE_PRINT_SETUP, CWinApp:OnFilePrintSetup)END_MESSAGE_MAP()CMyApp theApp;BOOL CMyApp:InitInstance()if (!InitATL()return FALSE;AfxEnableControlContainer();#ifdef _AFXDLLEnable3dControls();#elseEnable3dControlsStatic();#endifSetRegistryKey(_T(Local AppWizard-Generated Applications);LoadStdProfileSettings();CSingleDocTemplate* pDocTemplate;pDocTemplate = new CSingleDocT)mplate(IDR_MAINFRAME,RUNTIME_CLASS(CMyDoc),RUNTIME_CLASS(CMainFrame),RUNTIME_CLASS(CMyView);AddDocTemplate(pDocTsmplate);CCommandLineInfo cmdInfo;ParseCommandLine(cmdlnfo);if (cmdInfo.m_bRunEmbedded | cmdInfo.m_bRunAutomated)return TRUE;if (!ProcessShellCommand(cmdInfo)return FALSE;m_pMainWnd-ShowWindow(SW_SHOW);m_pMainWnd-UpdateWindow();return TRUE;class CAboutDlg : public CDialogpublic:CAboutDlg();enum IDD = IDD_ABOUTBOX ;protected:virtual void DoDataExchange(CDataExchange* pDX);protected:DECLARE_MESSAGE_MAP();void CAboutDlg:DoDataExchange(CDataExchange* pDX)CDialog:DoDataExchange(pDX);BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)END_MESSAGE_MAP()void CMyApp:OnAppAbout()CAboutDlg aboutDlg;aboutDlg.DoModal();CMyModule _Module;BEGIN_OBJECT_MAP(ObjectMap)END_OBJECT_MAP() /将查询得到的住户都逐个加入列表中if(dbHouse.MoveFirst() = S_OK) do for(int iSubItem=0;iSubItemHitTest(point,NULL);if( nHitItem GetItemText(nHitItem,1);CString strBuildingNum = pCtrl-GetItemText(nHitItem,2);CString strCellNum = pCtrl-GetItemText(nHitItem,3);CString strRoomNum = pCtrl-GetItemText(nHitItem,4);CMainFrame* pFrame = (CMainFrame*)AfxGetApp()-m_pMainWnd;CMyDoc* pDoc = (CMyDoc*)GetDocument();pFrame-SwitchToView(USERINFOVIEW);pFrame-m_pUserinfoView-UpdateUserInfo(strSectionName,atoi(strBuildingNum.GetBuffer(0),atoi(strCellNum.GetBuffer(0),atoi(strRoomNum.GetBuffer(0);void CUsersListView:OnOperateDelete()CListCtrl* pCtrl = &GetListCtrl();POSITION pos = pCtrl-GetFirstSelectedItemPosition();if( pos = NULL )AfxMessageBox(请选择要删除的住户);return;if(this-MessageBox(你真的要删除选择的所有住户吗?,小区居民管理系统,MB_YESNO)=IDNO)return;删除选择的所有住户while (pos)int nHitItem = pCtrl-GetNextSelectedItem(pos);CString strSectionName = pCtrl-GetItemText(nHitItem,1);CString strBuildingNum = pCtrl-GetItemText(nHitItem,2);CString strCellNum = pCtrl-GetItemText(nHitItem,3);CString strRoomNum = pCtrl-GetItemText(nHitItem,4);CString strSql;strSql.Format(delete * from house where sectionname = %s and buildingnum =%s and cellnum = %s and roomnum = %s,strSectionName,strBuildingNum,strCellNum,strRoomNum);CMyDoc* pDoc = (CMyDoc*)GetDocument();pDoc-DeleteUser(strSql);CMainFrame* pFrame = (CMainFrame*)AfxGetApp()-m_pMainWnd;pFrame-m_pLeftView-AddUsersToTree();LONG CMyModule:Unlock()AfxOleUnlockApp();return 0;LONG CMyModule:Lock()AfxOleLockApp();return 1;LPCTSTR CMyModule:FindOneOf(LPCTSTR p1, LPCTSTR p2)while (*p1 != NULL)LPCTSTR p = p2;while (*p != NULL)if (*p1 = *p)return CharNext(p1);p = CharNext(p);p1+;return NULL;int CMyApp:ExitInstance()if (m_bATLInited)_Module.RevokeClassObjects();_Module.Tsrm();CoUninitialize();return CWinApp:ExitInstance();BOOL CMyApp:InitATL()m_bATLInited = TRUE;#if _WIN32_WINNT = 0x0400HRESULT hRes = CoInitializeEx(NULL, COINIT_MULTITHREADED);#elseHRESULT hRes = CoInitialize(NULL);#endifif (FAILED(hRes)m_bATLInited = FALSE;return FALSE;_Module.Init(ObjectMap, AfxGetInstanceHandle();_Module.dwThreadID = GetCurrentThreadId();LPTSTR lpCmdLine = GetCommandLine();TCHAR szTokens = _T(-/);BOOL bRun = TRUE;LPCTSTR lpszToken = _Module.FindOneOf(lpCmdLine, szTokens);while (lpszToken != NULL)if (lstrcmpi(lpszToken, _T(UnregServer)=0)_Module.UpdateRegistryFromResource(IDR_MY FALSE);_Module.UnregisterServer(TRUE);bRun = FALSE;break;if (lstrcmpi(lpszToken, _T(RegServer)=0)_Module.UpdateRegistryFromR
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 图纸设计 > 毕设全套


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!