数据库+vb 人事管理系统_第1页
数据库+vb 人事管理系统_第2页
数据库+vb 人事管理系统_第3页
数据库+vb 人事管理系统_第4页
数据库+vb 人事管理系统_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、数据库课程设计·人事管理系统 一、系统定义当今中国经济迅速发展,各个大中小型企业迅速崛起,企业的人员管理渐渐显露出了弊端,本系统以一个统一的界面,这就很需要一个好的管理系统来管理自己的企业,传统低效的人工管理已不合时宜。给公司的普通员工,高级员工,管理员工等提供了不同的操作及管理功能。数据库服务器可配置在独立的服务器上,也可配置在一台运行本系统的计算机上。适用于中小型企业,或独资的个人小公司。二、需求分析系统综合需求作为一个公司的人事管理系统,应该给用户提供方便、友好而简洁的界面进行应用,并对企业的运营过程中对员工的整体管理,并将这些数据进行逻辑上的融合,以便于用户查看、分析及管理。

2、针对中小型企业的运营模式,一般分为:行政部,人事部,销售部,会计部等几个部门,对部门里边的员工和管理者,都有一个对应的数据,每个部门的员工信息综合起来又合成了全公司的员工信息。此系统提供了两个登录方式,一个是普通员工的登录方式,普通员工可以查看自己的信息,部门信息,最新的人事调动信息,工资信息,以及其他员工的简单信息;另一个是系统管理员的登录方式,管理员可以通过此系统对数据库里边的所有员工信息进行操作,包括添加,修改和删除,发布人事调动信息,输入员工出勤信息和计算员工工资等操作都有管理员进行操作,以便员工可以查看。部门编号员工编号部门描述三、系统设计员工姓名部门名称(一)概念结构设计部门名称性

3、别员工编号行政部等十个部门部门编号职位部门信息部门人数籍贯员工姓名身份证号码所在部门编号员工编号婚姻状况员工姓名员工原职位原部门编号入职时间人事调动现职位在职状态现部门编号文化程度联系电话所在部门编号员工编号出勤信息请假天数员工姓名月出勤天数加班天数旷工天数(二)逻辑结构设计员工信息员工编号intNot null员工姓名Nvarchar(10)null所在部门编号intnull职位Nvarchar(10)null性别Nvarchar(5)null籍贯Nvarchar(30)null身份证号码bigintnull文化程度Nvarchar(5)null联系电话bigintnull入职时间Nvarc

4、har(10)null在职状态Nvarchar(10)null婚姻状况Nvarchar(10)null部门信息部门编号intNot null部门名称Nvarchar(10)null部门人数Int null部门描述Nvarchar(50)null月出勤情况员工编号intNot null员工姓名Nvarchar(10)null所在部门编号intNull请假天数intNull加班天数intNull旷工天数intNull月出勤天数intnull包装部(行政部,人事部等部门和此表数据一样)部门编号intNot null员工编号Nvarchar(10)null员工编号intNull员工姓名Nvarchar

5、(20)null人事调动员工编号intNot null员工姓名Nvarchar(20)null原部门编号intNot Null原职位Nvarchar(10)Null现部门编号intNot Null现职位Nvarchar(10)null调动原因Nvarchar(30)null(三)数据库关系图四、详细设计(一)开发平台及工具l 开发工具Vb 6.0l DBMS:Microsoft SQL Server 2005(二)编码设计系统采用vb应用程序以方便开发,为数据做了很好的界面设计,并且可以进行添加删除修改存储等。在数据源连接方面,使用ado控件进行数据库的连接,并用datagrid 控件进行数据

6、显示,不过这只是普通用户进行数据查看的界面,并不能对数据进行任何操作,而能有对数据进行操作权限的管理员就得从登录界面进入管理界面,对数据进行增删改减。(三)界面设计.主页.普通用户登录.普通员工进入的查询界面,按菜单进行查询操作.登录的员工的本人信息.用视图对数据进行简单的查询.部门信息的查看.管理员登录.管理界面员工的增删改操作.添加操作.修改操作五、课程设计总结这次课程设计我花了两个星期的时间来完成,前期做了一些准备工作,了解了一般超市物流管理方面的背景知识,然后再权衡了时间和人力,做了适量简化,并完成了初步的需求分析。稍作细化后,便开始设计数据库。而后做了界面设计,完成了程序大部分的主要

