员工工资管理系统.docx

上传人:b****4 文档编号:5962484 上传时间:2023-05-09 格式:DOCX 页数:23 大小:678.43KB
下载 相关 举报
员工工资管理系统.docx_第1页
第1页 / 共23页
员工工资管理系统.docx_第2页
第2页 / 共23页
员工工资管理系统.docx_第3页
第3页 / 共23页
员工工资管理系统.docx_第4页
第4页 / 共23页
员工工资管理系统.docx_第5页
第5页 / 共23页
员工工资管理系统.docx_第6页
第6页 / 共23页
员工工资管理系统.docx_第7页
第7页 / 共23页
员工工资管理系统.docx_第8页
第8页 / 共23页
员工工资管理系统.docx_第9页
第9页 / 共23页
员工工资管理系统.docx_第10页
第10页 / 共23页
员工工资管理系统.docx_第11页
第11页 / 共23页
员工工资管理系统.docx_第12页
第12页 / 共23页
员工工资管理系统.docx_第13页
第13页 / 共23页
员工工资管理系统.docx_第14页
第14页 / 共23页
员工工资管理系统.docx_第15页
第15页 / 共23页
员工工资管理系统.docx_第16页
第16页 / 共23页
员工工资管理系统.docx_第17页
第17页 / 共23页
员工工资管理系统.docx_第18页
第18页 / 共23页
员工工资管理系统.docx_第19页
第19页 / 共23页
员工工资管理系统.docx_第20页
第20页 / 共23页
亲,该文档总共23页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

员工工资管理系统.docx

《员工工资管理系统.docx》由会员分享,可在线阅读,更多相关《员工工资管理系统.docx(23页珍藏版)》请在冰点文库上搜索。

员工工资管理系统.docx

员工工资管理系统

员工工资管理系统

1课程设计的目的

员工工资管理问题,一直是企业内的一个大问题。

工资问题的有效解决将有利于管理者更好的管理企业,也有利于员工安心工作,所以对于一个企事业单位来说有一个好的工资管理系统是必不可少的。

工资管理系统应包括员工的基本工资的浏览查询等功能。

并且有一个方便易操作的界面对管理者来说是很必要的。

本系统基于这些原因以精简的界面和方便易操作的设计思想设计了该小型的员工工资管理系统。

本系统主要解决一般的企事单位内的工资管理问题,建立一个透明、相容、一致、易查的工资管理信息系统。

本系统开发平台为WindowsXP,程序设计设计语言采用VisualC++,数据库采用McrosoftAccess,程序运行平台为Windows2000/XP/7。

本系统主要实现对员工工资的查询、添加、修改、删除和统计功能,通过对各个模块的设计来实现不同的功能。

程序通过调试运行,初步实现了设计目标,并且经过适当完善后,将可以应用在商业中解决实际问题。

员工工资管理系统将达到以下几个目的:

(1)提供更好的服务

员工工资管理系统可以迅速、有效地收集各种信息,加强内部的信息沟通。

各种用户可以直接从系统中获得自己所需的各种信息,并根据相关的信息做出决策和相应的行动方案。

(2)降低成本

员工工资管理系统通过减少员工工资管理工作的操作成本、降低员工流动率以及减少通信费用等达到降低企业运作成本的目的。

 

2设计方案及论证

2.1系统需求分析

要实现一个软件系统,首先应该进行需求分析,这样才能令设计出的软件满足用户的各项功能。

下面就对员工工资管理系统的设计进行需求分析。

首先,因为工资是面向特定的某些对象的,所以人员进入系统应该进行身份验证。

管理人员进入工资系统后,可以查看和编辑员工的工资,由于员工有很多,所以系统必须记录员工一些一般信息。

至于工资,一般公司的工资是由很多部分组成,比如,基本工资、绩效、奖金、补助等等,还要扣除保险、水电等一些费用,这些都要让员工自己清楚的看到,所以要一一体现出来。

最后一个工资计算体现出应发工资减掉扣除的工资的过程,最后给出实际发的工资。

2.3系统的技术可行性

(1)技术可行性

系统的性质为管理软件,因而数据库的设计与操纵是系统设计的核心。

我在半年时间学习了数据库的有关知识,具备一定的系统分析与设计能力,基本熟悉数据库的设计与操纵;因而该系统的实现在技术上是可行的。

