数据库课程设计高校工资管理系统

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

编号:***
学号:************* Array课程设计
教学院计算机学院
课程名称数据库课程设计
题目高校工资管理系统
专业**********************
班级****************************
姓名******************
同组人员****************************
指导教师**************
2013 年 6 月30 日
课程设计任务书
2012 ~2013 学年第 2 学期
学生姓名: ****** 专业班级: **************** 指导教师: ****** 工作部门: *******
一、设计题目:高校工资管理系统
二、设计目的
1.使学生更深入地理解和掌握该课程中的有关基本概念,程序设计思想和方法。

2.培养学生综合运用所学知识独立完成课题的能力。

3.培养学生勇于探索、严谨推理、实事求是、有错必改,用实践来检验理论,全方位考虑问题等科学技术人员应具有的素质。

4.培养学生从资料文献、科学实验中获得知识的能力,提高学生从别人经验中找到解决问题的新途径的悟性,初步培养工程意识和创新能力。

5.对学生掌握知识的深度、运用理论去处理问题的能力、实验能力、课程设计能力、书面及口头表达能力进行考核。

三、进度安排
2013年6月22日,指导教师讲课,学生根据题目准备资料;
2013年6月23日,设计小组进行总体方案设计和任务分工;
2013年6月29日,每人完成自己承担的程序模块并通过独立编译;
2013年6月30日,将各模块集成为一个完整的系统,并录入足够的数据进行调试运行;验收、撰写报告;答辩及总结。

四、基本要求
1.可组成设计小组,.查阅相关资料,自学具体课题中涉及到的新知识。

2.采用结构化、模块化程序设计方法,功能要完善,界面要美观。

根据需求分析,将系统划分为7个功能模块,分别为用户登陆,系统管理,数据录入,数据查询,基本报表生成,综合报表生成,用户管理。

数据库的设计: E-R图(略),共使用了7张表,固定资产信息表,计提折旧表,固定资产类别表,固定资产减少方式表,固定资产减少表,固定资产增加方式表,固定资产使用状况表。

3.所设计的系统原则上要能够运行无误,结果准确。

4.按要求写出课程设计报告,并于设计结束后1周内提交。

前言
高校工资管理是高等院校的财务部门都必须切实面对的工作,随着高等院校不断地发展,各高校的规模不断地扩大,教职员工的数量也越来越多,这对高校的工资管理提出了新的要求。

使用计算机进行管理成为必然趋势,这不仅仅可以降低管理工作的难度,也可以减少错误和提高效率。

工资管理系统作为计算机应用的一个分支,有着手工管理所无法比拟的优点,如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。

这些优点能够极大地提高工资管理的效率。

因此,开发一套能够为用户提供规范化的工资管理、充足的信息和快捷的查询手段的工资管理系统,将是非常必要的,也是十分及时的。

因此可以把高校工资管理作为毕业设计的题目,正好可以充分利用几年在校所学的各种专业知识开发一个高校工资管理系统来帮助相关部门进行有效的管理。

高校工资管理系统主要是高等院校的财务部门作为使用对象而开发的,工资管理作为一个典型的信息管理系统(MIS),其系统开发任务主要包括数据库的设计与维护、客户端应用程序的开发等两个方面。

对于前者要求建立起的数据库具有完整性和一致性,且具有一定的数据安全性如用户需要密码才能使用等,而对于后者则要求程序界面友好、功能完备等特点。

经过详细的分析,选用Borland公司的Delphi作为前端开发工具,利用其提供的集成开发环境及各种控件,尤其是对数据库的支持完成对数据库的各种操作,达到对图书资料管理的目的。

首先建立系统应用原型,然后对原型系统进行需求迭代,不断修正和改进,直到形成用户满意的实际可行系统。

