1、*公司工资管理系统学 院专 业班 级学 号姓 名指导教师教师职称目录*公司工资管理系统1目录2摘要10 引言11 系统需求分析12 总体设计12.1 项目规划12.2 系统功能结构12.3 设计目标23 系统设计23.1 开发及运行环境23.2 数据库设计34 主要功能模块设计34.1 建立工程框架34.2 主窗口设计54.3 登录模块设计84.4 员工录入模块设计104.5 员工工资添加模块设计124.6 用户管理模块设计17附录A 参考文献20附录B 数据表22摘要【摘要】随着我国国民经济建设的蓬勃发展和具有中国特色的社会主义市场经济体制的迅速完善,各个行业都在积极使用现代化的管理工具,不
2、断改善企业的服务质量,提高工作效率。无论是行政职能,还是生产运作的管理要求的不断提高,在很大程度上使企业不得不改变传统的经营管理方式以适应快速发展的社会主义市场经济,改变企业管理方式、方法已经成为企业发展的先决条件。建设一个科学高效的信息管理系统是解决这一问题的必由之路。对企业内部的财务运用现代化技术进行管理,是提高工作效率的有效手段。工资管理作为企业内部财务管理的一个重要方面,也逐步被企业管理者所重视,由于企业的规模的不断扩,大企业职工人数的不断增多,使工资发放成为企业管理中的一个重课题;再加上每一位职工的具体实际情况相同,规章章制度的不断完善,增大了个人工资发放难度;每个人每月的工资都要通
3、过工资制度的审核,这大大增加了管理人员的工作量,通过计算机管理系统对员工工资进行全面的统计与管理,全面解决了工资管理过程中所遇到的各种问题,并且克服了传统管理方式中的易出错等问题。工资管理系统成为企业现代化管理中的首选管理工具。【关键词】工资管理系统0 引言传统的工资管理方法,都是通过人工统计和计算的管理方式进行的。这样的管理方法不但费时费力,也容易产生计算上的错误和疏漏;计算机技术的全面普及,打破了财务管理的传统管理方法,提高了管理效率的同时,克服了传统管理方法中易产生的问题,使管理员能够有序的、全面的对每一位职工进行管理,严格按照工资条款及发放制度计算并发展员工工资。企业工资管理系统可以完
4、成日常工资的管理,如查询、修改、增加、删除以及存储等操作,迅速准确地完成各种工资数据的的统计和汇总工作,快速打印出工资报表等,大大提高了企业的管理效率。1 系统需求分析根据市场的需求,要求系统具有以下功能:q 对单位人员的变动进行处理。q 对职工的工资进行计算、修改。q 查询统计功能。q 报表打印功能。2 总体设计2.1 项目规划工资管理系统是由基本信息管理、工资查询、工资管理、系统管理和帮助等几个功能模块组成,规划系统功能模块如下:q 基本信息管理模块基本信息管理模块主要包括员工录入、员工删除2部分。q 工资查询模块工资查询模块主要包括基本工资查询、浮动工资查询、加班/休假查询、总体查询4个
5、部分。q 工资管理模块工资管理模块主要包括工资发放管理、基本工资管理、浮动工资管理3个部分。q 系统管理模块系统管理模块主要包括用户管理、修改密码、退出系统3个部分。q 帮助模块帮助模块主要包括关于1个部分。2.2 系统功能结构工资系统的功能结构如图1所示。图1 系统功能图2.3 设计目标本系统是根据中小企业的实际需求而开发的,完全能够实现企业对客户的自动化管理,通过本系统可以达到以下目标:q 系统运行稳定,安全可靠。q 界面设计美观,人机交互界面友好。q 信息查询灵活、方便、快捷、准确,数据存储安全可靠。q 满足键盘和鼠标的双重操作,完全支持回车键。q 采用多种方式查询数据。q 操作员可以随
6、时修改自己的口令。q 对用户输入的数据,系统进行严格的数据检验,尽可能排除人为的错误。q 数据保密性强,为每个用户设置相应的权限级别。3 系统设计3.1 开发及运行环境1硬件要求CPU:300MHz以上的处理器。内存:128MB,推荐256MB。硬盘:150MB以上剩余空间。显示像素:最低800*600,最佳效果1024*768。2软件要求操作系统:Windows2000/NT/XP/CE。数据库:SQL Server2000。3.2 数据库设计1数据库概要说明数据库GZFFXT中包括员工基础信息表、员工基本工资表、员工浮动工资表、员工加班/休假表、工资发放明细表、用户表6个数据表。图2所示的
7、即为本系统中数据库中的数据表结构图,该数据表结构图包含系统所有数据表。可以清晰地反应数据库信息。图2 数据库概要说明2主要数据表的结构数据库中的数据表请参见附录B。4 主要功能模块设计4.1 建立工程框架在Visual C+中建立文档管理系统的基本框架,步骤如下:(1)单击菜单“File-New”命令,打开“New”对话框,单击“Projects”选项卡,选择“MFC AppWizard(exe)”,输入工程名,并设置路径,如图3所示。图3 “New”对话框(2)单击“OK”按钮,“MFC AppWizard-Step1”对话框已经打开,如图4所示,选项“Dialog base”,接着单击“N
8、ext”按钮。图4 “MFC AppWizard-Step 1”对话框(3)在弹出的“MFC AppWizard-Step 2 of 4”对话框中,输入对话框标题,如图5所示。图5 “MFC AppWizard-Step 2 of 4”对话框(4)在接下来的对话框中保持默认的选项。设置好的属性如图6所示,单击“OK”按钮后,就完成了新建工程。图6 设计好的工程属性44.2 主窗口设计1菜单资源设计主窗口菜单设置的主要步骤如下:(1)单击“ResourceView”选项卡,右键单击“GZGLXT Resources”选项,选择“Insert”菜单项,打开“Insert Resource”窗口,如
9、图7所示。图7 “Insert Resource”窗口(2)选择“Menu”文件夹,单击“New”按钮,在GZGLXT Resources目录下新增一个Menu目录项,菜单ID为IDR_MENU1。双击此菜单,对此菜单项的属性进行设计。如图8所示。图8 设计菜单属性图2客户区设计(1)打开对话框IDD_GZGLXT_DIALOG属性窗口,在对话框中添加1个Picture控件,用来存放图片。在Menu组合框中选择IDR_MENU1。如图9所示。图9 系统主界面(2)预先在下边留出状态栏,声明CTime、CstatusBarCtrl类对象实体代码如下。CTime t;CStatusBarCtrl
10、m_StatusBar;引用的外部变量extern CCzyxxb ffxxb;(3)在OnInitDialog成员函数中添加状态栏。/ TODO: Add extra initialization heret=CTime:GetCurrentTime();m_StatusBar.EnableAutomation();m_StatusBar.Create(WS_CHILD|WS_VISIBLE,CRect(0,0,0,0),this,0);/ID_STATUSBAR);int width=200,370,500;m_StatusBar.SetParts(4, &width0);m_Status
11、Bar.SetText(吉林省明日科技有限公司,0,0);CString StatusText;StatusText.Format(当前用户:%s,ffxxb.GetCzyName();m_StatusBar.SetText(StatusText,0,1);CString strdate;strdate.Format(当前时间:%s,t.Format(%y-%m-%d);m_StatusBar.SetText(strdate,0,2);return TRUE; / return TRUE unless you set the focus to a control(4)打开ClassWizard
12、窗口,为菜单项ID_EXIT添加代码。程序调用OnOK()函数关闭对话框,退出系统。void CGZGLXTDlg:OnExit() / TODO: Add your command handler code hereOnOK();4.3 登录模块设计1实现目标登录模块功能是完成用户登录本系统的操作,用户登录对话框的设计如图10所示图10 登录对话框2设计步骤(1)向项目中添加一个新Dialog资源,资源ID为IDD_LOGIN。在IDD_LOGIN对话框资源中单击鼠标右键,执行弹出快捷菜单的“Properties”菜单命令,打开“Dialog Properties”对话框。在“Dialog
13、Properties”对话框中选择General选项卡,更改其“Caption”文本框内容为“用户登录”。(2)从Controls面板上向Dialog资源中添加2个Static、1个Picture、2个Edit,更改资源的属性,并为资源设置相对应的变量,如表1所示。表1 资源设置IDPropertiesMember VariablesTypeMemberIDC_EDIT1默认CStringm_nameIDC_ EDIT2PassWord TRUECStringm_pwdIDOKCaption 登录IDCANCELCaption 退出IDC_STATICType Bitmap3代码分析(1)引用
14、的外部变量。extern CCzyxxb ffxxb;(2)响应“登录”按钮的代码。void CLogin:OnOK() / TODO: Add extra validation here/将对话框中编辑框的数据读取到成员变量中UpdateData(true);if(m_name=)MessageBox(请输入用户名);return;/如果读取数据和用户输入不同,则返回if(ffxxb.HaveCzy(m_name,m_pwd)!=1)MessageBox(用户名或密码错误!);return;ffxxb.SetCzyName(m_name);jb=1;/判断当前用户级别if(ffxxb.Hav
15、eCzyjb(m_name,m_pwd,jb)=1)ffxxb.SetCzyjb(jb);CDialog:OnOK();下面在主对话框中添加代码,使对话框在启动时首先打开登录对话框。在主窗口选择OnInitDialog函数,该函数将打开登录对话框,如果用户不是通过单击“登录”按钮关闭对话框,则调用OnOK函数关闭主对话框,具体代码如下:BOOL CWordGLXTDlg:OnInitDialog()CDialog:OnInitDialog();./ TODO: Add extra initialization hereCLogin gin;if(gin.DoModal()!=IDOK)OnOK
16、();.return TRUE; / return TRUE unless you set the focus to a control4.4 员工录入模块设计1实现目标添加员工信息,员工录入对话框的设计如图11所示图11 员工录入对话框2设计步骤(1)向项目中添加一个新Dialog资源,资源ID为IDD_YGTJK。在IDD_YGTJK对话框资源中单击鼠标右键,执行弹出快捷菜单的“Properties”菜单命令,打开“Dialog Properties”对话框。在“Dialog Properties”对话框中选择General选项卡,更改其“Caption”文本框内容为“员工录入”。(2)从
17、Controls面板上向Dialog资源中添加4个Static、2个Combo、2个Edit,更改资源的属性,并为资源设置相对应的变量,如表2所示。表2 资源设置IDPropertiesMember VariablesTypeMemberIDC_EDIT1默认CStringm_idIDC_ EDIT2默认CStringm_name IDC_COMBO1Type BitmapCComboBoxm_sexIDC_COMBO2Caption 退出CComboBoxM_whcdIDOKCaption 添加IDCANCELCaption 退出3代码分析(1)打开ClassWizard窗口,添加在OnIn
18、itDialog成员函数,向OnInitDialog添加代码如下。BOOL CYgjctjdlg:OnInitDialog() CDialog:OnInitDialog();/ TODO: Add extra initialization hereSetIcon(m_hIcon, TRUE);m_sex.AddString(男);m_sex.AddString(女);m_whcd.InsertString(0,专科);m_whcd.InsertString(1,本科);m_whcd.InsertString(2,研究生);return TRUE; / return TRUE unless yo
19、u set the focus to a control/ EXCEPTION: OCX Property Pages should return FALSE(2)当用户单击“添加“按钮时,实现添加员工功能,其响应代码如下void CYgjctjdlg:OnOK() / TODO: Add extra validation hereCYgjcxxb xxb;UpdateData(true);if(m_id=)MessageBox(编号不能为空);return;if(m_name=)MessageBox(姓名不能为空);return;if(xxb.HaveId(m_id)=1)MessageBo
20、x(员工编号已存在);return;xxb.SetYGid(m_id);xxb.SetYGxm(m_name);CString sex,whcd;m_sex.GetWindowText(sex);if(sex=)MessageBox(性别不能为空);return;/从组合框中读取文本 m_sex.GetLBText(m_sex.GetCurSel(),strsex);xxb.SetSex(strsex);m_whcd.GetWindowText(whcd);if(whcd=)MessageBox(文化程度不能为空);return;m_whcd.GetLBText(m_whcd.GetCurSe
21、l(),strwhcd);xxb.SetWHcd(strwhcd);xxb.sql_insert();/向浮动工资表添加编号、姓名CYgfdgzxmb xmb;xmb.SetYGid(m_id);xmb.SetYGxm(m_name);xmb.sql_insert();/向基本工资表添加编号、姓名CYgjbgzb gzb;gzb.SetYGid(m_id);gzb.SetYGxm(m_name);gzb.sql_insert();/向加班休假表添加编号、姓名CYgjbsjb sjb;sjb.SetYGid(m_id);sjb.SetYGxm(m_name);sjb.sql_insert();C
22、Dialog:OnOK();4.5 员工工资添加模块设计1实现目标添加员工实际发放的工资情况,员工工资添加对话框设计如图12所示。图12 员工工资添加对话框2设计步骤(1)向项目中添加一个新Dialog资源,资源ID为IDD_YGGONGZITJ。在IDD_YGGONGZITJ对话框资源中单击鼠标右键,执行弹出快捷菜单的 “Properties”菜单命令,打开“Dialog Properties”对话框。在“Dialog Properties”对话框中选择General选项卡,更改其“Caption”文本框内容为“员工工资添加”。(2)从Controls面板上向Dialog资源中添加19个St
23、atic、17个Edit、2个Button控件,更改资源的属性,并为资源设置相对应的变量,如表3所示。表3 资源设置IDPropertiesMember VariablesTypeMemberIDC_EDIT1默认CStringm_idIDC_EDIT2默认CStringm_nameIDC_EDIT3默认intm_jbgzIDC_EDIT4默认intm_zwgzIDC_EDIT5默认intm_glgzIDC_EDIT6默认intm_zfbzIDC_EDIT7默认intm_shbzIDC_EDIT8默认intm_bxfIDC_EDIT9默认intm_jiabtsIDC_EDIT10Read-on
24、ly TRUECEditm_jiabgzIDC_EDIT11默认intm_sjtsIDC_EDIT12Read-only TRUECEditm_sjgzIDC_EDIT13默认intm_ylbxjIDC_EDIT14默认intm_grsdsIDC_EDIT15默认intm_sfgzIDC_EDIT16Read-only TRUECEditm_yfgzIDC_EDIT17Read-only TRUECEditm_syyeIDOKCaption 添加IDCANCELCaption 退出IDC_BUTTONsyyeCaption 上月余额IDC_BUTTONyfgzCaption 应发工资3代码分析
25、(1)双击“IDC_EDIT9”控件,自动生成OnChangeEdit9函数,实现用户添加加班天数时,加班工资自动计算并显示,具体代码如下:void CYggztjdlg:OnChangeEdit9() / TODO: If this is a RICHEDIT control, the control will not/ send this notification unless you override the CDialog:OnInitDialog()/ function and call CRichEditCtrl().SetEventMask()/ with the ENM_CHA
26、NGE flag ORed into the mask.UpdateData(true);CString str;str.Format(%d,m_jiabts*40);m_jiabgz.SetWindowText(str);UpdateData(false);/ TODO: Add your control notification handler code here(2)双击“上月余额”按钮,系统自动添加消息响应函数OnBUTTONsyye,具体代码如下。void CYggztjdlg:OnBUTTONsyye() / TODO: Add your control notification
27、handler code hereUpdateData(true);if(m_id=)MessageBox(请先填写员工编号);return;ADOConn m_AdoConn;m_AdoConn.OnInitADOConn();t = CTime:GetCurrentTime();int m,y;CString str;m=t.GetMonth()-1;y=t.GetYear();if(m=0)m=12;y=y-1;CGzffmxb mxb;if(mxb.Havesyye(m_id,y,m)=1)CString sql;sql.Format(select * from gzffmxb whe
28、re ygid=%s and year(sjian)=%i and month(sjian)=%i,m_id,y,m);m_AdoConn.GetRecordSet(_bstr_t)sql);str=(char*)(_bstr_t)m_AdoConn.m_pRecordset-GetCollect(Yu_E);m_syye.SetWindowText(str);elsem_syye.SetWindowText(0);UpdateData(false);m_AdoConn.ExitConnect();在头文件中添加下列代码。CTime t;(3)双击“应发工资”按钮,系统自动添加消息响应函数On
29、BUTTONyfgz,具体代码如下:void CYggztjdlg:OnBUTTONyfgz() / TODO: Add your control notification handler code hereUpdateData(true);CString syye;m_syye.GetWindowText(syye);if(syye=)MessageBox(请先添加上月余额);return;int yfgz;yfgz=atoi(syye)+m_jbgz+m_glgz+m_zwgz+m_shbz+m_zfbz-m_ylbxj;yfgz+=(-m_bxf+m_jiabts*40-m_sjts*4
30、0-m_grsds);CString str;str.Format(%d,yfgz);m_yfgz.SetWindowText(str);(4)为“添加”按钮添加代码,实现添加员工工资功能,代码如下:void CYggztjdlg:OnOK() / TODO: Add extra validation hereUpdateData(true);CYgjcxxb xxb;CString yfgz;m_yfgz.GetWindowText(yfgz);if(m_id=)MessageBox(编号不能为空);return;if(xxb.HaveId(m_id)!=1)MessageBox(员工编号不
31、存在);return;if(m_name=)MessageBox(姓名不能为空);return;if(xxb.Havename(m_id,m_name)!=1)MessageBox(员工不存在);return;if(yfgz=)MessageBox(应发工资不能为空);return;CGzffmxb mxb;mxb.SetYGid(m_id);mxb.SetYGxm(m_name);mxb.SetGLgz(m_glgz);mxb.SetJBgz(m_jbgz);mxb.SetYLbxj(m_ylbxj);mxb.SetZWgz(m_zwgz);mxb.SetBXf(m_bxf);mxb.Set
32、GRsds(m_grsds);mxb.SetSHbz(m_shbz);mxb.SetZFbz(m_zfbz);mxb.SetJiaBts(m_jiabts);int jiabgz;jiabgz=m_jiabts*40;mxb.SetJiaBgz(jiabgz);mxb.SetSjts(m_sjts);int sjkk;sjkk=m_sjts*40;mxb.SetSJkk(sjkk);mxb.SetYFje(atoi(yfgz);mxb.SetSFje(m_sfgz);mxb.sql_insert();CYgjbsjb sjb;sjb.SetJiaBts(m_jiabts);sjb.SetJia
33、Bgz(jiabgz);sjb.SetSjts(m_sjts);sjb.SetSJkk(sjkk);sjb.sql_update(m_id);CDialog:OnOK();4.6 用户管理模块设计1实现目标实现新建、删除用户功能,用户管理对话框设计如图13所示。图13 用户管理对话框2设计步骤(1)向项目中添加一个新Dialog资源,资源ID为IDD_XINJYH。在IDD_XINJYH对话框资源中单击鼠标右键,执行弹出快捷菜单的“Properties”菜单命令,打开“Dialog Properties”对话框。在“Dialog Properties”对话框中选择General选项卡,更改其“
34、Caption”文本框内容为“用户管理”。(2)从Controls面板上向Dialog资源中添加4个Static、1个Combo、3个Edit、1个Button控件,更改资源的属性,并为资源设置相对应的变量,如表4所示表4 资源设置IDPropertiesMember VariablesTypeMemberIDC_EDIT1默认CStringm_nameIDC_EDIT2Password trueCStringm_pwdIDC_EDIT3Password trueCStringm_pwd1IDC_COMBO1默认CComboBoxm_jbIDOKCaption 添加IDC_BUTTON1Cap
35、tion 删除IDCANCELCaption 退出3代码分析(1)添加OnInitDialog()函数,初始化Combo控件,集体代码如下:BOOL CXinjyhdlg:OnInitDialog() CDialog:OnInitDialog();/ TODO: Add extra initialization hereSetIcon(m_hIcon, TRUE);m_jb.AddString(系统管理员);m_jb.AddString(普通管理员);return TRUE; / return TRUE unless you set the focus to a control / EXCEP
36、TION: OCX Property Pages should return FALSE(2)为“添加”按钮添加消息响应函数,代码如下:void CXinjyhdlg:OnOK() / TODO: Add extra validation hereUpdateData(true);if(m_name=)MessageBox(请输入用户名);return;CString jb;m_jb.GetWindowText(jb);if(jb=)MessageBox(级别不能为空);return; if(m_pwd=)MessageBox(请输入密码);return;if(m_pwd1=)MessageB
37、ox(请确认密码);return;if(m_pwd!=m_pwd1)MessageBox(两次密码不同);return;CCzyxxb xxb;if(xxb.Havename(m_name)=1)MessageBox(用户以存在,请重新输入);return;xxb.SetCzyName(m_name);xxb.SetPwd(m_pwd);m_jb.GetLBText(m_jb.GetCurSel(),strjb);if(strjb=系统管理员)strjb=1;elsestrjb=0;xxb.SetCzyjb(strjb);xxb.sql_insert();CDialog:OnOK();(3)为
38、“删除”按钮添加消息响应函数,代码如下:void CXinjyhdlg:OnButton1() / TODO: Add your control notification handler code hereUpdateData(true);if(MessageBox(是否删除当前记录,请确认,MB_YESNO)=IDYES)CCzyxxb xxb;xxb.sql_delete(m_name);(4)当用户单击主界面菜单中的“用户管理”菜单项时,将执行OnMenuyhgl函数,具体代码如下:void CGZGLXTDlg:OnMenuyhgl() / TODO: Add your command
39、 handler code hereif(ffxxb.GetCzyjb()=1)CXinjyhdlg dlg;dlg.DoModal();elseMessageBox(没有权限);return;附录A 参考文献1Visual Basic精彩编程200例机械工业出版社 赛奎春、高春艳等2003年1月2Visual Basic数据库开发实例解析机械工业出版社刘志铭、高春艳等2003年8月3Visual FoxPro数据库开发实例解析机械工业出版社王晶莹、王国辉等2003年9月4Power Builder数据库开发实例解析机械工业出版社华传铭、张振坤等2003年9月5Delphi数据库开发实例解析机
40、械工业出版社 赛奎春、郑骁鹏等2004年2月6PowerBuilder 精彩编程200例机械工业出版社 张振坤、李文立等2004年9月7Visual FoxPro 精彩编程200例机械工业出版社 王国辉、董韶华等2004年9月8ASP数据库开发实例解析机械工业出版社 李严、于亚芳、王国辉2004年12月9Delphi工程应用与项目实践机械工业出版社 宋坤、赵智勇等2005年1月10Visual Basic工程应用与项目实践机械工业出版社 高春艳、李俊民等 2005年1月11Visual C工程应用与项目实践机械工业出版社 张雨、阮伟良等 2005年1月12JSP工程应用与项目实践机械工业出版社
41、 陈威、白伟明、李楠2005年2月13ASP工程应用与项目实践机械工业出版社 王国辉、牛强、李南南2005年4月14Visual Basic 信息系统开发实例精选机械工业出版社 高春艳、李俊民、张耀庭等2005年7月15ASP 信息系统开发实例精选机械工业出版社 王国辉、牛强、李南南等 2005年7月16Delphi 信息系统开发实例精选机械工业出版社 宋坤、赵智勇、刘强等2005年7月17Visual foxpro数据库开发关键技术与实例应用人民邮电出版社 周桓、张雨、王国辉2004年5月18Power Builder数据库开发关键技术与实例应用人民邮电出版社 刘志铭、张振坤、冯文萃 2004年5月19Delphi数据库开发关键技术与实例应用人民邮电出版社 赛奎春、陈紫鸿、宋昆2004年5月20Visual basic数据库开发关键技术与实例应用人民邮电出版社 高春艳、李艳2004年5月21Visual C+ 管理信息系统完整项目实例剖析人民
©2010-2024 宁波自信网络信息技术有限公司 版权所有
客服电话:4008-655-100 投诉/维权电话:4009-655-100