课程设计报告课程设计题目:人事管理系统姓名:学号:班级:指导教师:2016年1月15日一.题目分析:人事管理系统是企、事业单位常见的计算机信息管理系统。它的主要任务是对各种人事信息进行日常的信息管理,如人员信息的输入、查询、修改、增加、删除,迅速准确地完成各种人员信息的统计计算和汇总,快速打印出报表。在建立与实现人事管理系统时,进行了功能划分,能够由数据库管理系统完成的功能应尽可能由数据库管理系统守成,充分发挥数据库管理系统高效、完全、可靠、便捷的性能,减少编程人员的工作量。工资管理系统是数据库管理系统的一个比较典型的应用,前台使用的是微软的VB6.0,后台数据库采用MicrosoftSQLSever数据库。运行结果证明,本人事管理系统极大提高了工作效率,节省了人力和物力,自重满足企业员工管理的需要。人事管理系统的主要任务是用计算机对各种员工信息进行日常的管理,如查询、修改、添加、删除以及存储等,迅速准确地完成各种员工信息的统计计算和汇总工作,针对系统服务对象的具体要求,设计了人事管理系统。人事管理系统主要有以下几大功能:(1)对单位人员的变动进行处理。一个单位的职工不会是一成不变的,总是在不断的变化:有调出、有调入、也有职工在本单位内部调动。因此,设计系统是应考虑到这些情况。(2)对职工的工资进行计算、修改。可以对职工的工资档案进行个别、部分和批量修改,同时,能对各职工的工资进行计算,即计算基本工资、岗位工资、水电费及实发金额等。(3)查询统计功能。要求即可以单项查询,比如查看某个职工的就职情况等;也可以多项查询,比如某个部门所有的员工的工资信息。二.设计分析:1,数据表的设计:(1)基本信息表:键名称数据类型大小空默认值主键员工编号char8Notnull姓名char8Notnull性别char2null“男”出生年月datetime8null外键所属部门char4null文化程度char4null职称char12null身份证号Varchar50null婚姻状况Char20null备注Varchar100null年龄IntNull(2)基本部门表键名称数据类型大小空默认值主键部门编号char4Notnull部门名称char20null部门负责人char8null部门人数int4null(3)职工工资表键名称数据类型大小空默认值主键、外键员工编号char8不可以外键部门编号char4可以基本工资numeric5(8,2)可以奖金numeric5(8,2)可以2.ER图设计:职工编号姓名性别籍贯年龄学历婚姻状况部门职称参加工作时间岗位备注身份证号电话号码部门部门编号部门名称部门负责人员工数职员编号职工工资编号姓名工资奖金管理职工领工资部门姓名编号身份证号电话部门编号部门名称编号姓名3.ER图转换成关系模式:(主键添加下划线)(1)基本信息(编号,姓名,性别,籍贯,年龄,学历,婚姻状况,部门,职称,参加工作时间,岗位,工资,身份证号,电话号码,备注)(2)职工部门:(部门编号,部门名称,职工总数,部门负责人,所有职工编号)(3)职工工资表:(编号,姓名,工资,奖金)(4)人事管理(编号,部门编号,姓名)三.创建人事管理系统(数据库部分)1创建数据库:(1)创建数据库的实现:createdatabase人事管理系统onprimary(name=人事管理系统,filename='G:\数据库\人事管理系统.mdf',size=5,maxsize=100,filegrowth=10%)logon(name=人事信息管理系统,filename='G:\数据库\人事管理系统.ldf',size=3,maxsize=100,filegrowth=5)(2)创建数据库:2.创建基本数据表:(1)创建数据标的实现;use人事管理系统createtable基本职工信息表(姓名varchar(20),编号char(8),性别char(8),籍贯char(10),年龄int,学历varchar(20),婚姻状况varchar(20),部门varchar(20),职称varchar(20),参加工作时间char(10),岗位varchar(30),工资char(20),省份证号varchar(30),电话号码varchar(30),备注varchar(50))use人事管理系统createtable职工部门表(部门编号int,部门名称varchar(30),部门负责人varchar(30),职工总数int,所有职员编号varchar(100))use人事管理系统createtable职工工资表(编号char(8),姓名varchar(50),工资char(20),奖金char(8))数据表的创建:基本信息表:职工部门表职工工资表3.创建存储过程:createprocp2(@snamevarchar(20))asifexists(select*from职工基本信息表wheresname=@sname)select*from职工基本信息表wheresname=@snameelseprint'查无此人'p2'刘'4.创建触发器:createtriggertr1on基本职工信息表forinsertasprint'任何人不得添加数据'rollbackselect*froms四,创建人事管理系统访问键面:(VB部分)1,创建键面的实现代码:(1)基本职工信息查询:PrivateSubCommand1_Click()UnloadMeEndSubPrivateSubDataGrid1_Click()WithAdodc1.RecordsetText1(0)=.Fields(姓名)Text1(1)=.Fields(编号)Text1(2)=.Fields(性别)Text1(3)=.Fields(籍贯)EndWithEndSubPrivateSubForm_Load()Text1.Text=Text2.Text=Text3.Text=Text4.Text=strsql1=select*from基本职工信息表Adodc1.ConnectionString=connAdodc1.RecordSource=strsql1Adodc1.RefreshSetDataGrid1.DataSource=Adodc1WithAdodc1.RecordsetText1.Text=.Fields(姓名)Text2.Text=.Fields(编号)Text3.Text=.Fields(性别)Text4.Text=.Fields(籍贯)EndWithEndSub(2)基本的职工工资:PrivateSubCommand1_Click()UnloadMeEndSubPrivateSubDataGrid1_Click()WithAdodc1.RecordsetText1(0)=.Fields(姓名)Text1(1)=.Fields(编号)Text1(2)=.Fields(性别)Text1(3)=.Fields(籍贯)EndWithEndSubPrivateSubForm_Load()Text1.Text=Text2.Text=Text3.Text=Text4.Text=strsql1=select*from基本职工信息表Adodc1.ConnectionString=connAdodc1.RecordSource=strsql1Adodc1.RefreshSetDataGrid1.DataSource=Adodc1WithAdodc1.RecordsetText1.Text=.Fields(姓名)Text2.Text=.Fields(编号)Text3.Text=.Fields(性别)Text4.Text=.Fields(籍贯)EndWithEndSub(3)职工部门:PrivateSubcmdAdd_Click()Data1.Recordset.AddNewEndSubPrivateSubcmdDelete_Click()'如果删除记录集的最后一条记录'记录或记录集中唯一的记录Data1.Recordset.DeleteData1.Recordset.MoveNextEndSubPrivateSubcmdRefresh_Click()'这仅对多用户应用程序才是需要的Data1.RefreshEndSubPrivateSubcmdUpdate_Click()Data1.UpdateRecordData1.Recordset.Bookmark=Data1.Recordset.LastModifiedEndSubPrivateSubcmdClose_Click()UnloadMeEndSubPrivateSubData1_Error(DataErrAsInteger,ResponseAsInteger)'这就是放置错误处理代码的地方'如果想忽略错误,注释掉下一行代码'如果想捕捉错误,在这里添加错误处理代码MsgBox数据错误事件命中错误:&Error$(DataErr)Response=0'忽略错误EndSubPrivateSubData1_Reposition()Screen.MousePointer=vbDefaultOnErrorResumeNext'这将显示当前记录位置'为动态集和快照Data1.Caption=记录:&(Data1.Recordset.AbsolutePosition+1)'对于Table对象,当记录集创建后并使用下面的行时,'必须设置Index属性'Data1.Caption=记录:&(Data1.Recordset.RecordCount*(Data1.Recordset.PercentPosition*0.01))+1EndSubPrivateSubData1_Validate(ActionAsInteger,SaveAsInteger)SelectCaseActionCasevbDataActionMoveFirstCasevbDataActionMovePreviousCasevbDataActionMoveNextCasevbDataActionMoveLastCasevbDataActionAddNewCasevbDataActionUpdateCasevbDataActionDeleteCasevbDataActionFindCasevbDataActionBookmarkCasevbDataActionCloseEndSelectScreen.MousePointer=vbHourglassEndSub(4)基本职工信息:PrivateSubcmdAdd_Click()Data1.Recordset.AddNewEndSubPrivateSubcmdDelete_Click()'如果删除记录集的最后一条记录'记录或记录集中唯一的记录Data1.Recordset.DeleteData1.Recordset.MoveNextEndSubPrivateSubcmdRefresh_Click()'这仅对多用户应用程序才是需要的Data1.RefreshEndSubPrivateSubcmdUpdate_Click()Data1.UpdateRecordData1.Recordset.Bookmark=Data1.Recordset.LastModifiedEndSubPrivateSubcmdClose_Click()UnloadMeEndSubPrivateSubData1_Error(DataErrAsInteger,ResponseAsInteger)'这就是放置错误处理代码的地方'如果想忽略错误,注释掉下一行代码'如果想捕捉错误,在这里添加错误处理代码MsgBox数据错误事件命中错误:&Error$(DataErr)Response=0'忽略错误EndSubPrivateSubData1_Reposition()Screen.MousePo