目录
一.概述 (4)
1.1、课程设计的目的 (4)
1.2、背景描述 (4)
1.3、数据库功能定义 (5)
1.4、系统目标 (6)
二.总体方案设计 (7)
2.1、需求分析 (7)
2.2、可行性分析 (7)
2.3、数据库设计 (8)
2.4、安全设计 (11)
2.5、逻辑模型设计 (11)
2.6、物理模型设计 (13)
2.7、关键业务逻辑的存储过程实现 (13)
三.详细设计 (14)
3.1、创建数据库 (14)
3.2、创建表 (14)
3.3、插入数据 (16)
3.4、创建触发器 (16)
3.5、创建函数 (17)
3.6、创建存储过程 (17)
四.程序的调试与运行结果说明 (19)
五.课程设计总结 (24)
参考文献 (25)
一概述
1.1、课程设计的目的
本课程的实践学习是对学生的一种全面综合训练,是与课堂听讲,自学和练习相辅相成的必不可少的一个教学环节。

通过实践教学,使学生能够熟练使用数据库管理系统,培养学生运用数据库语言和多种开发工具建立设计数据库应用系统的能力,熟悉SQL语言编程和存储过程、游标的实现,掌握数据库设计的方法。

1.2、背景描述
随着高等学校的快速发展,高校规模越来越大,教职工的数量也越来越多,高校工资管理更加的复杂。

而工资管理是一项琐碎、复杂而又十分细致的工作,工资计算、发放、核算的工作量很大,一般不允许出错,如果实行手工操作,每月发放的工资须手工填制大量的表格,这就会耗费工作人员大量的时间和精力,计算机进行工资的发放工作,不仅能够保证工资核算准确无误、快速输出,而且还可以利用计算机对有关工资的各种信息进行统计,服务于财政部门其他方面的核算和财务处理,同时计算机具有着手工管理所无法比拟的优点。

例如:检索迅速、查询方便、可靠性高、存储量大、保密性好、寿命长、成本低等。

这些优点能够极大的提高人事工资管理的效率,也是企业的科学化、正规化管理,与世界接轨的重要条件。

这就对高校工资管理提出了新的要求,用计算机管理系统来管理高校工资已经成为目前的趋势,使用计算机可以高速、快捷的完成以上工作。

在计算机联网后,数据在网上传递,可以实现数据共享,避免重复劳动,规范数据管理行为,从而提高了管理效率和水平。

高校工资管理系统便是以计算机为工具,通过对工资管理所需要的信息管理,不仅把管理人员从繁琐的数据计算处理中解脱出来,而且优化了管理体系,使其高效化、简易话、智能化,也提高了透明度和互动性。

1.3、数据库功能定义
本系统主要针对教师工资管理,查询。

详细记录教师工资组成,轻松实现教师工资的查询,工资管理员进行删除,插入,修改等,且用户界面友好,容易操作,安全性高。

A.信息输入功能
1)输入员工的基本信息。

包括:员工编号、员工姓名、性别、出生日期、参
加工作日期、所属部门、职务、政治面貌、婚姻状况等基本信息。

2)输入员工的工资信息。

包括:基本工资、岗位工资、住房补贴、津贴、工
会会费、水电费、住房公积金、养老保险、奖惩。

3)输入员工的部门信息。

包括:部门编号、部门名称、部门负责人、部门人
数。

B.数据修改删除功能
1)修改和删除员工的基本信息。

当单位人员的信息发生变化,如职称的改变,
工作部门变动,或调离本单位等,系统应能修改员工的信息或将其从员工信息表中删除。

2)修改和删除员工的工资信息。

员工升职加薪、工资普调是企业中常见的事
情,这就需要系统能方便对员工工资进行个别及批量的修改;如员工调离本单位,就应当从员工信息表中删除这个员工信息,将其工资信息表中相应的数据删除。

3)修改和删除部门信息。

当撤消一个部门时,能从部门信息表中将其删除。

而当一个部门的名称发生改变时,系统中所有该项部门的名称应一致的改变。

C.查询和统计功能
1) 能够查询指定员工的基本信息。

2) 能够查询指定某个部门或全部部门的基本信息
3) 查询某个员工的工资信息。

4) 统计、汇总指定年份企业各部门或某个部门每个月或全年工资总额,汇总
各部门的人数或本单位的总人数。

5) 工资表月工资记录的生成功能。

生成当月所有员工或某个部门的工资记录,
同时能进行员工工资的计算,即计算应发金额、应扣金额及实发金额。

1.4、系统目标
本系统的设计目标是能够对湖北理工学院的教职员工的基本信息和工资信息进行添加和修改,根据个人信息将工资分为职务工资,职称工资和其他工资。