7、界面。而在编码方面,我从系统的功能、规模和实用方面考虑,并没有去学习和采用过多花哨的新技术,如.net、分布式等企业级应用。我在规划前,进行了近半个月的时间来学习vb6.0的,还有SQL Server中触发器和存储过程的知识和编写方法。而且在以后的编码过程中,也在不断的学习并解决遇到的问题。在数据库设计时,由于有些仓促,没有深入的考虑外码约束的问题,使得编码阶段,发现了一个重大问题。在是十部门中某个部门中增加了某个员工后,在员工信息中并没有记录,主要是约束和主键没设置好,并且对触发器的使用非常陌生,不过要知道这次的课设,大部分的时间都投在了vb中去了,界面设计太重要了,数据库设计还不如说是界面

8、设计了,很多知识都是现场学现场用的。不过还好,总算做完了,有点累,烦,但是当完成的那一会,还是挺有成就感的,因为这次确实有很大的收获,知道了一个系统的建立过程是多么的复杂,对以后出去工作应该有些帮助吧。这次课程设计,我更加深入的了解到软件工程的复杂性,以及前期规划分析的重要性。其实在vb这种面向对象的程序设计中,我的瀑布开发模型并不太合适。而且如果系统再稍微大型一些,以一人之力也难以完成。以后的学习中应该学习一些先进的思想,并多加实践,从写程序和软件架构两个方面都增强自己的能力。六、参考文献1.Visual basic 6.0程序设计 2.数据库系统概论(第三版)七、附录 数据库部分源代码cr

