欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOC文档下载  

    Delphi课程设计论文delphi人事管理系统课程设计.doc

    • 资源ID:2386486       资源大小:1.99MB        全文页数:19页
    • 资源格式: DOC        下载积分:8金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要8金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    Delphi课程设计论文delphi人事管理系统课程设计.doc

    目录一.需求分析31.1.系统性能要求31.2.系统运行环境31.3.系统功能分析31.4.数据库需求分析4二.概要设计42.1.模块说明图42.2.数据流程图52.3.程序中部分窗体的说明5三.详细设计63.1.登陆代码63.1.1登陆界面63.1.2代码73.2. 添加用户代码83.3. 密码修改代码93.4. 用户删除代码113.4.1.用户删除界面113.4.2.代码113.5. 添加员工代码123.5.1.添加员工界面123.5.2.代码133.6.人事变动代码153.6.1.人事变动界面153.6.2.代码153.7.员工修改代码163.7.1.员工修改界面163.7.2.代码17四.测试分析174.1.服务器端运行情况174.2.客户端运行情况18五.心得体会18六.参考文献19七.致谢19【摘 要】科技的飞速发展,将人类带入了信息时代, 计算机越来越贴近人的生活,速度成为人们成功的前提条件,以致于人们必须不断尝试着使用各种手段来提高自身的工作效率。在人事管理中如果仍使用手工操作,既浪费了人力,又浪费了物力,效率无法提高,为此开发人事管理系统软件,能够适应现今社会并提高生产效率。企业人事管理系统主要用于员工个人资料的录入、职务变动的记录和管理。使用人事管理系统,便于公司领导掌握人员的动向,及时调整人才的分配。本设计是采用多层分布式结构,随着网络技术的飞速发展,多层分布式数据库应用程序的开发成了数据库程序开发的主流之一。【关键词】服务器、客户端、分布式、图形界面、引用、数据库一.需求分析1.1.系统性能要求(1).用户操作直观,方便,界面友好。(2).系统使用功能齐全,可靠,稳定。(3).更快更稳定的执行速度完成要求;(4).便于维护与修改。1.2.系统运行环境硬件环境:(1).用486或更高级处理器(推荐使用INTEL Pentium 处理器),PowerPCMIPS/R4或Apple AXP 处理器系统;(2).16MB以上内存;(3).80MB以上硬盘空间.;(4).打印机;(5).Microsoft Mouse 或兼容设备;(6).显示器;(7)软驱、键盘;软件环境:(1)Window 98或更高版本;(2)Delphi 7.0 (3)Microsoft Excel97或Microsoft Excel2000;1.3.系统功能分析人事管理系统主要有以下几个方面的功能要求:(1)新员工资料的输入。(2)自动分配员工号。(3)人事变动的详细记录,包括岗位和部门的调整。(4)员工信息的查询和修改,包括员工的个人信息等。1.4.数据库需求分析员工信息:员工号、姓名、性别、生日、部门、职务、教育程序、专业、通讯地址、电话、其化。人事变动:记录号、员工号、变动信息、变动时间。用户信息:用户名、密码、权限。记数信息:记数种类、值。二.概要设计2.1.模块说明图人事管理系统用户的管理新员工档案输入人事变动修改员工信息查看员工信息报表的打印 图2.1程序模块图2.2.数据流程图人事科招聘新员工分配员工号岗位调整员工辞退员工信息数据人事变动记录人个信息 图2.2程序数据流程图2.3.程序中部分窗体的说明服务器端* 窗体名:KCSJ * 作用:存放各数据控件,建立与数据库之间的联系 * 使用控件:ADOConnection、ADOTable、ADOQuery、DataSetProvider * 包括方法、函数:Tkcsj.RemoteDataModuleCreate(Sender: TObject)*TForm1.FormCreate(Sender: TObject) 获得当前数据库的路径*客户端* 窗体名:Datamodule2 * 作用:存放各数据控件,与数据服务器之间的联系 * 使用控件:SocketConnection1、ClientDataset、DataSource * 类名:Login * 作用:用户登录窗体 * 使用控件:Button、Edit、Lable * 包括方法、函数:TLogin.Button1Click(Sender: TObject) 检测用户的有效性 * TLogin.Button2Click(Sender: TObject) 按取消按钮时退出程序 * 窗体名:Main1 * 作用:程序主窗体,提供各功能的菜单选择 *使用控件:MainMenu、ImageList、StatusBar、Toolbar * *包括方法、函数:各菜单和按钮的响应事件* 窗体名:User1 * 作用:对用户进行管理窗口 * 使用控件:PageControl、Lable、Button、Edit *Tuser1.Button1Click(Sender: TObject)用户的添加事件* Tuser1.Button3Click(Sender: TObject)用户密码修改事件* Tuser1.Button5Click(Sender: TObject)用户的查找事件* Tuser1.Button7Click(Sender: TObject)用户的删除事件*另外还有Addwork员工添加管理窗体、Chang人事变更管理窗体、modify_work员工信息修改管理窗体、Find_work员工信息查询窗体、report报表打印窗体这里不一一说明,请参看源程序三详细设计3.1.登陆代码3.1.1登陆界面3.1.2代码procedure TLogin.Button1Click(Sender: TObject);var s1:string; s3:string;begin if times<2 then begin DataModule2.Login1_Client.Close; Datamodule2.Login1_Client.CommandText:='select ID,AUTHORITY from Auser where ID=:a1 and ps=:a2'Datamodule2.Login1_Client.Params.ParamByName('a1').Value:=edit1.Text; Datamodule2.Login1_Client.Params.ParamByName('a2').Value:=edit2.TextDatamodule2.Login1_Client.Open; if not DataModule2.Login1_Client.Eof then begin s1:=Datamodule2.Login1_Client.FieldValues'AUTHORITY' s2:=Datamodule2.Login1_Client.Fieldvalues'ID' s3:='管理员' Main1.Show; Login.Hide; if s1='1' then begin s3:='普通用户' Main1.U1.Enabled:=false; Main1.C1.Enabled:=false; Main1.A1.Enabled:=false; Main1.M2.Enabled:=false; Main1.N4.Enabled:=false; Main1.ToolButton1.Enabled:=false; Main1.ToolButton3.Enabled:=false; Main1.ToolButton4.Enabled:=false; Main1.ToolButton5.Enabled:=false; end; Main1.StatusBar1.Panels0.Text:='当前用户是:'+s2; Main1.StatusBar1.Panels1.Text:='权限:'+s3; end else begin showmessage('用户名不正确或密码错误!'); times:=times+1; edit1.Clear; edit1.SetFocus; edit2.Clear end; end else begin showmessage('退出程序!'); close; end;end;3.2. 添加用户代码procedure Tuser1.Button1Click(Sender: TObject);begindatamodule2.Login1_Client.Active:=false;datamodule2.Login1_Cmandtext:='' if edit2.Text=edit3.Text then begin datamodule2.Login1_Cmandtext:='select * from Auser where ID=:u1' datamodule2.Login1_Client.Params.ParamByName('u1').Value:=edit1.Text; datamodule2.Login1_Client.Open; if datamodule2.Login1_Client.Eof then begin datamodule2.Login1_Client.Last; datamodule2.Login1_Cmandtext:='' datamodule2.Login1_Cmandtext:='insert into Auser values(:u2,:p2,:au)' datamodule2.Login1_Client.Params.ParamByName('u2').Value:=edit1.Text; datamodule2.Login1_Client.Params.ParamByName('p2').Value:=edit2.Text; datamodule2.Login1_Client.Params.ParamByName('au').Value:=inttostr(RadioGroup1.ItemIndex); datamodule2.Login1_Client.Execute; showmessage('添加成功!'); edit1.Clear; edit2.Clear; edit3.Clear; edit1.SetFocus; end else begin showmessage('此用户存在,请重新输入用户名!'); edit1.Clear; edit1.SetFocus; end; end else begin showmessage('请输入相同的密码!'); edit1.Clear; edit2.Clear; edit3.Clear; edit1.SetFocus; end;end;3.3. 密码修改代码procedure Tuser1.Button3Click(Sender: TObject);begindatamodule2.Login1_Client.Active:=false;datamodule2.Login1_Client.CommandText:=''datamodule2.Login1_Client.CommandText:='select * from Auser where ID=:u1 and ps=:P1'datamodule2.Login1_Client.Params.ParamByName('u1').Value:=edit4.Text;datamodule2.Login1_Client.Params.ParamByName('P1').Value:=edit5.Text;datamodule2.Login1_Client.Open; if datamodule2.Login1_Client.Eof then begin showmessage('输入的用户名或密码不正确!'); edit4.Clear; edit5.Clear; edit6.Clear; edit7.Clear; edit4.SetFocus; end else begin if edit6.Text=edit7.Text then begin datamodule2.Login1_Client.Active:=false; datamodule2.Login1_Client.CommandText:='' datamodule2.Login1_Client.CommandText:='update Auser set ps = '''+edit6.Text+''' where id='''+edit4.text+'''' datamodule2.Login1_Client.Execute; showmessage('修改成功!'); edit4.Clear; edit5.Clear; edit6.Clear; edit7.Clear; edit4.SetFocus; end else begin showmessage('密码不一致!'); edit7.Clear; edit4.SetFocus; end;end;end;3.4. 用户删除代码3.4.1.用户删除界面3.4.2.代码procedure Tuser1.Button7Click(Sender: TObject);begin datamodule2.Login1_Client.Active:=false; if edit8.Text=s2 then begin showmessage('不能删除当前用户!'); edit8.Text:='' edit8.SetFocus; end else begin if edit8.Text<>'' then begin datamodule2.Login1_Cmandtext:='' datamodule2.Login1_Cmandtext:='delete from Auser where datamodule2.Login1_Client.Params.ParamByName('u2').Value:=edit8.Text; datamodule2.Login1_Client.Execute; datamodule2.Login1_Client.Active:=false; datamodule2.Login1_Cmandtext:='' datamodule2.Login1_Cmandtext:='select * from Auser' datamodule2.Login1_Client.Open ; showmessage('删除成功!'); end; end;end;3.5. 添加员工代码3.5.1.添加员工界面3.5.2.代码procedure TAddwork.Button1Click(Sender: TObject);var s:string;beginIF (edit2.Text<>'') and (edit1.Text<>'') and (edit6.Text<>'') and(edit7.Text<>'') thenbeginm:=memo1.Lines.GetText;datamodule2.C_Client.open;datamodule2.C_Client.Last;cp1:=datamodule2.C_Client'COUNTER_VALUE'c:=strtoint(cp1);c:=c+1;cp1:=inttostr(c);label2.Caption:=cp1;/对人事信息进行编号datamodule2.C_Client.first;cc1:=datamodule2.C_Client'COUNTER_VALUE'c:=strtoint(cc1);c:=c+1;cc1:=inttostr(c);datamodule2.C_Client.Close;if radiogroup1.ItemIndex=0 thens:='男'elses:='女'/添加员工信息datamodule2.Add_Client.Active:=false;datamodule2.Add_Client.CommandText:=''datamodule2.Add_Client.CommandText:='insert into person values ('''+cp1+''','''+edit2.Text+''','''+s+''','''+DateToStr(datetimepicker1.DateTime)+''','''+edit1.Text+''','''+edit6.Text+''','''+edit7.Text+''','''+edit3.Text+''','''+edit4.Text+''','''+edit5.Text+''','''+m+''',''0'')'datamodule2.Add_Client.Execute;showmessage('添加成功!');/对人事信息添加信息datamodule2.Add_Client.Active:=false;datamodule2.Add_Client.CommandText:=''datamodule2.Add_Client.CommandText:='insert into personnel values ('''+cc1+''','''+cp1+''','加入新员工'','''+DateToStr(datetimepicker1.DateTime)+''')'datamodule2.add_client.execute;/对计数器库都加一datamodule2.Add_Client.Active:=false;datamodule2.Add_Client.CommandText:=''datamodule2.Add_Client.CommandText:='update c set counter_value='''+cp1+''' where id=''p'''datamodule2.Add_Client.Execute;datamodule2.Add_Client.Active:=false;datamodule2.Add_Client.CommandText:=''datamodule2.Add_Client.CommandText:='update c set counter_value='''+cc1+''' where id=''c'''datamodule2.Add_Client.Execute;datamodule2.C_Client.open;datamodule2.C_Client.Last;cp1:=datamodule2.C_Client'COUNTER_VALUE'c:=strtoint(cp1);c:=c+1;cp1:=inttostr(c);label2.Caption:=cp1;datamodule2.C_Client.Close;edit2.Text:=''edit3.Text:=''edit4.Text:=''edit5.Text:=''edit1.Text:=''edit6.Text:=''edit7.Text:=''memo1.Lines.Clear;endelsebeginshowmessage('请把资料添写完整!');end;end;3.6. 人事变动代码3.6.1.人事变动界面3.6.2.代码procedure TChang.Button1Click(Sender: TObject);var s:string; b:string;begindatamodule2.Add_Client.Active:=false;datamodule2.Add_Client.CommandText:=''datamodule2.Add_Client.CommandText:='update person set department='''+dbedit2.Text+''',job='''+dbedit3.Text+''',zz='''+b+''' where id='''+edit1.Text+''''datamodule2.Add_Client.Execute;datamodule2.C_Client.Open;datamodule2.C_Client.First;ch:=datamodule2.C_Client'COUNTER_VALUE'c2:=strtoint(ch);c2:=c2+1;ch:=inttostr(c2);datamodule2.C_Client.Close;datamodule2.Add_Client.Active:=false;datamodule2.Add_Client.CommandText:=''datamodule2.Add_Client.CommandText:='insert into personnel values ('''+ch+''','''+edit1.Text+''','''+s+''','''+DateToStr(datetimepicker1.DateTime)+''')'datamodule2.Add_Client.Execute;showmessage('修改成功!');datamodule2.Add_Client.CommandText:=''datamodule2.Add_Client.CommandText:='update c set counter_value='''+ch+''' where id=''c'''datamodule2.Add_Client.Execute;end;3.7.员工修改代码3.7.1.员工修改界面3.7.2.代码procedure Tmodify_work.Button1Click(Sender: TObject);var s:string;beginif dbradiogroup1.ItemIndex=0 thens:='男'elses:='女'datamodule2.Add_Client.Active:=false;datamodule2.Add_Client.CommandText:=''datamodule2.Add_Client.CommandText:='update person set name='''+dbedit1.Text+''',birthday='''+DateToStr(datetimepicker1.DateTime)+''',address='''+dbedit2.Text+''',tel='''+dbedit3.Text+''',sex='''+s+''',EDU_LEVEL='''+dbedit4.Text+''',SPECIALTY='''+dbedit5.Text+''',REMARK='''+dbmemo1.Lines.GetText+''' where id='''+edit1.Text+''''datamodule2.Add_Client.Execute;showmessage('修改成功!');end;四.测试分析运行本系统要在服务器端执行BorlandDelphi7Binscktsrvr.exe"客服端通过它连接到服务器上,否则会出错。4.1.服务器端运行情况图4.1 服务器端界面4.2.客户端运行情况 图4.2程序运行情况五.心得体会在本次课程设计中,我遇到了不少难题,特别是头一次做分布式系统。比如说在对库进行数据添加后客户端始终都不能见到数据,在罗老师的一系列指导后才完成。;然后就是继承问题,在写程序的时候发现很多控件在每个窗口里都用到了,当时就想:是不是可以重用呢?那样就不要在每个窗口里手动再画一次控制了,在网上搜索了半天,加上同学提示用继承处理才得以解决。第一次感觉继承是个好东西,以前很少用继承写程序,以后还要多加锻炼 由于时间仓促,再加上本人刚接触Delphi不久,而且在编程思路上一个人写程序有极大的局限性,所有,本系统可能还存在一些我没想测试到的BUG,在功能上也不能满意各位需求者的要求,这是我以后必须努力学习的地方。同时也请提出宝贵意见六.参考文献1 肖庆航、陆定淑Delphi7数据库开发教程清华大学出版社2005年1月2飞思科技产品研发中心Delphi6开发手册电子工业出版社2003年3月3陈豫龙、何旭洪数据库系统开发实例导航人民邮电出版社2003年8月4段兴、李宝Delphi7实用程序设计例人民邮电出版社2003年8月5张春林Delphil6程序设计导学清华大学出版社2003年7月6CSDN程序员论坛,7大富翁论坛,七.致谢这次设计使我的实际动手能力有了很大的提高。所有这些都离不开陈光仪老师的指导,在这里我由衷地感谢他的指导。还另外,同学也给于我很大的帮助,他们帮助我解决了不少的难点,同时也感谢CSDN、大富翁论坛上的朋友给予的支持和帮助,使得程序能及时完成,没有他们的帮助,我的课程设计也不会这么快完成。

    注意事项

    本文(Delphi课程设计论文delphi人事管理系统课程设计.doc)为本站会员(仙人指路1688)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开