能够调整工资标准和员工信息,也能够调整其他工资项目,根据需要对教职员工基本信息和工资信息的查询,本系统能够生成各个月的工资表,能够打印报表方便保存和管理,还包括对系统的一些基本操作功能,比如为完善系统管理功能,增加工资系统用户管理功能,系统应该包括系统用户数据的添加,修改和删除。

教职员工为系统普通用户,只能运行系统个人工资查询功能;系统管理员则能运行系统所有功能,从而有效保证系统数据的安全性,系统应具有简单,易用,小巧,经典的特色,应该能够对高校工资管理进行优化,使其系统化,高效化,智能化。

并保证工资管理的准确性,简易性,为学校财务人员提供便利。

二总体方案设计
2.1、需求分析
工资管理系统的开发意图是利用计算机数据库技术,减少人工操作失误造成的错误,确保工资数据准确和安全,使学校教职工工资管理更加科学、规范,安全。

通过本系统,能帮助劳资管理人员利用计算机快速、方便的对教职工工资数据进行信息管理、数据输入、报表输出、查询等操作,同时利用操作人员的权限和密码管理,确保工资数据的安全。

2.2、可行性分析
1)技术可行性:
本系统使用者主要是该校劳资科的两位工作人员;现在已有日常工资网上查询系统在运行,需每月提供excell表格上传即可;同时考虑到数据安全性,因此需使用b/s模式。

SQL server 2000 是一种关系数据库管理系统软件,它的后端可以与SQL挂接,为数据库管理提供了简单易用而又功能强大的平台。

与其他数据库管理系统相比,SQL server 2000具有界面规范易于掌握的特点。

我们选择开发平台的原则是“不追求技术先进、够用合适就是最好”。

对于开发这种小型数据库SQL是足已的。

2)经济可行性:
本系统基于SQL server 2000开发设计,SQL server 2000操作简单、易于开发的特点,可以较好地缩短开发周期;使用人员对SQL server 2000熟悉,可以大大减少日后培训时间和维护成本。

3)运行可行性:
本系统是基于详细的需求分析,功能模块是依据劳资管理人员的需求设计,系统界面是按照劳资管理人员的操作习惯设计。

而且SQL server 2000是一个相当成熟的开发平台。

2.3、数据库设计
本系统采用sql server 2000作为后台数据库,建立数据库。

按照范式要求对数据库逐步进行求精,消除信息亢余。

整个数据库分为人员基本信息、基本工资、岗位津贴、课酬津贴和管理教辅津贴等五大表。

系统功能模块图:
员工
(1)员工基本档案实体
(2)学校部门
(3)学校信息实体
(4)员工信息实体
(5)离职信息实体
(6)工资核算信息实体
(7)考勤信息实体
(8)工资发放信息实体
2.4、安全设计
系统数据的安全性方面,本系统采取了两项措施来保障。

一是用户分级管理。

用户根据权限分为系统管理员和信息操作员。

系统管理员具有系统所有的操作权限,信息操作员限制了一些关键数据的修改和涉及系统数据安全的操作。

二是提供数据库的备份和恢复功能。

2.5、逻辑模型设计
1)数据字典
表1 员工信息表ygxx
列名数据类型可否为空说明
表2 员工出勤表ygcq
表3 员工津贴表ygjt
表4 员工月工资表ygygz
表5 部门信息表bmxx
表6 基本工资表jbgz
2)关系模式
员工信息表(员工编号,员工姓名,性别,出生年月,参加工作时间,所属部门,职务,婚姻状况,政治面貌,电话号码)
员工出勤表(员工编号,统计时间,员工姓名,旷工次数,考勤工资)
员工津贴表(员工编号,统计时间,员工姓名,加班天数,津贴工资)
员工月工资表(员工编号,基本工资,住房补贴,津贴,工会会费,水电费,住房公积金,养老保险,奖惩,总工资)
部门信息表(部门编号,部门名称,部门负责人,部门人数)
基本工资表(职务,基本工资)
各表的属性都不能被分解,所有非主属性都完全依赖每一个候选关键属性,也没有传递依赖。

2.6、物理模型设计
数据库最终是要存储在物理设备上的,为一个给定的逻辑数据模型选取一个最适合应用环境的物理结构(存储结构与存取方法)的过程,就是数据库的物理设计。

