资源描述
企业工资管理系统数据库课程设计
52
2020年5月29日
文档仅供参考
企业工资管理系统
目 录
第一章 绪论……………………………………………………………1
1.1数据库管理系统……………………………………………………………1
1.2企业工资管理系统…………………………………………………………1
1.3开发工具……………………………………………………………………1
第二章 员工工资管理系统设计分析…………………………………2
2.1应用需求与分析……………………………………………………………2
2.2系统模块划分………………………………………………………………2
2.3系统数据库设计……………………………………………………………3
第三章:企业工资管理系统应用程序设计 …………………………4
3.1系统图………………………………………………………………………4
3.1.1系统的数据流图……………………………………………………4
3.1.2系统的流程图………………………………………………………5
3.1.3系统模块的具体划分………………………………………………6
3.2 跳转界面设计 ……………………………………………………………7
3.2”选择登陆用户模块”详细设计 ………………………………………8
3.4 管理员登录………………………………………………………………10
3.4.1”登录模块”详细设计 ………………………………………………10
3.4.2主窗体模块设计………………………………………………………13
3.4.3员工注册界面及功能…………………………………………………15
3.4.4删除员工信息界面及功能……………………………………………18
3.4.5修改及查询员工工资界面及功能……………………………………20
3.4.6工资设定界面及功能…………………………………………………23
3.4.7职位管理界面及功能…………………………………………………25
3.4.8其它功能………………………………………………………………28
3.5员工登陆模块 ……………………………………………………………29
第四章:运行与测试…………………………………………………31
4.1系统运行 ………………………………………………………………31
4.2系统测试 ………………………………………………………………31
第五章:实验心得……………………………………………………32
第一章 绪论
1.1数据库管理系统
数据库管理系统(DBMS)是指数据库系统中管理数据的软件系统。DBMS是数据库系统的核心组成部分。对数据库的一切操作,包括定义、更新及各种控制,都是经过DBMS进行的。DBMS总是基于某种数据模型,能够把DBMS看成是某种数据模型在计算机系统上的具体实现。根据数据模型的不同,DBMS能够分成层次型、网状型、关系型、面向对象型等。MSsqlserve 就是一种关系型数据库管理系统。
关系模型主要是用二维表格结构表示实体集,用外键表示实体间联系。关系模型是由若干个关系模式组成的集合。关系模式相当于前面提到的记录类型,每个关系实际上是一张二维表格。关系模型和层次、网状模型的最大判别是用关键码而不是用指针导航数据,表格简单用户易懂,编程时并不涉及存储结构,访问技术等细节。SQL语言是关系型数据库的标准化语言,已得到了广泛的应用。
1.2企业工资管理系统
企业工资管理是一项琐碎、复杂而又十分细致的工作,一般不允许发生差错。最初的工资统计和发放都是使用人工方式处理,工作量大的时候,出现错误的机率也随之升高,不但花费财务人员大量的时间,而且往往由于抄写不慎,或者由于计算的疏忽,出现工资发放错误的现象。同时工资的发放具有较强的时间限制,必须严格按照单位规定的时间完成计算和发放工作。正是企业工资管理的这种重复性、规律性、时间性,使得企业工资管理计算机化成为可能。企业工资管理系统就是使用电脑代替大量的人工统计和计算,完成众多企业工资信息的处理,同时使用电脑还能够安全地、完整地保存大量的企业工资记录。
1.3开发工具
后台数据库采用SQL SERVER数据库服务器,前台开发语言可自选。可设计成为C/S模式或B/S模式均可。要求根据题目自行设计系统所使用的数据库及数据表,经过系统界面实现对数据库的各种查询、增、删、改等功能操作。结合实际,经过实际的需求分析,采用功能强大的visual stdio 0作为前台设计工具,c#作为软件编程语言, sql server 作为后台数据库开发工具。本文先进行需求分析,详细论述了课题来源和本系统的开发目的,经过实现和测试各个环节,最后对本系统做出客观理性的评价,指明了它的现实作用、缺点以及系统的升级方向。
第二章 员工工资管理系统设计分析
2.1应用需求与分析
企业工资管理系统的开发宗旨以及总体任务就是帮助企业提高工作效率,节省大量的人力和物力资源,实现企业工资信息管理的自动化、规范化和系统化。
系统最终实现的主要功能如下:
(1)员工及管理员的登录与注册;
(2)员工查询浏览工资的发布情况;
(3)管理员对工资信息进行维护管理操作;
(4)管理员对员工信息进行相关的管理操作;
2.2系统模块划分
开发这个系统的目的就是帮助企业的财务主管部门提高工作效率,实现企业工资信息管理的系统化、规范化和自动化。能够和认识管理系统、考勤管理系统相结合,真正实现企业高效、科学、现代化的员工管理。系统最终实现的主要功能如下。
·企业工资信息设置部分:包括设置员工的基本工资和其它项目的金额,如奖金等。
·企业工资信息管理部分:包括查询工资和查询现有职务及现有基本工资标准。
·系统部分:包括添加用户。
2.3系统数据库设计
数据库是信息管理系统的后台,存储着所有的信息,在信息管理系统中有着很重要的地位。数据库设计的好与坏,直接影响到这个系统的运行效率。良好的数据库设计,能够提高数据信息的存储效率,确保数据信息的完整性和一致性。
针对企业工资信息管理系统的需求,经过对员工工资计算过程的内容分析,为本系统设计如下的数据项和数据结构:
表5-2为员工信息表。
此表中包含属性为:员工号,员工姓名,员工职位,员工电话,月薪,奖金,处罚金 。
表5-2 员工信息表
字段名称
数据类型
字段说明
ygno
varchar(50)
员工号
ygname
varchar(10)
员工姓名
ygduty
varchar(50)
员工职位
ygtel
varchar(52)
员工电话
yuexin
varchar(50)
月薪
jiangjin
varchar(50)
奖金
chufa
varchar(50)
处罚金
表5-3为工资标准表。
此表中包含属性为:员工职位,基本工资。
表5-3工资标准表
字段名称
数据类型
字段说明
ygduty
varchar(50)
员工职位
jbgz
varchar(50)
基本工资
表5-4 为管理员信息表
此表中包含属性为:管理员账号,密码。
表5-4管理员信息表
字段名称
数据类型
字段说明
username
varchar(50)
管理员账号
password
varchar(30)
密码
E-R图
jbgz
ygduty
ygname
ygduty
ygno
1:n
决定
工资标准表
员工信息表
ygtel
chufa
jbgz
yuexin
jiangjin
第三章:企业工资管理系统应用程序设计
3.1系统图
3.1.1系统的数据流图
数据流图(DFD,data flow diagram)是描述数据处理过程的有力工具。数据流图从数据传递和加工的角度,以图形的方式刻画数据流从输入到输出的移动变换过程。
本系统的数据流图如图3-1:
企业工资管理系统
管理员
员工
登 陆
登 陆
增、删、查、改员工、工资信息
查询个人、工资信息
是
否
否
是
3.1.2系统的流程图
流程图是最古老的设计表示方式之一,大多数程序人员把画流程图作为编码的先导。许多人在程序编好后也用流程图来表示程序的梗概,以便于同她人进行交流。由于它具有能随意表示任何程序逻辑的优点而广泛流传。
本系统流程图如图3-2:
员工
管理员
获取管理权限
增、删、查、改员工个人信息
查询和设定工资、职位标准
工资标准表
员工个人信息表
获取查询权限
查询个人及工资信息
查询工资标准
登陆
登陆
拒绝
拒绝
选择修改员工信息
选择修改标准
选择查询信息
选择查询标准
3.1.3系统模块的具体划分
企业工资管理系统主要分为以下几个模块:管理员模块主要有管理员登陆,员工信息注册、删除、修改及查询,工资标准浏览,员工工资的查询等;用户主要模块有查询工资标准,查询现有职位等等。
企业工资管理系统
系统功能模块图如下:
管理员管理
员工管理
工资标准
员工信息
工资职位
信息维护
退
出
员工信息
退
出
信息维护
工资职位
工资标准
返回登陆
查询信息
查询工资
职位管理
帮助
关于
修改查询
帮助
关于
职位管理
返回登陆
修改查询
删除员工
注册员工
图4.2企业工资管理系统模块图
3.2跳转界面设计
当用户点击本企业工资管理系统时,首先跳出此界面,作为一个缓冲,吸引用户的眼球,设定了三秒钟的跳转时间,然后直接弹出登陆界面。跳转界面及代码如下所示:
图3-1 跳转界面
系统函数:using System.Data.SqlClient;
namespace 企业工资管理系统
{
public partial class loading : Form
{
public loading()
{
InitializeComponent();
}
private void timer1_Tick_1(object sender, EventArgs e)
{
if (this.Opacity > 0.8)
{
this.Opacity = this.Opacity - 0.005;
}
else if (this.Opacity > 0.01) { this.Opacity = this.Opacity - 0.04; }
else
{
this.timer1.Enabled = false;
this.Hide();
Form10 login = new Form10();
login.Show();
}
}
}
3.3”选择登陆用户模块”详细设计
选择登陆用户模块的详细设计主要是供用户选择登陆的一个界面,用户选择登录的是管理员还是普通用户,然后选择是进入登陆模块还是主界面,从而进行相关的操作。
窗体及核心代码:
核心代码:
private void button1_Click(object sender, EventArgs e)
{
this.Hide();
Form16 f = new Form16();
f.Show();
}
private void button2_Click(object sender, EventArgs e)
{
this.Hide();
Form11 f = new Form11();
f.Show();
}
private void button3_Click(object sender, EventArgs e)
{
Application.Exit ();
}
3.4管理员登陆模块
3.4.1”登录模块”详细设计
登录模块的详细设计主要是用户登录的一个界面,判断是否密码和用户名错误,进入后将面正确是主界面,从而进行相关的操作。
登录的界面主要由用户名和密码的信息,还有一些标题设置,确定和取消的按钮组成。经过标题能够知道此系统的大概内容,由此,登录界面的设计完成。
窗体及核心代码:
图3-4-1登录界面
图3-4-2登录出错的提示1
图3-4-3登录出错的提示2
核心代码:
private void button1_Click(object sender, EventArgs e)
{
string sqlconstr = "Data Source=.;Initial Catalog=企业工资管理系统;Integrated Security=True";
SqlConnection sqlc = new SqlConnection(sqlconstr); if(textBox1.Text.Trim().Equals("")||textBox2.Text.Trim().Equals(""))
{
textBox1.Text = "";
textBox2.Text = "";
textBox1.Focus();
MessageBox.Show("用户名或密码不能为空");
return;
}
string sqlcomstring = "select * from 管理员信息表 where username='" + this.textBox1.Text + "'and password='" + this.textBox2.Text + "'";
try
{
sqlc.Open();
SqlCommand sqlcom = new SqlCommand(sqlcomstring, sqlc);
SqlDataReader sqlread = sqlcom.ExecuteReader();
if (sqlread.Read())
{
sqlread.Close();
sqlc.Close();
this.Hide();
Form3 gljm = new Form3();
gljm.Show();
}
else
{
textBox1.Text = "";
textBox2.Text = "";
textBox1.Focus();
MessageBox.Show(" 该用户不存在!");
sqlread.Close();
}
}
catch (SqlException ex)
{
MessageBox.Show(ex.Message, " 密码或用户名错误!");
}
finally
{
sqlc.Close();
}
}
private void button2_Click(object sender, EventArgs e)
{
Application.Exit();
}
3.4.2主窗体模块设计
如果用户输入的用户和密码都正确,则进入如下主窗体界面:
图3-5-1管理员主窗体界面
管理员主窗体界面核心代码:
private void 退出ToolStripMenuItem1_Click(object sender, EventArgs e)
{
Application.Exit();
}
private void 关于ToolStripMenuItem_Click(object sender, EventArgs e)
{
Form4 f = new Form4();
f.Show();
}
private void 员工注册ToolStripMenuItem_Click(object sender, EventArgs e)
{
Form5 f = new Form5();
f.Show();
}
private void 删¦除员工信息ToolStripMenuItem_Click(object sender, EventArgs e)
{
Form6 f = new Form6();
f.Show();
}
private void 修改员工工资ToolStripMenuItem_Click(object sender, EventArgs e)
{
Form8 f = new Form8();
f.Show();
}
private void 现有工资ToolStripMenuItem_Click(object sender, EventArgs e)
{
Form7 f = new Form7();
f.Show();
}
private void 职位管理ToolStripMenuItem_Click(object sender, EventArgs e)
{
Form9 f = new Form9();
f.Show();
}
private void 返回登录ToolStripMenuItem_Click(object sender, EventArgs e)
{
this.Hide();
Form10 l = new Form10();
l.Show();
}
private void 帮助ToolStripMenuItem_Click(object sender, EventArgs e)
{
Form15 f = new Form15();
f.Show();
}
n 3.4.3员工注册界面及功能
图3-6员工注册界面
核心代码:
private void button1_Click_1(object sender, EventArgs e)
{
SqlConnection sqlconn = new SqlConnection("Data Source=.;Initial Catalog=企业工资管理系统;Integrated Security=True");
try
{
if (textBox1.Text.Trim().Equals("") || textBox2.Text.Trim().Equals(""))
{
MessageBox.Show("工号和姓名不能为空!");
return;
}
else
{
sqlconn.Open();
SqlDataAdapter sda = new SqlDataAdapter("select * from 员工信息表 where ygno='" + textBox1.Text.Trim() + "'", sqlconn);
DataTable dt = new DataTable();
sda.Fill(dt);
if (dt.Rows.Count != 0)
{
MessageBox.Show("用户名已经存在!");
return;
}
SqlDataAdapter sda1 = new SqlDataAdapter("select * from 员工信息表", sqlconn);
DataTable dt1 = new DataTable();
sda1.Fill(dt1);
DataRow dr = dt1.NewRow();
dr["ygno"] = textBox1.Text.Trim();
dr["ygname"] = textBox2.Text.Trim();
dr["ygduty"] = textBox3.Text.Trim();
dr["ygtel"] = textBox4.Text.Trim();
dt1.Rows.Add(dr);
SqlCommandBuilder scb = new SqlCommandBuilder(sda1);
sda1.InsertCommand = scb.GetInsertCommand();
sda1.Update(dt1);
MessageBox.Show("注册成功!");
}
}
catch (SqlException ex)
{
MessageBox.Show(ex.Message, "错误!");
}
finally
{
sqlconn.Close();
}
}
private void button2_Click_1(object sender, EventArgs e)
{
textBox1.Text="";
textBox2.Text="";
textBox3.Text="";
textBox4.Text="";
textBox1 .Focus ();
}
private void button3_Click(object sender, EventArgs e)
{
this.Close();
}
private void button4_Click(object sender, EventArgs e)
{
SqlConnection sqlconn = new SqlConnection("Data Source=.;Initial Catalog=企业工资管理系统;Integrated Security=True");
SqlDataAdapter sda = new SqlDataAdapter("select * from 员工信息表", sqlconn);
DataTable dt = new DataTable();
sda.Fill(dt);
dataGridView1.DataSource = dt;
}
3.4.4删除员工信息界面及功能
图3-7删除员工信息界面
核心代码:
private void button1_Click_1(object sender, EventArgs e)
{
SqlConnection sqlconn = new SqlConnection("Data Source=.;Initial Catalog=企业工资管理系统;Integrated Security=True");
if (textBox1.Text.Trim().Equals(""))
{
MessageBox.Show("员工号不能为空!");
return;
}
SqlDataAdapter sda = new SqlDataAdapter("select * from 员工信息表 where ygno='" + textBox1.Text.Trim() + "'", sqlconn);
DataTable dt = new DataTable();
sda.Fill(dt);
if (dt.Rows.Count == 0)
{
MessageBox.Show("员工不存在!");
return;
}
MessageBoxButtons mbox = MessageBoxButtons.OKCancel;
DialogResult result;
result = MessageBox.Show("确定删除? ", "删除记录", mbox, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1);
if (result == DialogResult.OK)
{dt.Rows[0].Delete();
SqlCommandBuilder scb = new SqlCommandBuilder(sda);
sda.DeleteCommand = scb.GetDeleteCommand();
sda.Update(dt);
MessageBox.Show("删除成功"); }
else
{return;}
}
private void button2_Click_1(object sender, EventArgs e)
{textBox1.Text = ""; textBox1.Focus(); }
private void button3_Click(object sender, EventArgs e)
{ this.Close();
}
private void button4_Click(object sender, EventArgs e)
{
SqlConnection sqlconn = new SqlConnection("Data Source=.;Initial Catalog=企业工资管理系统;Integrated Security=True");
SqlDataAdapter sda = new SqlDataAdapter("select * from 员工信息表", sqlconn);
DataTable dt = new DataTable();
sda.Fill(dt);
dataGridView1.DataSource = dt;
}
3.4.5修改及查询员工工资界面及功能
图3-8修改及查询员工工资界面
核心代码:
private Boolean ishaved()
{
SqlConnection sqlconn = new SqlConnection("Data Source=.;Initial Catalog=企业工资管理系统;Integrated Security=True");
SqlDataAdapter sda = new SqlDataAdapter("select * from 员工信息表 where ygno='" + textBox1.Text.Trim() + "'", sqlconn);
DataTable dt = new DataTable();
sda.Fill(dt);
if (dt.Rows.Count == 0)
{
MessageBox.Show("员工不存在!");
return false;
}
else
{button1.Enabled = true;
return true;
}
}
private void button1_Click_1(object sender, EventArgs e)
{
SqlConnection sqlconn = new SqlConnection("Data Source=.;Initial Catalog=企业工资管理系统;Integrated Security=True");
if (!ishaved())
{return;
}
SqlDataAdapter sda = new SqlDataAdapter("select * from 员工信息表 where ygno='" + textBox1.Text.Trim() + "'", sqlconn);
DataTable dt = new DataTable();
sda.Fill(dt);
dt.Rows[0]["ygname"] = textBox2.Text.Trim();
dt.Rows[0]["ygduty"] = textBox3.Text.Trim();
dt.Rows[0]["ygtel"] = textBox4.Text.Trim();
dt.Rows[0]["yuexin"] = textBox5.Text.Trim();
dt.Rows[0]["jiangjin"] = tex
展开阅读全文