数据库课程设计报告工资管理系统.docx
- 文档编号:7360782
- 上传时间:2023-01-23
- 格式:DOCX
- 页数:32
- 大小:156.51KB
数据库课程设计报告工资管理系统.docx
《数据库课程设计报告工资管理系统.docx》由会员分享,可在线阅读,更多相关《数据库课程设计报告工资管理系统.docx(32页珍藏版)》请在冰豆网上搜索。
数据库课程设计报告工资管理系统
数据库
课程设计报告
理论成绩
实践成绩
总成绩
院系:
信息管理学院
专业:
软件工程
班级:
软件Q1141
组长:
李艳平()
组员:
孙俊珍()
王毅()
左礼振()
题目:
工资管理系统
教师:
石黎
时间:
逻辑设计…………………………………………………………………..-4-
一、设计目的
工资管理是一项琐碎、复杂而又十分细致的工作,一般不允许发生差错。
手工进行工资发放工作,需要反复地进行抄写、计算,不仅花费财务人员大量的时间,而且往往由于抄写不慎,出现张冠李戴,或者由于计算机的疏忽,出现工资发放错误的现象。
计算机进行工资发放工作,不仅能够保证工资核算正确无误、快速输出,而且还可以利用工资数据库对有关工资的各种信息进行统计,服务于财务部门其他方面的核算和财务处理。
实现企业员工工资管理的系统化、规范化和自动化,能够和人事管理系统、考勤管理系统相结合,真正实现企业高效、科学、现代化的员工管理。
二、数据库功能分析
信息输入功能
1)输入员工的基本信息。
包括:
员工编号、姓名、性别、参加工作时间、所属部门、职位
等基本信息
2)输入员工的工资信息。
包括:
岗位基本工资、津贴、考勤等相关信息。
3)输入员工的部门信息。
包括:
部门编号、部门名称、部门负责人、部门人数、部门与外界的联系方式。
数据修改删除功能
1)修改和删除员工的基本信息。
当单位人员的信息发生变化,如职称的改变,工作部门变动,或调离本单位等,系统应能修改员工的信息或将其从员工信息表中删除。
2)修改和删除员工的工资信息。
员工升职加薪、工资普调是企业中常见的事情,这就需要系统能方便对员工工资进行个别及批量的修改;如员工调离本单位,就应当从员工信息表中删除这个员工信息,将其工资信息表中相应的数据删除。
3)修改和删除部门信息。
当一个部门的负责人或联系方式发生改变时,系统中相关部门信息也能做相应改变。
查询和统计功能
1)能够查询指定员工的基本信息
2)能够查询部门信息
3)查询某个员工的工资信息
4)统计部门总人数、共工资、平均工资
5)工资表月工资记录的生成功能。
生成当月所有员工或所有部门的工资记录,同时能进行员工工资的计算,即基本工资、奖励金额、应扣金额。
三、数据库设计
需求分析:
《工资管理系统》针对的用户是小型企业,工资项目比较少,较为固定,工资管理涉及企业管理的多个方面,如员工职务宫中变化、员工考勤情况、员工加班情况等等。
根据这些信息,在每个月的某个固定时间,生成企业对全体员工的月工资。
对于月工资,能够实现按照员工、部门、月、年进行统计分析,产生相应报表。
需求信息整理(DFD图)如下:
概念分析(E-R图)
逻辑设计
1.数据字典
表1Allowance(员工津贴)
列名
数据类型
可否为空
说明
emp_no
varchar(10)
notnull
员工号(主键一)
overtime_month
varchar(20)
notnull
加班时间(主键二)
Overtime_days
int
null
加班天数
Overtime_pay
float
null
加班工资
表2Attendance(考勤信息统计)
列名
数据类型
可否为空
说明
emp_no
varchar(10)
notnull
员工号(主键一)
attend_month
varchar(20)
notnull
时间(主键二)
Absent_days
int
null
缺勤天数
Absent_pay
float
null
考勤工资
表3BasicWages(工资标准表格)
列名
数据类型
可否为空
说明
emp_pos
Varchar(10)
notnull
工种(主键)
basic_wage
Float
notnull
基本工资
表4EmpBasicInfo(员工基本情况表)
列名
数据类型
可否为空
说明
emp_no
VARCHAR(10)
NOTNULL
员工号(主键)
emp_name
VARCHAR(40)
NULL
员工名称
emp_pos
VARCHAR(40)
NOTNULL
职位
sex
Char
(2)
NULL
性别
department_id
VARChar(10)
NOTNULL
员工部门
emp_time
VARCHAR(20)
NOTNULL
入公司时间
telephone
Char(11)
Null
电话号码
2.关系模式
员工基本信息表(所属部门,入公司时间,电话号码)
员工津贴表(员工号,加班时间,加班天数,加班工资)
员工考勤表(员工号,时间,缺勤天数,考勤工资)
基本工资表(职位,基本工资)
部门信息表(部门编号,部门名称,部门人数,联系方式)
用户登陆(ID号,用户名,密码)
3.视图设计
为及时更新数据,减少数据库后台操作,设计了部门工资情况及员工月工资情况两个视图
部门工资情况视图:
员工月工资视图:
A
物理设计
数据库最终是要存储在物理设备上的,为一个给定的逻辑数据模型选取一个最适合应用环境的物理结构(存储结构与存取方法)的过程,就是数据库的物理设计。
数据库的物理结构依赖于给定的计算机系统和DBMS。
实施与维护
确定了数据库的逻辑结构和物理结构后,就可以用所选用的DBMS提供的数据定义语言(DDL)来严格定义数据库,包括建立表、定义表的约束等。
数据库系统投入运行后,对数据库设计进行评价、调整、修改等维护工作。
四、界面设计及相关代码
数据库的连接操作
usingSystem;
using;
using;
using工资管理系统
{
ows)
{
if==row["user_id"].ToString())
{
=row["user_id"].ToString();
=row["username"].ToString();
if==row["password"].ToString())
{
=;
();
break;
}
else
{
("密码错误!
请重新输入!
");
="";
}
}
else
{
i=i+1;
if(i==[str_vtab].
{
("无此用户信息,请重新输入!
");
="";
="";
();
}
}
}
}
#endregion
#region登陆信息检查
privatevoidbutton1_Click(objectsender,EventArgse)
{
if==""&&=="")
{
("请输入账户和密码!
");
();
}
elseif==""&&!
="")
{
("请输入账户名");
();
}
elseif!
=""&&=="")
{
("请输入密码!
");
();
}
elseif(!
&&!
{
("请选择登陆身份!
");
}
elseif
{
if=="001"&&=="1001")
{
Form2myform2=newForm2();
();
}
else
{
("用户名和密码错误!
");
="";
="";
=false;
=false;
}
}
elseif
{
Form3myform3=newForm3();
IDverify("Staff",myform3);
}
}
#endregion
#region重置登陆信息
privatevoidbutton2_Click(objectsender,EventArgse)
{
="";
="";
=false;
=false;
();
}
#endregion
}
}
管理员操作
1)查询员工信息
2)查询部门信息
3)查询津贴信息:
4)查询考勤信息:
5)员工月工资汇总:
6)部门平均工资:
namespace工资管理系统
{
publicpartialclassForm2:
Form
{
BaseOperateboperate=newBaseOperate();ows)
"emp_no"].ToString()+"\t"+row["emp_name"].ToString()+"\t"+row["emp_pos"].ToString()+"\t"+
row["sex"].ToString()+"\t"+row["depart_name"].ToString()+"\t\t"+row["emp_time"].ToString()+"\t"+row["telephone"].ToString());
}
#endregion
#region显示部门信息
privatevoid部门信息ToolStripMenuItem_Click(objectsender,EventArgse)
{
stringstr_sqlcom="Select*fromDepartment";
stringstr_vtab="vistual_table";
DataSetthisDset=(str_sqlcom,str_vtab);
"部门号\t部门名称\t负责人\t职工人数\t联系电话");
foreach(DataRowrowin[str_vtab].Rows)
"depart_id"].ToString()+"\t"+row["depart_name"].ToString()+"\t\t"+row["depart_head"].ToString()
+"\t"+row["depart_emps"].ToString()+"\t\t"+row["depart_tel"].ToString());
}
#endregion
#region显示部门信息
privatevoid津贴信息ToolStripMenuItem_Click(objectsender,EventArgse)
{
stringstr_sqlcom="Select*fromAllowance";
stringstr_vtab="vistual_table";
DataSetthisDset=(str_sqlcom,str_vtab);
"职工号\t\t加班月份\t加班天数\t加班工资");
foreach(DataRowrowin[str_vtab].Rows)
"emp_no"].ToString()+"\t\t"+row["overtime_month"].ToString()+"\t\t"
+row["overtime_days"].ToString()+"\t\t"+row["overtime_pay"].ToString());
}
#endregion
#region出勤统计
privatevoid出勤统计ToolStripMenuItem_Click(objectsender,EventArgse)
{
stringstr_sqlcom="Select*fromAttendance";
stringstr_vtab="vistual_table";
DataSetthisDset=(str_sqlcom,str_vtab);
"职工号\t\t考勤月份\t缺勤天数\t扣除工资");
foreach(DataRowrowin[str_vtab].Rows)
"emp_no"].ToString()+"\t\t"+row["attend_month"].ToString()+"\t\t"
+row["absent_days"].ToString()+"\t\t"+row["absent_pay"].ToString());
}
#endregion
#region员工月工资汇总
privatevoid员工月工资汇总ToolStripMenuItem_Click(objectsender,EventArgse)
{
stringstr_sqlcom="Select*fromMonthWages";
stringstr_vtab="vistual_table";
DataSetthisDset=(str_sqlcom,str_vtab);
"工号\t月份\t工资\t底薪\t津贴\t考勤");
foreach(DataRowrowin[str_vtab].Rows)
"emp_no"].ToString()+"\t"+row["pay_time"].ToString()+"\t"+row["basic_wage"].ToString()+"\t"+
row["overtime_pay"].ToString()+"\t"+row["absent_pay"].ToString()+"\t"+row["month_pay"].ToString());
}
#endregion
#region各部门工资情况
privatevoid各部门工资情况ToolStripMenuItem_Click(objectsender,EventArgse)
{
stringstr_sqlcom="select*fromDepartAvgWage";
stringstr_vtab="vistual_table";
DataSetthisDset=(str_sqlcom,str_vtab);
"部门\t月份\t部门人数\t部门总工资\t部门平均工资");
foreach(DataRowrowin[str_vtab].Rows)
"depart_name"].ToString()+"\t"+row["pay_month"].ToString()+"\t"+
row["depart_emps"].ToString()+"\t\t"+row["sum_wage"].ToString()+"\t"+row["avg_wage"].ToString());
}
#endregion
#region更新数据
privatevoid更新数据ToolStripMenuItem_Click(objectsender,EventArgse)
{
Form4newform=newForm4();
();
}
#endregion
#region退出
privatevoid退出ToolStripMenuItem_Click(objectsender,EventArgse)
{
();
}
#endregion
}
}
7)信息修改:
namespace工资管理系统
{
publicpartialclassForm4:
Form
{
BaseOperateboperate=newBaseOperate();ows)
{
if(row["emp_no"].ToString()==
{
stringno=;
stringname="";
if=="")
name=row["emp_name"].ToString();
else
name=stringpos="";
if=="")
pos=row["emp_pos"].ToString();
else
pos=stringSex="";
if(!
&&!
Sex=row["sex"].ToString();
elseif
Sex=elseif
Sex=stringdepart="";
if=="")
depart=row["depart_name"].ToString();
else
depart=stringtime="";
if=="")
time=row["emp_time"].ToString();
else
time=stringtel="";
if=="")
tel=row["telephone"].ToString();
else
tel=stringstr_sqlcom2="updateEmpBasicInfosetemp_name=@name,emp_pos=@pos,sex=@Sex,depart_name=@depart,emp_time=@time,telephone=@telwhereemp_no=@no";
SqlConnectionmycon=();
();
SqlCommandcmd=newSqlCommand(str_sqlcom2,mycon);
SqlParameterpar_no=newSqlParameter("@no",no);
SqlParameterpar_name=newSqlParameter("@name",name);
SqlParameterpar_pos=newSqlParameter("@pos",pos);
SqlParameterpar_sex=newSqlParameter("@Sex",Sex);
SqlParameterpar_depart=newSqlParameter("@depart",depart);
SqlParameterpar_time=newSqlParameter("@time",time);
SqlParameterpar_tel=newSqlParameter("@tel",tel);
intresult=();
if(result>0)
("信息修改成功!
");
search=1;
break;
}
}
if(search==0)
("无此员工!
");
}
}
#endregion
#region添加新员工
ows)
{
if(row["emp_no"].ToString()==
{
("此工号的员工已存在!
请重新输入!
");
search=1;
break;
}
}
if(search==0)
{
DataRownewRow=["EmpBasicInfo"].NewRow();newRow);ows)
{
if(row["depart_name"].ToString()==
{
intnum=(row["depart_emps"].ToString())+1;
row["depart_emps"]=num;
}
}
(thisDset,"Department");
/*更新表Allowance,Attendance*/
stringno=;
();
SqlCommandcmd1=newSqlCommand("insertintoAllowancevalues(@no,'201310','','')",thisConn);
SqlCommandcmd2=newSqlCommand("insertintoAttendancevalues(@no,'201310','','')",thisConn);
SqlParameterpar_no1=newSqlParameter("@no",no);
();
SqlParameterpar_no2=newSqlParameter("@no",no);
();
/*更新表Staff*/
stringid=stringname=();
stringpwd=("1","1115");
SqlCommandcmd3=newSqlCommand("insertintoStaffvalues(@id,@name,@pwd)",thisConn);
SqlParameterpar_id=newSqlParameter("@id",id);
SqlParameterpar_name=newSqlParameter("@name",name);
SqlParameterpar_pwd=newSqlParameter("@pwd",pwd);
();
();
("添加成功!
");
}
}
}
#endregion
#region删除员工
ows)
{
if(row["emp_no"].ToString()==
{
stringstr_sqlcom1="deletefromEmpBasicInfowhereemp_no="+;
();
SqlCommandcmd=newSqlCommand(str_sqlcom1,thisConn);
();
/*更新表Department*/
stringdepart=row["depart_name"].ToString();
stringstr_sqlcom2="select*fromDepartment";
SqlDataAdapterthisAdp2=newSqlDataAdapter(str_sqlcom2,thisConn);ows)
{
if(row2["depart_name"].ToString()==depart)
{
intnum=(row2["depart_emps"].
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 课程设计 报告 工资管理 系统