数据库的物理结构依赖于给定的计算机系统和DBMS。

2.7、关键业务逻辑的存储过程实现
确定了数据库的逻辑结构和物理结构后,就可以用所选用的DBMS提供的数据定义语言(DDL)来严格定义数据库,包括建立表、定义表的约束等。

数据库系统投入运行后,对数据库设计进行评价、调整、修改等维护工作。

三详细设计
部分代码设计:
3.1、创建数据库
create database 工资管理
on
(
name=sales_dat,
filename='d:\sales.mdf'
)
3.2、创建表
create table 员工信息
(
emp_no varchar(8) not null primary key, --员工编号
emp_name varchar(10) not null , --员工姓名
sex char(2) check (sex='男'or sex='女'), --性别
birth_date datetime not null, --出生日期
emp_time datetime not null, --参加工作日期 department_id char(4) not null, --所属部门
zhiwu varchar(10) not null, --职务
marry varchar(4), --婚姻状况
zhengzhimm varchar(10), --政治面貌
telephone char(11), --电话号码
constraint old check (datediff(year,birth_date,emp_time)>18) )
create table 员工出勤
(
emp_no varchar(8) not null , --员工编号
kaoqin_month varchar(10) not null, --统计时间
emp_name varchar(10) not null , --员工姓名
queqin_tianshu char(2), --旷工次数
kaoqin_gongzi float, --考勤工资
constraint e_k primary key(emp_no,kaoqin_month)
)
create table 员工津贴
(
emp_no varchar(8) not null , --职工编号
jiaban_month varchar(10) not null, --统计时间
emp_name varchar(10) not null , --员工姓名
jiabantianshu char(2), --加班天数
jintie_gongzi float, --津贴工资
constraint e_j primary key(emp_no,jiaban_month)
)
create table 员工月工资
(
emp_no varchar(8) not null , --员工编号
jibengongzi float default 1500, --基本工资
zhufangbutie float, --住房补贴
jintie_gongzi float, --津贴
gonghuihuifei float, --工会会费
shuidianfei float, --水电费
zhufanggongjijin float, --住房公积金
yanglaobaoxian float, --养老保险
ygz_month varchar(10) not null, --月工资时间
kaoqin_gongzi float, --奖惩
wagecount as jibengongzi+zhufangbutie+jintie_gongzi
+kaoqin_gongzi+gonghuihuifei+zhufanggongjijin+yanglaobaoxian constraint e_g primary key(emp_no,ygz_month)
)
create table 部门信息
(
department_id char(4) not null primary key, --部门编号
department_name varchar(6) not null, --部门名称
manager varchar(6), --部门负责人
dep_renshu varchar(4) --部门人数
)
create table 基本工资
(
zhiwu varchar(10) not null primary key, --职务
jibengongzi float default 1500, --基本工资
)
3.3、插入数据
insert 员工信息 values('20120101','谢帅','男
','1990-10-24','2012-1-1','01','部长',
'否','团员','8888168')
insert 员工信息 values('20120102','谢馨','女
','1990-10-24','2012-1-2','01','员工',
'否','党员','8888169')
insert 部门信息 values('01','人事部','谢帅',20)
insert 部门信息 values('02','财务部','谢月儿',10)
insert 员工出勤 values('20120101','谢帅','201205','0', 0)
insert 员工出勤 values('20120102','谢馨','201205','2',-60)
insert 员工津贴 values('20120101','谢帅','201205','05',15)
insert 员工津贴 values('20120102','谢馨','201205','0',0)
insert 基本工资 values('员工',1500)
insert 基本工资 values('组长',2000)
insert 员工月工资 values('20120101',2000,0,15,0,0,0,0,'201205',2015) insert 员工月工资 values('20120102',1500,0,-60,0,0,0,0,'201205',1440)
3.4、创建触发器
a. 员工表中删除一条信息,其他表相应员工信息删除
create trigger em on 员工信息
for delete
as
delete from 员工出勤 where emp_no in (select emp_no from deleted) delete from 员工津贴 where emp_no in (select emp_no from deleted) delete from 员工月工资 where emp_no in (select emp_no from deleted)
b. 一个部门删除,此部门中的员工信息删除
create trigger bm on 部门信息
for delete
as
delete from 员工信息 where department_id in (select department_id from
deleted)
c.员工职务变动,基本工资改变
create trigger jbgz on 员工信息
for update,insert
as
declare @q varchar(12)
declare @m varchar(12)
declare @s float
select @q=emp_no from Deleted
select @m=zhiwu from Inserted
select @s=jibengongzi from 基本工资 where zhiwu=@m
update 员工月工资
set jibengongzi=@s
where 员工月工资.Emp_no=@q
3.5、创建函数
a.函数查询员工基本信息
create function ygxx(@yg_id varchar(10))
returns table
as
return(select * from 员工信息 where emp_no=@yg_id)
b.函数查询部门信息
create function bumen(@bumen_id varchar(4))
returns table
as
return(select * from 部门信息 where department_id=@bumen_id)
3.6、创建存储过程
a.存储过程查询员工基本信息
create proc ygxx2
@yg_id varchar(10)
as
select * from 员工信息 where emp_no=@yg_id
b.存储过程查询指定某个部门或全部部门的基本信息
create proc bumen2
@bumen_id2 varchar(4)
as
select * from 部门信息 where department_id=@bumen_id2 create proc bumenq
as
select * from 部门信息
c.存储过程查询某个员工的工资信息
create proc gzxx
@yg_id varchar(10)
as
select * from 员工月工资
where emp_no=@yg_id
d.汇总部门月份工资
create proc gzhz
@month_year varchar(10)
as
select ygz_month from 员工月工资
where ygz_month=@month_year
order by ygz_month
四程序的调试与运行结果说明1.创建数据库
2. 创建表
3.插入数据
4.创建触发器
a.员工表中删除一条信息,其他表相应员工信息删除
b. 一个部门删除,此部门中的员工信息删除
5.创建函数
a.函数查询员工基本信息
b.函数查询部门信息
6.创建存储过程
a.存储过程查询某个员工的工资信息
b.汇总部门月份工资
五课程设计总结
1.过程
(1)在对员工信息表创建删除触发器时,无法删除表记录,删除与其他表的外键约束后,触发器能正常运行。

