工资管理系统_数据库课程设计报告.doc_第1页
工资管理系统_数据库课程设计报告.doc_第2页
工资管理系统_数据库课程设计报告.doc_第3页
工资管理系统_数据库课程设计报告.doc_第4页
工资管理系统_数据库课程设计报告.doc_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

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

文档简介

目录一、开发背景2二、功能描述3三、数据流分析43.1数据流图43.2数据字典5四、概念模型设计7五、逻辑结构设计和优化10六、应用程序设计11七、心得体会13参考文献14附录14一、开发背景随着经济的发展,企业正向着大型化、规模化发展,而对于大中型企业,员工、职称等跟工资管理有关的信息随之急剧增加。在这种情况下单靠人工来处理员工的工资不但显得力不从心,而且极容易出错。如何设计一个小型企业工资的数据库管理系统,由计算机代替人工执行一系列诸如增加新员工,删除旧员工,工资查询,统计等操作。这样就使办公人员可以轻松快捷地完成工资管理的任务。 对于企、事业单位的工资发放来说,不需要太大型的数据库系统。只需要一个操作方便,功能实用,能同时满足财务部门、单位其他相关部门及代发单位三方对数据的管理及需求的系统。企业的目标就是在于利用编程软件开发一个功能实用,用户操作方便,简单明了的工资管理程序。 实现工资的集中管理。可供财务人员对本单位的人员以及工资进行增加、删除、修改、查询,对工资发放中的应发工资合计等项目由系统自动进行计算;同时系统还可对员工及工资管理情况进行多角度查询。 基于以上原因,企业工资管理系统使用电脑安全保存、快速计算、全面统计,实现工资管理的系统化、规范化、自动化。企业工资管理系统是典型的信息管理系统(mis),前台程序开发工具采用微软的vb6,后台数据库采用sql server2000数据库。vb6是一种面向对象的开发工具,具有组件丰富、语言简单、功能强大的优点。sql server2000数据库具有与vb6无缝连接、操作简单、易于使用的优点二、功能描述工资管理系统系是为了更好的实现工资各种信息的管理以及各种信息的安全性管理。本系统主要对查看员工的各种工资信息需求所设计的,可以很好的管理数据。 本系统的主要功能由以下几个部分组成:经过调研及分析,工资管理信息系统主要完成以下功能:(1) 管理员身份的确认:只有用户名和用户密码都相符的管理员方可进入本系统,为了防止不合法用户对数据的察看和修改,管理员可以设定用户名、密码和其权限,还可以对纪录进行增加、删除、修改等操作。当管理员要进入系统时必须先输入用户名和密码,按“确认”按钮后,系统辨别管理员身份,对合法管理员赋予权限。(2) 员工基本信息模块:员工的基本信息。(3) 工资信息模块:员工每个月度的基本工资、岗位工资、水电费、津贴工资、扣除薪酬、实发金额。(4) 部门信息模块:公司各部门编号、名称、负责人、人数。(5) 考勤模块:记录员工迟到、缺席次数。(6) 津贴模块:记录员工加班情况派发津贴。(7) 员工信息管理模块:管理员对所需要的资料的查询即对员工基本信息的增加、删除、修改、查询操作。(8) 员工工资管理模块:管理员对所需要的资料的查询即对员工工资信息的增加、删除、修改、查询操作。三、数据流分析3.1数据流图部门信息表用户登陆权限辨别工资管理系统员工信息管理工资信息管理部门信息管理员工信息表津贴信息表报表打印用户名、密码员工信息工资信息部门信息考勤信息表工资信息表考勤信息管理津贴信息管理部门信息添、删、改员工信息添、删、改考勤信息津贴信息考勤管理考勤管理图3.1 工资管理系统简易数据流图3.2数据字典3.2.1 数据结构描述名称:员工(employee)含义说明:员工信息组成结构:员工编号+姓名+性别+出生年月+所属部门+文化程度+职称名称:工资(salary)含义说明:工资信息组成结构:员工编号+基本工资+岗位工资+水电费+津贴工资+扣除工资+实发工资名称:部门(branch)含义说明:部门信息组成结构:部门编号+部门名称+部门负责人+部门人数3.2.2 数据流的描述数据流名称:员工信息添加 简述:新员工信息录入数据流来源:公司管理者数据流去向:员工信息数据流组成:员工编号+姓名+性别+出生年月+所属部门+文化程度+职称数据流名称:员工信息修改 简述:员工信息错误或者员工调动数据流来源:员工信息数据流去向:员工信息数据流组成:员工编号+姓名+性别+出生年月+所属部门+文化程度+职称数据流名称:员工信息删除 简述:员工离职数据流来源:员工信息数据流去向:员工信息数据流组成:员工编号+姓名+性别+出生年月+所属部门+文化程度+职称数据流名称:工资添加 简述:新员工工资添加数据流来源:公司管理者数据流去向:工资信息数据流组成:工号+基本工资+岗位工资+水电费+津贴工资+扣除薪酬+实发金额数据流名称:工资修改 简述:公司对工资修改数据流来源:公司管理者数据流去向:工资信息数据流组成:工号+基本工资+岗位工资+水电费+津贴工资+扣除薪酬+实发金额3.2.3 主要数据存储的定义存储名称:员工记录 输入:员工基本信息 输出:员工所有信息 数据结构:员工编号+姓名+性别+出生年月+所属部门+文化程度+职称存储名称:部门记录 输入:部门基本信息 输出:部门所有信息 数据结构:部门编号+部门名称+部门负责人+部门人数存储名称:工资记录 输入:员工工资信息 输出:员工所有工资信息 数据结构:员工编号+基本工资+岗位工资+水电费+津贴工资+扣除工资+实发工资存储名称:考勤记录 输入:员工考勤信息 输出:员工所有考勤信息 数据结构:员工编号+姓名+性别+迟到次数+缺席次数存储名称:津贴记录 输入:员工津贴信息 输出:员工所有津贴信息 数据结构:员工编号+姓名+性别+加班时间+加班天数+津贴情况四、概念模型设计根据系统数据流图和数据字典,得出系统的概念模型(e-r)如图所示。用户信息用户名密码权限图4.1用户信息e-r图员工信息员工编号姓名性别出生年月所属部门文化程度职称图4.2员工信息e-r图部门信息部门编号部门名称部门负责人部门人数图4.2部门信息e-r图工资信息员工编号基本工资岗位工资水电费津贴工资扣除工资实发金额文化程度图4.3工资信息e-r图考勤信息员工编号姓名性别迟到次数缺席次数图4.4考勤信息e-r图津贴信息员工编号姓名性别加班时间加班天数加班类型津贴情况文化程度图4.5津贴信息e-r图员工获得享有工资津贴111n参加考勤属于部门1mnn图4.6工资管理系统总e-r图五、逻辑结构设计和优化5.1基本表关系模式:员工信息(员工编号、姓名、性别、出生年月、所属部门、文化程度、职称) 部门信息(部门编号、部门名称、部门负责人、部门人数) 基本工资(工资级别、工资金额) 岗位工资(工资级别、工资金额) 工资信息(员工编号、基本工资、岗位工资、水电费、津贴工资、扣除工资、实发金额) 考勤信息(员工编号、姓名、性别、迟到次数、缺勤次数) 津贴信息(员工编号、姓名、性别、加班时间、加班天数、加班类型、津贴情况) 用户信息(用户名、密码、权限)表5.1员工信息表员工编号char (8)主键,不允许重复姓名char (8)性别char (2)出生年月datetime所属部门char (4)外键文化程度char (4)职称char (12)表5.2部门信息表部门编号char (4)主键,不允许重复部门名称char (20)部门负责人char (8)部门人数int表5.3基本工资表工资级别char (2)主键,不允许重复工资金额numeric (8, 2)表5.4岗位工资表工资级别char (2)主键,不允许重复工资金额numeric(8, 2)表5.5工资信息表员工编号char (8)主键,不允许重复; 外键基本工资numeric (8, 2)岗位工资numeric (8, 2)水电费numeric (8, 2)津贴工资numeric (8, 2)加班工资扣除薪酬numeric (8, 2)迟到、缺席扣薪实发金额numeric (8, 2)表5.6考勤信息表员工编号char (8)主键不允许重复姓名char(8)性别char(2)迟到次数numeric(3)缺席次数numeric(3)表5.7津贴信息表员工编号char (8)主键不允许重复姓名char(8)性别char(2)加班时间numeric (8, 1)加班天数numeric (2)加班类型char(8)津贴情况numeric (8, 2)表5.8用户信息表用户名char (8)主键,不允许重复密码char (20)权限char (20)六、应用程序设计6.1用户了登陆模块登录模块的详细设计主要是用户登录的一个界面,判断登录的用户是管理员还是普通用户,进入后将面对的是主界面,从而进行相关的操作。登录的界面主要由用户名和密码的信息,还有一些标题设置,确定和取消的按钮组成。通过标题可以知道此系统的大概内容,由此,登录界面的设计完成。窗体如下:图6.1用户登录界面6.2 主窗体模块在这个项目中,选择使用多文档界面。使用这个窗体的好处是可以使程序更加有条理。对于一个多任务的应用程序,使用多文档窗体还可以减少占用的系统资源。主窗体设计的界面是用菜单编辑器做的,主要由系统、工资信息设置、工资信息管理和关于这四个大模块组成。主窗体是进行相关操作的主界面。在这几个里,管理员有所有的权利进行各种操作。窗体如下:图6.2主窗体界面七、心得体会通过这两周的数据库设计,使我们从中受到很大的影响,不仅将大学所学的知识进行了实际应用,还学到了很多书本上学不到的知识。开阔了视野,增长了知识,积累了一些经验和教训。充分锻炼了自己的动手和应用能力,真正做到了理论联系实际。开发本系统的过程中,首先要对企业工资管理进行系统调研,熟悉企业财务、人事、工资发放管理的流程、步骤;选用开发工具要选用自己最熟悉、应用较多的开发工具,本系统开发选用ms visual basic 6.0,其具有语言简单、功能强大、组件众多的优点。程序模块的编制中,重点把握系统内部完整性、功能性、实用性、便捷性,使其能够协调统一、运行无误。运行结果证明,工资管理系统提高了工作效率,节省了人力和物力。本次程序我主要负责数据库的开发背景和用户登录、主窗体的设计。由于是第一次弄数据库程序设计,对于数据库的流程还不是很清楚,所以很大一部分时间是在网上找资料,来完善我们这次数据库的需求分析。一开始对于我们这个数据库系统的功能模块、数据流图和数据字典都不是很清楚该怎么样来书写和绘图,不过经过进一步的学习终于懂得这些该怎么样写才是正确的,也增强了我自学的积极性。具体我们这个程序应该完成些什么功能还是通过小组共同商讨才确定下来,因为一开始对这次数据库程序设计还很陌生,所以都是在摸索中前进,当然也会遇到很多问题。比如一个功能的实现遇到了困难就会很焦急的面对这个问题。最后,我们要感谢老师的关心、指导和教诲。再次向所有关心、帮助、理解、支持我们做好数据库课程设计的老师和同学们致以深深的谢意,感谢你们的帮助和关爱!参考文献1 龚沛曾,陆慰民,杨志强visual basic 6.0 程序设计简明教程(6.0版)m高等教育出版社20012 林永,张乐强visual basic 用户编程手册(第二版)m人民邮电出版社20023 萨师煊,王珊数据库系统概论(第三版)m高等教育出版社20004 王珊,陈红数据库系统原理教程m清华大学出版社1998 5 钱雪忠,李京数据库原理及应用(第三版)m北京邮电大学出版社20106 温贤发vb数据库程序设计高手m科学出版社2001 附录登录模块源代码如下:private sub cmd_cancel_click() txt_key.text = cmo_user.text = 请选择 unload meend subprivate sub cmd_ok_click() dim try_times as string dim sql as string dim rst as adodb.recordset try_times = 0if (trim(txt_key.text) = ) then msgbox 请输入密码, vbokonly + vbexclamation, 提示else sql = select * from 用户表 where 用户名= & trim(cmo_user.text) & set rst = executesql(sql, ) if trim(rst.fields(1) = trim(txt_key.text) then if trim(rst.fields(2) 管理员 then frm_main.xitong.enabled = false 在这里设计非管理员用户的权限,这里我假设让非管理员用户不能用菜单中的系统 frm_main.shezhi.enabled = false frm_main.xinxiweihu.enabled = false end if rst.close username = trim(cmo_user.text) frm_main.show unload me else msgbox 密码不正确,请重新输入, vbokonly + vbexclamation, 警告 txt_key.setfocus txt_key.text = try_times = try_times + 1 exit sub 在这里若密码错了应该跳出该过程,否则下面的语句还会执行,这不是你想要的 end if try_times = try_times + 1 个人认为密码输入错了才加一,你这样的话,用户名错了也会加一,当然你这里用户名不会错是吧,改得多余了 if try_times = 3 then unload me end ifend ifend subprivate sub form_load() dim i as integer dim sql as string dim rst as adodb.recordset sql = select 用户名 from 用户表 set rst = executesql(sql, ) for i = 1 to rst.recordcount cmo_user.additem (rst.fields(0) rst.movenext next iend sub主窗体:private sub bumenxinxi_click()dim sql as stringdim rst as new adodb.recordsetsql = select * from 用户表 set rst = executesql(sql, )power = rst.fields(2)if trim(power) 管理员 thenmsgbox 您无权进行该操作!, vbokonly + vbexclamation, 警告elseif trim(power) = 管理员 thenfrm_bumenxinxi.showunload meend ifend ifend subprivate sub gangweigongzi_click()dim sql as stringdim rst as new adodb.recordsetsql = select * from 用户表 set rst = executesql(sql, )power = rst.fields(2)if trim(power) 管理员 thenmsgbox 您无权进行该操作!, vbokonly + vbexclamation, 警告elseif trim(power) = 管理员 thenfrm_gangweigongzi.showunload meend ifend ifend subprivate sub jiben_click()dim sql as stringdim rst as new adodb.recordsetsql = select * from 用户表 set rst = executesql(sql, )power = rst.fields(2)if trim(power) 管理员 thenmsgbox 您无权进行该操作!, vbokonly + vbexclamation, 警告elseif trim(power) = 管理员 thenfrm_jiben.showunload meend ifend ifend subprivate sub yonghushanchu_click()dim sql as stringdim rst as new adodb.recordsetsql = select * from 用户表 set rst = executesql(sql, )power = rst.fields(2)if trim(power) 管理员 thenmsgbox 您无权进行该操作!, vbokonly + vbexclamation, 警告elseif trim(power) = 管理员 thenfrm_tianjiayushanchu.showunload meend ifend ifend subprivate sub yonghutianjia_click()dim sql as stringdim rst as new adodb.recordsetsql = select * from 用户表 set rst = executesql(sql, )power = rst.fields(2)if trim(power) 管理员 thenmsgbox 您无权进行该操作!, vbokonly + vbexclamation, 警告elseif trim(power) = 管理员 thenfrm_tianjiayushanchu.showunload meend ifend ifend subprivate sub form_load() dim i as integer dim sql as string dim rst as adodb.recordset sql = select 权限 from 用户表 set rst = executesql(sql, ) for i = 1 to rst.recordcount rst.movenext next i主窗体模块源代码如下:private sub bumenxinxi_click()dim sql as stringdim rst as new adodb.recordsetsql = select * from 用户表 set rst = executesql(sql, )power = rst.fields(2)if trim(power) 管理员 thenmsgbox 您无权进行该操作!, vbokonly + vbexclamation, 警告elseif trim(power) = 管理员 thenfrm_bumenxinxi.showunload meend ifend ifend subprivate sub gangweigongzi_click()dim sql as stringdim rst as new adodb.recordsetsql = select * from 用户表 set rst = executesql(sql, )power = rst.fields(2)if trim(power) 管理员 thenmsgbox 您无权进行该操作!, vbokonly + vbexclamation, 警告elseif trim(power) = 管理员 thenfrm_gangweigongzi.showunload meend ifend ifend subprivate sub jiben_click()dim sql as stringdim rst as new adodb.recordsetsql = select * from 用户表 set rst = executesql(sql, )power = rst.fields(2)if trim(power) 管理员 the

温馨提示

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

评论

0/150

提交评论