人事考勤管理系统培训课程Word文件下载.docx
- 文档编号:19384824
- 上传时间:2023-01-05
- 格式:DOCX
- 页数:52
- 大小:511.90KB
人事考勤管理系统培训课程Word文件下载.docx
《人事考勤管理系统培训课程Word文件下载.docx》由会员分享,可在线阅读,更多相关《人事考勤管理系统培训课程Word文件下载.docx(52页珍藏版)》请在冰豆网上搜索。
c)人员信息管理
d)考勤信息录入
e)考勤信息汇总。
2)系统功能描述
用户需要输入用户名和密码进入人事考勤管理系统,对各部门、员工的基本信息进行维护和管理。
在考勤管理模块中录入员工当天的考勤信息,同时可对年、月、员工进行查询。
此外,还可以通过考勤汇总查询模块对员工某月的考勤记录进行汇总,计算出员工月工作天数、早退、迟到的天数。
三、系统设计
1)系统目标
人事考勤管理系统以实现员工日常出勤信息管理为设计目标,加以强大的数据库管理功能,可以极提高人事部门的日常工作效率。
本系统在设计时满足以下几点:
a)采用人机对话的操作方式,信息查询灵活、方便、快捷、准确,数据存储安全可靠。
b)对考勤信息的操作简单,可以方便地进行添加、修改、和删除。
c)可以录入员工信息、部门信息。
d)对员工的考勤信息按月汇总计算。
e)对用户输入的数据,系统进行严格的数据检验,尽可能排除人为错误。
f)系统最大限度地实现了易维护性和易操作性。
g)系统运行稳定、安全可靠。
2)系统功能结构
人事考勤管理系统的功能结构如图所示:
3)业务流图
人事考勤管理系统业务流程图如图:
4)系统预览:
人事考勤管理系统由多个功能模块组成,下面仅列出一些典型的功能模块,其他模块以后陆续列出:
a)部门管理模块如图:
主要管理各部门之间的结构信息
b)用户管理模块如图:
用于用户的一些操作管理
c)人员信息管理如图:
主要用于维护员工的基本信息
d)考勤管理模块如图:
用于记录人事考勤的信息
e)考勤汇总查询如图:
对员工的考勤信息进行汇总统计
5)数据库设计
A.数据库分析
人事考勤系统采用SQLServer2008数据库,数据库名称为tb_person在数据库中建立四个表存储不同的信息,如图:
B.数据库逻辑设计
a)管理员信息表(tab_user),用于保存管理员的信息,如图:
b)部门信息表(tab_Dept)用于记录部门的信息,如图:
C)考勤信息表(tab_check)用于记录考勤信息
c)员工信息表(tab_Employees)保存公司员工信息,如图:
四、公共类设计
本系统采用ADO连接数据库。
为了能够方便的使用ADO建立数据库连接并进行相应的数据操作,在公共类中对系统中是使用的ADO操作进行了封装。
在系统中建立了ADO的两个公共类CADOConnection和CADODataSet,这两个类定义在ADO.h头文件中,实现在ADO.cpp文件中。
A.CADOConnection类
CADOConnection类是用来连接数据库的,实现了对_Connection接口的封装。
CADOConnection类在头文件中的定义如下:
#import"
C:
\ProgramFiles\CommonFiles\System\ado\msado15.dll"
no_namespacerename("
EOF"
"
adoEOF"
)
classCADOConnection
{
private:
staticvoidInitADO();
//初始化ADO
staticvoidUnInitADO();
protected:
_ConnectionPtrm_Connection;
//指针接口
public:
BOOLIsOpen();
//判断是否与数据库连接
_ConnectionPtrGetConnection();
//获取连接接口
CStringGetSQLConStr();
//获取SQL连接字符串
BOOLOpen(CStringConStr);
//建立数据库连接
CADOConnection();
virtual~CADOConnection();
};
CADOConnection类的实现代码如下:
CADOConnection*GetConnection()//GetConnection函数是一个全局函数,用于返回全局数据库连接对象的的指针
return&
g_Connection;
}
CADOConnection:
:
CADOConnection()//CADOConnection方法是构造方法,用于初始化OLE和创建_Connection接口指针
InitADO();
m_Connection.CreateInstance("
ADODB.Connection"
);
~CADOConnection()//~CADOConnection方法是构造方法,用于取消OLE的初始化和释放_Connection接口指针
if(IsOpen())
m_Connection->
Close();
m_Connection=NULL;
UnInitADO();
voidCADOConnection:
InitADO()//InitADO是一个静态方法,用于初始化OLE
if(ConCount++==0)
CoInitialize(NULL);
UnInitADO()//UnInitADO是一个静态方法,用于取消初始化OLE
if(--ConCount==0)
CoUninitialize();
BOOLCADOConnection:
Open(CStringConStr)//通过指定的数据库连接字符串于SQL数据库建立连接
m_Connection->
Open((_bstr_t)ConStr,"
"
adModeUnknown);
returnIsOpen();
CStringCADOConnection:
GetSQLConStr()//生成数据库连接需要的字符串
CStringStr;
Str.Format("
Provider=SQLOLEDB.1;
IntegratedSecurity=SSPI;
PersistSecurityInfo=False;
InitialCatalog=tb_person;
DataSource=LONGFEI-PC\\SQLEXPRESS"
returnStr;
_ConnectionPtrCADOConnection:
GetConnection()//该方法用于返回_Connection接口指针
returnm_Connection;
IsOpen()//判断当前数据库连接对象与数据库的连接状态
longState;
get_State(&
State);
if(State==adStateOpen)
returntrue;
returnfalse;
CADODataSet类的定义如下:
classCADODataSet
_RecordsetPtrm_DataSet;
//数据集接口指针
CADOConnection*m_Connection;
//数据库连接对象
BOOLOpen(CStringSQLStr,intLockType);
//打开记录集
voidDelete();
//记录删除
intGetRecordNo();
//获取记录集行号
voidmove(intnIndex);
//移动记录指针
voidSave();
//保存对记录集的修改
voidSetFieldValue(CStringFieldName,_variant_tValue);
//设置字段的值
voidAddNew();
//添加新纪录
BOOLNext();
//记录集指针指向下一个记录
FieldsPtrGetFields();
//获取记录集字段集合
intGetRecordCount();
//获取记录集中记录数量
voidSetConnection(CADOConnection*pCon);
//设置记录集的数据库连接对象
BOOLOpen(CStringSQLStr);
CADODataSet();
virtual~CADODataSet();
CADODataSet类的实现如下:
CADODataSet:
CADODataSet()//该方法为记录集实现类的构造方法,在该方法中实现记录集接口对象的创建
m_DataSet.CreateInstance("
ADODB.Recordset"
CADODataSet:
~CADODataSet()//实现记录集的关闭与接口的释放
m_DataSet->
m_DataSet=NULL;
voidCADODataSet:
SetConnection(CADOConnection*pCon)//设置记录集所连接的数据库连接类的对象
m_Connection=pCon;
intCADODataSet:
GetRecordCount()//获取记录集中数据的数量
returnm_DataSet->
GetRecordCount();
else
return0;
BOOLCADODataSet:
Open(CStringSQLStr)//打开数据集
//*/
m_DataSet->
Open(_bstr_t(SQLStr),
_variant_t((IDispatch*)g_Connection.GetConnection(),true),
adOpenKeyset,adLockOptimistic,adCmdText);
IsOpen()//判断数据集是否处于打开状态
FieldsPtrCADODataSet:
GetFields()//用来获取记录集中字段的集合
returnm_DataSet->
GetFields();
Next()//记录集指针下移一位
if(m_DataSet->
adoEOF)
returnfalse;
MoveNext();
returntrue;
AddNew()
AddNew();
SetFieldValue(CStringFieldName,_variant_tValue)//想记录集中指定的字段赋值
PutCollect((_bstr_t)FieldName,Value);
Save()//保存记录集数据所做的修改
Update();
move(intnIndex)//将记录集的当前指针移动到指定的索引位置
MoveFirst();
Move(nIndex);
GetRecordNo()//获取记录集中的当前行号
AbsolutePosition;
Delete()//删除记录集中的当前行
Delete(adAffectCurrent);
Open(CStringSQLStr,intLockType)
adOpenKeyset,(LockTypeEnum)LockType,adCmdText);
五、主题窗设计
A.主题窗由菜单和图片组成,如图:
B.主题窗设计步骤:
a.启动visualc++,选择File/New命令,打开New对话框
b.在左侧选择MFCAppWizard(exe)选项,在Projectname编辑框中输入工程名称,在location编辑框中设置保存工程的路径,然后单击OK按钮,打开MFCAppWizard对话框,选择对话框编程,打击fish
c.像工程中导入位图,菜单资源(具体操作在最后有补充)
六、用户登录模块设计
A.概述,登录界面是每个管理系统应该具备的,本系统的登录模块如图:
B.技术分析
窗体应在主题窗创建之前并显示,在登录窗体创建的同时应该建立数据库连接,具体操作如下:
BOOLbCon=、GetConnection()->
Open(GetConnection()->
GetSQLConStr());
CLoginDialoglogindlg;
if(logindlg.DoModal()!
=IDOK)
returnfalse;
:
CoInitialize(NULL);
CPersonDlgdlg;
C.实现过程
a.创建一个对话框
b.向对话框中添加两个静态文本控件、一个编辑框控件、和两个按钮控件。
分别设置两个静态文本控件的Caption属性为“用户名”和“密码”设置编辑框控件类型为password;
分别设置连个按钮为“确定”和“取消”。
C.在窗体初始化方法中创建用户表的数据,并将用户添加到列表框控件中。
代码如下:
BOOLCLoginDialog:
OnInitDialog()
CDialog:
OnInitDialog();
m_DataSet.SetConnection(GetConnection());
m_DataSet.Open("
Select*FromTab_User"
intcount=m_DataSet.GetRecordCount();
for(inti=0;
i<
count;
i++)
{
m_UserList.AddString((_bstr_t)m_DataSet.GetFields()->
Item[L"
UserName"
]->
Value);
m_DataSet.Next();
}
m_UserList.SetCurSel(0);
returnTRUE;
//returnTRUEunlessyousetthefocustoacontrol
//EXCEPTION:
OCXPropertyPagesshouldreturnFALSE
d.确定按钮事件代码如下:
voidCLoginDialog:
OnLogin()
CStringsql,user,pass;
m_UserList.GetWindowText(user);
m_PassWord.GetWindowText(pass);
sql.Format("
Select*Fromtab_userWhereUserName='
%s'
andPassWord='
user,pass);
m_DataSet.Open(sql);
if(m_DataSet.GetRecordCount()==1)
SetUserName(user);
this->
OnOK();
AfxMessageBox("
用户名或密码不正确!
七、用户管理模块
A.概况:
能实现添加,修改,删除等操作如图:
B.实现过程:
a.创建一个对话框
b.向对话框中添加相应的控件
c.给对话框添加对话框类
d.给类添加函数及成员变量
e.给控件关联变量
f.编写函数
C.实现代码:
a.定义UpdateGrid方法用来更新列表视图中的信息代码如下:
voidCUserManage:
UpdateGrid()
m_DataSet.Open("
Select*Fromtab_User"
m_grid.DeleteAllItems();
for(inti=0;
i<
m_DataSet.GetRecordCount();
{
m_grid.InsertItem(i,(_bstr_t)m_DataSet.GetFields()->
intno=m_DataSet.GetRecordNo();
m_grid.SetItemData(i,no);
m_DataSet.Next();
}
}
b.添加按钮代码如下:
voidCUserManage:
OnAppend()
CUserEdituseredit;
if(useredit.DoModal()==IDOK)
m_DataSet.AddNew();
m_DataSet.SetFieldValue("
(_bstr_t)useredit.name);
m_DataSet.Save();
UpdateGrid();
c.删除按钮代码:
voidCUserManage:
OnDelete()
if(MessageBox("
是否删除此记录!
提示"
MB_YESNO|MB_ICONWARNING)==IDYES)
intno=m_grid.GetItemData(m_grid.GetSelectionMark());
m_DataSet.move(no-1);
m_DataSet.Delete();
m_DataSet.Save();
UpdateGrid();
d.修改按钮代码:
OnEdit()
CUserEdituseredit;
intno=m_grid.GetItemData(m_grid.GetSelectionMark());
m_DataSet.move(no-1);
useredit.name=(char*)(_bstr_t)m_DataSet.GetFields()->
Value;
if(useredit.DoModal()==IDOK)
m_DataSet.SetFieldValue("
八、部门管理模块设计
A.概述:
该模块记录了部门间的的层次结构和部门信息,一般使用树控件实现,如图:
B.实现过程:
a.创建一个对话框
b.向对话框中添加相应的控件
c.给对话框添加对话框类
d.给类添加函数及成员变量
e.给控件关联变量
f.编写函数
C.相关代码如下:
BOOLCDeptManage:
OnInitDialog()//初始化函数
CDialog:
m_DataSet.SetConnection(:
GetConnection());
UpdateDept();
returnTRUE;
将部门信息一次性读入树控件中。
代码如下:
voidCDeptManage:
GetNode(HTREEITEMpNode,intnPid)
HTREEITEMnode;
CADODataSetDataSet;
DataSet.SetConnection(:
CStringstr;
str.Format("
Select
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 人事 考勤 管理 系统 培训 课程
![提示](https://static.bdocx.com/images/bang_tan.gif)