汽车厂工资管理系统概述.docx
《汽车厂工资管理系统概述.docx》由会员分享,可在线阅读,更多相关《汽车厂工资管理系统概述.docx(38页珍藏版)》请在冰点文库上搜索。
汽车厂工资管理系统概述
信息与计算机科学专业综合实训任务书
学院名称:
理学院课程代码:
____106087719____
专 业:
信息与计算机科学专业年级:
2013
一、实训题目
汽车厂工资管理系统
二、主要内容
企业或者单位对其员工的工资进行详细的管理,对员工工资的调整情况进行详细记录,应实现以下功能:
(1).员工录入:
将员工的资料以及其对应的工资信息录入数据库中。
(2).查询功能:
实现按员工的编号、名字等指标进行工资情况的查询。
(3).修改功能:
当某个或者某些员工工资调整时,能对其进行修改。
(4).删除功能:
对调离的员工及其工资资料进行删除
三、具体要求及提交的材料
程序必须上机调试通过,并写出设计的报告。
设计报告格式:
1、设计目的2、总体设计(程序设计组成框图、流程图)3、数据库设计4、详细设计5、调试与测试:
调试方法,测试结果的分析与讨论,测试过程中遇到的主要问题及采取的解决措施6、核心部分的源程序清单和执行结果(清单中应有足够的注释)设计报告纸质文档和电子文档各一份,调试通过后的软件一套。
(严禁抄袭和代做,一经发现,重修论处)
四、主要技术路线提示
系统地设计出数据库,建立表间联系;
Web技术的基本使用;
使用任意一计算机语言,任意一种数据库;
五、进度安排
1、需求分析和概要设计,数据库设计,1周之内完成(指导教师检查);
2、系统详细设计分析,编程、调试和分析程序,2周之内完成(指导老师检查);
3、程序答辩、说明书撰写,1周左右完成(学生必须当面答辩通过)。
指导教师签名日期年月日
引言
员工管理系统是一个企事业单位不可缺少的部分,它的内容对于企事业单位的决策者和管理者来说都至关重要,所以员工管理系统应该能够为用户提供充足的信息和快捷的查询手段。
但一直以来人们使用传统人工的方式管理文件信息,这种管理方式存在着许多缺点,如:
效率低、保密性差,另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。
随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。
1需求分析
企业或者单位对其员工的工资进行详细的管理,对员工工资的调整情况进行详细记录,应实现以下功能:
(1).员工录入:
将员工的资料以及其对应的工资信息录入数据库中。
(2).查询功能:
实现按员工的编号、名字等指标进行工资情况的查询。
(3).修改功能:
当某个或者某些员工工资调整时,能对其进行修改。
(4).删除功能:
对调离的员工及其工资资料进行删除。
1.1系统概述
本系统主要有四个界面:
主界面,登陆界面,员工界面,管理员界面。
在主界面可以直接进入查看员工的工资信息,若是要使用管理员功能,就必须要通过登陆才行,登陆后,可以删除、修改和添加员工的信息。
1.2功能需求分析
1.2.1.主界面模块
管理员登录,员工进入。
1.2.2.登陆模块
账号,口令。
1.2.3.员工模块
查看员工的工资信息。
1.2.4.管理员模块
删除、修改、添加员工的工资信息和基本信息。
1.3运行环境
SQLServer2008R2,visualstudio2010
1.4测试数据
员工调试
查看员工信息:
图1.1查看员工信息
管理员调试
管理员查看员工工资情况:
图1.2查询员工工资情况
管理员查看员工基本信息情况:
图1.3查看员工基本信息
管理员删除员工信息:
图1.4删除员工
管理员修改员工工资信息:
图1.5修改员工工资信息
管理员删除员工信息:
图1.6删除员工信息
管理员添加员工:
图1.7添加员工
2概要设计
2.1设计思路
本文针对汽车厂工资管理,建立了对员工查看工资信息和管理员管理员工信息的基本管理的解决方案,系统基于B/S模式,采用visualstudio2010,SQLserver2008R2作为主要开发的工具,使用c#.net对SQLServer数据库的基本操作。
本系统主要是由两个部分组成:
员工部分,管理员部分。
系统分别对员工,管理员不同的操作特点,做出需求分析,而且根据各个操作功能的实现,完成了三大部分的模块的划分,设计出数据库。
2.2模块功能介绍
2.2.1登录功能
管理员登陆
操作描述:
管理员进入到登录页面,用账号,通过口令来登录汽车厂工资管理系统。
涉及数据:
账号,口令。
2.2.2输入功能
(1)员工信息输入
操作描述:
进入毕业设计选题系统后,员工需进行相应的数据录入。
涉及数据:
编号,姓名,性别,出生年月,学历,毕业院校,电话,备注,等等….
(2)管理员信息输入
操作描述:
进入毕业设计选题系统后,管理员需进行相应的数据录入。
涉及数据:
账号,口令等等….
2.2.3数据查询功能
(1)员工查询
操作描述:
员工可以按照编号,姓名。
涉及数据:
编号,姓名。
(2)管理员查询
操作描述:
管理员可以按照编号,姓名。
涉及数据:
编号,姓名。
2.2.4数据删除,修改功能
管理员
操作描述:
管理员可以删除员工,可以添加员工,也可修改员工的工资信息和资料信息。
涉及数据:
编号,姓名,实际工资,基本工资,考勤扣除,加班补助,扣税等等….
2.3模块结构
1)主界面模块
管理员登录,员工进入。
2)登陆模块
账号,口令。
3)员工模块
查找。
4)管理员模块
员工表,资料表,删除,修改,添加。
2.4流程图
汽车厂工资管理系统
图2.1系统设计图
2.5功能设计分工
a)数据库名称及描述
1员工表:
其中包含一些员工信息的基本情况。
2工资表:
包含员工工资的基本情况。
3admin表:
包含管理员的基本信息。
B)数据表
表1.员工表(描述:
其中包含一些员工信息的基本情况)
字段名
数据类型
长度
是否允许空
默认值
备注(主外键、字段说明、值域)
编号
nchar
12
否
无
主键
姓名
nvarchar
5
否
无
性别
nchar
1
是
男
出生年月
nchar
10
否
无
学历
nvarchar
5
否
无
毕业院校
nvarchar
10
否
无
职称
nvarchar
8
是
无
电话
nchar
11
是
无
长度为11的数字
备基本信息注
nvarchar
200
是
无
表2:
资料表(描述:
包含员工工资的基本情况)
字段名
数据类型
长度
是否允许空
默认值
备注(主外键、字段说明、值域)
编号
nchar
12
否
无
主键
姓名
nvarchar
5
否
无
年份
nchar
4
否
2017
月份
nchar
2
否
6
实际工资
nchar
5
否
无
基本工资
nchar
5
否
无
加班补助
nchar
5
是
无
考勤扣除
nchar
5
是
无
扣税
nchar
5
是
无
工资信息备注
nvarchar
200
否
否
表3.admin表(描述:
包含管理员的基本情况)
字段名
数据类型
长度
是否允许空
默认值
备注(主外键、字段说明、值域)
账号
nvarchar
10
否
无
主键
口令
nchar
10
否
无
3 详细设计
3.1主界面设计
系统设置主界面为起始页面,其中包括三个div,第一个div是设置屏幕大小和位置,第二个div是插入背景图和标题,第三个div包含两个按钮button1和button2。
用户点击管理员登录,就会进入登录页面,如点击员工进入,就会直接进入员工页面。
图3.1主界面
主要代码:
protectedvoidPage_Load(objectsender,EventArgse)
{
}
protectedvoidButton1_Click(objectsender,EventArgse)
{
Response.Redirect("web.aspx");
}
protectedvoidButton2_Click(objectsender,EventArgse)
{
Response.Redirect("yuangong.aspx");
3.2登录页面设计
图3.2登录界面
进入登录页面,其中有四个div,第一个div是设置屏幕大小和位置,第二个div是插入背景图和标题,第四个div包含两个TextBox1和TextBox2,两个按钮button1和button2。
用户登陆时,在文本框中t1中输入账号,在t2中输入口令,点击登录,若数据库中存在,则进入下一个页面。
如果输入出错会有信息提示。
当用户输错时,可以重置,就会清空文本框中的信息。
图3.3出错界面
主要代码:
protectedvoidPage_Load(objectsender,EventArgse)
{
}
protectedvoidButton1_Click(objectsender,EventArgse)
{
stringzh=TextBox1.Text.Trim();
stringkl=TextBox2.Text.Trim();
stringsql="select*fromadmin表where账号='"+zh+"'";
SqlDataReadermyrd=newClass1().datareader(sql);
//下面根据myrd中的查询数据来判断登陆情况
if(myrd.Read())//取得一行,表示用户名存在的
{
if(myrd[1].ToString().Trim()==kl)//表示登陆成功
{//先取出成功登陆用户的权限,以备下级程序中使用
Session["账号"]=myrd[0].ToString().Trim();
Session["口令"]=myrd[1].ToString().Trim();
Response.Redirect("bbs.aspx");
}
else//用户名存在,但密码错误
TextBox2.Text="口令错误";
}
else//表示上面的myrd读出的空值无数据
{
TextBox1.Text="账号不存在";
}
}
3.3员工页面设计
由主界面进入员工界面,其中有两个按钮和两个文本框,在文本框中输入想要查找的员工编号或姓名,点击第一个按钮,便可查找出来。
图3.4员工界面
主要代码:
protectedvoidPage_Load(objectsender,EventArgse)
{
stringsql="select编号,姓名,年份,月份,实际工资,基本工资,加班补助,考勤扣除,扣税from工资表";
DataTablemytb=newClass1().getds(sql);//把数据从sql读入mytb中
Repeater1.DataSource=mytb;//把mytb行书的数据赋给repearter
Repeater1.DataBind();
tt(sql);//调用tt函数
}
protectedvoidtt(stringsql)
{//使用本模块说明:
//
(1)在前面html代码中定义一个repeater,其中id=repeater1;再定义一个div,其id=div11
//
(2)调用本tt方法时传进来一个sql命令字符串即可,其它不需要修改什么了
stringsql2="select编号,姓名,年份,月份,实际工资,基本工资,加班补助,考勤扣除,扣税from工资表";
DataTablemytb=newClass1().getds(sql2);
//自动生成页码控制控件,这样方便以后广泛应用(只需要在前台html代码建立一个div(id="div11")就可以了,把这些控件加去
LabelLabel1yy=newLabel();
LabelLabel2yy=newLabel();
HyperLinkfirtp=newHyperLink();
firtp.Text="首页";
HyperLinkprep=newHyperLink();
prep.Text="上一页";
HyperLinknextp=newHyperLink();
nextp.Text="下一页";
HyperLinklastp=newHyperLink();
lastp.Text="尾页";
TextBoxTextBox1yy=newTextBox();
TextBox1yy.ID="TextBox1yy";//要想在一下步继续编程使用这个控件,要用findcontrol方法查找本控件,必须指定ID
TextBox1yy.Width=30;
TextBox1yy.Attributes.Add("runat","server");//这个可要可不要,默认应该是runat=server的
ButtonButton1yy=newButton();
Button1yy.Click+=newSystem.EventHandler(Button1yy_Click);//要想控件响应事件编程,必须要这句,否则以后它无法响应事件
Button1yy.Text="GO";
//每个项之间加个分隔符号||
Label[]pp=newLabel[7];
for(inti=0;i<7;i++){Labelpt=newLabel();pt.Text="||";pp[i]=pt;}
div12.Controls.Add(Label1yy);
div12.Controls.Add(pp[0]);
div12.Controls.Add(Label2yy);
div12.Controls.Add(pp[1]);
div12.Controls.Add(firtp);
div12.Controls.Add(pp[2]);
div12.Controls.Add(prep);
div12.Controls.Add(pp[3]);
div12.Controls.Add(nextp);
div12.Controls.Add(pp[4]);
div12.Controls.Add(lastp);
div12.Controls.Add(pp[5]);
div12.Controls.Add(TextBox1yy);
div12.Controls.Add(Button1yy);
//生成结束.以上生成的控件也要以放在panel中,一样的效果
PagedDataSourcepds=newPagedDataSource();
pds.DataSource=mytb.DefaultView;//把mytab转换为要直接显示的数据视图
pds.AllowPaging=true;
pds.PageSize=3;
inttotalp=(mytb.Rows.Count+pds.PageSize-1)/pds.PageSize;
Label1yy.Text="总页数为:
"+Convert.ToString(totalp);
intcurpage;//表示当前页
if(Request.QueryString["Page"]!
=null)
curpage=Convert.ToInt32(Request.QueryString["Page"]);
else
curpage=1;
pds.CurrentPageIndex=curpage-1;
Label2yy.Text="当前页:
"+curpage.ToString();
if(!
pds.IsFirstPage)
prep.NavigateUrl=Request.CurrentExecutionFilePath+"?
Page="+Convert.ToString(curpage-1);
if(!
pds.IsLastPage)
nextp.NavigateUrl=Request.CurrentExecutionFilePath+"?
Page="+Convert.ToString(curpage+1);
Repeater1.DataSource=pds;
Repeater1.DataBind();//把视图赋值给repeater1,重新绑定数据
if(curpage!
=1)
firtp.NavigateUrl=Request.CurrentExecutionFilePath+"?
Page=1";
if(curpage!
=totalp)
lastp.NavigateUrl=Request.CurrentExecutionFilePath+"?
Page="+Convert.ToString(totalp);
TextBox1yy.Text=curpage.ToString();//让它显示当前页,直观些
}
protectedvoidButton1yy_Click(objectsender,EventArgse)
{//注意,动态生成的控件,在运行之前是不存在的,所以无法直接使用TextBox1,而且是
//让计算机自己去找这个控件(这在前面讲过,把控件名字串,转换为控件名)
TextBoxppp=(TextBox)this.div12.FindControl("TextBox1yy");
stringp=ppp.Text.Trim();
Response.Redirect(Request.CurrentExecutionFilePath+"?
Page="+p);
}
protectedvoidButton1_Click(objectsender,EventArgse)
{
stringbh=TextBox1.Text.Trim();
stringxm=TextBox2.Text.Trim();
stringsql="select编号,姓名,年份,月份,实际工资,基本工资,加班补助,考勤扣除,扣税from工资表where编号='"+bh+"'or姓名='"+xm+"'";
DataTablemytb=newClass1().getds(sql);
Repeater1.DataSource=mytb;
Repeater1.DataBind();
}
protectedvoidButton2_Click(objectsender,EventArgse)
{
Response.Redirect("zhujiemian.aspx");
}
3.4管理员界面设计
通过登录页面进入管理员界面,其中有三个label和一个iframe1。
点击label,所有内容都显示在iframe1里。
通过登陆界面传过来的session,管理员可以查看员工工资信息和资料信息,也可以修改员工信息,删除和添加员工。
图3.5管理员主界面
删除用户代码:
protectedvoidPage_Load(objectsender,EventArgse)
{
stringsql="select编号,姓名,年份,月份,实际工资,基本工资,加班补助,考勤扣除,扣税from工资表";
DataTablemytb=newClass1().getds(sql);//把数据从sql读入mytb中
Repeater1.DataSource=mytb;//把mytb行书的数据赋给repearter
Repeater1.DataBind();
tt(sql);//调用tt函数
}
protectedvoidLinkButtonDel_Click(objectsender,EventArgse)
{
stringdeleteth=((LinkButton)sender).CommandArgument.ToString();//取出要删除的编号
Session["编号"]=deleteth;
Response.Write("");
stringsql="deletefrom工资表where编号='"+deleteth+"'";//从工资表删除选中的工人
stringsql1="deletefrom员工表where编号='"+deleteth+"'";//删除该工人的基本信息
newClass1().noquery(sql1);
newClass1().noquery(sql);
}
图3.6管理员修改员工工资界面
修改员工工资代码:
protectedvoidPage_Load(objectsender,EventArgse)
{
if(!
IsPostBack)
{
stringth=Session["编号"].ToString();
stringsql="select*from工资表where编号='"+th+"'";
DataTabletb=newClass1().getds(sql);
TextBox1.Text=tb.Rows[0]["编号"].ToString();
TextBox2.Text=tb.Rows[0]["姓名"].ToString();
TextBox3.Text=tb.Rows[0]["实际工资"].ToString();
TextBox4.Text=tb.Rows[0]["基本工资"].ToString();
TextBox5.Text=tb.Rows[0]["加班补助"].ToString();
TextBox6.Text=tb.Rows[0]["考勤扣除"].ToString();
TextBox7.Text=tb.