(2)人员可能性

我有上机实验经验,目前时间充足,可以完成开发任务。

我有深厚的文字功底,可以参与用户文档的制作、内部文档整理、后期测试等任务。

2.4总体设计

程序设计设计语言采用VisualC++,数据库采用McrosoftAccess,设计的员工工资管理系统,用户由系统的登录见面登录系统,输入密码,进入该员工工资管理系统的主界面,系统包括主界面、编辑界面、工资计算三个个部分,用户可根据自己的需求选择员工进行编辑和查询工资,结束后可退出该系统。

[1]根据总体分析,得到系统的功能模块。

如图1所示:

 

员工工资管理系统

用户登录界面

退出

用户登录

主界面

 

修改

删除

添加

 

工资计算

退出

确定

统计结果

 

图1系统模块图

2.5 数据库设计

(1)实体E-R图

这一设计阶段是在需求分析的基础上,设计出能满足用户需求的各种实体,以及它们之间的关系,为后面的逻辑结构设计打下基础。

E-R图为实体-联系图,提供了表示实体型、属性和联系的方法,用来描述现实世界的概念模型。

将现实世界的实体,属性和联系转化为抽象的概括的概念模型。

构成E-R图的基本要素是实体型、属性和联系。

员工信息的实体-属性图,如图2所示。

 

图2员工工资实体-属性图

选择“文件”→“新建”菜单,在右边任务窗格中单击“空数据库”,弹出一个对话框,指定数据库名员工工资管理系统.mdb。

单击“创建”按钮。

就创建了数据库,,该课程一共需要2张表,分别存放相应的数据信息,其中工资数据表是关键表,用于存放基础数据信息。

它涉及职员信息和工资情况的表;另一张表用来存放登录的用户名和密码用来登录的时候用。

[2]

(2)员工的工资数据库表

员工的工资数据库表的设计界面如图3所示

图3工资数据表

 

员工工资数据库表的数据结构如表1所示

表1员工工资数据库表

字段名称

字段类型

字段大小

员工编号

字符型

8

部门编号

字符型

8

工龄

数值型

1000

姓名

字符型

10

职称

字符型

12

基础工资

数值型

10

奖金

数值型

10

车补

数值型

10

饭补

数值型

10

其他补助

数值型

10

(3)员工的登录表

员工的登录对话框记录着用户需要的登录的用户名和密码,表结构如图3所示:

表2用户的登录表

字段名称

字段类型

字段大小

Username

字符型

10

Password

数值型

6

员工登录对话框表的设计界面如图4所示

图4员工的登录数据表

(4)ODBC数据源

Windows中的ODBC组件是出现在系统的“控制面板”管理工具中。

双击ODBC图标,进入ODBC数据源管理器。

运行ODBC组件,进入ODBC数据源管理器。

单击“添加”按钮,弹出有一驱动程序列表的“创建新数据源”对话框,在该对话框中选择MicrosoftAccessDriver。

单击“完成”按钮,进入指定驱动程序的安装对话框,数据源名称设为“员工工资管理系统”,单击“选择”按钮将本实验中的数据库。

单击“确定”按钮,刚才创建的用户数据源被添加在“ODBC数据源管理器”的“用户数据源”列表中。

2.6 具体界面设计

打开计算机,启动VisualC++6.0系统创建一个单文档应用程序,在工程名称框中输入Win32应用程序项目名称员工工资管理系统。

(1)登录界面的设计

系统登录表单主要任务是输入密码,其作用是保护系统数据的安全性。

只有合法用户才可以使用本系统。

当系统运行时,首先打开登录窗体,只有有权限的用户才能进入系统。

在【用户名】文本框中输入后按Tab键,程序将自动查询用户名并跳到【密码】文本框中,输入密码后按Enter键即可进入系统,登陆界面的实现如图5示:

[3][4]

图5登陆界面

具体的步骤如下:

①将本项目工作区窗口切换到ResourceView页面插入一个对话框资源,打开属性对话框,设置字体设置,向对话框中添加两个编辑框:

“请输入用户名”(IDC_EDIT_USERNAME)、“请输入密码”(IDC_EDIT_USERPASSWD)为登陆界面对话框资源模板添加控件如表3所示。

表3登陆界面控件属性设置

添加的控件

ID号

