课程设计报告.docx
- 文档编号:18314604
- 上传时间:2023-08-15
- 格式:DOCX
- 页数:25
- 大小:428.31KB
课程设计报告.docx
《课程设计报告.docx》由会员分享,可在线阅读,更多相关《课程设计报告.docx(25页珍藏版)》请在冰点文库上搜索。
课程设计报告
一.项目描述
1.1系统开发目的
(1)大大提高企业的运作效率;
(2)通过全面的信息采集和处理,辅助提高超市的决策水平;
(3)由计算机来代替人工执行一系列诸如增加新员工、删除员工、工资修改、查询、统计等操作。
这样就使办公人员可以轻松快捷的完成工资管理的任务。
1.2背景说明
随着我国市场经济的快速发展,人事工资管理系统在企业的日常管理中发挥着越来越重要的作用。
人事工资管理系统可以进行档案管理、奖罚管理和工资管理等,方便处理企业内部员工的相关工资信息。
1.3系统的具体任务
该系统的具体任务就是设计一个工资的数据库管理系统,由计算机来代替人工执行一系列诸如增加新员工、删除旧员工、工资修改、查询、对扣除工资和考勤的处理等操作。
这样就使办公人员可以轻松快捷的完成工资管理的任务。
1.4系统的具体功能
a、系统的登录:
主要用于对进入人事工资管理系统的用户进行安全性检查,以防止非法用户进入系统。
b、系统主窗体:
提供系统的各项功能连接,通过主窗体可以快速地打开系统的各个功能窗口。
c、员工的信息:
进入系统的相关模块,可以查询员工的各项基本信息。
d、工资标准设定:
系统包括基本工资,奖金工资,处罚的设定。
e、工资信息查询:
进入系统的相关模块,选择要查询职工的职工号,可以浏览职工的系统功能分析是在系统开发的总体任务的基础上完成的。
f、员工工资的计算:
系统能够根据职工的职位、考勤、奖励等信息计算出职工领取的工资。
g、员工考勤情况的登记和查询:
进入系统的相关模块,可以登记职工的考勤情况和查询职工的考勤信息。
1.5系统开发步骤
(1)分系统功能
(2)设计系统及流程
(3)设计编写数据库
(4)分析设计系统各个模块
(5)编写代码
(6)运行测试,检验系统
1.6系统环境需求
开发工具:
VisualStudio2005
编程语言:
C#
数据库管理系统软件:
SQLServer2005
运行环境:
Windowsxp或window2000
二.个人分工及进度计划
表1个人分工及进度计划表(组长及组员使用)
系统
人事工资管理系统
分工模块
更改操作员、修改调动信息、部门管理窗体、企业员工信息、企业员工修改、奖罚信息管理、系统登录窗体、操作员管理、人员考评管理
模块详细功能
功能描述
进度计划
公共类的编写、系统主窗体、添加员工窗体、添加人员考评
12个课时
4个课时的窗体设计,8课时的代码编写调试运行
添加调动信息、修改部门名称、修改奖罚信息、修改用户密码
12个课时
4课时窗体设计,8课时代码编写调试运行
控件的数据绑定、总体调试运行
11课时
3课时窗体设计,8课时代码编写调试运行
三.数据库设计
3.1数据库逻辑设计
系统采用SQLServer2005作为后台数据库,数据库名称为db_PMS,其中包含8张数据表,数据表树形结构如下:
系统E-R图
3.2数据库物理设计
tb_check(考评管理信息表):
用于保存员工考评管理基本信息。
字段名
数据类型
长度
主键否
描述
ID
int
4
主键
系统编号
PID
varchar
50
否
员工编号
Pname
varchar
50
否
员工姓名
Pdep
varchar
50
否
员工部门
PKpcontent
varchar
50
否
考评内容
PKpResult
varchar
50
否
考评结果
PKpscore
int
4
否
考评分数
PKpPeople
varchar
50
否
考评人数
PKpdate
varchar
50
否
考评日期
tb_employee(员工档案信息表):
用于保存员工档案的详细信息。
字段名
数据类型
长度
主键否
描述
ID
int
4
主键
系统编号
employeeID
varchar
50
否
员工编号
employeeName
varchar
50
否
员工姓名
employeeSex
varchar
50
否
员工性别
employeeDept
varchar
50
否
员工部门
employeeBirthday
varchar
50
否
员工生日
employeeNation
varchar
50
否
员工民族
empioyeeMarriage
varchar
50
否
婚姻状况
employeeDuty
varchar
50
否
职务名称
employeePhone
varchar
50
否
联系电话
employeeAccession
varchar
50
否
就职日期
employeePhoto
image
16
否
员工相片
employeePay
decimal
9
否
基本工资
tb_pay(员工工资信息表):
用于保存员工工资的详细信息。
字段名
数据类型
长度
主键否
描述
ID
int
4
主键
系统编号
YID
varchar
50
否
员工编号
YName
varchar
50
否
员工姓名
YSex
varchar
50
否
员工性别
Ydep
varchar
50
否
员工部门
YZhiwu
varchar
50
否
员工职务
YBasePay
decimal
9
否
基本工资
YJintie
decimal
9
否
职务津贴
Yjiangli
decimal
9
否
奖励金额
YFK
decimal
9
否
罚款金额
Yquanqin
decimal
9
否
全勤金额
Yjinban
decimal
9
否
加班工资
Yyingfa
decimal
9
否
应发工资
Ygeren
decimal
9
否
个人所得税
Ypay
decimal
9
否
员工工资
YMonth
varchar
50
否
工资月份
tb_prize(奖罚管理信息表):
用于保存奖罚管理信息
字段名
数据类型
长度
主键否
描述
ID
int
4
是
系统编号
UserID
varchar
50
否
员工编号
UserName
varchar
50
否
员工姓名
UserDep
varchar
50
否
员工部门
UserJF
varchar
50
否
奖罚类型
UserJFcontent
varchar
50
否
奖罚内容
UserJLMoney
decimal
9
否
奖励金额
UserFKMoney
decimal
9
否
罚款金额
UserJFDate
varchar
50
否
奖罚日期
UserCXDate
varchar
50
否
撤销日期
tb_redeploy(调动管理信息表):
用于保存员工的调动管理信息。
字段名
数据类型
长度
主键否
描述
ID
int
4
是
系统编号
UID
varcha
50
否
员工编号
UName
varcha
50
否
员工姓名
URemoveDate
varcha
50
否
调动日期
UOldDep
varcha
50
否
原部门
UNewDep
varcha
50
否
现部门
UOldJob
varcha
50
否
原职务
UNewJob
varcha
50
否
现职务
UOldPay
decimal
9
否
原工资
UNewPay
decimal
9
否
现工资
UPayExplain
varcha
50
否
工资说明
3.3数据库关系图
四.软件总体设计
4.1公有数据库类的设计
在本系统中,主要建立了两个公共类,分别是DBConnection类和DBOperate类。
DBConnection类主要用于连接数据库,而DBOperate类中则定义一些公共方法,方法用于实现各种功能。
(1)DBConnection类
DBConnection类是数据库连接类,此类主要用于连接SQLServer数据库,在连接数据库时,只需调用此类中的方法MyConnection方法即可,其实现代码如下:
classDBConnection
{
publicstaticSqlConnectionMyConnection()
{
returnnewSqlConnection("server=.;database=db_PMS;uid=sa;pwd=");
}
}
(2)DBOperate类
DBOperate类中建立了多个方法用于执行不同的SQL语句,其中包括:
OperateDate方法、BinDataGridView方法、HumanNum方法、Read_Image方法、SaveImage方法、Get_Image方法、GetTable方法、BindDropdownlist方法。
classDBOperate
{
SqlConnectionconn=DBConnection.MyConnection();
publicintOperateData(stringstrSql)
{conn.Open();
SqlCommandcmd=newSqlCommand(strSql,conn);
inti=(int)cmd.ExecuteNonQuery();
conn.Close();
returni;
}
publicvoidBindDataGridView(DataGridViewdgv,stringsql)
{SqlDataAdaptersda=newSqlDataAdapter(sql,conn);
DataSetds=newDataSet();
sda.Fill(ds);
dgv.DataSource=ds.Tables[0];
ds.Dispose();
}
publicintHumanNum(stringstrsql)
{
conn.Open();
SqlCommandcmd=newSqlCommand(strsql,conn);
inti=(int)cmd.ExecuteScalar();
conn.Close();returni;
}
publicvoidRead_Image(OpenFileDialogopenF,PictureBoxMyImage)
{
openF.Filter="*.jpg|*.jpg|*.bmp|*.bep";
if(openF.ShowDialog()==DialogResult.OK)
{
try
{
MyImage.Image=System.Drawing.Image.FromFile(openF.FileName);
}
catch
{MessageBox.Show("您选择的图片不能被读取或文件类型不对!
","错误",MessageBoxButtons.OK,MessageBoxIcon.Warning);}
}
}
publicvoidSaveImage(stringMID,OpenFileDialogopenF)
{stringstrimg=openF.FileName.ToString();
FileStreamfs=newFileStream(strimg,FileMode.Open,FileAccess.Read);
BinaryReaderbr=newBinaryReader(fs);
byte[]imgBytesIn=br.ReadBytes((int)fs.Length);
conn.Open();
StringBuilderstrSql=newStringBuilder();
strSql.Append("updatetb_employeeSetemployeePhoto=@PhotowhereemployeeID="+MID);
SqlCommandcmd=newSqlCommand(strSql.ToString(),conn);
cmd.Parameters.Add("@Photo",SqlDbType.Binary).Value=imgBytesIn;
cmd.ExecuteNonQuery();
conn.Close();
}
publicvoidGet_Image(stringygname,PictureBoxpb)
{
byte[]imagebytes=null;
conn.Open();
SqlCommandcom=newSqlCommand("select*fromtb_employeewhereemployeeID='"+ygname+"'",conn);
SqlDataReaderdr=com.ExecuteReader();
while(dr.Read())
{
imagebytes=(byte[])dr.GetValue(11);
}
dr.Close();
conn.Close();
MemoryStreamms=newMemoryStream(imagebytes);
Bitmapbmpt=newBitmap(ms);
pb.Image=bmpt;
}
publicDataSetGetTable(stringsql)
{
SqlDataAdaptersda=newSqlDataAdapter(sql,conn);
DataSetds=newDataSet();
sda.Fill(ds);
ds.Dispose();
returnds;
}
publicvoidBindDropdownlist(stringstrTable,ComboBoxcb,inti)
{
conn.Open();
SqlCommandcmd=newSqlCommand("select*from"+strTable,conn);
SqlDataReadersdr=cmd.ExecuteReader();
while(sdr.Read())
{
cb.Items.Add(sdr[i].ToString());
}
conn.Close();
}
publicboolCheckUser(stringname,stringpwd)
{
boolflag=false;
conn.Open();
SqlCommandcmd=newSqlCommand("select*fromtb_UserwhereUserName='"+name+"'andUserPwd='"+pwd+"'",conn);
SqlDataReadersdr=cmd.ExecuteReader();
sdr.Read();
if(sdr.HasRows)
{flag=true;
}
sdr.Close();
conn.Close();
returnflag;
}
publicvoidDeleUserInfo(stringid)
{
stringstr1="deletefromtb_checkwherePID='"+id+"'";
stringstr2="deletefromtb_paywhereYID='"+id+"'";
stringstr3="deletefromtb_prizewhereUserID='"+id+"'";
stringstr4="deletefromtb_redeploywhereUID='"+id+"'";
OperateData(str1);
OperateData(str2);
OperateData(str3);
OperateData(str4);
}
}
4.2各个模块的设计
业务流程图
人事工资管理系统功能结构图
五.功能实现
5.1主窗体
主窗体:
用于各个窗体的连接
创建一个公共变量,用于获取登录名,然后声明公共类DBOperate的一个实例对象,以便调用其中的方法:
publicstringUser;
DBOperateoperate=newDBOperate();
窗体的登陆初始化:
privatevoidfrmMain_Load(objectsender,EventArgse)
{
label2.Text=User;
label4.Text=Logintime;
toolStripMenuItem1.Text=DateTime.Now.ToLongTimeString();
stringsql="select*fromtb_UserwhereUserName='"+User+"'";
DataSetds=operate.GetTable(sql);
stringpower=ds.Tables[0].Rows[0][3].ToString();
if(power=="一般用户")
{
系统管理DToolStripMenuItem.Enabled=false;
操作员管理ToolStripMenuItem.Enabled=false;
}
}
实现各窗体的连接:
privatevoid档案管理ToolStripMenuItem_Click(objectsender,EventArgse)
{
frmEmployeeemployee=newfrmEmployee();
employee.ShowDialog();
}
privatevoid奖罚管理ToolStripMenuItem_Click(objectsender,EventArgse)
{
frmUserPrizeprize=newfrmUserPrize();
prize.ShowDialog();
}
privatevoid调用管理ToolStripMenuItem_Click(objectsender,EventArgse)
{
frmUserRedeployuserredeploy=newfrmUserRedeploy();
userredeploy.ShowDialog();
}
……………………
……………………
5.2添加员工信息窗体
添加添加员工信息和添加人员考评信息窗体:
设置各个控件的属性,窗体初始化时实现数据的绑定:
privatevoidfrmAddEmployee_Load(objectsender,EventArgse)
{try
{
operate.BindDropdownlist("tb_department",cbbYGBumen,1);//绑定下拉列表
cbbYGHunyin.SelectedIndex=0;
cbbYGSex.SelectedIndex=0;
cbbYGBumen.SelectedIndex=0;
txtYGminzu.SelectedIndex=0;
stringstrg=Application.StartupPath.ToString();
strg=strg.Substring(0,strg.LastIndexOf("\\"));
strg=strg.Substring(0,strg.LastIndexOf("\\"));
strg+=@"\PMSImage";
strg+=@"\default.jpg";
openFileDialog1.FileName=strg;
operate.BindDropdownlist("tb_userJob",txtYGZhiwu,1);//绑定所有的职务列表
}
catch(Exceptionex)
{MessageBox.Show(ex.Message);
}
}
5.3员工信息管理功能实现
企业员工信息:
用户进入系统可以查看企业员工基本信息。
企业员工修改:
用户在系统中可以修
数据的绑定:
privatevoidfrmEmployeeInfo_Load(objectsender,EventArgse)
{
operate.BindDropdownlist("tb_department",cbbYGBumen,1);
operate.BindDropdownlist("tb_userJob",txtYGZhiwu,1);//绑定所有的职务列表
this.Text="["+YGName+"]的个人信息";
stringsql="select*fromtb_employeewhereemployeeID='"+YGID+"'";
DataSetds=operate.GetTable(sql);
ds.Dispose();
txtYGNum.Text=ds.Tables[0].Rows[0][1].ToString();
txtYGName.Text=ds.Tables[0].Rows[0][2].ToString();
cbbYGSex.SelectedItem=ds.Tables[0].Rows[0][3].ToString();
cbbYGBumen.SelectedItem=ds.Tables[0].Rows[0][4].ToString();
txtYGBirthday.Text=ds.Tables[0].Rows[0][5].ToString();
txtYGminzu.SelectedItem=ds.Tables[0].Rows[0][6].ToString();
cbbYGHunyin.SelectedI
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 课程设计 报告