完整版文档管理系统范例毕业设计论文.docx
- 文档编号:23369620
- 上传时间:2023-05-16
- 格式:DOCX
- 页数:37
- 大小:237.84KB
完整版文档管理系统范例毕业设计论文.docx
《完整版文档管理系统范例毕业设计论文.docx》由会员分享,可在线阅读,更多相关《完整版文档管理系统范例毕业设计论文.docx(37页珍藏版)》请在冰豆网上搜索。
完整版文档管理系统范例毕业设计论文
优秀论文审核通过
未经允许切勿外传
文档管理系统
学院
专业
班级
学号
姓名
指导教师
教师职称
年
月
日
文档管理系统
摘要
0引言
1系统需求分析
2总体设计
1项目规划
2系统功能结构
3设计目标
3系统设计
1开发及运行环境
2数据库设计
4主要功能模块设计
6.4.1建立工程框架
6.4.2封装数据库
6.4.3主窗口设计
6.4.4登录模块设计
6.4.5单位档案模块设计
6.4.6文档类别模块设计
6.4.7文档管理模块设计
6.4.8用户管理模块设计
6.4.9口令修改模块设计
附录A参考文献
附录B数据表
摘要
【摘要】
文档管理实际就是文件的制作、修改、传递、签定、保存、销毁、存档等一系统操作。
文档管理是企业经营管理中不可缺少的组成部分。
通过文档信息管理系统的使用,实现文档管理自动化管理的目标,为企业提供了安全、可靠、开放、高效的文档管理功能,不仅方便了文档管理的日常操作,而且必免了手工管理中的一系列错误的发生,提高了企业的办公效率和企业文件管理的综合水平。
目前,大多数文档管理系统在实现了企业各部门日常文件管理的基本功能之外,还增设了很多的新功能用以满足文档管理电子化、标准化的新要求;功能强大的档案查询模块,大大方便了管理者日常文档的查找工作,解决传统管理中的查找困难、查找耗时等问题。
使用现代化的文档管理系统满足了企业“无纸化”办公的求要,实现通过计算机对文档管理全程跟踪的目标。
【关键词】文档管理系统
0引言
文档管理系统的全面应用,克服了企业传统文档管理方法的缺点,提高管理部门的日常办公效率,增强了企业内部协同合作的能力;文档管理系统的应用,方便管理者有效管理文档的同时,大大提高了文档查找效率,进而提高了企业的综合效率。
1系统需求分析
根据市场的需求,要求系统具有以下功能:
❑处理大量的复合文档型的数据信息。
❑通过系统查看文档内容。
❑通过系统可以完成对文档一系列日常操作。
❑保证系统的安全性、可靠性。
2总体设计
2.1项目规划
文档管理系统由基本信息、文档管理、系统设置等几个功能模块组成,规划系统功能模块如下
❑基本信息
基本信息包括单位档案、文档类别2部分。
❑文档管理
文档管理包括添加文档、修改文档、删除文档、文档浏览4部分。
❑系统设置
系统设置包括用户管理、口令修改、日志管理、退出系统4部分。
2.2系统功能结构
文档系统的功能结构如图1所示。
图1文档管理功能图
2.3设计目标
本系统是根据中小企业的实际需求而开发的,完全能够实现企业对制度文档的自动化管理,通过本系统可以达到以下目标:
❑系统运行稳定,安全可靠。
❑界面设计美观,人机交互界面友好。
❑信息查询灵活、方便、快捷、准确,数据存储安全可靠。
❑操作员可以随时修改自己的口令。
❑对用户输入的数据,系统进行严格的数据检验,尽可能排除人为的错误。
❑数据保密性强,为每个用户设置相应的权限级别。
3系统设计
3.1开发及运行环境
1.硬件要求
系统开发平台:
VisualC++6.0
数据库管理系统软件:
SQLServer2000
运行平台:
WindowsxpWindows2000
3.2数据库设计
1.数据库概要说明
数据库WenDGL中包括单位表、类别表、文档表、日志表、用户表5个数据表。
图2所示的即为本系统中数据库中的数据表结构图,该数据表结构图包含系统所有数据表。
可以清晰地反应数据库信息。
图2数据库概要说明
2.主要数据表的结构
数据库中的数据表请参见附录B。
4主要功能模块设计
4.1建立工程框架
在VisualC++中建立文档管理系统的基本框架,步骤如下:
(1)单击菜单“File-->New”命令,打开“New”对话框,单击“Projects”选项卡,选择“MFCAppWizard(exe)”,输入工程名,并设置路径,如图3所示。
图3“New”对话框
(2),、单击“OK”按钮,弹出“MFCAppWizard-Step1”对话框,如图4所示。
图4“MFCAppWizard-Step1”对话框
(3)选择“Dialogbase”选项,单击“Next”按钮,在弹出的“MFCAppWizard-Step2of4”对话框中,输入对话框标题,如图5所示。
图5“MFCAppWizard-Step2of4”对话框
(4)单击“Next”按钮,在接下来弹出的对话框中默认原有的选择项,最后设置好的对话框的属性如图6所示,单击“OK”按钮,新建工程成功。
图6工程属性
4.2封装数据库
1.添加ADO连接类
本实例采用ADO来连接SQLServer数据库,在使用ADO技术时,需要导入一个ADO动态链接库msado15.dll,该动态库位于系统盘下的“ProgramFiles\CommonFiles\System\ado\”目录下。
例如,如果您的系统盘为C盘,则该文件位于“C:
\ProgramFiles\CommonFiles\System\ado\”目录。
在VisualC++中,需要使用预处理命令#import,将动态库导入到系统中,代码如下。
#import"E:
\ProgramFiles\CommonFiles\System\ado\msado15.dll"no_namespacerename("EOF","adoEOF")rename("BOF","adoBOF")
添加一个用来连接的ADO的类。
在系统菜单中选择“Insert-->NewClass”选项,打开“NewClass”窗口,选择“GenericClass”,然后输入类名,即完成了类的添加。
代码如下。
创建ADO连接类。
classADOConn
{
public:
添加一个指向Connection对象的指针
_ConnectionPtrm_pConnection;
添加一个指向Recordset对象的指针
_RecordsetPtrm_pRecordset;
public:
ADOConn();
virtual~ADOConn();
初始化--连接数据库
voidOnInitADOConn();
执行查询
_RecordsetPtr&GetRecordSet(_bstr_tbstrSQL);
执行SQL语句
BOOLExecuteSQL(_bstr_tbstrSQL);
断开数据库连接
voidExitConnect();
};
实现ADO连接类函数和程序代码如下。
voidADOConn:
:
OnInitADOConn()
{
初始化OLECOM库环境
:
:
CoInitialize(NULL);
try
{
创建connection对象
m_pConnection.CreateInstance("ADODB.Connection");
设置连接字符串
_bstr_tstrConnect="Provider=SQLOLEDB.1;IntegratedSecurity=SSPI;PersistSecurityInfo=False;InitialCatalog=WenDGL;DataSource=MRLZJ";
SERVER和UID,PWD的设置根据实际情况来设置
m_pConnection->Open(strConnect,"","",adModeUnknown);
}
捕捉异常
catch(_com_errore)
{
显示错误信息
AfxMessageBox(e.Description());
}
}
_RecordsetPtr&ADOConn:
:
GetRecordSet(_bstr_tbstrSQL)
{
try
{
连接数据库,如果connection对象为空,则重新连接数据库
if(m_pConnection==NULL)
OnInitADOConn();
创建记录集对象
m_pRecordset.CreateInstance(__uuidof(Recordset));
取得表中的记录
m_pRecordset->Open(bstrSQL,m_pConnection.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);
}
catch(_com_errore)
{
e.Description();
}
返回记录集
returnm_pRecordset;
}
BOOLADOConn:
:
ExecuteSQL(_bstr_tbstrSQL)
{
_variant_tRecordsAffected;
try
{
是否已连接数据库
if(m_pConnection==NULL)
OnInitADOConn();
connection对象的Execute方法(_bstr_tCommandText,
VARIANT*RecordsAffected,longOptions)
其中CommandText是命令字符串,通常是SQL命令
参数RecordsAffected是操作完成后所影响的行数
参数Options表示CommandText的类型,adCmdText-文本命令,adCmdTable-表名
adCmdProc-存储过程,adCmdUnknown-未知
m_pConnection->Execute(bstrSQL,NULL,adCmdText);
returntrue;
}
catch(_com_errore)
{
e.Description();
returnfalse;
}
}
voidADOConn:
:
ExitConnect()
{
关闭记录集和连接
if(m_pRecordset!
=NULL)
m_pRecordset->Close();
m_pConnection->Close();
释放环境
:
:
CoUninitialize();
}
4.3主窗口设计
1.菜单资源设计
主窗口菜单设置的主要步骤如下:
(1)单击“ResourceView”选项卡,右键单击“WordGLXTResources”选项,在快捷菜单中选择“Insert”菜单项,弹出“InsertResource”窗口,如图7所示。
图7“InsertResource”窗口
(2)选择“Menu”文件夹,单击“New”按钮,在WordGLXTResources目录下新增一个Menu目录项,菜单ID为IDR_MENU1。
然后,双击此菜单,对此菜单项的属性进行设计,如图8所示。
图8“InsertResource”窗口
2.客户区设计
(1)打开对话框IDD_WORDGLXT_DIALOG属性窗口,在对话框中添加1个TreeControl和1个RichEdit控件,右键单击TreeControl控件,将HasbuttonsHaslinesClientedgeLinesatroot选中,属性设置如表1所示。
表1属性表
ID
MemberVariables
Type
Member
IDC_TREE1
CtrrCtrl
m_tree
ID_RICHEDITI
CRichEditCtrl
m_tichedit
(2)预先在下边留出状态栏,声明Ctime、CstatusBarCtrl类对象实体,程序代码如下。
CTimet;
CStatusBarCtrlm_StatusBar;
在程序中,引用外部变量。
externCWordGLXTApptheApp;
在头文件中定义程序变量,代码如下。
CStringstr;
CStringstrWord;
CStringstrText;
voidAddtoTree(HTREEITEMm_node);
HTREEITEMarrays[10],brrays[20],(IDI_ROOTICON));
m_treeImageList.Add(theApp.LoadIcon(IDI_CHILDICON1));
m_treeImageList.Add(theApp.LoadIcon(IDI_CHILDICON2));
m_treeImageList.Add(theApp.LoadIcon(IDI_CHILDICON4));
m_tree.SetImageList(&m_treeImageList,LVSIL_NORMAL);
m_root=m_tree.InsertItem("基本信息管理",0,0);
AddtoTree(m_root);
m_tree.Expand(m_root,TVE_EXPAND);
m_StatusBar.EnableAutomation();
m_StatusBar.SetParts(4,&width[0]);
m_StatusBar.SetText("长春市明日科技有限公司",0,0);
CStringStatusText;
StatusText.Format("当前用户:
%s",user.GetUsername());
m_StatusBar.SetText(StatusText,0,1);
t=CTime:
:
GetCurrentTime();
CStringstrdate;
strdate.Format("当前日期:
%s",t.Format("%y-%m-%d"));
m_StatusBar.SetText(strdate,0,2);
returnTRUE;returnTRUEunlessyousetthefocustoacontrol
(4)定义AddtoTree函数,将各表中数据按层次结构添加到Tree控件中,代码如下。
voidCWordGLXTDlg:
:
AddtoTree(HTREEITEMm_node)
{
inti,j;
for(i=0;i { arrays[i]=m_tree.InsertItem(dwb.a_DWmc.GetAt(i),1,1,m_node); for(j=0;j { if(atoi(dwb.a_DWbh.GetAt(i))==atoi(mlb.a_DWbh.GetAt(j))) { brrays[j]=m_tree.InsertItem(mlb.a_LBmc.GetAt(j),2,2,arrays[i]); } } } for(i=0;i { for(j=0;j { if(atoi(xxb.a_DWbh.GetAt(i))==atoi(mlb.a_DWbh.GetAt(j))&&atoi(xxb.a_LBbh.GetAt(i))==atoi(mlb.a_LBbh.GetAt(j))) { =""; 读取当前节点 temp=m_tree.GetSelectedItem(); 将当前节点子节点付给temp temp=m_tree.GetChildItem(temp); if(temp! =NULL) { while(temp! =NULL) { 取出temp中的文本 strText=m_tree.GetItemText(temp); strWjian+=strText+"\n"; RichEdit控件显示数据 m_richedit.SetWindowText(strWjian); 将temp的兄弟节点付给temp temp=m_tree.GetNextItem(temp,TVGN_NEXT); } } else { temp=m_tree.GetSelectedItem(); for(inti=0;i { if(temp==app; 初始化连接 app.CreateDispatch("word.Application"); Documentsdoc; CComVarianta(_T(strWord)),b(false),c(0),d(true),aa(0),bb (1); _Documentdoc1; doc.AttachDispatch(app.GetDocuments()); doc1.AttachDispatch(doc.Add(&a,&b,&c,&d)); Rangerange; 求出文档的所选区域 range=doc1.GetContent();取出文件内容 str=range.GetText(); m_richedit.SetWindowText(str); 关闭 app.Quit(&b,&c,&c); 释放环境 app.ReleaseDispatch(); } *pResult=0; } (6)在Menu组合框中选择IDR_MENU1。 单击工具栏中的“运行”按钮,看到系统的主界面如图9所示。 图9系统运行界面 (7)打开ClassWizard窗口,为菜单项ID_MENULIULWD添加代码,实现文档浏览功能。 voidCWordGLXTDlg: : OnMenuliulwd() { TODO: Addyourcommand"; m_richedit.SetWindowText(strs); } } (8)为菜单项ID_MENURZGL添加代码,实现日志管理功能。 voidCWordGLXTDlg: : OnMenurzgl() { TODO: Addyourcommandm_AdoConn; m_AdoConn.OnInitADOConn(); CStringsql,sqlzd="用户名\t登录时间\t动作\n"; sql.Format("select*fromRizhib"); m_AdoConn.GetRecordSet((_bstr_t)sql); while(m_AdoConn.m_pRecordset->adoEOF==0) { sqlzd+=(char*)(_bstr_t)m_AdoConn.m_pRecordset->GetCollect("name"); sqlzd+="\t"; sqlzd+=(char*)(_bstr_t)m_AdoConn.m_pRecordset->GetCollect("DLsj"); sqlzd+="\t"; sqlzd+=(char*)(_bstr_t)m_AdoConn.m_pRecordset->GetCollect("dz"); sqlzd+="\n"; m_AdoConn.m_pRecordset->MoveNext(); m_richedit.SetWindowText(sqlzd); } m_AdoConn.ExitConnect(); } (9)为菜单项ID_EXIT添加代码,程序调用OnOK()函数关闭对话框,退出系统。 voidCWordGLXTDlg: : OnExit() { TODO: Addyourcommand”文本框内容为“用户登录”。 (2)从Controls面板上向Dialog资源中添加2个Static、2个Edit,更改资源的属性,并为资源设置相对应的变量,如表2所示。 表2资源设置 ID Properties MemberVariables Type Member IDC_EDIT1 默认 CString m_name IDC_EDIT2 PassWordTRUE CString m_pwd IDOK Caption登录 IDCANCEL Caption退出 3.代码分析 (1)引用函数外部的变量。 externCUsersuser; (2)在头文件定义程序变量。 CStringjb; CRizhibzhi; CTimet; (3)响应“登录”按钮的程序代码如下。 voidCDialogin: : OnOK() { TODO: Addextravalidation; } 如果读取数据和用户输入不同,则返回 if(user.HaveCzy(m_name,m_pwd)! =1) { MessageBox("用户名或密码错误! "); return; } user.SetUsername(m_name); 判断用户级别 jb="1"; if(user.HaveCzyjb(m_name,m_pwd,jb)==1) { user.SetJB(jb); } else { user.SetJB("0"); } 读取当前系统时间 t=CTime: : GetCurrentTime(); 将登录动作记录到日志表 zhi.SetDLsj(t.Format("%y-%m-%d")); zhi.SetName(user.GetUsername()); zhi.SetDZ("登录"); zhi.sql_insert(); CDialog: : OnOK(); } 下面在主对话框中添加代码,使对话框在启动时首先打开登录对话框。 在主窗口选择OnInitDialog函数,该函数将打开登录对话框,如果用户不是通过单击“登录”按钮关闭对话框,则调用OnOK函数关闭主对话框,具体代码如下。 BOOLCWordGLXTDlg: : OnInitDialog() { CDialog: : OnInitDialog(); ... TODO: Addextrainitializationgin; if(gin.DoModal()! =IDOK) OnOK(); ...... returnTRUE;returnTRUEunlessyousetthefocustoacontrol } 4.7文档管理模块设计 1.实现目标 用于查看、添加、修改、删除文档
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 完整版 文档 管理 系统 范例 毕业设计 论文