标题

静态文本框

IDC_STATIC

用户名:

静态文本框

IDC_STATIC

密码:

编辑框

IDC_EDIT_USERNAME

编辑框

IDC_EDIT_USERPASSWD

按钮

IDC_BUTTON_OK

确定

按钮

IDC_BUTTON_CANCEL

取消

②双击对话框模板或按【Ctrl+W】快捷键为对话框资源建立类向导。

为该对话框类取个名字:

CDlg_login。

③左键双击IDC_EDIT_USERNAME(或者单击后,点击右边的addvariables),为IDC_EDIT1增加一个对应在类中的名字:

m_login_name。

点击’确定’。

同样也对IDC_EDIT_USERPASSWD也取一个名字:

m_login_pwd。

④【Ctrl+W】快捷键,进入类向导界面,为IDC_BUTTON_OK和IDC_BUTTON_CANCEL添加代码voidCdenglu:

:

OnOK()

{

//TODO:

Addextravalidationhere

UpdateData();

m_username.TrimLeft();

if(m_username.IsEmpty())

{

MessageBox("请输入用户名!

");

return;

}

CDatabasedatabase;

database.OpenEx(_T("DSN=工资管理数据库"),CDatabase:

:

noOdbcDialog);

CRecordsetrecset(&database);

CStringmSqlStr;

mSqlStr="SELECT*FROM登录对话框WHEREusername='";

mSqlStr=mSqlStr+m_username;

mSqlStr=mSqlStr+"'ANDpassword='";

mSqlStr=mSqlStr+m_password;/

mSqlStr=mSqlStr+"'";

if(!

recset.Open(CRecordset:

:

forwardOnly,mSqlStr,CRecordset:

:

readOnly))

{

AfxMessageBox("登陆界面表打开失败!

");

return;

}

if(!

recset.IsEOF())

{

//Openallfunctionforuser

AfxMessageBox("登录成功");

}

else

{AfxMessageBox("登录失败!

");

return;

}

}

voidCdenglu:

:

OnCancel()

{//TODO:

Addextracleanuphere

CDialog:

:

OnCancel();

exit(0);

⑤在mainFrm.cpp文件的前面添加:

#include"dlg_login.h"。

在运行过程中,点击OK后,主窗体会显示出来,并没有在用户名以及密码框中输入。

要求输入正确的用户名和密码,主窗体才能显示出来。

增加一个成员函数,点击OK。

(2)系统编辑界面的设计

进入主界面,主要是编辑员工的基本信息,可以对这些基本信息进行添加删除修改等一些操作,具体的设计界面如图6所示

图6用户主界面

(3)员工工资管理系统表单对话框资源模板添加部分控件如表4所示。

表4表单对话框控件及属性

添加的控件

ID号

标题

编辑框

IDC_QUESTION

编辑框

IDC_ANSWER

编辑框

IDC_REANAME

编辑框

IDC_IDNUM

编辑框

IDC_AGE

编辑框

IDC_PHINE

编辑框

IDC_QUESTION

静态文本框

IDC_STATIC

年份

静态文本框

IDC_STATIC

月份

静态文本框

IDC_STATIC

员工编号

静态文本框

IDC_STATIC

员工姓名

静态文本框

IDC_STATIC

员工部门

静态文本框

IDC_STATIC

基本工资

静态文本框

IDC_STATIC

业绩工资

静态文本框

IDC_STATIC

津贴

静态文本框

IDC_STATIC

各种补助

静态文本框

IDC_STATIC

水电费

组框

IDC_STATIC

编辑模块

组框

IDC_STATIC

查询模块

按钮

IDC_BUTTON

添加

按钮

IDC_BUTTON

删除

按钮

IDC_BUTTON

修改

按钮

IDC_BUTTON

查询

①双击对话框模板或按【Ctrl+W】快捷键为对话框资源建立类向导。

在弹出MFCClassWizard对话框,切换到MemberVaribles选项卡,在Classname框中为上述控件添加相关联的数据成员变量。

②具体代码如下

//CMyViewdatabasesupport

CRecordset*CMyView:

:

OnGetRecordset()

{

returnm_pSet;

}

//CMyViewmessagehandlers

BOOLCMyView:

:

OnCommand(WPARAMwParam,LPARAMlParam)

{

//TODO:

Addyourspecializedcodehereand/orcallthebaseclass

CStringstr;

CMainFrame*pFrame=(CMainFrame*)AfxGetApp()->m_pMainWnd;

CStatusBar*pStatus=&pFrame->m_wndStatusBar;

if(pStatus)

{

CRecordsetStatusrStatus;

m_pSet->GetStatus(rStatus);

str.Format("当前记录:

%d/总记录:

%d",1+rStatus.m_lCurrentRecord,m_pSet->GetRecordCount());

pStatus->SetPaneText(1,str);

}

returnCRecordView:

:

OnCommand(wParam,lParam);

}voidCMyView:

:

OnChaxunzgbh()

{

//TODO:

Addyourcontrolnotificationhandlercodehere

UpdateData();

m_ZGBH.TrimLeft();

m_ZGBH.TrimRight();

if(m_ZGBH.IsEmpty())

{

MessageBox("要查询的员工编号不能为空");

return;

}

m_pSet->Close();

m_pSet->m_strFilter.Format("ZGBH='%S'",m_ZGBH);//查询字符串m_ZGBH

m_pSet->m_strSort="YF";

m_pSet->Open();

if(!

m_pSet->IsEOF())

UpdateData(FALSE);

else

MessageBox("没有查到你要找的纪录!

");

m_pSet->Close();

}

voidCMyView:

:

OnButtonAdd()

{

//TODO:

Addyourcontrolnotificationhandlercodehere

CEditDlgdlg;

if(dlg.DoModal()==IDOK)

{

m_pSet->AddNew();/

m_pSet->m_NF=dlg.m_intNF;

m_pSet->m_YF=dlg.m_intYF;

m_pSet->m_ZGBH=dlg.m_strZGBH;

m_pSet->m_ZGXM=dlg.m_strZGXM;

m_pSet->m_ZGBM=dlg.m_strZGBM;

m_pSet->m_JBGZ=dlg.m_longJBGZ;

m_pSet->m_YJGZ=dlg.m_longYJGZ;

m_pSet->m_JJ=dlg.m_longJJ;

m_pSet->m_JT=dlg.m_longJT;

m_pSet->m_GZBZ=dlg.m_longGZBZ;

m_pSet->m_SDF=dlg.m_longSDF;

m_pSet->m_FZ=dlg.m_longFZ;

m_pSet->m_HF=dlg.m_longHF;

m_pSet->m_CX=dlg.m_longCX;

m_pSet->m_BX=dlg.m_longBX;

m_pSet->Update();

m_pSet->Requery();

}

}

voidCMyView:

:

OnButtonDelete()

{

//TODO:

Addyourcontrolnotificationhandlercodehere

CRecordsetStatusstatus;

m_pSet->GetStatus(status);

m_pSet->Delete();

if(status.m_lCurrentRecord==0)

m_pSet->MoveNext();

else

m_pSet->MoveFirst();

UpdateData(FALSE);

}

voidCMyView:

:

OnButtonEdit()

{

//TODO:

Addyourcontrolnotificationhandlercodehere

CEditDlgdlg;

dlg.m_intNF=m_pSet->m_NF;

dlg.m_intYF=m_pSet->m_YF;

dlg.m_strZGBH=m_pSet->m_ZGBH;

dlg.m_strZGXM=m_pSet->m_ZGXM;

dlg.m_strZGBM=m_pSet->m_ZGBM;

dlg.m_longJBGZ=m_pSet->m_JBGZ;

dlg.m_longYJGZ=m_pSet->m_YJGZ;

dlg.m_longJJ=m_pSet->m_JJ;

dlg.m_longJT=m_pSet->m_JT;

dlg.m_longGZBZ=m_pSet->m_GZBZ;

dlg.m_longSDF=m_pSet->m_SDF;

dlg.m_longFZ=m_pSet->m_FZ;

dlg.m_longHF=m_pSet->m_HF;

dlg.m_longCX=m_pSet->m_CX;

dlg.m_longBX=m_pSet->m_BX;

//IDOK

if(dlg.DoModal()==IDOK)

{m_pSet->Edit();/

m_pSet->m_NF=dlg.m_intNF;

m_pSet->m_YF=dlg.m_intYF;

m_pSet->m_ZGBH=dlg.m_strZGBH;

m_pSet->m_ZGXM=dlg.m_strZGXM;

m_pSet->m_ZGBM=dlg.m_strZGBM;

m_pSet->m_JBGZ=dlg.m_longJBGZ;

m_pSet->m_YJGZ=dlg.m_longYJGZ;

m_pSet->m_JJ=dlg.m_longJJ;

m_pSet->m_JT=dlg.m_longJT;

m_pSet->m_GZBZ=dlg.m_longGZBZ;

m_pSet->m_SDF=dlg.m_longSDF;

m_pSet->m_FZ=dlg.m_longFZ;

m_pSet->m_HF=dlg.m_longHF;

m_pSet->m_CX=dlg.m_longCX;

m_pSet->m_BX=dlg.m_longBX;

m_pSet->Update();

//m_pSet->Requery();

UpdateData(FALSE);

}

}

voidCEditDlg:

:

OnOK()

{

//TODO:

Addextravalidationhere

UpdateData();

m_strZGBH.TrimLeft();

m_strZGXM.TrimLeft();

m_strZGBM.TrimLeft();

if(m_strZGBH.IsEmpty())

MessageBox("员工编号不能为空!

");

else

if(m_strZGXM.IsEmpty())

MessageBox("员工姓名不能为空!

");

else

if(m_strZGBM.IsEmpty())

MessageBox("员工部门不能为空!

");

else

CDialog:

:

OnOK();

}

(4)系统工资统计界面的设计

员工的最后实际发的工资是经过计算后的,这个界面就是体现出这个计算的过程,应发工资减掉各种扣钱,得到最后的工资,设计界面如图7所示

图7用户主界面

 

①为IDC_GUOJI对话框资源模板添加控件如表5所示

表5单对话框控件及属性

添加的控件

ID号

标题

静态文本框

IDC_STATIC

应发合计

静态文本框

IDC_STATIC

扣除合计

静态文本框

IDC_STATIC

实发工资

编辑框

IDC_IDUNM

编辑框

IDC_GUOJI

编辑框

IDC_CMDE

按钮

IDC_BUTTON_OK

确定

按钮

IDC_BUTTON_CANCEL

取消

②按Ctrl+W键,弹出MFCClassWizard对话框,切换到MemberVaribles选项卡,在Classname框中选择IDC_GUOJI,为上述控件添加相关联的数据成员变量。

③代码如下:

voidCMyView:

:

OnButtonTongji()

{

//TODO:

Addyourcontrolnotificationhandlercodehere

CTongjidlg;

dlg.m_YFHJ=m_pSet->m_JBGZ+m_pSet->m_YJGZ+m_pSet->m_JJ+m_pSet->m_JT+m_pSet->m_GZBZ;

dlg.m_KCHJ=m_pSet->m_SDF+m_pSet->m_FZ+m_pSet->m_HF+m_pSet->m_BX+m_pSet->m_CX;

dlg.m_SFGZ=dlg.m_YFHJ-dlg.m_KCHJ;

dlg.DoModal();

UpdateData(FALSE);/}

3设计结果与分析

3.1 系统登录界面设计

进入程序后,首先出现的是【员工登陆】对话框,在【用户名】文本框中输入后按Tab键,程序将自动查询用户名并跳到【密码】文本框中,输入密码后按Enter键即可进入系统,执行denglu.cpp文件,调用CEditDlg:

:

OnOK()函数。

登录对话框如图8所示。

图8员工登录对话框

3.2 系统主界面设计

登录成功后将显示主界面主界面如图9所示,在此界面可以选择各种按钮进行不同的操作。

比如点击【添加】按钮,系统将执行EditDlg.cpp文件,调用voidCMyView:

:

OnButtonAdd()函数。

然后将进出编辑对话框,对数据进行添加操作。

点击【查询】按钮,调用voidCMyView:

:

OnChaxunzgbh()函数。

系统将显示出该员工号的工资。

点击【工资统计结果】按钮,调用CMyView:

:

OnButtonTongji()函数,系统将显示该员工号的工资。

[3]

图9主界面

3.3 编辑功能的实现

(1)增加功能

单击“增加“按钮,进入增加记录功能窗体,如图10所示。

在上边的编辑框中,可以很清楚看到整个表中的记录和主视图一致,在编辑框中输入完成了记

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 工程科技 > 能源化工

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2