(2)触发器、存储过程等的建立与使用语句同时运行无法实现,先创建再执行程序正常运行。

(3)在创建员工信息表时职务的类型是text,但在创建基本工资表时职务作为主键出现错误。

把职务改成varchar类型后运行正常
(4)在插入数据时文字长度超出数据类型的长度出现文字被截取的现象。

(5)对基本的SQL语句掌握不牢固,通过查询资料后基本掌握。

2.体会
此系统的规划虽然已经完成,功能基本实现了目标规划一些重要功能,但由于时间仓促,所以只满足了基本要求,并没有过多考虑到系统的技术含量,在这次系统的开发过程中学到了好多知识,而且更加深入,而且更加熟练地掌握了Microsoft SQL Server数据库,锻炼了我的项目开发能力,使我对软件工程的知识有了更深刻的理解、更贴切的感受。

在这过程中有许多不顺利的时候,然后我就找同学讨论,实在讨论不出来,就到图书馆、上网查资料培养了自己查资料和同学讨论的好习惯,这些对将来走上工作岗位是有很大的帮助的,相信我以后工作时在这些方面会做的更好。

3.回顾:
通过这次的数据库课程设计,对许多原来不太清楚的知识点有了更进一步的了解,写代码的时候要细心,注意代码中的一切标点符号都要用英文,创建表插入记录时新插入的记录要加单引号,插入记录时新插入的元组顺序与属性的顺序要一致,常见存储过程时,需要用到变量的要先声明变量,创建了外键约束时,要先对不被约束的表进行操作。

参考文献
[1]《数据库系统概论》萨师煊等著高等教育出版社 2006年5月第四版
[2]《SQL Server 2005数据库开发应用教程》孙全党等主编科学出版社 2008年2月第一版
[3]《C#课程设计》吕文达编著清华大学出版社 2004年一月第一版
[4]《数据库原理及应用》钱雪忠主编北京邮电大学出版社第二版 2007年8月
[5]《SQL Server数据库开发实例解析》机械工业出版社宋昆、李严等 2006年1月
课程设计成绩评定表。

相关文档
最新文档