1、数 据 库课 程 设 计 报 告理论成绩实践成绩总成绩院系:信息管理学院 专业:软件工程 班级:软件Q1141 组长:李艳平()组员:孙俊珍()王 毅()左礼振()题目:工资管理系统 教师:石黎 时间: 目录一、设计目的- 1 -二、数据库功能分析- 1 - 信息输入功能- 1 - 数据修改删除功能- 2 - 查询和统计功能- 2 -三、数据库设计- 2 - 需求分析- 2 - 概念分析(E-R图)- 3 - 逻辑设计.- 4- 物理设计- 7 - 实施与维护- 7 -四、界面设计及相关代码- 8 - 数据库的连接操作- 8 - 登陆界面- 10 - 管理员操作- 13 - 职工操作- 35
2、-五、感想及总结- 39 -六、参考文献- 42 - 一、设计目的工资管理是一项琐碎、复杂而又十分细致的工作,一般不允许发生差错。手工进行工资发放工作,需要反复地进行抄写、计算,不仅花费财务人员大量的时间,而且往往由于抄写不慎,出现张冠李戴,或者由于计算机的疏忽,出现工资发放错误的现象。计算机进行工资发放工作,不仅能够保证工资核算正确无误、快速输出,而且还可以利用工资数据库对有关工资的各种信息进行统计,服务于财务部门其他方面的核算和财务处理。实现企业员工工资管理的系统化、规范化和自动化,能够和人事管理系统、考勤管理系统相结合,真正实现企业高效、科学、现代化的员工管理。 二、数据库功能分析 信息
3、输入功能1) 输入员工的基本信息。包括:员工编号、姓名、性别、参加工作时间、所属部门、职位等基本信息2) 输入员工的工资信息。包括:岗位基本工资、津贴、考勤等相关信息。3) 输入员工的部门信息。包括:部门编号、部门名称、部门负责人、部门人数、部门与外界的联系方式。 数据修改删除功能1) 修改和删除员工的基本信息。当单位人员的信息发生变化,如职称的改变,工作部门变动,或调离本单位等,系统应能修改员工的信息或将其从员工信息表中删除。2) 修改和删除员工的工资信息。员工升职加薪、工资普调是企业中常见的事情,这就需要系统能方便对员工工资进行个别及批量的修改;如员工调离本单位,就应当从员工信息表中删除这
4、个员工信息,将其工资信息表中相应的数据删除。3) 修改和删除部门信息。当一个部门的负责人或联系方式发生改变时,系统中相关部门信息也能做相应改变。 查询和统计功能1) 能够查询指定员工的基本信息2) 能够查询部门信息3) 查询某个员工的工资信息4) 统计部门总人数、共工资、平均工资5) 工资表月工资记录的生成功能。生成当月所有员工或所有部门的工资记录,同时能进行员工工资的计算,即基本工资、奖励金额、应扣金额。三、数据库设计 需求分析:工资管理系统针对的用户是小型企业,工资项目比较少,较为固定,工资管理涉及企业管理的多个方面,如员工职务宫中变化、员工考勤情况、员工加班情况等等。根据这些信息,在每个
5、月的某个固定时间,生成企业对全体员工的月工资。对于月工资,能够实现按照员工、部门、月、年进行统计分析,产生相应报表。需求信息整理(DFD图)如下: 第0层DFD图 概念分析(E-R图) 逻辑设计1. 数据字典表1 Allowance (员工津贴)列 名数据类型可否为空说 明emp_novarchar(10)not null员工号(主键一)overtime_monthvarchar(20)not null加班时间(主键二)Overtime_daysintnull加班天数Overtime_payfloatnull加班工资 表2 Attendance (考勤信息统计)列 名数据类型可否为空说 明em
6、p_novarchar(10)not null员工号(主键一)attend_monthvarchar(20)not null时间(主键二)Absent_daysintnull缺勤天数Absent_payfloatnull考勤工资 表3 BasicWages(工资标准表格)列 名数据类型可否为空说 明emp_posVarchar(10)not null工种(主键)basic_wageFloatnot null基本工资 表 4 EmpBasicInfo (员工基本情况表)列 名数据类型可否为空说 明emp_noVARCHAR(10)NOT NULL员工号(主键)emp_nameVARCHAR(40
7、)NULL员工名称emp_posVARCHAR(40)NOT NULL职位sexChar(2)NULL性别department_idVARChar(10)NOT NULL员工部门emp_timeVARCHAR(20)NOT NULL入公司时间 telephone Char(11) Null 电话号码 2. 关系模式员工基本信息表(所属部门,入公司时间,电话号码)员工津贴表(员工号,加班时间,加班天数,加班工资) 员工考勤表(员工号,时间,缺勤天数,考勤工资)基本工资表(职位,基本工资) 部门信息表(部门编号,部门名称,部门人数,联系方式)用户登陆(ID号,用户名,密码)3. 视图设计为及时更新
8、数据,减少数据库后台操作,设计了部门工资情况及员工月工资情况两个视图部门工资情况视图: 员工月工资视图: A 物理设计数据库最终是要存储在物理设备上的,为一个给定的逻辑数据模型选取一个最适合应用环境的物理结构(存储结构与存取方法)的过程,就是数据库的物理设计。数据库的物理结构依赖于给定的计算机系统和DBMS。 实施与维护确定了数据库的逻辑结构和物理结构后,就可以用所选用的DBMS提供的数据定义语言(DDL)来严格定义数据库,包括建立表、定义表的约束等。数据库系统投入运行后,对数据库设计进行评价、调整、修改等维护工作。四、界面设计及相关代码 数据库的连接操作using System;using
9、;using ;using 工资管理系统 ows) if = rowuser_id.ToString() = rowuser_id.ToString(); = rowusername.ToString(); if = rowpassword.ToString() = ; (); break; else (密码错误!请重新输入!); = ; else i = i + 1; if (i = str_vtab. (无此用户信息,请重新输入!); = ; = ; (); #endregion #region 登陆信息检查 private void button1_Click(object sender
10、, EventArgs e) if = & = ) (请输入账户和密码!); (); else if = & != ) (请输入账户名); (); else if != & = ) (请输入密码!); (); else if (! & ! (请选择登陆身份!); else if if = 001 & = 1001) Form2 myform2 = new Form2(); (); else (用户名和密码错误!); = ; = ; = false; = false; else if Form3 myform3 = new Form3(); IDverify(Staff, myform3); #
11、endregion #region 重置登陆信息 private void button2_Click(object sender, EventArgs e) = ; = ; = false; = false; (); #endregion 管理员操作1) 查询员工信息2) 查询部门信息3) 查询津贴信息:4) 查询考勤信息:5)员工月工资汇总:6)部门平均工资:namespace 工资管理系统 public partial class Form2 : Form BaseOperate boperate = new BaseOperate(); ows) emp_no.ToString() +
12、 t + rowemp_name.ToString() + t + rowemp_pos.ToString() + t + rowsex.ToString() + t + rowdepart_name.ToString() + tt + rowemp_time.ToString() + t + rowtelephone.ToString(); #endregion #region 显示部门信息 private void 部门信息ToolStripMenuItem_Click(object sender, EventArgs e) string str_sqlcom = Select * fro
13、m Department; string str_vtab = vistual_table; DataSet thisDset = (str_sqlcom, str_vtab); 部门号t部门名称t负责人t 职工人数t联系电话); foreach (DataRow row in str_vtab.Rows) depart_id.ToString() + t + rowdepart_name.ToString() + tt + rowdepart_head.ToString() + t + rowdepart_emps.ToString() + tt + rowdepart_tel.ToStri
14、ng(); #endregion #region 显示部门信息 private void 津贴信息ToolStripMenuItem_Click(object sender, EventArgs e) string str_sqlcom = Select * from Allowance; string str_vtab = vistual_table; DataSet thisDset = (str_sqlcom, str_vtab); 职工号tt加班月份t加班天数t加班工资); foreach (DataRow row in str_vtab.Rows) emp_no.ToString()
15、 + tt + rowovertime_month.ToString() + tt + rowovertime_days.ToString() + tt + rowovertime_pay.ToString(); #endregion #region 出勤统计 private void 出勤统计ToolStripMenuItem_Click(object sender, EventArgs e) string str_sqlcom = Select * from Attendance; string str_vtab = vistual_table; DataSet thisDset = (s
16、tr_sqlcom, str_vtab); 职工号tt考勤月份t缺勤天数t扣除工资); foreach (DataRow row in str_vtab.Rows) emp_no.ToString() + tt + rowattend_month.ToString() + tt + rowabsent_days.ToString() + tt + rowabsent_pay.ToString(); #endregion #region 员工月工资汇总 private void 员工月工资汇总ToolStripMenuItem_Click(object sender, EventArgs e)
17、string str_sqlcom = Select * from MonthWages; string str_vtab = vistual_table; DataSet thisDset = (str_sqlcom, str_vtab); 工号t月份t工资t底薪t津贴t考勤); foreach (DataRow row in str_vtab.Rows) emp_no.ToString() + t + rowpay_time.ToString() + t + rowbasic_wage.ToString() + t + rowovertime_pay.ToString() + t + ro
18、wabsent_pay.ToString() + t + rowmonth_pay.ToString(); #endregion #region 各部门工资情况 private void 各部门工资情况ToolStripMenuItem_Click(object sender, EventArgs e) string str_sqlcom = select * from DepartAvgWage; string str_vtab = vistual_table; DataSet thisDset = (str_sqlcom, str_vtab); 部门t 月份t 部门人数t部门总工资t部门平
19、均工资); foreach (DataRow row in str_vtab.Rows) depart_name.ToString() + t + rowpay_month.ToString() + t + rowdepart_emps.ToString() + tt + rowsum_wage.ToString() + t + rowavg_wage.ToString(); #endregion #region 更新数据 private void 更新数据ToolStripMenuItem_Click(object sender, EventArgs e) Form4 newform = n
20、ew Form4(); (); #endregion #region 退出 private void 退出ToolStripMenuItem_Click(object sender, EventArgs e) (); #endregion 7)信息修改:namespace 工资管理系统 public partial class Form4 : Form BaseOperate boperate = new BaseOperate(); ows) if (rowemp_no.ToString() = string no = ; string name = ; if = ) name = rowe
21、mp_name.ToString(); else name = string pos = ; if = ) pos = rowemp_pos.ToString(); else pos = string Sex = ; if (! & ! Sex = rowsex.ToString(); else if Sex = else if Sex = string depart = ; if = ) depart = rowdepart_name.ToString(); else depart = string time = ; if = ) time = rowemp_time.ToString();
22、 else time = string tel = ; if = ) tel = rowtelephone.ToString(); else tel = string str_sqlcom2 = update EmpBasicInfo set emp_name=name, emp_pos=pos, sex=Sex, depart_name=depart, emp_time=time, telephone=tel where emp_no=no; SqlConnection mycon = (); (); SqlCommand cmd = new SqlCommand(str_sqlcom2,
23、mycon); SqlParameter par_no = new SqlParameter(no, no); SqlParameter par_name = new SqlParameter(name, name); SqlParameter par_pos = new SqlParameter(pos, pos); SqlParameter par_sex = new SqlParameter(Sex, Sex); SqlParameter par_depart = new SqlParameter(depart, depart); SqlParameter par_time = new
24、SqlParameter(time, time); SqlParameter par_tel = new SqlParameter(tel, tel); int result = (); if (result 0) (信息修改成功!); search = 1; break; if (search = 0) (无此员工!); #endregion #region 添加新员工 ows) if (rowemp_no.ToString() = (此工号的员工已存在!请重新输入!); search = 1; break; if (search = 0) DataRow newRow = EmpBasic
25、Info.NewRow(); newRow); ows) if (rowdepart_name.ToString() = int num = (rowdepart_emps.ToString() + 1; rowdepart_emps = num; (thisDset, Department); /*更新表Allowance, Attendance*/ string no = ; (); SqlCommand cmd1 = new SqlCommand(insert into Allowance values (no ,201310, , ), thisConn); SqlCommand cm
26、d2 = new SqlCommand(insert into Attendance values (no, 201310, , ), thisConn); SqlParameter par_no1 = new SqlParameter(no, no); (); SqlParameter par_no2 = new SqlParameter(no, no); (); /*更新表Staff*/ string id = string name = (); string pwd = (1, 1115); SqlCommand cmd3 = new SqlCommand(insert into Sta
27、ff values(id, name, pwd), thisConn); SqlParameter par_id = new SqlParameter(id, id); SqlParameter par_name = new SqlParameter(name, name); SqlParameter par_pwd = new SqlParameter(pwd, pwd); (); (); (添加成功!); #endregion #region 删除员工 ows) if (rowemp_no.ToString() = string str_sqlcom1 = delete from EmpBasicInfo where emp_no = + ; (); SqlCommand cmd = new SqlCommand(str_s
©2010-2024 宁波自信网络信息技术有限公司 版权所有
客服电话:4008-655-100 投诉/维权电话:4009-655-100