9、eate database 人事管理系统 /数据库创建on primary(name=人事管理系统_dat, filename='F:数据库文件人事管理系统_dat.mdf', size=5MB, maxsize=20MB, filegrowth=10%)log on( name=人事管理系统_log, filename='F:数据库文件人事管理系统_dat.ldf', size=2MB, maxsize=10MB, filegrowth=1MB)use 人事管理系统gocreate table 员工信息(员工编号 int not null,员工姓名 nvarc

10、har(10) not null,所在部门编号 int not null,职位 nvarchar(10) null,性别 nvarchar(5) null,籍贯 nvarchar(30) null,身份证号码 bigint null,婚姻状况 nvarchar(5) null,文化程度 nvarchar(10) null,联系电话 bigint null,入职时间 datetime null,在职状态 nvarchar(10) null,primary key(员工编号,员工姓名,所在部门编号)create table 部门信息(部门编号 int not null,部门名称 nvarchar(

11、10) null,部门人数 int null,部门描述 nvarchar(50) null,primary key(部门编号)create table 人事部(员工编号 int not null,员工姓名 nvarchar(20) null,primary key(员工编号)create table 行政部(员工编号 int not null,员工姓名 nvarchar(20) null,primary key(员工编号)create table 销售部(员工编号 int not null,员工姓名 nvarchar(20) null,primary key(员工编号)create table

12、 会计部(员工编号 int not null,员工姓名 nvarchar(20) null,primary key(员工编号)create table 生产部(员工编号 int not null,员工姓名 nvarchar(20) null,primary key(员工编号)create table 技术部(员工编号 int not null,员工姓名 nvarchar(20) null,primary key(员工编号)create table 包装部(员工编号 int not null,员工姓名 nvarchar(20) null,primary key(员工编号)create table

13、 采购部(员工编号 int not null,员工姓名 nvarchar(20) null,primary key(员工编号)create table 服务部(员工编号 int not null,员工姓名 nvarchar(20) null,primary key(员工编号)create table 宣传部(员工编号 int not null,员工姓名 nvarchar(20) null,primary key(员工编号)create table 工资(员工编号 int not null,员工姓名 nvarchar(10) not null,出勤天数 int null,总工资 int null

14、,primary key(员工编号,员工姓名)create table 月出勤情况(员工编号 int not null,员工姓名 nvarchar(10) not null,所在部门编号 int not null,请假天数 int null,加班天数 int null,旷工天数 int null,月全天出勤天数 int null,日期 datetime null,primary key(员工编号,员工姓名,所在部门编号) create table 人事调动(员工编号 int not null,员工姓名 nvarchar(10) not null,调动原因 nvarchar(30) null,原

15、部门编号 int not null,原职位 nvarchar(10) null,现部门编号 int not null,现职位 nvarchar(10) null,primary key(员工编号,员工姓名)create table 登录信息(用户名 nvarchar(20) null,用户密码 nvarchar(20) null)create table 管理员信息(用户名 nvarchar(20) null,用户密码 nvarchar(20) null)create view 员工工资查询asselect 员工编号,员工姓名,请假天数,加班天数,旷工天数,月全天出勤天数,总工资from 工资

16、,月出勤情况where 工资.员工编号=月出勤情况.员工编号;create view 部门员工信息asselect 部门编号,部门名称,员工编号,员工姓名from 员工信息,部门信息where 员工信息.所在部门编号=部门信息.部门编号create view 员工简单信息查询asselect 员工编号,员工姓名,所在部门编号,部门名称,职位,联系电话from 员工信息,部门信息where 员工信息.所在部门编号=部门信息.部门编号insert 部门信息(部门编号,部门名称,部门人数,部门描述)values(101,'行政部',0,'无')insert 部门信息(

17、部门编号,部门名称,部门人数,部门描述)values(102,'人事部',0,'无')insert 部门信息(部门编号,部门名称,部门人数,部门描述)values(103,'会计部',0,'无')insert 部门信息(部门编号,部门名称,部门人数,部门描述)values(104,'销售部',0,'无')insert 部门信息(部门编号,部门名称,部门人数,部门描述)values(105,'包装部',0,'无')insert 部门信息(部门编号,部门名称,部门人数,部

18、门描述)values(106,'技术部',0,'无')insert 部门信息(部门编号,部门名称,部门人数,部门描述)values(107,'生产部',0,'无')insert 部门信息(部门编号,部门名称,部门人数,部门描述)values(108,'宣传部',0,'无')insert 部门信息(部门编号,部门名称,部门人数,部门描述)values(109,'采购部',0,'无')insert 部门信息(部门编号,部门名称,部门人数,部门描述)values(110,&

19、#39;服务部',0,'无')insert 行政部(员工编号,员工姓名)values(10101,'刘星')insert 行政部(员工编号,员工姓名)values(10103,'刘小星')insert 行政部(员工编号,员工姓名)values(10104,'刘中星')insert 行政部(员工编号,员工姓名)values(10107,'刘大星')insert 行政部(员工编号,员工姓名)values(10108,'刘笑星')insert 行政部(员工编号,员工姓名)values(10109,

20、'刘校星')insert 月出勤情况(员工编号,员工姓名,所在部门编号,请假天数,加班天数,旷工天数,月全天出勤天数)values(10201,'刘星',102,0,0,0,30)insert 人事调动(员工编号,员工姓名,原部门编号,原职位,现部门编号,现职位)values(10201,'刘星',101,'经理',102,'经理')insert 登录信息(用户名,用户密码)values('10101','10101')insert 登录信息(用户名,用户密码)values('

21、;10201','10201')insert 管理员信息(用户名,用户密码)values('sa','123')vb部分代码form1 代码Private Sub 关闭_Click()EndEnd SubPrivate Sub 管理员登陆_Click()frmLogin.ShowUnload MeEnd SubPrivate Sub 员工登陆_Click()frmLogin1.ShowUnload MeEnd Sub管理员登陆代码Option ExplicitPrivate Sub cmdCancel_Click() Me.Hide Fo

22、rm1.ShowEnd SubPrivate Sub cmdOK_Click() Dim user As String, pass As String, sqluse As String, sqlpass As String, trsql As String If txtUserName.Text = "" Then MsgBox "请输入用户名!", vbExclamation txtUserName.SetFocus Else user = txtUserName.Text End If If txtPassword.Text = "&qu

23、ot; Then MsgBox "请输入密码!", vbExclamation txtPassword.SetFocus Else pass = txtPassword.Text End If sqluse = "SELECT * FROM 管理员信息 WHERE 用户名='" & user & "'" sqlpass = "SELECT * FROM 管理员信息 WHERE 用户密码='" & pass & "'" trsql =

24、 "SELECT * FROM 管理员信息 WHERE 用户名='" & user & "' AND 用户密码='" & pass & "'" With Adodc1 .CommandType = adCmdText .RecordSource = sqluse .Refresh If .Recordset.EOF And .Recordset.BOF Then MsgBox "没有此用户,请重新输入!" Else .RecordSource = sq

25、lpass .Refresh If .Recordset.EOF And .Recordset.BOF Then MsgBox "密码错误,请重新输入!" Else .RecordSource = trsql .Refresh If .Recordset.EOF And .Recordset.BOF Then MsgBox "无效用户,请重新输入!" Else Form8.Show Unload Me End If End If End If End WithEnd SubPrivate Sub rorm_initialize()ChDrive App.

26、PathChDir App.PathEnd Sub员工信息操作Private Sub Command1_Click() '添加用户Dim user As Integeruser = Val(Text1.Text)With Adodc1 .CommandType = adCmdText .RecordSource = "SELECT * FROM 员工信息 WHERE 员工编号=" & user & "" .Refresh If .Recordset.BOF Then .Recordset.AddNew .Recordset.Fie

27、lds(0).Value = user .Recordset.Fields(1).Value = Text2.Text .Recordset.Fields(2).Value = Val(Text3.Text) .Recordset.Fields(3).Value = Text4.Text .Recordset.Fields(4).Value = Text5.Text .Recordset.Fields(5).Value = Text6.Text .Recordset.Fields(6).Value = Text7.Text .Recordset.Fields(7).Value = Text8.

28、Text .Recordset.Fields(8).Value = Text9.Text .Recordset.Fields(9).Value = Text10.Text .Recordset.Fields(10).Value = Text11.Text .Recordset.Fields(11).Value = Text12.Text .Recordset.Update MsgBox "添加用户成功" Unload Me Else MsgBox "员工编号已注册,请重新输入" Me.Hide End IfEnd WithEnd SubPrivate S

29、ub Command2_Click()Form8.ShowEnd SubPrivate Sub Command3_Click() '修改信息Dim user1 As Integer, user2 As Stringuser1 = Val(Text13.Text)user2 = Text14.TextWith Adodc1 .CommandType = adCmdText .RecordSource = "SELECT * FROM 员工信息 WHERE 员工编号=" & user1 & " AND 员工姓名='" &

30、; user2 & "'" .Refresh If .Recordset.BOF Then MsgBox "你的资料未输入系统,请找管理员" Else .Recordset.Fields(0).Value = Text1.Text .Recordset.Fields(1).Value = Text2.Text .Recordset.Fields(2).Value = Text3.Text .Recordset.Fields(3).Value = Text4.Text .Recordset.Fields(4).Value = Text5.T

31、ext .Recordset.Fields(5).Value = Text6.Text .Recordset.Fields(6).Value = Text7.Text .Recordset.Fields(7).Value = Text8.Text .Recordset.Fields(8).Value = Text9.Text .Recordset.Fields(9).Value = Text10.Text .Recordset.Fields(10).Value = Text11.Text .Recordset.Fields(11).Value = Text12.Text .Recordset.

32、UpdateBatch MsgBox "该员工信息已经修改,请查询确认!" End IfEnd With End SubPrivate Sub Command4_Click() '删除信息Dim user As Integeruser = Val(Text13.Text)With Adodc1 .CommandType = adCmdText .RecordSource = "SELECT * FROM 员工信息 WHERE 员工编号=" & user & "" .Refresh If .Recordset.BOF Then MsgBox "没有此员工&

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论