C#工资管理系统课程设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《C#应用开发与实践》课程设计报告书
设计题目:工资管理系统
指导老师:
学生学号:
学生姓名:
同组人员:
时间:
目录
第1章选题 (1)
1.1 题目背景 (1)
1.2系统实现的具体分工 (1)
1.3开发环境 (1)
第2章设计内容 (2)
2.1 数据表设计 (2)
2.2数据库分析 (3)
2.3数据库E-R图 (3)
2.4系统功能结构图 (4)
第3章系统实现 (6)
3.1 涉及知识点 (6)
3.2 系统运行 (6)
3.3 主要源程序 (8)
第4章结束语 (11)
参考文献 (12)
第1章选题
1.1 题目背景
随着经济的发展,企业正向着大型化、规模化发展,而对于大中型企业,职工、职称等跟着工资管理有关的信息随之急剧增加。
在这种情况下单靠人工来处理职工的工资不但显得力不从心,而且极容易出错。
该系统就是设计一个小型企业工资的数据库管理系统,由计算机代替人工执行,一系列诸如增加新职工、删除就职工,工资查询等操作。
这样就使办公人员可以轻松快捷地完成工资管理的任务。
企业的工资管理是公司管理的一个重要内容。
因此,人事工资管理系统是企事业信息化、智能化、科学化和正规化不可缺少的管理软件。
本系统开发的目的一方面从提高人事工资管理工作的效率出发,摆脱过去由人用纸和笔进行的费时费力的繁重工作,如何通过设计一个切实可行的软件系统用于解决人事工资管理,信息处理总量大、内容繁多、手段落后的现状,即利用成熟的计算机系统来实现人事工资管理工作的自动化。
本系统根据企业管理的一些实际情况而编制的一套自动化的人事工资管理系统。
1.2系统实现的具体分工
系统分为人事管理、工资管理、系统管理、用户管理等模块,其中人事管理模块主要负责职工的信息管理,该模块主要用于实现档案管理、奖罚管理、调动管理和考评管理的功能。
工资管理模块主要负责职工工资的信息管理,该模块主要用于实现考勤津贴和工资总结的功能。
系统功能模块主要负责部门管理的功能。
该模块主要用于实现操作员管理、修改口令的功能。
最后退出模块实现程序的退出。
1.3开发环境
开发平台:
系统的开发平台采用Microsoft的公司的Visual Studio 2010;
数据库:
本系统的数据库管理软件是SQL Server 2008。
开发语言:
本系统是使用的开发语言是Visual C#。
C#是一种现代的面向对象的程序开发语言,它使得程序员能够在新的微软.NET 平台上快速开发种类丰富的应用程序。
.NET平台提供了大量的工具和服务,能够最大限度地发掘和使用计算及通信能力。
由于其一流的面向对象的设计,从构建组件形式的高层商业对象到构造系统级应用程序,你都会发现C#将是最合适的选择。
使用C#语言设计的组件能够用于Web 服务。
这样通过Internet,就可以被运行于任何操作系统上的任何编程语言所调用。
开发语言的特点:
●简洁的语法;
●精心地面向对象设计。
●与WEB的紧密结合。
●完整的安全性与错误处理。
●灵活性的版本处理技术。
●灵活性与兼容性。
第2章设计内容
2.1 数据表设计
数据表属性结构图,如图2.1所示,
图2.1 数据表属性结构图
2.2数据库分析
工资管理系统是提供工资管理人员和职工工资进行管理的系统。
它能自动对不同职务,不同出勤及各个月份的工资进行管理并生成财务表。
基本要求:
1、员工每个工种基本工资的设定;
2、津贴管理,根据月份和类型给予不同的加班津贴;
3、给予不同用户提供不同的访问权限;
4、按照不同工种的基本工资情况、员工的考勤情况产生员工的每月月工资;
5、企业工资报表的统计。
2.3数据库E-R图
规划处系统中使用的实体对象及实体E-R图分别如下。
考评管理基本信息实体E-R图,如图2.2所示。
图2.2 考评管理基本信息实体
员工档案基本信息实体E-R图,如图2.3所示。
图2.3 员工档案基本信息实体
图2.4 员工工资基本信息实体
奖罚管理基本信息实体E-R图,如图2.5所示。
图2.5 员工工资基本信息实体调动管理基本信息实体E-R图,如图2.6。
图2.6 员工工资基本信息实体2.4系统功能结构图
工资管理系统系统功能结构图如图2.7所示。
图2.7 系统功能结构图2.5业务流程图
工资管理系统业务流程图如图2.8所示。
图2.8工资管理系统业务流程图
第3章系统实现
3.1 涉及知识点
公共类的设计与封装、C#应用开发与实践、Windows窗体及控件的使用、操作数据库、过程化设计的思想等。
3.2 系统运行
系统登录主要用于对进入人事工资管理系统的用户进行安全性检查,以防止非法用户进入系统。
在登录时,只有合法的用户,才进入系统。
登陆窗体:
主窗体:
人事管理模块包括档案管理、奖罚管理、调动管理和考评管理,档案管理窗体如下:
工资管理模块包括考勤津贴和工资总结,考勤津贴用于实现对员工的额外工资情况的添加,考勤津贴窗体如下:
用户管理包括用于实现操作员管理、修改口令的功能,操作员管理的窗体如下所示:
3.3 主要源程序
在本系统中,主要建立了两个公共类,分别为DBConnection类和DBOperate 类。
DBConnection类主要用于连接数据库,而DBOperate类中则定义了一些公共方法,分别用于实现各种功能下面详细介绍这两个类。
1. DBConnection类
DBConnection类是个数据库连接类,此类主要用于连接SQL Server数据库,在连接数据库时,只需要此类中的MyConnection即可,其实现代码如下: using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.SqlClient;//引用SQL命名空间
namespace PMS.PMsClass
{
class DBConnection
{
public static SqlConnection MyConnection()
{
return new SqlConnection(//创建数据库连接对象
@"Data Source=.;Initial Catalog=db_PMS;Integrated Security=True");//
数据库连接字符串
}
}
}
2 . DBOperate类
DBOperate类中建立多个方法用于执行不同的SQL语句,下面对该类的方法进行详细的说明。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.SqlClient;
using System.Windows.Forms;
using System.Data;
using System.IO;
using System.Drawing;
namespace PMS.PMsClass
{
class DBOperate
{
SqlConnection conn = DBConnection.MyConnection();//得到数据库连接对象
public int OperateData(string strSql)
{
conn.Open();//打开数据库连接
SqlCommand cmd = new SqlCommand(strSql, conn);//创建命令对象
int i = (int)cmd.ExecuteNonQuery();//执行SQL命令
conn.Close();//关闭数据库连接
return i;//返回数值
}
public void BindDataGridView(DataGridView dgv, string sql) {
SqlDataAdapter sda = new SqlDataAdapter(sql, conn);//创建数据适配器对象
DataSet ds = new DataSet();//创建数据集对象
sda.Fill(ds);//填充数据集
dgv.DataSource = ds.Tables[0];//绑定到数据表
ds.Dispose();//释放资源
}
public int HumanNum(string strsql)
{
conn.Open();//打开数据库连接
SqlCommand cmd = new SqlCommand(strsql, conn);//创建命令对象
int i = (int)cmd.ExecuteScalar();//执行SQL命令
conn.Close();//关闭数据库连接
return i;//返回数值
}
public DataSet GetTable(string sql)
{
SqlDataAdapter sda = new SqlDataAdapter(sql, conn);//创建数据适配器对象
DataSet ds = new DataSet();//创建数据集
sda.Fill(ds);//填充数据集
ds.Dispose();//释放资源
return ds;//返回数据集
}
public void BindDropdownlist(string strTable, ComboBox cb, int i)
{
conn.Open();//打开数据库连接
SqlCommand cmd = new SqlCommand(//创建命令对象
"select * from " + strTable, conn);
SqlDataReader sdr = cmd.ExecuteReader();//得到数据读取器 while (sdr.Read())
{
cb.Items.Add(sdr[i].ToString());//添加信息
}
conn.Close();//关闭数据库连接
}
第4章结束语
在课程设计的两个星期里,我学到了很多知识,在整个设计阶段感受最为深刻的是掌握学习的方式和解决问题的方法。
首先是解决问题的方式,虽然查询到的信息很多,但是如何从大量的信息中筛选出所需的信息,有用的信息,才是解决问题的关键;另一个就是解决问题的方法,就像我在解决设计中很多问题一样,一开始总是在看书,和书上进行比对,虽然书本上的内容有一部分是有价值、正确的,但是每个人编程的思路和数据处理的方法都是不一样的,这就要求我们一定要通过实践才能找到解决问题的方法。
在整个毕业设计的过程中,我深刻的体会到这一点的重要性,也牢记主了一点,在今后的学习和研究中我也会继续将这种方法延续下去。
通过这段时间的课程设计,我认识到C#程序设计是一门比较难的课程。
需要多花时间上机练习。
这次的程序训练培养了我实际分析问题、编程和动手能力,使我掌握了程序设计的基本技能,提高了我适应实际,实践编程的能力。
这次课程设计采取两人一组的方式,锻炼了我们相互的合作精神,让我们亲身体验到合作的重要性。
在做系统时,每个人的不同的想法组合起来,可以减少系统的漏洞。
同时,学习同伴在编程序中的好的习惯。
总的来说,这次课程设计让我获益匪浅,对C#程序设计也有了进一步的理解和认识。
参考文献
[1]张孝祥,徐明华.c#基础与案例开发详解.清华大学出版社,2009
[2]张奇,理律松,卫建伟.Visual C#数据库项目案例导航.清华大学出版社,2005
[3]明日科技.c#项目开发案例全程实录.清华大学出版社,2011
[4]黄梯云.管理信息系统导论.北京:机械工业出版社,2000
[5]薛华成.管理信息系统.北京:清华大学出版社,2002。