




已阅读5页,还剩41页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
信息与计算机科学专业综合实训 任 务 书学院名称: 理学院 课程代码:_ 106087719 _专业: 信息与计算机科学专业 年 级: 2013 一、实训题目汽车厂工资管理系统二、主要内容企业或者单位对其员工的工资进行详细的管理,对员工工资的调整情况进行详细记录,应实现以下功能:(1).员工录入:将员工的资料以及其对应的工资信息录入数据库中。(2).查询功能:实现按员工的编号、名字等指标进行工资情况的查询。(3).修改功能:当某个或者某些员工工资调整时,能对其进行修改。(4).删除功能:对调离的员工及其工资资料进行删除三、具体要求及提交的材料程序必须上机调试通过,并写出设计的报告。设计报告格式:1、设计目的 2、总体设计(程序设计组成框图、流程图)3、数据库设计 4、详细设计 5、调试与测试:调试方法,测试结果的分析与讨论,测试过程中遇到的主要问题及采取的解决措施 6、核心部分的源程序清单和执行结果(清单中应有足够的注释)设计报告纸质文档和电子文档各一份,调试通过后的软件一套。(严禁抄袭和代做,一经发现,重修论处)四、主要技术路线提示系统地设计出数据库,建立表间联系;Web技术的基本使用;使用任意一计算机语言,任意一种数据库;五、进度安排1、 需求分析和概要设计, 数据库设计,1周之内完成(指导教师检查);2、 系统详细设计分析,编程、调试和分析程序,2周之内完成(指导老师检查);3、 程序答辩、说明书撰写,1周左右完成(学生必须当面答辩通过)。 指导教师 签名日期 年 月 日目 录1 需求分析11.1系统概述11.2 功能需求分析11.3运行环境21.4测试数据22 概要设计42.1 设计思路42.2 模块功能介绍52.2.1登录功能52.2.2输入功能52.2.3数据查询功能52.2.4数据删除,修改功能52.3模块结构62.4 流程图62.5 功能设计分工63详细设计83.1主界面设计83.2 登录页面设计93.3员工页面设计113.4管理员界面设计154 调试分析274.1 员工调试284.2管理员调试28学习的心得与体会31致 谢32参考文献33附录34引 言员工管理系统是一个企事业单位不可缺少的部分,它的内容对于企事业单位的决策者和管理者来说都至关重要,所以员工管理系统应该能够为用户提供充足的信息和快捷的查询手段。但一直以来人们使用传统人工的方式管理文件信息,这种管理方式存在着许多缺点,如:效率低、保密性差,另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。 随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。1 需求分析 企业或者单位对其员工的工资进行详细的管理,对员工工资的调整情况进行详细记录,应实现以下功能:(1).员工录入:将员工的资料以及其对应的工资信息录入数据库中。(2).查询功能:实现按员工的编号、名字等指标进行工资情况的查询。(3).修改功能:当某个或者某些员工工资调整时,能对其进行修改。(4).删除功能:对调离的员工及其工资资料进行删除。1.1系统概述本系统主要有四个界面:主界面,登陆界面,员工界面,管理员界面。在主界面可以直接进入查看员工的工资信息,若是要使用管理员功能,就必须要通过登陆才行,登陆后,可以删除、修改和添加员工的信息。1.2 功能需求分析1.2.1.主界面模块管理员登录,员工进入。1.2.2.登陆模块账号,口令。1.2.3.员工模块 查看员工的工资信息。1.2.4.管理员模块删除、修改、添加员工的工资信息和基本信息。1.3运行环境SQL Server 2008 R2,visual studio 20101.4测试数据 员工调试查看员工信息: 图1.1查看员工信息管理员调试管理员查看员工工资情况:图1.2 查询员工工资情况管理员查看员工基本信息情况: 图1.3 查看员工基本信息管理员删除员工信息: 图1.4 删除员工管理员修改员工工资信息: 图1.5 修改员工工资信息管理员删除员工信息:图1.6 删除员工信息管理员添加员工:图1.7 添加员工2 概要设计2.1 设计思路 本文针对汽车厂工资管理,建立了对员工查看工资信息和管理员管理员工信息的基本管理的解决方案,系统基于B/S模式,采用visual studio 2010,SQL server 2008 R2作为主要开发的工具,使用c#.net对SQL Server数据库的基本操作。本系统主要是由两个部分组成:员工部分,管理员部分。系统分别对员工,管理员不同的操作特点,做出需求分析,而且根据各个操作功能的实现,完成了三大部分的模块的划分,设计出数据库。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 工资表:包含员工工资的基本情况。 3 admin表:包含管理员的基本信息。B)数据表 表1. 员工表(描述:其中包含一些员工信息的基本情况)字段名数据类型长度是否允许空默认值备注(主外键、字段说明、值域)编号nchar12否无主键姓名nvarchar5否无性别nchar1是男出生年月nchar10否无学历nvarchar5否无毕业院校nvarchar10否无职称nvarchar8是无电话nchar11是无长度为11的数字备基本信息注nvarchar200是无表2:资料表(描述:包含员工工资的基本情况)字段名数据类型长度是否允许空默认值备注(主外键、字段说明、值域)编号nchar12否无主键姓名nvarchar5否无年份nchar4否2017月份nchar2否6实际工资nchar5否无基本工资nchar5否无加班补助nchar5是无考勤扣除nchar5是无扣税nchar5是无工资信息备注nvarchar200否否表3.admin表(描述:包含管理员的基本情况)字段名数据类型长度是否允许空默认值备注(主外键、字段说明、值域)账号nvarchar10否无主键口令nchar10否无3详细设计3.1主界面设计系统设置主界面为起始页面,其中包括三个div,第一个div是设置屏幕大小和位置,第二个div是插入背景图和标题,第三个div包含两个按钮button1和button2。用户点击管理员登录,就会进入登录页面,如点击员工进入,就会直接进入员工页面。图3.1 主界面主要代码:protected void Page_Load(object sender, EventArgs e) protected void Button1_Click(object sender, EventArgs e) Response.Redirect(web.aspx); protected void Button2_Click(object sender, EventArgs e) Response.Redirect(yuangong.aspx);3.2 登录页面设计图3.2 登录界面进入登录页面,其中有四个div,第一个div是设置屏幕大小和位置,第二个div是插入背景图和标题,第四个div包含两个TextBox1和TextBox2,两个按钮button1和button2。用户登陆时,在文本框中t1中输入账号,在t2中输入口令,点击登录,若数据库中存在,则进入下一个页面。如果输入出错会有信息提示。当用户输错时,可以重置,就会清空文本框中的信息。 图3.3 出错界面主要代码:protected void Page_Load(object sender, EventArgs e) protected void Button1_Click(object sender, EventArgs e) string zh = TextBox1.Text.Trim(); string kl = TextBox2.Text.Trim(); string sql = select * from admin表 where 账号= + zh + ; SqlDataReader myrd = new Class1().datareader(sql); /下面根据myrd中的查询数据来判断登陆情况 if (myrd.Read() /取得一行,表示用户名存在的 if (myrd1.ToString().Trim() = kl) /表示登陆成功 /先取出成功登陆用户的权限,以备下级程序中使用 Session账号 = myrd0.ToString().Trim(); Session口令 = myrd1.ToString().Trim(); Response.Redirect(bbs.aspx); else /用户名存在,但密码错误 TextBox2.Text = 口令错误; else /表示上面的myrd读出的空值无数据 TextBox1.Text = 账号不存在; 3.3员工页面设计由主界面进入员工界面,其中有两个按钮和两个文本框,在文本框中输入想要查找的员工编号或姓名,点击第一个按钮,便可查找出来。图3.4 员工界面主要代码: protected void Page_Load(object sender, EventArgs e) string sql = select 编号,姓名,年份,月份,实际工资,基本工资,加班补助,考勤扣除,扣税 from 工资表; DataTable mytb = new Class1().getds(sql);/把数据从sql读入mytb中 Repeater1.DataSource = mytb;/把mytb行书的数据赋给repearter Repeater1.DataBind(); tt(sql);/调用tt函数 protected void tt(string sql) /使用本模块说明: /(1)在前面html代码中定义一个repeater,其中id=repeater1; 再定义一个div,其 id=div11 /(2)调用本tt方法时传进来一个sql命令字符串即可,其它不需要修改什么了 string sql2 = select 编号,姓名,年份,月份,实际工资,基本工资,加班补助,考勤扣除,扣税 from 工资表; DataTable mytb = new Class1().getds(sql2); /自动生成页码控制控件,这样方便以后广泛应用(只需要在前台html代码建立一个div(id=div11)就可以了,把这些控件加去 Label Label1yy = new Label(); Label Label2yy = new Label(); HyperLink firtp = new HyperLink(); firtp.Text = 首页; HyperLink prep = new HyperLink(); prep.Text = 上一页; HyperLink nextp = new HyperLink(); nextp.Text = 下一页; HyperLink lastp = new HyperLink(); lastp.Text = 尾页; TextBox TextBox1yy = new TextBox(); TextBox1yy.ID = TextBox1yy; /要想在一下步继续编程使用这个控件,要用findcontrol方法查找本控件,必须指定ID TextBox1yy.Width = 30; TextBox1yy.Attributes.Add(runat, server);/这个可要可不要,默认应该是runat=server的 Button Button1yy = new Button(); Button1yy.Click += new System.EventHandler(Button1yy_Click);/要想控件响应事件编程,必须要这句,否则以后它无法响应事件 Button1yy.Text = GO; /每个项之间加个分隔符号| Label pp = new Label7; for (int i = 0; i 7; i+) Label pt = new Label(); pt.Text = | ; ppi = pt; div12.Controls.Add(Label1yy); div12.Controls.Add(pp0); div12.Controls.Add(Label2yy); div12.Controls.Add(pp1); div12.Controls.Add(firtp); div12.Controls.Add(pp2); div12.Controls.Add(prep); div12.Controls.Add(pp3); div12.Controls.Add(nextp); div12.Controls.Add(pp4); div12.Controls.Add(lastp); div12.Controls.Add(pp5); div12.Controls.Add(TextBox1yy); div12.Controls.Add(Button1yy); /生成结束.以上生成的控件也要以放在panel中,一样的效果 PagedDataSource pds = new PagedDataSource(); pds.DataSource = mytb.DefaultView; / 把mytab转换为要直接显示的数据视图 pds.AllowPaging = true; pds.PageSize = 3; int totalp = (mytb.Rows.Count + pds.PageSize - 1) / pds.PageSize; Label1yy.Text = 总页数为: + Convert.ToString(totalp); int curpage; /表示当前页 if (Request.QueryStringPage != null) curpage = Convert.ToInt32(Request.QueryStringPage); 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();/让它显示当前页,直观些 protected void Button1yy_Click(object sender, EventArgs e) /注意,动态生成的控件,在运行之前是不存在的,所以无法直接使用TextBox1,而且是 /让计算机自己去找这个控件(这在前面讲过,把控件名字串,转换为控件名) TextBox ppp = (TextBox)this.div12.FindControl(TextBox1yy); string p = ppp.Text.Trim(); Response.Redirect(Request.CurrentExecutionFilePath + ?Page= + p); protected void Button1_Click(object sender, EventArgs e) string bh = TextBox1.Text.Trim(); string xm = TextBox2.Text.Trim(); string sql = select 编号,姓名,年份,月份,实际工资,基本工资,加班补助,考勤扣除,扣税 from 工资表 where 编号 = + bh + or 姓名 = + xm + ; DataTable mytb = new Class1().getds(sql); Repeater1.DataSource = mytb; Repeater1.DataBind(); protected void Button2_Click(object sender, EventArgs e) Response.Redirect(zhujiemian.aspx);3.4管理员界面设计通过登录页面进入管理员界面,其中有三个label和一个iframe1。点击label,所有内容都显示在iframe1里。通过登陆界面传过来的session,管理员可以查看员工工资信息和资料信息,也可以修改员工信息,删除和添加员工。图3.5 管理员主界面 删除用户代码: protected void Page_Load(object sender, EventArgs e) string sql = select 编号,姓名,年份,月份,实际工资,基本工资,加班补助,考勤扣除,扣税 from 工资表; DataTable mytb = new Class1().getds(sql);/把数据从sql读入mytb中 Repeater1.DataSource = mytb;/把mytb行书的数据赋给repearter Repeater1.DataBind(); tt(sql);/调用tt函数 protected void LinkButtonDel_Click(object sender, EventArgs e) string deleteth = (LinkButton)sender).CommandArgument.ToString();/取出要删除的编号 Session编号 = deleteth; Response.Write(confirm(是否确定删除); string sql = delete from 工资表 where 编号 = + deleteth + ;/从工资表删除选中的工人 string sql1 = delete from 员工表 where 编号 = + deleteth + ;/删除该工人的基本信息 new Class1().noquery(sql1); new Class1().noquery(sql); 图3.6 管理员修改员工工资界面修改员工工资代码:protected void Page_Load(object sender, EventArgs e) if (!IsPostBack) string th = Session编号.ToString(); string sql = select * from 工资表 where 编号 = + th + ; DataTable tb = new Class1().getds(sql); TextBox1.Text = tb.Rows0编号.ToString(); TextBox2.Text = tb.Rows0姓名.ToString(); TextBox3.Text = tb.Rows0实际工资.ToString(); TextBox4.Text = tb.Rows0基本工资.ToString(); TextBox5.Text = tb.Rows0加班补助.ToString(); TextBox6.Text = tb.Rows0考勤扣除.ToString(); TextBox7.Text = tb.Rows0扣税.ToString(); TextBox8.Text = tb.Rows0工资信息备注.ToString(); protected void Button1_Click(object sender, EventArgs e) /string rq = TextBox3.Text.Trim(); string xl = TextBox4.Text.Trim(); string byyx = TextBox5.Text.Trim(); string zc = TextBox6.Text.Trim(); string dh = TextBox7.Text.Trim(); string bz = TextBox8.Text.Trim(); string sql1 = update 工资表 set 基本工资= + xl + ,加班补助= + byyx + ,考勤扣除= + zc + ,扣税= + dh + ,工资信息备注= + bz + where 编号= + TextBox1.Text.Trim() + ;/更新员工信息 string sql2 = update 工资表 set 实际工资=基本工资+加班补助-考勤扣除-扣税; new Class1().noquery(sql1); new Class1().noquery(sql2); Response.Write(alert(修改成功!); protected void Button2_Click(object sender, EventArgs e) Response.Redirect(gongzi.aspx); 图3.7 员工基本信息界面主要代码:protected void Page_Load(object sender, EventArgs e) string sql = select 编号,姓名,性别,出生日期,毕业院校,职称,电话,基本信息备注 from 员工表; DataTable mytb = new Class1().getds(sql);/把数据从sql读入mytb中 /string yxrs = mytb.Rows0已选人数.ToString();/取出0行的已选人数 Repeater1.DataSource = mytb;/把mytb行书的数据赋给repearter Repeater1.DataBind(); tt(sql);/调用tt函数 protected void tt(string sql) /使用本模块说明: /(1)在前面html代码中定义一个repeater,其中id=repeater1; 再定义一个div,其 id=div11 /(2)调用本tt方法时传进来一个sql命令字符串即可,其它不需要修改什么了 string sql2 = select 编号,姓名,性别,出生日期,毕业院校,职称,电话,基本信息备注 from 员工表; DataTable mytb = new Class1().getds(sql2); /自动生成页码控制控件,这样方便以后广泛应用(只需要在前台html代码建立一个div(id=div11)就可以了,把这些控件加去 Label Label1yy = new Label(); Label Label2yy = new Label(); HyperLink firtp = new HyperLink(); firtp.Text = 首页; HyperLink prep = new HyperLink(); prep.Text = 上一页; HyperLink nextp = new HyperLink(); nextp.Text = 下一页; HyperLink lastp = new HyperLink(); lastp.Text = 尾页; TextBox TextBox1yy = new TextBox(); TextBox1yy.ID = TextBox1yy; /要想在一下步继续编程使用这个控件,要用findcontrol方法查找本控件,必须指定ID TextBox1yy.Width = 30; TextBox1yy.Attributes.Add(runat, server);/这个可要可不要,默认应该是runat=server的 Button Button1yy = new Button(); Button1yy.Click += new System.EventHandler(Button1yy_Click);/要想控件响应事件编程,必须要这句,否则以后它无法响应事件 Button1yy.Text = GO; /每个项之间加个分隔符号| Label pp = new Label7; for (int i = 0; i 7; i+) Label pt = new Label(); pt.Text = | ; ppi = pt; div12.Controls.Add(Label1yy); div12.Controls.Add(pp0); div12.Controls.Add(Label2yy); div12.Controls.Add(pp1); div12.Controls.Add(firtp); div12.Controls.Add(pp2); div12.Controls.Add(prep); div12.Controls.Add(pp3); div12.Controls.Add(nextp); div12.Controls.Add(pp4); div12.Controls.Add(lastp); div12.Controls.Add(pp5); div12.Controls.Add(TextBox1yy); div12.Controls.Add(Button1yy); /生成结束.以上生成的控件也要以放在panel中,一样的效果 PagedDataSource pds = new PagedDataSource(); pds.DataSource = mytb.DefaultView; / 把mytab转换为要直接显示的数据视图 pds.AllowPaging = true; pds.PageSize = 3; int totalp = (mytb.Rows.Count + pds.PageSize - 1) / pds.PageSize; Label1yy.Text = 总页数为: + Convert.ToString(totalp); int curpage; /表示当前页 if (Request.QueryStringPage != null) curpage = Convert.ToInt32(Request.QueryStringPage); 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();/让它显示当前页,直观些 protected void Button1yy_Click(object sender, EventArgs e) /注意,动态生成的控件,在运行之前是不存在的,所以无法直接使用TextBox1,而且是 /让计算机自己去找这个控件(这在前面讲过,把控件名字串,转换为控件名) TextBox ppp = (TextBox)this.div12.FindControl(TextBox1yy); string p = ppp.Text.Trim(); Response.Redirect(Request.CurrentExecutionFilePath + ?Page= + p); protected void LinkButtonDel_Click(object sender, EventArgs e) string deleteth = (LinkButton)sender).CommandArgument.ToString();/取出要删除的编号 Session编号 = deleteth; Response.Write(confirm(是否确定删除); string sql = delete from 工资表 where 编号 = + deleteth + ;/从工资表删除选中的工人 string sql1 = delete from 员工表 where 编号 = + deleteth + ;/删除该工人的基本信息 new Class1().noquery(sql1); new Class1().noquery(sql); protected void LinkButtonEdit_Click(object sender, EventArgs e) string deleteId = (LinkButton)sender).CommandArgument.ToString().ToString(); Session编号 = deleteId.ToString().Trim(); Response.Redirect(xiugai.aspx); protected void LinkButtonAdd_Click(object sender, EventArgs e) string deleteId = (LinkButton)sender).CommandArgument.ToString().ToString(); Session编号 = deleteId.ToString().Trim(); Response.Redirect(add.aspx); protected void Button1_Click(object sender, EventArgs e) string bh = TextBox1.Text.Trim(); string xm = TextBox2.Text.Trim(); string sql = select 编号,姓名,性别,出生日期,毕业院校,职称,电话,基本信息备注 from
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025版片石石材雕刻艺术创作合同协议书范本
- 2025年特种车辆租赁安全合同
- 2025版私人抵押车辆评估与交易合同样本
- 河北省霸州市2025年上半年公开招聘辅警试题含答案分析
- 2025年数字博物馆电脑室设备购置安装服务合同
- 2025年度汽车事故免责保障合同
- 海南省琼中黎族苗族自治县2025年上半年公开招聘村务工作者试题含答案分析
- 海南省临高县2025年上半年公开招聘城市协管员试题含答案分析
- 2025年度专利技术使用权转让合同
- 2025版网络安全人员劳务合同范本
- 2025年新闻记者资格证及新闻写作相关知识考试题库附含答案
- 2025年期权开户考试题库及答案(内附考试信息)
- 2025年山东省统一高考英语试卷(新高考Ⅰ)
- 2025四川成都农商银行招聘综合柜员岗4人模拟试卷带答案详解
- 年产8万吨DN900-DN1600mm球墨铸管项目可行性研究报告
- 2025年湖南省中考地理试题(解析版)
- 弱电工程维保合同
- 产后康复师培训课件
- 新加坡数学教学课件
- 宫颈癌术后的护理
- 数据中心设备进场计划及保证措施
评论
0/150
提交评论