数库类课程设计
系统开发报告
学 号: *********
姓 名: ******
题 目: 薪资理系统
指导教师: ******
提交时间: 2013年X月X日
计算机科学应系
目录
第章 需求分析1
第二章 系统功设计 2
第三章 数库设计 3
31 数库设计3
32数表设计4
33 数库编程6
第四章 功实现(说明) 11
41实现科室录入基资料工资扣金额数11
42实现查询详细资料工资项明细11
43 计算实际发放工资11
44科室职业分类统计数工资金额11
45 够修改工作员信息13
结束语 15
参考文献 15
附录(源程序)16
数库类课程设计报告评分标准20
第章 需求分析
系统功分析阶段务确定该系统解决问题具体求需通户交流沟通明确系统功求终列出系统实现功户确认
根出背景资料:
(1)某单位现1000名员工中理员财务员技术员销售员
(2)该单位设4科室理室财务科技术科销售科
(3)工资基工资福利补贴奖励工资构成失业保险住房公积金工资中扣
(4)员工基资料姓名性年龄单位职业(理工程师销售员等)
(5)月高工资超3000元工资月发放实际发放工资金额工资减扣
需实现功求:
(1)实现科室录入基资料工资扣金额数
(2)实现查询详细资料工资项明细
(3)计算实际发放工资
(4)科室职业分类统计数工资金额
(5)够删辞职员数
(6)够修改工作员信息
第二章 系统功设计
通述项功分析分类综合模块化程序设计求图示功模块图
登录控制
户理
修改密码
输入员工基信息
查询员工基信息
修改员工基信息
输入员工薪资信息
查询员工薪资信息
修改员工薪资信息
员工薪资理
系统理
薪资理系统
员工基信息理
图 1系统功模块图
第三章 数库设计
数库理信息系统中占非常重位数库结构坏直接影响应系统操作效率已否保证数致性完成性安全性
31 数库设计
根薪资理系统功求通分析系统设计相关实体集收集存储操数信息图2示实体属性图
姓名
职业
年龄
性
员工编号
单位编号
员工
单位
单位名称
单位编号
奖金工资
福利补贴
失业保险
工资
住房基金
基工资
图2实体属性图
·员工基信息(单位编号员工编号姓名性职业年龄)
·单位信息(单位编号单位名称)
·薪资信息(基工资奖金工资福利补贴失业保险住房公积金实际工资)
32数表设计
321 根关系建立员工信息表表名Staff :
CREATE TABLE Staff
(SofficeNo VARCHAR(10)
SNo VARCHAR(10)
Sname VARCHAR(10)
Ssex CHAR(2)
Sjob VARCHAR(10)
Sage SMALLINT
)
列名图3:
图3
322 INSERT INTO 语句Staff表录入员工单位编号员工编号姓名性职业年龄等项信息例:
INSERT
INTO Staff (SofficeNoSNoSnameSsexSjobSage)
VALUES('01''0001''李明''男''理员'29)
开Staff表图4:
图4
323 建立单位信息表Office:
CREATE TABLE Office
(Officename VARCHAR(10)
SofficeNo VARCHAR(10)
)
列名图5:
图5
324 INSERT INTO 语句Office录入单位单位名称单位编号等部门信息例:
INSERT
INTO Office (OfficenameSofficeNo)
VALUES('理室''01')
开Office表图6:
图6
325 建立薪资信息表Salary:
CREATE TABLE Salary
(SofficeNo VARCHAR(10)
Sjob VARCHAR(10)
wage MONEY*工资*
bonus MONEY*奖金*
welfare MONEY*补贴*
Insurance MONEY*保险*
HF MONEY*住房公积金*
FS MONEY*实际工资*
)
列名图7:
图7
326 INSERT INTO 语句员工信息表Salary录入基工资奖励工资福利补贴失业保险住房公积金等薪资明细:
INSERT
INTO Salary (SofficeNoSjobwagebonuswelfareInsuranceHFFS)
VALUES('01''理员''2000''300''300''200''20'NULL)
利利update set 语句实际工资基工资+奖励工资+福利补贴失业保险住房公积金具体语句:
update Salary set FS wage+bonus+welfareInsuranceHF
开Salary表图8:
图8
33 数库编程
331 建立查询语句根职业查询工资项明细具体代码:
select SofficeNo 部门编号Sjob 职业wage 基工资bonus 奖励工资welfare 福利补贴
Insurance 失业保险HF 住房公积金FS 实际工资
from Salary
where Sjob'财务员'
查询结果图9:
图9
332 方便查询建立名pro_Salary存储程通部门号员工号职业查询具体员工信息实际工资具体代码:
create procedure pro_Salary
@officeID VARCHAR(10)*部门ID*
@staffID VARCHAR(10)*员工ID*
@job VARCHAR(10)*职位*
AS
select ASname 姓名ASsex 性ASjob 职业ASage 年龄BOfficename 部门名称Cwage 基工资
Cbonus 奖励工资Cwelfare 福利补贴CInsurance 失业保险CHF 住房公积金CFS 实际工资
from Staff as AOffice as BSalary as C
where ASofficeNoBSofficeNo
and BSofficeNoCSofficeNo
and BSofficeNo@officeID
and ASjobCSjob
and ASjob@job
and ASNo@staffID
调存储程具体代码:
exec pro_Salary @officeID'02'@staffID'0004'@job'理员'
调结果图10:
图10
333 根工号查询员工信息具体代码:
select SofficeNo 部门编号SNo 工号Sname 姓名Ssex 性Sjob 职业Sage 年龄
from Staff
where SNo'0001'
查询结果图11:
图11
334 根部门名称查询部门编号根部门编号查询单位具体代码:
select OfficenameSofficeNo
from Office
where Officename'技术科'
select count(*) 查单位总数
from Staff
where SofficeNo'03'
查询结果图12:
图12
335 根职业名称查询职业数具体代码:
select count(*) 查职业总数
from Staff
where Sjob'理员'
查询结果图13:
图13
336 查询某职业员实际工资具体代码:
select FS 查职业实际工资
from Salary
where Sjob'技术员'
查询结果图14:
图14
337 方便户查数创建列名分工号姓名单位职业实际工资视图具体代码:
create view V_salaryinfo
as
select ASNoASnameASofficeNoASjobBFS
from Staff ASalary B
where ASofficeNoBSofficeNo and ASjobBSjob
查询试图语句代码:
select distinct *
from V_salaryinfo
运行结果图15:
图15
338 表Staff中建立insert触发器查询新添加员工信息具体代码:
create trigger T_Staff
on Staff
for insert
as
select Sname 新添加员工SNoSofficeNoSsexSjobSage from inserted
INSERT
INTO Staff (SofficeNoSNoSnameSsexSjobSage)
VALUES('04''0013''姚远''男''销售员'25)
运行结果图16
图16
339 表Staff中建立delete触发器查询删员工信息具体代码:
create trigger T_Staff1
on Staff
for delete
as
select Sname 删员工SNoSofficeNoSsexSjobSage from deleted
DELETE
from Staff where SNo'0013' and Sname'姚远'
运行结果图17:
图17
第四章 功实现
41实现科室录入基资料工资扣金额数实现语句:
INSERT
INTO Staff (SofficeNoSNoSnameSsexSjobSage)
VALUES('04''0014''韩梅梅''女''销售员'29)
附:录入科室编号04工号0014姓名韩梅梅性女职业销售员年龄29员工信息
运行结果图18:
图18
42实现查询详细资料工资项明细具体实现语句:
exec pro_Salary @officeID'02'@staffID'0004'@job'理员'
附:调名pro_Salary存储程实现通部门号员工号职业查询具体员工信息工资项明细实际工资
运行结果图19:
图19
43 计算实际发放工资具体实现语句:
update Salary set FS wage+bonus+welfareInsuranceHF
附:利update set 语句实际工资基工资+奖励工资+福利补贴失业保险住房公积金
44科室职业分类统计数工资金额
441 科室统计数具体实现语句
select OfficenameSofficeNo
from Office
where Officename'技术科'
select count(*) 查单位总数
from Staff
where SofficeNo'03'
附:根部门名称查询部门编号根部门编号查询单位数
运行结果图22
图22
442 科室职业统计数具体实现语句
select count(*) 查职业总数
from Staff
where Sjob'理员'
运行结果图23:
图23
443根职业查询工资金额具体语句:
select SofficeNo 部门编号Sjob 职业wage 基工资bonus 奖励工资welfare 福利补贴
Insurance 失业保险HF 住房公积金FS 实际工资
from Salary
where Sjob'财务员'
运行结果图24:
图24
444根科室查询工资金额具体语句:
select SofficeNo 部门编号Sjob 职业wage 基工资bonus 奖励工资welfare 福利补贴
Insurance 失业保险HF 住房公积金FS 实际工资
from Salary
where SofficeNo'02'
运行结果图25:
图25
445 够删辞职员数具体实现语句:
DELETE
from Staff where SNo'0013' and Sname'姚远'
运行结果图26:
图26
45 够修改工作员信息具体实现语句
update Staff set Sage'24'
where SNo'0001'
附:修改员工号0001员工年龄
查询运行结果语句:
select *
from Staff
where SNo'0001'
运行结果图27:
图27
结束语
课程设计程中深刻体会理应结合重性时课学定义代码实际应中会出现状况:查询结果出现重复现象查询结果空者遇定义明确解决问题程中知识面解决问题力提升
然编写代码时遇调试错误遇问题学交流前辈请教相必课告诉做教会具体解决问题错误方法手段整课程设计程中实QQ长期线遇问题通百度搜索反复调试法彻底解决时班级群里问班学错途径家课程设计会遇样样问题许解决问题正刚刚遇已找解决方法外关计算机技术群会高手虚心请教乐意帮忙解决问题时候反复检查半天调试出语句指点半分钟搞定总遇问题时利百度QQ学交流群学会通种渠道找解决问题方法重
篇课程设计学期学东西串起前课堂学定义代码变抽象遥远应中真学东西
较菜鸟吧然熬星期写前台台代码逻辑越越乱做东西全部推翻步步重新编写然存足方面改进
会继续加油
参考文献:
[1] 王珊萨师煊 数库系统概(第四版).高等教育出版社2006
[2] John JPatrick著刘红伟 董民辉 等译SQL编程基础(原书第3版) 机械工业出版社 2009
[3] 汤荷美 周立柱等著数库技术应 2011
附录:(源程序)
CREATE TABLE Staff
(SofficeNo VARCHAR(10)
SNo VARCHAR(10)
Sname VARCHAR(10)
Ssex CHAR(2)
Sjob VARCHAR(10)
Sage SMALLINT)
* 新建员工信息表名Staff *
CREATE TABLE Office
(Officename VARCHAR(10)
SofficeNo VARCHAR(10))
* 新建部门信息表名Office *
CREATE TABLE Salary
(SofficeNo VARCHAR(10)
Sjob VARCHAR(10)
wage MONEY*工资*
bonus MONEY*奖金*
welfare MONEY*补贴*
Insurance MONEY*保险*
HF MONEY*住房公积金*
FS MONEY*实际工资*)
* 新建薪水信息表名Salary *
INSERT
INTO Staff (SofficeNoSNoSnameSsexSjobSage)
VALUES('01''0001''李明''男''理员'29)
INSERT
INTO Staff (SofficeNoSNoSnameSsexSjobSage)
VALUES('01''0002''金金''女''理员'30)
INSERT
INTO Staff (SofficeNoSNoSnameSsexSjobSage)
VALUES('01''0003''吴青峰''男''理员'35)
INSERT
INTO Staff (SofficeNoSNoSnameSsexSjobSage)
VALUES('02''0004''李高明''男''理员'23)
INSERT
INTO Staff (SofficeNoSNoSnameSsexSjobSage)
VALUES('02''0005''崔颢''男''财务员'25)
INSERT
INTO Staff (SofficeNoSNoSnameSsexSjobSage)
VALUES('02''0006''李雷''男''财务员'23)
INSERT
INTO Staff (SofficeNoSNoSnameSsexSjobSage)
VALUES('03''0007''高权威''男''理员'27)
INSERT
INTO Staff (SofficeNoSNoSnameSsexSjobSage)
VALUES('03''0008''魏''男''技术员'25)
INSERT
INTO Staff (SofficeNoSNoSnameSsexSjobSage)
VALUES('03''0009''师鑫''男''技术员'25)
INSERT
INTO Staff (SofficeNoSNoSnameSsexSjobSage)
VALUES('04''0010''魏''女''理员'30)
INSERT
INTO Staff (SofficeNoSNoSnameSsexSjobSage)
VALUES('04''0011''宋康''男''销售员'25)
INSERT
INTO Staff (SofficeNoSNoSnameSsexSjobSage)
VALUES('04''0012''苗鹏''男''销售员'27)
INSERT
INTO Staff (SofficeNoSNoSnameSsexSjobSage)
VALUES('04''0014''韩梅梅''女''销售员'29)
* Staff表录入员工信息 *
select SofficeNo 部门编号SNo 工号Sname 姓名Ssex 性Sjob 职业Sage 年龄
from Staff
where SNo'0001'
*根工号查询员工信息*
INSERT
INTO Office (OfficenameSofficeNo)
VALUES('理室''01')
INSERT
INTO Office (OfficenameSofficeNo)
VALUES('财务科''02')
INSERT
INTO Office (OfficenameSofficeNo)
VALUES('技术科''03')
INSERT
INTO Office (OfficenameSofficeNo)
VALUES('销售科''04')
* Office表录入部门信息 *
INSERT
INTO Salary (SofficeNoSjobwagebonuswelfareInsuranceHFFS)
VALUES('01''理员''2000''300''300''200''20'NULL)
INSERT
INTO Salary (SofficeNoSjobwagebonuswelfareInsuranceHFFS)
VALUES('02''理员''2000''300''300''200''20'NULL)
INSERT
INTO Salary (SofficeNoSjobwagebonuswelfareInsuranceHFFS)
VALUES('03''理员''2000''300''300''200''20'NULL)
INSERT
INTO Salary (SofficeNoSjobwagebonuswelfareInsuranceHFFS)
VALUES('04''理员''2000''300''300''200''20'NULL)
INSERT
INTO Salary (SofficeNoSjobwagebonuswelfareInsuranceHFFS)
VALUES('02''财务员''1800''250''250''200''18'NULL)
INSERT
INTO Salary (SofficeNoSjobwagebonuswelfareInsuranceHFFS)
VALUES('03''技术员''1700''200''200''200''17'NULL)
INSERT
INTO Salary (SofficeNoSjobwagebonuswelfareInsuranceHFFS)
VALUES('04''销售员''1000''200''700''200''10'NULL)
* Salary表录入薪资信息 *
update Salary set FS wage+bonus+welfareInsuranceHF
update Staff set Sage'24'
where Sname'李明'
select *
from Staff
where Sname'李明'
*利update set 语句实际工资基工资+奖励工资+福利补贴失业保险住房公积金*
select SofficeNo 部门编号Sjob 职业wage 基工资bonus 奖励工资welfare 福利补贴
Insurance 失业保险HF 住房公积金FS 实际工资
from Salary
where SofficeNo'02'
*查询语句根职业查询工资项明细*
create procedure pro_Salary
@officeID VARCHAR(10)*部门ID*
@staffID VARCHAR(10)*员工ID*
@job VARCHAR(10)*职位*
AS
select ASname 姓名ASsex 性ASjob 职业ASage 年龄BOfficename 部门名称Cwage 基工资
Cbonus 奖励工资Cwelfare 福利补贴CInsurance 失业保险CHF 住房公积金CFS 实际工资
from Staff as AOffice as BSalary as C
where ASofficeNoBSofficeNo
and BSofficeNoCSofficeNo
and BSofficeNo@officeID
and ASjobCSjob
and ASjob@job
and ASNo@staffID
*建立名pro_Salary存储程通部门号员工号职业查询具体员工信息实际工资*
exec pro_Salary @officeID'02'@staffID'0004'@job'理员'
*调存储程*
select OfficenameSofficeNo
from Office
where Officename'技术科'
select count(*) 查单位总数
from Staff
where SofficeNo'03'
*根部门名称查询部门编号根部门编号查询单位数*
select count(*) 查职业总数
from Staff
where Sjob'理员'
*根职业名称查询职业数*
select FS 查职业实际工资
from Salary
where Sjob'技术员'
*查询某职业员实际工资*
create view V_salaryinfo
as
select ASNoASnameASofficeNoASjobBFS
from Staff ASalary B
where ASofficeNoBSofficeNo and ASjobBSjob
*列名分工号姓名单位职业实际工资创建视图*
create trigger T_Staff
on Staff
for insert
as
select Sname 新添加员工SNoSofficeNoSsexSjobSage from inserted
INSERT
INTO Staff (SofficeNoSNoSnameSsexSjobSage)
VALUES('04''0013''姚远''男''销售员'25)
*表Staff中建立insert触发器查询新添加员工信息*
create trigger T_Staff1
on Staff
for delete
as
select Sname 删员工SNoSofficeNoSsexSjobSage from deleted
DELETE
from Staff where SNo'0013' and Sname'姚远'
*表Staff中建立delete触发器查询删员工信息*
数库类课程设计报告评分标准
数库
具备基数表够实现系统基需
建立表间数关联
实现种数库象
具较强数安全性数完整性
前台开发工具
完成系统开发
功全面
开发工具熟悉灵活类控件语句
熟练掌握种开发工具独立解决较复杂编程问题
数理功
够完成数输入输出基查询功
具登录功够方便完成数操作功
完成较复杂数查询数编辑功
具身份检验数备份等较复杂数理功
系统界面设计
具般数窗口
数窗口功全面
数窗口界面美观操作便捷
功设计创新
开题报告设计报告
完成开题报告设计报告
开题报告反映设计思路设计报告介绍系统功
报告容较完整格式清晰语句较通
报告容完整图表准确描述详细反映系统开发程
教师签字:
成绩:
文档香网(httpswwwxiangdangnet)户传
《香当网》用户分享的内容,不代表《香当网》观点或立场,请自行判断内容的真实性和可靠性!
该内容是文档的文本内容,更好的格式请下载文档