基于mfc档案管理系统的设计与实现内容摘要:

7 所示 7 个模块,每个模块对应需求分析 12 中的各个功能,只有具有系统账号的用户才可适用本系统。 图 7:模块划分图 各模块的功能 (1) 用户管理模块 用户管理模块主要实现用户 (普通用户、某个档案库管理员 )的添加和删除,查看用户的详细信息 (生成报表 ),验证用户的登录等功能。 只有系统管理员才 有权进行该项管理。 (2) 机构管理模块 机构管理模块主要实现增加机构、删除机构、修改机构描述信息等功能。 只有系统管理员才有权进行该项管理。 (3) 档案库管理模块 档案库管理模块的功能包括新建档案库、删除档案库、修改档案库的描述和任命档案库的管理员等。 只有系统管理员才有权进行该项管理。 (4) 档案管理模块 档案管理模块的操作主要有:在档案库中增加档案、删除库中未归档档案、对未归档档案进行归档、修改未归档档案的信息、将档案库下未归档的档案移入其他档案库、将已归档的档案移出档案库等。 档案管理是有权限限制的, 其权限分割的标准是档案库。 针对某个档案库,只有系统管理员和该档案库的管理员才有权对该档案库下的档案进行操作。 (5) 借阅管理模块 借阅管理模块的操作主要有:显示指定档案库下的借阅申请和已借档案的列表、显示借阅申请或已借档案的详细信息、提醒借阅人归还和归还档案等。 同档案管理一样,只有对某个档案库有操作权限的用户才能对该档案库下的借阅事务用户登录 用户管理 机构管理 档案库管理 档案管理 借阅管理 档案检索与借阅 我的档案 SQLServer数据库 13 进行管理。 (6) 档案检索与借阅模块 档案检索与借阅模块主要实现检索档案和提交借阅申请单。 用户通过设定检索条件对档案进行检索,可以查看检索出档案的详细信息,针对某个未被借出 的档案提出借阅申请并填写借阅申请单。 档案检索与借阅模块是所有用户都可操作的模块。 (7) “我的档案”模块 该模块为用户提供与借阅档案有关的信息,包括已提交的借阅申请,正在借阅的档案,申请的处理情况。 “我的档案”模块是所有用户都可操作的模块。 3. 3 软件结构设计 图 8:系统层次图 在上面模块设计中将系统划分成了 7 个模块,每个模块完成一个适当的子功能。 应该把模块组织成良好的层次关系,顶层模块调用它下层模块以实现程序的完整功能,每个下层模块再调用更下 层的模块,从而完成程序的一个子功能,最下层的模块完成最具体的功能。 软件结构,即由模块组成的层次系统,可用层次图来描绘,如图 8 所示: 层次图中的一个矩形框代表一个模块,方框间的连线表示调用关系,上图中,最顶层的方框代表档案管理系统的主控模块,它调用下层模块完成档案管理系统档案管理系统 用户管 理 档案库管理 机构管 理 档案管 理 借阅管 理 档案检索借 阅 我的档 案 用户的增加和删除 查询用户信息 验证用户登录 机构的添加和删除 修改机构描述信息 档案库的增加修和改删除 任命档案库管理员 档案的增加修改和删除 档案的归档和移出 档案的转移 借阅申请的审批 档案的归还与提醒 检索档案 借阅申请 14 的全部功能,第二层的每个模块控制完成档案管理系统的一个主要功能。 第四章 系统实现 4. 1 开发工具 本系统采用 Microsoft Visual C++ 作为开发工具, Visual C++ 不仅是一个 C++编译器 , 而且是一个基于 Windows 操作系统 功能强大的 可视化集成开发环境( integrated development environment, IDE)。 Visual C++ 由许多组件组成 ,包括编辑器、调试器以及程序向导 AppWizard、 类向导 Class Wizard 等开发工具。 MFC, 微软基础类 (Microsoft Foundation Classes), 实际上是微软提供的,用于在 C++环境下编写应用程序的一个框架和引擎 [6], VC++是 WinDOS 下开发人员使用的专业 C++ SDK(SDK, Standard SoftWare Develop Kit,专业软件开发平台 ), MFC 就是挂在它之上的一个辅助软件开发包 , MFC 作为与 VC++血肉相连的部分。 MFC 是 Win API 与 C++的结合, API,即微软提供的 WinDOS 下应用程序的编程语言接口,是一种软件编程的规范,但不是一种程序开发语言本身,可以允许用户使用各种各样的第三方的编程语言来进行对 WinDOS 下应用程序的开发,使这些被开发出来的应用程序能在 WinDOS 下运行,比如 VB、 VC++、 Java、Dehpi 编程语言函数本质上全部源于 API,因此用它们开发出来的应用程序 都能工作在 WinOS 的消息机制和绘图里,遵守 WinDOS 作为一个操作系统的内部实现 [7]。 上面说到 MFC 是微软对 API 函数的专用 C++封装,这种结合一方面让用户使用微软的专业 C++ SDK 来进行 Win 下应用程序的开发变得容易,因为 MFC是对 API 的封装,微软做了大量的工作,隐藏了好多程序开发人员在 Win 下用C++ amp。 MFC 编制软件时的大量内节,如应用程序实现消息的处理,设备环境绘图,这种结合是以方便为目的的,必定要付出一定代价,因此就造成了 MFC 对类封装中的一定程度的冗余和迂回,但这是可以接受的 [8]。 4. 2 各个模块的界面和代码实现 本系统有 7 个功能模块,其中系统管理员可以进行全部的操作,普通管理员不能进行用户管理,机构管理,档案库管理这三种操作,而一般用户只能 进行档案检索和借阅,“我的档案”这两种操作,“我的档案”的功能 未 全部实现。 登录模块 当用户进入档案管理系统时,系统将转向用户登录界面,输入用户账号和密码,如图 9。 登录成功后,系统将转向系统管理员操作界面,如图 10 所示。 然 15 后用户就可以根据自己的权限选择各种操作了。 图 9:用户登录界面 登录模块的代码: BOOL CLandDlg::PreTranslateMessage(MSG* pMsg) { // TODO: Add your specialized code here and/or call the base class if( pMsgmessage == WM_KEYDOWN) { if( pMsgwParam == 0x0d)//屏蔽回车 { thisOnBtnLand()。 return TRUE。 } if( pMsgwParam == VK_ESCAPE )////屏蔽 esc return TRUE。 } return CDialog::PreTranslateMessage(pMsg)。 } 16 图 10:系统主界面 void CLandDlg::OnBtnLand() { // TODO: Add your control notification handler code here CString uid。 thisGetDlgItemText(IDC_EDIT1,uid)。 if( uid == ) { if( IDCANCEL == thisMessageBox(用户名为空 ,单击确定继续 ,单击取消退出系统 ,警告 ,MB_OKCANCEL | MB_ICONWARNING) ) { thisSendMessage(WM_CLOSE)。 ((CFileManageDlg *)thisGetParent())SendMessage(WM_CLOSE)。 } this()。 return。 } CString psw。 thisGetDlgItemText(IDC_EDIT2,psw)。 17 if( psw == ) { if( IDCANCEL == thisMessageBox(密码为空 ,单击确定继续 ,单击取消退出系统 ,警告 ,MB_OKCANCEL | MB_ICONWARNING)) { thisSendMessage(WM_CLOSE)。 ((CFileManageDlg *)thisGetParent())SendMessage(WM_CLOSE)。 } this()。 return。 } extern _RecordsetPtr pRecordset。 extern _ConnectionPtr pConnection。 CFileManageDlg * pFileManageDlg = (CFileManageDlg *)thisGetParent()。 pFileManageDlgConnectDataBase(document)。 pRecordsetOpen(select * from users,(), adOpenStatic,adLockOptimistic,adCmdText)。 pRecordsetMoveFirst()。 extern CString afx_uid。 //当前合法用户的帐号 extern CString afx_privilege。 // 当前合法用户的密码 while(!pRecordsetadoEOF) { _bstr_t _uid=pRecordsetGetCollect(id)。 _bstr_t _psw=pRecordsetGetCollect(password)。 _bstr_t _privilege=pRecordsetGetCollect(privilege)。 if( _uid == uid amp。 amp。 _psw == psw ) { pFileManageDlgm_land_flag = true。 afx_uid = uid。 afx_privilege =(const char*)_privilege。 break。 } pRecordsetMoveNext()。 18 }//while pRecordsetClose()。 if( !pFileManageDlgm_land_flag) { thisMessageBox(不存在用户或密码输入错误 ,请重新输入 )。 thisOnBtnReset()。 } else //是合法的用户 { thisSendMessage(WM_CLOSE)。 //关闭用户登陆界面 ,进入程序主窗口 } } void CLandDlg::OnBtnReset() { // TODO: Add your control notification handler code here this(0,1)。 this()。 this(0,1)。 this()。 this()。 } 用户管理模块 在系统主界面中单击“用户管理”按钮,系统将转向用户管理界面,如图11 所示。 单击“生成报表”按钮,系统将转向生成用户报表界面,列出系统所有用户信息,如图 12 所示。 返回用户管理界面,单击“添加用户”按钮,系统将转向添加用户界面。 若要添加的用户信息有误,系统将给出提示信息,若添加操 作成功,系统将给出对话框提示添加操作成功,如图 13 所示。 返回用户管理界面,单击“删除用户”按纽,系统转向删除用户界面,若要删除的用户信息有误,系统将给出提示信息,若删除操作成功,系统将给出对话框提示删除操作成功,如图 14 所示。 19 图 11: 用户管理界面 图 12:生成用户报表界面 20 图 13:添加用户界面 图 14:删除用户界面 用户管理模块的代码: 添加用户 void CAddUserDlg::OnAdd() { thisUpdateData()。 21 if( this() == 0) { thisMessageBox(用户帐号为空 ,单击确定继续 ,警告 ,MB_OK。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。