课程设计报告课程设计名称工资管理信息系统设计与开发专业物流工程班级2班学号09090230姓名指导教师成绩2012年02月20日目录目录 (2)第一章可行性分析 (1)1.1开发环境与开发工具 (1)1.2可行性报告 (1)1.2.1 开发必要性 (1)1.2.2技术可行性 (1)1.2.3 经济可行性 (2)第二章系统分析 (3)2.1需求分析 (3)2.1.1 系统背景介绍 (3)1.1.2系统介绍 (3)2.2业务流程分析 (3)2.3数据流程分析 (4)第三章系统设计及实施 (7)3.1系统总体结构设计 (7)3.2代码设计 (7)3.3数据结构设计 (8)3.3.1 建立关系数据库表(数据库逻辑结构设计) (8)3.3.2 建立数据字典 (10)3.4系统实现 (12)第四章设计总结 (23)4.1工作总结 (23)4.2设计展望 (23)致谢 (24)参考文献 (24)第一章可行性分析1.1 开发环境与开发工具开发环境:WINDOWS XP作为当今的主流平台之一,WINDOWS 系列系统可以说是构建了微软公司的辉煌,拥有极为广泛的用户,而WINDOWS XP更是作为开发人员首选的操作平台之一,是当今兼容软件最多的系统。
作为系统本身,也拥有操作简便,反应速度快,占用内存低,对电脑配置要求低等特点。
故从各方面考虑,WINDOWS XP系统为我们首选的开发环境。
开发工具:SQL server 2000 +Delphi 7.0SQL是高级的非过程化编程语言,是沟通数据库服务器和客户端的重要工具,允许用户在高层数据结构上工作。
它以记录集合作为操作对象,所有SQL语句接受集合作为输入,返回集合作为输出, SQL语句可以嵌套,具有极大的灵活性和强大的功能,开发者用SQL语言可以写出非常复杂的语句。
且SQL同样属于微软公司开发设计,与本次开发所使用的WINDOWS XP环境用更好的兼容性。
Delphi是Windows平台下著名的快速应用程序开发工具(Rapid Application Development,简称RAD)。
Delphi是一个集成开发环境(IDE),使用的核心是由传统Pascal语言发展而来的Object Pascal,以图形用户界面为开发环境,透过IDE、VCL 工具与编译器,配合连结数据库的功能,构成一个以面向对象程序设计为中心的应用程序开发工具。
1.2 可行性报告1.2.1 开发必要性随着计算机技术的飞速发展,计算机在企业和大学管理中应用的普及,利用计算机实现人事工资的管理势在必行。
利用计算机支持企业高效率完成劳动人事管理的日常事务,是适应现代企业制度要求、推动企业和大学劳动人事管理走向科学化、规范化的必要条件。
工资管理是任何企业单位都需要进行的一项工作,因此,开发制作工资管理系统具有较大的社会现实意义。
而工资管理是一项琐碎、复杂而又十分细致的工作,工资计算、发放、核算的工作量很大,一般不允许出错,实行电子化的工资管理,可以让人力资源管理人员从繁重琐碎的案头工作解脱出来,去完成更重要的工作。
职工工资管理信息系统的实现可以减轻比较繁琐的手工工资管理更加针对性、便捷性、可视化的管理职工工资。
而企业单位在使用本系统以后,能够简单的处理职工工资的计算发放,职工能明了的进行工资信息的查询。
1.2.2技术可行性技术上的可行性分析主要分析现有技术条件能否顺利完成开发工作,软硬件配置能否满足开发者需要等。
本系统开发采用的是微软公司自开发的SQL server 2000与Delphi 7.0等软件进行开发,功能清晰,操作方便。
非常适合在装载有WINDOWS XP环境的计算机上操作,能有效的发挥出计算机的数据处理能力,拥有开发处理快的优势,同时系统本身简单实用。
非常适合进行短期开发。
加之当下对企业工资管理系统这一类的企业财务系统进行开发已有一定的时期,有很多成功的实例,可以借鉴参考,所以技术开发上不存在问题。
1.2.3 经济可行性系统开发方面,由于企业工资管理系统是一个比较小型的企业财务管理系统,由我个人进行单独开发。
所以从人力、物力、财力方面来说都是可行的。
系统使用与维护方面,由于本系统占用资源小,操作简单功能明了,员工使用培训极为容易,同时系统简单,维护方便,不但能大大减少重复性的书面报告,降低办公费用,提高办公室效率,而且能提高检测数据效用,为企业操作提供了很大的方便。
通过以上分析,该系统开发可行。
第二章系统分析2.1 需求分析2.1.1 系统背景介绍工资管理是公司管理的一个重要内容。
随着企业人员数量增加,企业的工资管理工作也变得越来越复杂。
工资管理既涉及到企业劳动人事的管理,同时也是企业财务管理的重要组成部分。
工资管理需要和人事管理相联系,同时连接工时考勤和医疗保险等等,来生成企业每个职工的基本工资、津贴、医疗保险、保险费、实际发放工资等。
资金是企业生存的主要元素,资金的流动影响到企业的整体运作,企业员工的工资是企业资金管理的一个重要的组成部分。
早期的工资统计和发放都是使用人工方式处理纸质材料,不仅花费财务人员大量的时间且不易保存,往往由于个人的因素抄写不慎或计算疏忽,出现工资发放错误的现象。
基于以上原因,企业工资管理系统使用电脑安全保存、快速计算、全面统计,实现工资管理的系统化、规范化、自动化。
1.1.2系统介绍工资管理系统是典型的信息管理系统(MIS),对企业加强工资管理有着极其重要的作用,就一般的大型企业来说,它的设计内容非常复杂而且繁多,比如拥有工资计算功能,工资统计功能,报表输出功能,而且设计的模块也很多,比如工资管理模块,工资统计模块,报表设计模块,打印输出模块,模糊查询模块等等。
本系统前台程序开发工具采用Delphi,后台数据库采用SQL Server数据库。
Delphi 是一种面向对象的开发工具,具有组件丰富、语言简单、功能强大的优点。
SQL Server 数据库具有与Delphi无缝连接、操作简单、易于使用的优点。
运行结果证明,本企业工资管理系统极大提高了工作效率,节省了人力和物力,最终满足企业财务管理、员工工资发放的需要,同时也成为现代化企业管理的标志。
2.2 业务流程分析业务流程简介:各部门将考勤表整理汇总,处理员工的各项工资项目数据,计算出加班工资。
同时,人事部查询档案,得出基本月工资,基本福利,奖惩金额,最后汇总出总工资表,交由财务处发放工资。
业务流程图:图2-2-12.3 数据流程分析数据流程图:第一层数据流程图:图2-2-2第二层数据流程图:图2-2-3第三层数据流程图:图2-2-4第三章系统设计及实施3.1 系统总体结构设计本系统由职工信息管理、工资管理、系统维护、用户管理四大块组成。
职工信息管理为对职工信息管理。
负责对职工的工资信息录入增删修改工资管理分为工资项目设置、工资计算公式设置、工资录入及计算、工资查询。
工资项目设置是输入当月工资的计算选项。
工资录入及计算是输入当月各单项工资并按照计算公式进行计算。
而工资查询则是对当月的工资进行查询,系统维护分为数据备份、数据恢复、用户权限设置。
数据备份为备份当前的数据库,数据恢复为恢复上次备份的数据库。
用户权限为管理员用户对普通用户的操作权限进行设置。
用户管理则分为管理员登陆和普通用户登录,以及密码修改。
管理员用户可以对整个系统进行操作,而普通用户的操作权限由管理员用户进行设置。
图2-2-53.2 代码设计对员工的编号设计如下所示,员工编号由四位数字构成,编号前两位表示部门编号,后两位表示职工在部门内编号,两部分一起构成员工个人独一无二的编号。
方便对员工信息的输入、存储、处理和提取。
部门代码例:00经理室,01行政部,02人事部,03财务部,04业务部 员工编号例如:总经理 00001, 副总经理00002,人事部部长01001,人事部员工01003 3.3 数据结构设计3.3.1 建立关系数据库表(数据库逻辑结构设计)该软件的数据库由下述四张数据表组成: 员工信息表:YGXX.DBF 公司部门表:GSBM.DBF 基本工资表:JBGZ.DBF 基础福利表:JCFL.DBF 考勤表:KQ.DBF 工资汇总表:GZHZB.DBF 登录表:DL.DBF表3-1-1 员工信息表:YGXX.DBF表3-1-3基础工资表:JCGZ..DBF表3-1-4基础福利表:JCFL.DBF表3-1-5表3.3.2 建立数据字典表表3-2-2数据流表表3-2-4外部实体3.4 系统实现登陆:图3-4-1具体代码如下:procedure TForm1.Button1Click(Sender: TObject);varsqls, username, password:string;beginusername:=Edit1.Text;password:=Edit2.Text;sqls:='SELECT * FROM DL WHERE username = '''+ username +''' and password = '''+password+'''';With ADOQuery1 dobeginSQL.Clear;SQL.Add(sqls);ExecSQL;open;if Recordset.RecordCount<>0 thenbeginform2.ShowModal;endelsebeginshowmessage('用户名或密码错误!请重新输入!'); edit1.SetFocus;end;end;end;procedure TForm1.Button2Click(Sender: TObject);beginform1.Close;end;end.Mainmenu:图3-4-2职工信息添加:图3-4-3具体代码如下:procedure TForm3.Button1Click(Sender: TObject);varsqls:string;YGBH,YGXM,YGXB,YGNL,YGJG,YGSFZH,YGSSBM,YGXL,GWMC,YGGL,GZDJ:string;beginYGBH:=Edit1.Text;YGXM:=Edit2.Text;YGXB:=Edit3.Text;YGNL:=Edit4.Text;YGJG:=Edit5.Text;YGSFZH:=Edit6.Text;YGSSBM:=Edit7.Text;YGXL:=Edit8.Text;GWMC:=Edit9.Text;YGGL:=Edit10.Text;GZDJ:=Edit11.Text;sqls:='INSERT INTO YGXXB(YGBH,YGXM,YGXB,YGNL,YGJG,YGSFZH,YGSSBM,YGXL,GWMC,YGGL,GZDJ)VALUES('''+YGBH+''','''+YGXM+''','''+YGXB+''','''+YGNL+''','''+YGJG+''',''' +YGSFZH+''','''+YGSSBM+''','''+YGXL+''','''+GWMC+''','''+YGGL+''','''+GZDJ+ ''')';With ADOQuery1 dobeginSQL.Clear;SQL.Add(sqls);ExecSQL;//open;//if Recordset.RecordCount<>0 then//begin// DBGrid1.ShowModal;//end// else//begin//showmessage('输入信息错误!请重新输入!');//edit1.SetFocus;// end;end;beginshowmessage('添加成功!');exit;end;end;procedure TForm3.Button2Click(Sender: TObject);beginform3.close;form2.show;end;end.职工信息修改:图3-4-4具体代码如下:procedure TForm8.BitBtn1Click(Sender: TObject);beginif DataSource1.DataSet.State in [dsEdit,dsInsert] then DataSource1.DataSet.Postend;procedure TForm8.BitBtn2Click(Sender: TObject); beginform8.close;end;end.职工信息删除:图3-4-5 procedure TForm7.Button1Click(Sender: TObject);varsqls,YGBH:string;beginYGBH:=Edit1.Text;sqls:='DELETE FROM YGXXB WHERE YGBH='''+YGBH+''''; With ADOQuery1 dobeginSQL.Clear;SQL.Add(sqls);ExecSQL;//open;//if Recordset.RecordCount<>0 then//begin// DBGrid1.ShowModal;//end// else//begin//showmessage('输入信息错误!请重新输入!');//edit1.SetFocus;// end;end;beginif DataSource1.DataSet.State in [dsEdit,dsInsert] then DataSource1.DataSet.Postend;end;procedure TForm7.Button2Click(Sender: TObject);beginform7.close;form2.show;end;end.工资录入及计算:图3-4-6具体代码如下:procedure TForm9.Button1Click(Sender: TObject);varsqls:string;YGBH,GZDJ,JCGZ,JCFL,JBGZ,JJ,FK,ZGZ:string;beginYGBH:=Edit1.Text;GZDJ:=Edit2.Text;JCGZ:=Edit3.Text;JCFL:=Edit4.Text;JBGZ:=Edit5.Text;JJ:=Edit6.Text;FK:=Edit7.Text;ZGZ:=Edit8.Text;sqls:='INSERT INTO GZHZ(YGBH,GZDJ,JCGZ,JCFL,JBGZ,JJ,FK,ZGZ)VALUES('''+YGBH+''','''+GZDJ+''','''+JCGZ+''','''+JCFL+''','''+JBGZ+''',''' +JJ+''','''+FK+''','''+ZGZ+''')';With ADOQuery1 dobeginSQL.Clear;SQL.Add(sqls);ExecSQL;//open;//if Recordset.RecordCount<>0 then//begin// DBGrid1.ShowModal;//end// else//begin//showmessage('输入信息错误!请重新输入!');//edit1.SetFocus;// end;end;beginshowmessage('添加成功!');exit;end;end;procedure TForm9.Button4Click(Sender: TObject);beginif DataSource1.DataSet.State in [dsEdit,dsInsert] then DataSource1.DataSet.Postend;procedure TForm9.Button2Click(Sender: TObject);beginform9.close;end;procedure TForm9.Button3Click(Sender: TObject);beginform9.adotable1.close();form9.adotable1.open();end;procedure TForm9.FormCreate(Sender: TObject);beginDBgrid1.columns.Items[0].Title.caption:='员工编号';DBgrid1.columns.Items[1].Title.caption:='员工姓名';DBgrid1.columns.Items[2].Title.caption:='工资等级';DBgrid1.columns.Items[3].Title.caption:='基础工资';DBgrid1.columns.Items[4].Title.caption:='基础福利';DBgrid1.columns.Items[5].Title.caption:='加班工资';DBgrid1.columns.Items[6].Title.caption:='奖金';DBgrid1.columns.Items[7].Title.caption:='罚款';DBgrid1.columns.Items[8].Title.caption:='总工资';end;end;procedure TForm9.Edit8Change(Sender: TObject);beginedit8=edit+edit2+edit3+edit4+edit5+edit6+edit7;end;end.工资查询:图3-4-7具体代码如下:procedure TForm4.Button1Click(Sender: TObject);varsqls,maccount:string;i,j:integer;beginmaccount:=Edit1.Text;sqls:='SELECT * FROM GZHZ WHERE 员工编号 = '''+maccount+''''; With ADOQuery1 dobeginSQL.Clear;SQL.Add(sqls);ExecSQL;open;if Recordset.RecordCount<>0 thenbegin//Edit2.Text:=fieldbyname('Product_no').AsString;for i := 0 to Recordset.Fields.Count-1 dobeginfor j:=0 to Recordset.RecordCount-1 dobeginstringGrid1.Cells[i+1,0]:=Recordset.Fields[i].Name;stringGrid1.Cells[0,j+1]:=inttostr(j+1);stringGrid1.Cells[i+1,j+1]:=ADOQuery1.Fields[i].AsString;end;end;//DBGrid1.DataSource.DataSet.Locate('m_account',Edit1.Text,[]);//DBGrid跟随edit1的内容浏览数据endelsebeginshowmessage('对不起,没有该用户!请重新输入!');edit1.SetFocus;end;end;end;procedure TForm4.Button2Click(Sender: TObject);beginform4.close;form2.show;end;end.修改密码:图3-4-7具体代码如下:procedure TForm6.Button1Click(Sender: TObject);beginif DataSource1.DataSet.State in [dsEdit,dsInsert] then DataSource1.DataSet.Postend;procedure TForm6.Button2Click(Sender: TObject);beginform6.close;end;end.about:图3-4-8第四章设计总结4.1 工作总结工资管理系统是一个典型的信息管理系统,其主要通过选择课题、需求分析、总体设计、选用工具、程序模块、系统测试等几个步骤来实现。