工资数据库设计.docx
- 文档编号:2748976
- 上传时间:2023-05-04
- 格式:DOCX
- 页数:25
- 大小:517.77KB
工资数据库设计.docx
《工资数据库设计.docx》由会员分享,可在线阅读,更多相关《工资数据库设计.docx(25页珍藏版)》请在冰点文库上搜索。
工资数据库设计
学号:
课程设计
题目
工资数据库设计
学院
计算机科学与技术学院
专业
班级
姓名
指导教师
唐祖锴
年
月
日
课程设计任务书
学生姓名:
专业班级:
指导教师:
唐祖锴工作单位:
计算机学院
题目:
工资数据库设计
初始条件:
某公司决定建立“工资管理系统”,以取代单一的人工管理。
根据人员基本情况表中的学历、职称及受聘日期长短,决定工资表中的基本工资和岗位津贴的具体数值。
根据各部门上报的扣款表的内容决定工资表中扣款项的金额。
按月汇总工资表。
要求完成的主要任务:
1.根据上述的初始条件,进行调查分析并设计适当的属性。
设计一个工资数据库,DBMS可选MsSQLServer、Access、VFP等。
2.完成课程设计说明书,其格式遵守学校今年的新规定。
主要内容包括:
需求分析,概念设计,逻辑设计,物理实现等。
3.基于改数据库,最好实现一个或多个应用程序(自己确定功能),程序设计语言(工具)任选。
这一项是选作,不作硬性要求。
时间安排:
本学期第18周:
1.消化资料、系统调查1天
2.系统分析1天
3.总体设计,实施计划2天
4.撰写报告1天
指导教师签名:
年月日
系主任(或责任教师)签名:
年月日
1、系统目标
采用公司现有的软硬件及科学的管理系统开发方案,建立工资管理系统,实现企业工资管理的计算机自动化。
系统应符合公司人事、工资管理制度,并达到操作直观、方便、实用、安全等要求。
2、系统功能
系统从总体上可以分为员工信息系统,工资操作系统,数据库用户系统。
(1)员工信息系统
本系统包括对员工各种基本信息(姓名、职工号、住址、联系电话、婚姻状况、出生年月、岗位、部门号、性别)的录入、修改、查询等操作。
(2)工资操作系统
本系统包括对各种类型的基本工资的计算、生成工资表以及对员工工资的查询等操作。
(3)数据库用户系统
本系统包括对数据库用户添加、删除及修改密码等操作。
2.1、功能图
由上述功能描述可得系统功能图如下:
图2-1系统总功能图
二、概念分析
3.1、系统E-R图
由系统的分析部分可得系统的E-R图如下:
图3-1系统E-R图
系统的E-R图表明:
本工资管理系统由数据库用户、工资表、员工信息、工资类别、部门信息、考勤表等五部分组成。
3.2、数据流图
E-R图建立了系统的数据模型,但我们还需要了解信息流与数据从输入移动到输出的过程中所经受的变换,所以在此给出本系统的数据流图:
图3-2数据流图
四、逻辑设计
以下是工资管理系统的关系模型:
员工(职工号、部门号、姓名、性别、出生年月、岗位、婚姻状况、联系电话、住址)
部门信息(部门号、岗位、部门人数)
工资类别(岗位、基础工资、缺勤费、加班费)
工资表(职工号、工资、工资日期)
数据库用户(用户名、密码、权限)
考勤表(职工号、加班时间、缺勤天数、考勤日期)
五、物理设计
在SQL数据库中需要建立6个数据表:
员工基本信息表、部门信息表、工资类别表、工资表、考勤表和数据库用户表。
部门表
列名
数据类型
长度
允许空
部门名
Char
10
否
岗位
Char
10
对
部门人数
int
4
对
考勤表
列名
数据类型
长度
允许空
职工号
Char
10
否
加班时间
Int
4
对
缺勤天数
Int
4
对
考勤日期
datetime
8
对
工资类别表
列名
数据类型
长度
允许空
岗位
char
10
否
基础工资
Money
8
对
加班费
Money
8
对
缺勤费
money
8
对
工资表
列名
数据类型
长度
允许空
职工号
char
10
否
工资
money
8
对
工资日期
datetime
8
对
员工基本信息
列名
数据类型
长度
允许空
职工号
Char
10
否
姓名
Char
10
对
性别
Char
10
对
部门名
Char
10
对
岗位
Char
10
对
出生年月
Char
10
对
婚姻状况
Char
10
对
联系电话
Char
10
对
住址
char
10
对
数据库用户
列名
数据类型
长度
允许空
用户名
Char
10
否
密码
Char
10
对
权限
char
10
对
六、算法实现
1、添加职工
if(e.getActionCommand().equals("确定")){
sql="select*from员工基本信息where职工号='"+numtext.getText()+"'";
try{
rs=con.getrs(con.con,sql);
if(rs.next()){
jop.showMessageDialog(null,"职工号已存在,请输入另外的职工号","错误",-1);
}
else
{
sql="insertinto员工基本信息(职工号,姓名,性别,部门名,岗位,出生年月,婚姻状况,联系电话,住址)values('"+numtext.getText()+"','"+nametext.getText()+"','"+xbtext.getText()+"','"+bmchoice.getSelectedItem()+"','"+gwchoice.getSelectedItem()+"','"+csnytext.getText()+"','"+hyzktext.getText()+"','"+lxdhtext.getText()+"','"+zztext.getText()+"')";
con.moddb(con.con,sql);
}
//try{
//con.dbclose(con.con,null);
//}catch(Exceptionue){
//ue.printStackTrace();
//}
con.dbclose(con.con,rs);
numtext.setText("");
nametext.setText("");
xbtext.setText("");
csnytext.setText("");
hyzktext.setText("");
lxdhtext.setText("");
zztext.setText("");
con=null;
rs=null;
}
catch(SQLExceptionet){
et.printStackTrace();
}
}
2、删除职工
if(e.getActionCommand().equals("确定")){
try{
sql="deletefrom员工基本信息where职工号='"+numco.getSelectedItem()+"'";
con.moddb(con.con,sql);
sql="deletefrom考勤表where职工号='"+numco.getSelectedItem()+"'";
con.moddb(con.con,sql);
sql="deletefrom工资表where职工号='"+numco.getSelectedItem()+"'";
con.moddb(con.con,sql);
System.out.println("aaa");
initnumcho();
System.out.println("bbb");
JOptionPanejop=newJOptionPane();
jop.showMessageDialog(null,"职工删除成功!
","更新成功",-1);
System.out.println("ccc");
//con.dbclose(con.con,null);
System.out.println("ddd");
con=null;
rs=null;
}catch(Exceptionet){
System.out.println("aaaa");
et.printStackTrace();
}
3.职工信息查询
sql="select*from员工基本信息where员工基本信息.职工号='"+numchoice.getSelectedItem()+"'";
try{
rs=con.getrs(con.con,sql);
if(rs.next()){
nametext.setText(rs.getString("姓名"));
xbtext.setText(rs.getString("性别"));
bmtext.setText(rs.getString("部门名"));
gwtext.setText(rs.getString("岗位"));
csnytext.setText(rs.getString("出生年月"));
hyzktext.setText(rs.getString("婚姻状况"));
lxdhtext.setText(rs.getString("联系电话"));
zztext.setText(rs.getString("住址"));
}
con.dbclose(con.con,rs);
con=null;
rs=null;
}catch(SQLExceptione1){
e1.printStackTrace();
}
4.修改职工信息
if(ae.getActionCommand().equals("确定")){
try{
sql="update员工基本信息set姓名='"+nametext.getText()+"',性别='"+xbtext.getText()+"',部门名='"+bmchoice.getSelectedItem()+"',岗位='"+gwchoice.getSelectedItem()+"',出生年月='"+csnytext.getText()+"',婚姻状况='"+hyzktext.getText()+"',联系电话='"+lxdhtext.getText()+"',住址='"+zztext.getText()+"'WHERE职工号='"+numchoice.getSelectedItem()+"'";
con.moddb(con.con,sql);
jop.showMessageDialog(null,"职工修改成功!
","更新成功",-1);
}catch(Exceptionue){
ue.printStackTrace();
}
con.dbclose(con.con,rs);
nametext.setText("");
xbtext.setText("");
csnytext.setText("");
hyzktext.setText("");
lxdhtext.setText("");
zztext.setText("");
con=null;
rs=null;
//nametx.setText("");
}
5.考勤录入
if(e.getActionCommand().equals("确定")){
sql="select*from考勤表where职工号='"+numchoice.getSelectedItem()+"'AND考勤日期='"+kqrqtext.getText()+"'";
try{
rs=con.getrs(con.con,sql);
if(rs.next()){
jop.showMessageDialog(null,"该名职工该考勤日期已记录","错误",-1);
}
else
{
sql="insertinto考勤表(职工号,加班时间,缺勤天数,考勤日期)values('"+numchoice.getSelectedItem()+"','"+jbsstext.getText()+"','"+qqtstext.getText()+"','"+kqrqtext.getText()+"')";
con.moddb(con.con,sql);
jbss=newFloat(jbsstext.getText());
qqts=newFloat(qqtstext.getText());
sql="select岗位from员工基本信息WHERE职工号='"+numchoice.getSelectedItem()+"'";
rs=con.getrs(con.con,sql);
rs.next();
Stringaa=rs.getString("岗位");
rs=null;
sql=null;
sql="select*from工资类别WHERE岗位='"+aa+"'";
rs=con.getrs(con.con,sql);
rs.next();
jbgz=rs.getFloat("基础工资");
jbfy=rs.getFloat("加班费");
qqfy=rs.getFloat("缺勤费");
gz=jbgz+jbfy*jbss-qqfy*qqts;
System.out.println(gz);
sql="insertinto工资表(职工号,工资,工资日期)values('"+numchoice.getSelectedItem()+"','"+gz+"','"+kqrqtext.getText()+"')";
con.moddb(con.con,sql);
}
//try{
//con.dbclose(con.con,null);
//}catch(Exceptionue){
//ue.printStackTrace();
//}
con.dbclose(con.con,rs);
jbsstext.setText("");
qqtstext.setText("");
kqrqtext.setText("");
con=null;
rs=null;
}
catch(SQLExceptionet){
et.printStackTrace();
}
}
6.职工工资查询
if(e.getActionCommand().equals("查询"))
{con=newcondb();
sql="select工资表.职工号,员工基本信息.姓名,工资表.工资,工资表.工资日期from员工基本信息,工资表WHERE员工基本信息.职工号=工资表.职工号AND职工号='"+numchoice.getSelectedItem()+"'ORDERBY工资表.工资日期DESC";
rs=con.getrs(con.con,sql);
try{
while(rs.next())
{
try{
gzcx.appendText(rs.getString("职工号"));
gzcx.appendText(rs.getString("姓名"));
gzcx.appendText(rs.getString("工资"));
gzcx.appendText("\t");
gzcx.appendText(rs.getString("工资日期"));
gzcx.appendText("\n");
}catch(SQLExceptione1){
//TODOAuto-generatedcatchblock
e1.printStackTrace();
}
}
}catch(SQLExceptione1){
//TODOAuto-generatedcatchblock
e1.printStackTrace();
}
con.dbclose(con.con,rs);
con=null;
rs=null;
}
7.部门工资查询
if(e.getActionCommand().equals("平均工资"))
{
intcount=0;
floatgzh=0;
con=newcondb();
sql="select*from工资表,员工基本信息WHERE部门名='"+bmchoice.getSelectedItem()+"'AND员工基本信息.职工号=工资表.职工号";
rs=con.getrs(con.con,sql);
try{
while(rs.next())
{
gzh=gzh+rs.getFloat("工资");
count++;
}
}catch(SQLExceptione2){
e2.printStackTrace();
}
Stringa=newString("该部门平均工资为");
floatb=gzh/count;
a+=b;
jop.showMessageDialog(null,a,"错误",-1);
}
if(e.getActionCommand().equals("查询")){
gzcx.setText("");
con=newcondb();
sql="select工资表.职工号,员工基本信息.姓名,员工基本信息.部门名,工资表.工资,工资表.工资日期from员工基本信息,工资表WHERE员工基本信息.职工号=工资表.职工号AND员工基本信息.部门名='"+bmchoice.getSelectedItem()+"'ORDERBY工资表.工资日期DESC";
rs=con.getrs(con.con,sql);
try{
while(rs.next())
{
try{
gzcx.appendText("");
gzcx.appendText(rs.getString("职工号"));
gzcx.appendText(rs.getString("姓名"));
gzcx.appendText(rs.getString("部门名"));
gzcx.appendText(rs.getString("工资"));
gzcx.appendText("\t");
gzcx.appendText(rs.getString("工资日期"));
gzcx.appendText("\n");
}catch(SQLExceptione1){
//TODOAuto-generatedcatchblock
e1.printStackTrace();
}
}
}catch(SQLExceptione1){
//TODOAuto-generatedcatchblock
e1.printStackTrace();
}
con.dbclose(con.con,rs);
con=null;
rs=null;
}
}
8.工资表查询
sql="select工资表.职工号,员工基本信息.姓名,工资表.工资,工资表.工资日期from员工基本信息,工资表WHERE员工基本信息.职工号=工资表.职工号ORDERBY工资表.工资日期DESC";
rs=con.getrs(con.con,sql);
try{
while(rs.next())
{
try{
gzcx.appendText(rs.getString("职工号"));
gzcx.appendText(rs.getString("姓名"));
gzcx.appendText(rs.getString("工资"));
gzcx.appendText("\t");
gzcx.appendText(rs.getString("工资日期"));
gzcx.appendText("\n");
}catch(SQLExceptione1){
//TODOAuto-generatedcatchblock
e1.printStackTrace();
}
}
}catch(SQLExceptione1){
//TODOAuto-generatedcatchblock
e1.printStackTrace();
}
con.dbclose(con.con,rs);
con=null;
rs=null;
addWindowListener(newWindowAdapter()
{publicvoidwindowClosing(WindowEvente)
{dispose();}
七、系统截图
1、登陆界面
2、添加职工
3、删除职工
4、职工基本信息查询
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 工资 数据库 设计