1.功能1)、员工:可以对自己的员工密码就行修改、申请请假、查看加班情况与出勤情况,上下班打卡记录考勤2)、管理员经理:能够管理员工的基本信息、招聘员工、对员工的请假进行审核、对员工加班进行安排、做出员工出勤的统计,出差管理员工管理系统应提供如下主要功能需求1)、员工请假:员工填写请假申请表,等待经理审核,查看自己工作情况,看自己请假、未出席情况。2)、审核员工请假:经理对于员工递交的请假申请表进行处理,同意请假后要进行记录,添加到员工工作情况中。3)、统计员工出勤:对于员工已有的出勤、请假、未出席等等情况进行统计,给员工查看自己的工作情况。2.数据字典数据字典是系统中各类数据描述的集合,是进行详细数据收集和数据分析所获得的主要成果,数据字典是对系统所用到的所有表结构的描述,具体表描述如下:表1是员工信息表列名数据类型备注工号Char(10)主键姓名Varchar(20)不为空性别Char(10)不为空年龄Int(11)可以为空职务Varchar(10)可以为空部门Varchar(10)可以为空学历Varchar(10)可以为空入职日期Dt可以为空CREATETABLE`yuangong`(`工号`char(10)NOTNULL,`姓名`varchar(20)NOTNULL,`性别`char(10)NOTNULL,`年龄`int(11)DEFAULTNULL,`职务`varchar(10)DEFAULTNULL,`部门`varchar(10)DEFAULTNULL,`学历`varchar(10)DEFAULTNULL,`入职日期`datetimeDEFAULTNULL,PRIMARYKEY(`工号`))ENGINE=InnoDBDEFAULTCHARSET=utf8表2是请假信息表列名数据类型备注工号Char(10)主键日期Dt主键开始日期Dt不为空总时间Int(11)不为空类型Char(10)不为空状态Char(10)可以为空备注Varchar(10)可以为空CREATETABLE`qingjia`(`工号`char(10)NOTNULL,`日期`datetimeNOTNULL,`开始日期`datetimeNOTNULL,`总时间`int(11)NOTNULL,`类型`char(10)NOTNULL,`状态`char(10)DEFAULTNULL,`备注`varchar(45)DEFAULTNULL,PRIMARYKEY(`工号`,`日期`))ENGINE=InnoDBDEFAULTCHARSET=utf8表3是出差信息表列名数据类型备注工号Char(10)主键日期Dt主键开始日期Dt不为空结束日期Dt不为空总时间Int(11)可以为空地点Varchar(45)不为空CREATETABLE`chucai`(`工号`char(10)NOTNULL,`日期`datetimeNOTNULL,`开始日期`datetimeNOTNULL,`结束日期`datetimeNOTNULL,`总时间`int(11)DEFAULTNULL,`地点`varchar(45)NOTNULL,PRIMARYKEY(`工号`,`日期`))ENGINE=InnoDBDEFAULTCHARSET=utf8表4是加班信息表列名数据类型备注工号Char(10)主键日期Dt主键开始时间Char(10)不为空结束时间Char(10)不为空总时间Int(11)可以为空CREATETABLE`jiaban`(`工号`char(10)NOTNULL,`日期`datetimeNOTNULL,`开始时间`char(10)NOTNULL,`结束时间`char(10)NOTNULL,`总时间`int(11)DEFAULTNULL,PRIMARYKEY(`工号`,`日期`))ENGINE=InnoDBDEFAULTCHARSET=utf8表5是出勤信息表列名数据类型备注工号Char(10)主键日期Dt主键上班时间Dt可以为空下班时间Dt可以为空迟到Char(3)可以为空早退Char(3)可以为空CREATETABLE`chuqin`(`工号`char(10)NOTNULL,`日期`datetimeNOTNULL,`上班时间`datetimeDEFAULTNULL,`下班时间`datetimeDEFAULTNULL,`迟到`char(3)DEFAULTNULL,`早退`char(3)DEFAULTNULL,PRIMARYKEY(`工号`,`日期`))ENGINE=InnoDBDEFAULTCHARSET=utf8表6是时间设置表列名数据类型备注上班时间Char(10)主键下班时间Char(10)不为空总时间Char(10)可以为空CREATETABLE`shezhishijian`(`上班时间`char(10)NOTNULL,`下班时间`char(10)NOTNULL,`总时间`char(10)DEFAULTNULL,PRIMARYKEY(`上班时间`))ENGINE=InnoDBDEFAULTCHARSET=utf8表7是权限表列名数据类型备注工号Char(10)主键密码Char(10)不为空权限Varchar(45)不为空CREATETABLE`login`(`工号`char(10)NOTNULL,`密码`char(10)NOTNULL,`权限`varchar(45)NOTNULL,PRIMARYKEY(`工号`))ENGINE=InnoDBDEFAULTCHARSET=utf83.数据库实施首先根据自己设计的模块建立一些逻辑关系,建立一些基本表:员工信息表(工号,姓名,性别,年龄,职务,部门,学历,入职日期)出差信息表(员工号,日期,开始日期,总时间,地点)请假信息表(工号,日期,开始日期,总时间,类型,状态,备注)加班信息表(工号,日期,开始时间,结束时间,总时间)出勤信息表(工号,日期,上班时间,下班时间,迟到,早退)权限表(工号,密码,权限)时间设置表(上班时间,下班时间,总时间)出差信息表员工信息表请假信息表加班信息表出勤信息表权限表时间设置表4.程序源代码1密码修改namespace职工考勤管理系统.master2{publicpartialclassMmima:Form{stringUserName;stringPwd;publicMmima(stringa,stringb){UserName=a;Pwd=b;InitializeComponent();}privatevoidMmima_Load(objectsender,EventArgse){label5.Text=UserName;}privatevoidQueren_Click(objectsender,EventArgse){if(Jiumima.Text==||Xinmima.Text==||Querenmima.Text==){MessageBox.Show(旧密码,新密码和确认新密码均不能为空!\n请重新输入,提示,MessageBoxButtons.OK,MessageBoxIcon.Error);Jiumima.Text=;Xinmima.Text=;Querenmima.Text=;Jiumima.Focus();return;}else{if(Jiumima.Text==Pwd){if(Xinmima.Text!=Querenmima.Text){MessageBox.Show(两次输入的新密码不一致!,提示,MessageBoxButtons.OK,MessageBoxIcon.Error);Xinmima.Text=;Querenmima.Text=;Xinmima.Focus();return;}else{boola=MyData.MySQL.updata(Updateloginset密码='+Querenmima.Text+'where工号='+label5.Text+');MyData.MySQL.CloseSQL();if(a==true){MessageBox.Show(密码修改成功!,提示,MessageBoxButtons.OK,MessageBoxIcon.Information);this.Close();}else{MessageBox.Show(密码修改操作失败!,提示,MessageBoxButtons.OK,MessageBoxIcon.Error);}}}else{MessageBox.Show(旧密码输入错误!,提示,MessageBoxButtons.OK,MessageBoxIcon.Error);Jiumima.Text=;Xinmima.Text=;Querenmima.Text=;Jiumima.Focus();return;}}}privatevoidQuxiao_Click(objectsender,EventArgse){this.Close();}}}2当日考勤namespace职工考勤管理系统.master2{publicpartialclassMkaoqin:Form{DateTimetime=Convert.ToDateTime(DateTime.Now.ToShortDateString());publicMkaoqin(){InitializeComponent();}privatevoidcomboBox1_SelectedIndexChanged(objectsender,EventArgse){}privatevoidbutton3_Click(objectsender,EventArgse){this.Close();}privatevoidMkaoqin_Load(objectsender,EventArgse){DataSetDS2=MyData.MySQL.dataset(select*fromBumen,BM);DataRowdr2=DS2.Tables[BM].NewRow();dr2[编号]=0;dr2[名称]=;DS2.Tables[BM].Rows.InsertAt(dr2,0);this.Bumen.DataSource=DS2.Tables[BM];this.Bumen.DisplayMember=名称;this.Bumen.ValueMember=编号;MyData.MySQL.CloseSQL();}privatevoidQueding_Click(objectsender,EventArgse){if(Bumen.Text==){MessageBox.Show(请选择部门!);Bumen.Focus();return;}else{try{stringsql1=selectYuangong.工号,姓名,Bumen.名称as部门fromYuangong,BumenwhereYuangong.工号notin(select工号fromChuqinwhere日期='+time+')andBumen.编号=(select编号fromBumenwhere名称='+Bumen.Text.Trim()+')andYuangong.部门=Bumen.编号;DataSetDS1=MyData.MySQL.dataset(sql1,WCQ);MyData.MySQL.CloseSQL();dataGridView1.DataSource=DS1.Tables[0];stringsql2=selectYuangong.工号,姓名,Bumen.名称as部门,迟到,早退fromYuangong,Bumen,ChuqinwhereYuangong.工号in(select工号fromChuqinwhere日期='+time+')andBumen.编号=(select编号fromBumenwhere名称='+Bumen.Text.Trim()+')andYuangong.工号=Chuqin.工号andYuangong