教职工工资管理系统.docx
《教职工工资管理系统.docx》由会员分享,可在线阅读,更多相关《教职工工资管理系统.docx(27页珍藏版)》请在冰豆网上搜索。
教职工工资管理系统
~~~~~~~~~~~~~~~~~~~数据库设计~~~~~~~~~~~~~~~~~~~
———教职工工资管理系统
湖南大学
计算机与通信学院
计算机科学技术
学生:
日期:
2010.5.22
@-------------------------------------------------------------------------------------------------@
A系统分析与设计
一、系统功能分析与设计
教职工工资管理系统的基本功能是对职工的工资发放进行管理,这过程需要教职工的一些信息进行处理,如数据的输入、增加、修改、删除、查询等。
所以在系统设计开发时应满足下面几个方面的需求:
(1)基本信息管理。
作为管理员要对职工基本信息进行添加删除这样的操作。
(2)工资管理。
这个部分要解决基本工资的录入,浮动工资的计算,以及工资发放进行核算的问题。
(3)查询管理。
这部分要对员工的信息进行查询,包括基本工资,浮动工资,加班休假情况这些信息。
(4)系统管理。
作为与用户打交道的前台,一般用户是不能对后台数据库进行修改删除这样的操作的但对系统维护是必不可少的,这部分提供给了系统管理员对用户进行管理以及密码进行修改的功能。
2.系统功能设计
1.基本信息管理
1)添加职工基本信息管理,包括编号、姓名、性别、学历基本信息。
2)删除职工的基本信息。
2.工资管理
1)添加基本工资信息,包括基本工资、职务工资、工龄工资、养老保险等信息。
2)动态工资信息包括:
住房补助、生活补助、保险费、个人所得税。
3)添加员工工资除上信息外加加班天数,加班费,休假天数和休假扣款等信息。
3.查询管理
1)基本工资查询
2)浮动工资查询
3)休假加班查询
4)总体查询
4.用户管理
1)添加用户包括用户名,用户级别,密码等信息。
2)修改密码
3)退出系统
@系统结构图
B数据库设计
三、数据库需求分析
根据系统分析可以列出下列的数据项和数据结构
教职工基本信息:
编号、姓名、性别、学历、基本工资、工龄工资、职务工资、养老保险金员工编号
系统统用户信息:
用户名、密码、用户类型。
1、数据库表格:
1)登录表:
字段名称
数据类型
字段大小
必填字段(不为空)
用户名
文本
20
是
密码
数字
20
是
2)员工基本信息表:
字段名称
数据类型
字段大小
必填字段(不为空)
员工编号
数字
20
是
员工姓名
文本
20
是
性别
文本
10
是
学历
文本
20
是
基本工资
数字
20
是
工龄工资
数字
20
否
职务工资
数字
20
否
养老保险金
数字
20
否
C系统实现
4.系统实现
1.系统工作原理:
2、关键代码:
1.CLogin:
:
CLogin(CWnd*pParent/*=NULL*/)
:
CDialog(CLogin:
:
IDD,pParent)
{
//{{AFX_DATA_INIT(CLogin)
m_name=_T("");
m_pwd=_T("");
//}}AFX_DATA_INIT
m_hIcon=AfxGetApp()->LoadIcon(IDI_LOGINICON);
}
voidCLogin:
:
DoDataExchange(CDataExchange*pDX)
{
CDialog:
:
DoDataExchange(pDX);
//{{AFX_DATA_MAP(CLogin)
DDX_Text(pDX,IDC_EDIT1,m_name);
DDX_Text(pDX,IDC_EDIT2,m_pwd);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CLogin,CDialog)
//{{AFX_MSG_MAP(CLogin)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
//CLoginmessagehandlers
voidCLogin:
:
OnOK()
{
//TODO:
Addextravalidationhere
//将对话框中编辑框的数据读取到成员变量中
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.HaveCzyjb(m_name,m_pwd,jb)==1)
{
ffxxb.SetCzyjb(jb);
}
CDialog:
:
OnOK();
}
BOOLCLogin:
:
OnInitDialog()
{
CDialog:
:
OnInitDialog();
//TODO:
Addextrainitializationhere
SetIcon(m_hIcon,TRUE);
returnTRUE;//returnTRUEunlessyousetthefocustoacontrol
//EXCEPTION:
OCXPropertyPagesshouldreturnFALSE
}
2.voidCXinjyhdlg:
:
OnOK()
{
//TODO:
Addextravalidationhere
UpdateData(true);
if(m_name=="")
{
MessageBox("请输入用户名","工资管理系统");
return;
}
CStringjb;
m_jb.GetWindowText(jb);
if(jb=="")
{
MessageBox("级别不能为空","工资管理系统");
return;
}
if(m_pwd=="")
{
MessageBox("请输入密码","工资管理系统");
return;
}
if(m_pwd1=="")
{
MessageBox("请确认密码","工资管理系统");
return;
}
if(m_pwd!
=m_pwd1)
{
MessageBox("两次密码不同","工资管理系统");
return;
}
CCzyxxbxxb;
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";
else
strjb="0";
xxb.SetCzyjb(strjb);
xxb.sql_insert();
CDialog:
:
OnOK();
}
BOOLCXinjyhdlg:
:
OnInitDialog()
{
CDialog:
:
OnInitDialog();
//TODO:
Addextrainitializationhere
SetIcon(m_hIcon,TRUE);
m_jb.AddString("系统管理员");
m_jb.AddString("普通管理员");
returnTRUE;//returnTRUEunlessyousetthefocustoacontrol
//EXCEPTION:
OCXPropertyPagesshouldreturnFALSE
}
voidCXinjyhdlg:
:
OnButton1()
{
//TODO:
Addyourcontrolnotificationhandlercodehere
UpdateData(true);
if(MessageBox("是否删除当前记录","请确认",MB_YESNO)==IDYES)
{
CCzyxxbxxb;
xxb.sql_delete(m_name);
MessageBox("用户删除成功!
","工资管理系统");
}
CDialog:
:
OnOK();
}
BOOLCXinjyhdlg:
:
PreTranslateMessage(MSG*pMsg)
{
//TODO:
Addyourspecializedcodehereand/orcallthebaseclass
if(pMsg->message==WM_KEYDOWN&&pMsg->wParam==13)
pMsg->wParam=9;
returnCDialog:
:
PreTranslateMessage(pMsg);
}
3.voidCYgfdgzdlg:
:
OnOK()
{
//TODO:
Addextravalidationhere
CStringstr;
str=m_dc.GetText();
m_ad.SetRecordSource("SELECTYGidAS员工编号,YGxmAS员工姓名,GRsdsAS个人所得税,ZFbzAS住房补助,BXfAS保险费,SHbzAS生活补助FROMYgfdgzxmbWHEREYGid='"+str+"'");
m_ad.Refresh();
_variant_tvIndex;
vIndex=long(0);
m_da.GetColumns().GetItem(vIndex).SetWidth(60);
vIndex=long
(1);
m_da.GetColumns().GetItem(vIndex).SetWidth(60);
vIndex=long
(2);
m_da.GetColumns().GetItem(vIndex).SetWidth(75);
vIndex=long(3);
m_da.GetColumns().GetItem(vIndex).SetWidth(60);
vIndex=long(4);
m_da.GetColumns().GetItem(vIndex).SetWidth(60);
vIndex=long(5);
m_da.GetColumns().GetItem(vIndex).SetWidth(60);
//CDialog:
:
OnOK();
}
BOOLCYgfdgzdlg:
:
OnInitDialog()
{
CDialog:
:
OnInitDialog();
//TODO:
Addextrainitializationhere
SetIcon(m_hIcon,TRUE);
_variant_tvIndex;
vIndex=long(0);
m_da.GetColumns().GetItem(vIndex).SetWidth(60);
vIndex=long
(1);
m_da.GetColumns().GetItem(vIndex).SetWidth(60);
vIndex=long
(2);
m_da.GetColumns().GetItem(vIndex).SetWidth(75);
vIndex=long(3);
m_da.GetColumns().GetItem(vIndex).SetWidth(60);
vIndex=long(4);
m_da.GetColumns().GetItem(vIndex).SetWidth(60);
vIndex=long(5);
m_da.GetColumns().GetItem(vIndex).SetWidth(60);
returnTRUE;//returnTRUEunlessyousetthefocustoacontrol
//EXCEPTION:
OCXPropertyPagesshouldreturnFALSE
}
4.voidCYgjcscdlg:
:
OnOK()
{
//TODO:
Addextravalidationhere
UpdateData(true);
CStringstr;
m_combo.GetWindowText(str);
if(MessageBox("是否删除当前记录?
","请确认!
",MB_YESNO)==IDYES)
{
CYgjcxxbxxb;
xxb.sql_delete(str);
CYgfdgzxmbxmb;
xmb.sql_delete(str);
CYgjbgzbgzb;
gzb.sql_delete(str);
CGzffmxbmxb;
mxb.sql_delete(str);
CYgjbsjbsjb;
sjb.sql_delete(str);
}
CDialog:
:
OnOK();
}
BOOLCYgjcscdlg:
:
OnInitDialog()
{
CDialog:
:
OnInitDialog();
//TODO:
Addextrainitializationhere
SetIcon(m_hIcon,TRUE);
UpdateData(true);
CYgjcxxbxxb;
xxb.Load_dep();
for(inti=0;i{
m_combo.AddString(xxb.a_ygid.GetAt(i));
}
m_list.SetExtendedStyle(LVS_EX_FLATSB
|LVS_EX_FULLROWSELECT
|LVS_EX_GRIDLINES);
m_list.InsertColumn(0,"员工编号",LVCFMT_LEFT,100,0);
m_list.InsertColumn(1,"员工姓名",LVCFMT_LEFT,100,1);
m_list.InsertColumn(2,"员工性别",LVCFMT_LEFT,100,2);
m_list.InsertColumn(3,"文化程度",LVCFMT_LEFT,100,3);
for(i=0;i{
m_list.InsertItem(0,"");
m_list.SetItemText(0,0,xxb.a_ygid.GetAt(i));
m_list.SetItemText(0,1,xxb.a_name.GetAt(i));
m_list.SetItemText(0,2,xxb.a_sex.GetAt(i));
m_list.SetItemText(0,3,xxb.a_whcd.GetAt(i));
}
UpdateData(false);
returnTRUE;//returnTRUEunlessyousetthefocustoacontrol
//EXCEPTION:
OCXPropertyPagesshouldreturnFALSE
}
5.
CYgjctjdlg:
:
CYgjctjdlg(CWnd*pParent/*=NULL*/)
:
CDialog(CYgjctjdlg:
:
IDD,pParent)
{
//{{AFX_DATA_INIT(CYgjctjdlg)
m_id=_T("");
m_name=_T("");
//}}AFX_DATA_INIT
m_hIcon=AfxGetApp()->LoadIcon(IDI_YGTJICON);
}
voidCYgjctjdlg:
:
DoDataExchange(CDataExchange*pDX)
{
CDialog:
:
DoDataExchange(pDX);
//{{AFX_DATA_MAP(CYgjctjdlg)
DDX_Control(pDX,IDC_COMBO2,m_whcd);
DDX_Control(pDX,IDC_COMBO1,m_sex);
DDX_Text(pDX,IDC_EDIT1,m_id);
DDX_Text(pDX,IDC_EDIT2,m_name);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CYgjctjdlg,CDialog)
//{{AFX_MSG_MAP(CYgjctjdlg)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
//CYgjctjdlgmessagehandlers
BOOLCYgjctjdlg:
:
OnInitDialog()
{
CDialog:
:
OnInitDialog();
//TODO:
Addextrainitializationhere
SetIcon(m_hIcon,TRUE);
m_sex.AddString("男");
m_sex.AddString("女");
m_whcd.InsertString(0,"专科");
m_whcd.InsertString(1,"本科");
m_whcd.InsertString(2,"硕士");
m_whcd.InsertString(3,"博士");
returnTRUE;//returnTRUEunlessyousetthefocustoacontrol
//EXCEPTION:
OCXPropertyPagesshouldreturnFALSE
}
voidCYgjctjdlg:
:
OnOK()
{
//TODO:
Addextravalidationhere
CYgjcxxbxxb;
UpdateData(true);
if(m_id=="")
{
MessageBox("编号不能为空","工资管理系统");
return;
}
if(m_name=="")
{
MessageBox("姓名不能为空","工资管理系统");
return;
}
if(xxb.HaveId(m_id)==1)
{
MessageBox("员工编号已存在","工资管理系统");
return;
}
xxb.SetYGid(m_id);
xxb.SetYGxm(m_name);
CStringsex,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.GetCurSel(),strwhcd);
xxb.SetWHcd(strwhcd);
xxb.sql_insert();
//向浮动工资表添加编号、姓名
CYgfdgzxmbxmb;
xmb.SetYGid(m_id);
xmb.SetYGxm(m_name);
xmb.sql_insert();
//向基本工资表添加编号、姓名
CYgjbgzbgzb;
gzb.SetYGid(m_id);
gzb.SetYGxm(m_name);
gzb.sql_insert();
//向加班休假表添加编号、姓名
CYgjbsjbsjb;
sjb.SetYGid(m_id);
sjb.SetYGxm(m_name);
sjb.sql_insert();
CDialog:
:
OnOK();
}
BOOLCYgjctjdlg:
:
PreTranslateMessage(MSG*pMsg)
{
//TODO:
Addyourspecializedcodehereand/orcallthebaseclass
if(pMsg->message==WM_KEYDOWN&&pMsg->wParam==13)
pMsg->wParam=9;
returnCDialog:
:
PreTranslateMessage(pMsg);
}
6.voidCYgjcxxb:
:
Load_dep()
{
//连接数据库
ADOConnm_AdoConn;
m_AdoConn.OnInitADOConn();
//设置SQL语句
_bstr_tvSQL;
vSQL="SELECT*FROMYgjcxxbORDERBYygiddesc";
_RecordsetPtrm_pRecordset;
m_pRecordset=m_AdoConn.GetRecordSet(vSQL);
//初始化数组
a_ygid.RemoveAll();
a_name.RemoveAll();
a_sex.RemoveAll();
a_whcd.RemoveAll(