软件设计报告_第1页
软件设计报告_第2页
软件设计报告_第3页
软件设计报告_第4页
软件设计报告_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

通达学院2013/2014学年第二学期软件设计实验报告 专业Delphi软件设计学生班级110023学生学号11002314学生姓名孙敏杰指导教师汪胡青设计题目1、熟悉软件2、文件浏览3、网络聊天室4、编写动态链接库5、综合应用程序设计(填写内容字体为宋体小四)任务要求1、熟悉Delphi中Menu,Label,Button,Edit等常用控件的用法,能够编写简单的界面程序。2、熟悉TreeView,OpenDialog等控件的用法,并能够熟练应用。3、通信程序设计可行,程序中可以设置远程计算机的IP地址和端口号,掌握程序中用到的各个组件的常用属性。4、理解动态链接库的含义,掌握在程序中引用动态链接库的方法,并能够熟练编写自己的动态链接库。5、熟悉Delphi中数据库操作的相关控件用法,掌握Delphi数据库编程的一般步骤,查找条件不能单一。(填写内容字体为宋体小四)实验设备及软件硬件:个人计算机;软件:Delphi(填写内容字体为宋体小四)同组人员学号及姓名11002314孙敏杰(填写内容字体为宋体小四)参考文献康祥顺,张小刚.Delphi案例开发集锦.电子工业出版社2005王沛.delphi编程入门篇.机械工业出版社20063、钟军,汪晓平.delphi网络通信协议分析与应用实现.人民邮电出版社,20034、池雅庆,贾小敏.delphi数据库应用项目开发实践.人民邮电出版社,20065、杨华民,梁水,李方超.Delphi函数参考大全.人民邮电出版社,20066、张世明.Delphi程序设计基础:教程、实验、习题.电子工业出版社,2010(填写内容字体为宋体小四)网络聊天室实验操作利用Delphi自带的TCPCLIENT组件和TCPSERVER组件,编写了一个简易的网络聊天室程序,这个程序将以同步的方式在服务器端和客户端进行通信,而且是多线程程序,可以处理多个连接的请求。程序运行后,在窗口上部填写远程主机地址、端口以及本地端口号,注意,两个端口号必须一致,否则无法完成监听。然后单击“改变主机设置”按钮,即可连接到远程主机。接着在窗口下部的MEMO文本框中填写发送的信息,单击“发送”按钮,即可将信息发送到远程主机窗口。程序界面效果如图所示。实验要点tcpClient组件的应用;tcpServer组件的应用。步骤详解新建一个应用程序,在窗口中添加一个TPanel组件,align属性设置为alTop,然后在该面板中添加三个TLable组件和三个TEdit组件,分别用于设置远程主机和本地主机的地址、端口。接着再添加一个TButton组件,caption属性为“改变主机设置”。在窗口中添加两个TPanel面板,然后分别在面板中添加一个TMemo多行文本编辑框,分别用于显示接收信息和发送信息,其中用于接收信息的memo组件的readonly属性设置为true。最后在窗口中添加一个TButton组件,caption属性为“发送”,再从internet组件面板上分别拖放一个tcpClient组件和一个tcpServer组件到窗口中。代码添加与解释打开代码编辑器,在接口部分添加一个自定义线程类://创建线程,以同步方式写入GUI窗口。必须这样,才能够同时处理多个连接的请求TClientDataThread=class(TThread)privatepublicListBuffer:TStringList;TargetList:TStrings;proceduresynchAddDataToControl;constructorCreate(CreateSuspengded:Boolean);procedureExecute;override;procedureTerminate;end;在代码实现部分,添加线程类的实现代码://TClientDataThread线程类的实现代码constructorTClientDataThread.Create(CreateSuspended:Boolean);begininheritedCreate(CreateSuspended);FreeOnTerminate:=ture;ListBuffer:=TStringList.Create;end;procedureTClientDataThread.Terminate;beginListBuffer.Free;inherited;end;procedureTClientDataThread.Execute;beginSynchronize(synchAddDataToControl);//同步end;procedureTClientDataThread.synchAddDataToControl;beginTargetList.AddStrings(ListBuffer);end;3、双击“改变主机设置”按钮,添加如下代码://改变服务器端配置procedureTForm1.Button1Click(Sender:TObject);beginTcpServer1.LocalPort:=Edit1.Text;//指定端口TcpServer1.Active:=True;end;4、双击“发送”按钮,添加如下代码://客户端发送信息procedureTForm1.Button2Click(Sender:TObject);varI:Integer;beginTcpClient1.RemoteHost:=Edit1.Text;//远程主机地址TcpClient1.RemotePort:=Edit2.Text;//远程主机端口tryifTcpClient1.ConnectthenforI:=0toMemo1.Lines.Count-1doTcpClient1.Sendln(Memo1.Lines[I]);//发送信息finallyTcpClient1.Disconnect;//断开连接end;end;5、双击tcpServer组件的onaccept事件,添加如下代码://服务器端接收到信息的处理procedureTForm1.TcpServer1Accept(Sender:TObject;ClientSocket:TCustomIpClient);vars:string;DataThread:TClientDataThread;Begin//创建自定义线程DataThread:=TClientDataThread.Create(true);//将线程的TargetListset设置为同步显示信息的组件MEMODataThread.TargetList:=Memo1.lines;//加载线程的ListBuffer信息DataThread.ListBuffer.Add('***已经连接上远程主机并收到消息***');DataThread.ListBuffer.Add('远程主机:'+ClientSocket.LookupHostName(ClientSocket.RemoteHost)+'('+ClientSocket.RemoteHost+')');DataThread.ListBuffer.Add('=====Beginmessage=====');s:=ClinetSocket.Receiveln;//取得客户端传递的信息whiles<>"dobeginDataThread.ListBuffer.Add(s);s:=ClientSocket.Receiveln;end;DataThread.ListBuffer.Add('=====Endofmessage=====');//同步将ListBuffer中的信息显示在TargetList目标位置DataThread.Resume;end;end.人事管理系统概述1.1人事管理系统简介1.2人事管理系统功能描述需求分析:2.1系统目标2.2业务流程2.3数据流程2.4数据字典系统设计:3.1系统功能3.2系统结构数据库设计:4.1E-R图主窗体设计:5.1主窗体设计5.2功能导航栏设计程序设计与编码:6.1系统登陆窗体的设计6.2操作员管理窗体的设计6.3修改密码窗体的设计6.4人事信息窗体的设计系统测试:7.1系统测试目的7.2系统测试心得总结1.1人事管理系统简介随着全球对知识和人才的重视,企业对人事管理重要性的认识逐渐深化,人才的全球化竞争使企业的人事管理面临前所未有的挑战。在新形势下,人事管理系统是一个企业单位不可缺少的部分,是适应现代企业制度,推动企业人事管理走向科学化、规范化、自动化的必要条件;是应对挑战、适应环境变化、提高企业管理效率、提升核心竞争力的关键措施。它所包含内容对于企业的决策者和管理者来说至关重要。目前市场上的人力资源系统很多,但要找到一款真正称心、符合公司实际情况的并不容易。由于存在这样那样的不足,使企业浪费了大量的人力、物力等大量资源,难以真正提升企业人力资源的管理水平,提高工作效率及降低管理成本的效果也不明显。因此,为了加快公司信息化的步伐,提高公司的管理水平,并在激烈的社会竞争中立于不败之地,建立及完善人事管理系统已变得十分必要和迫切。人事管理系统主要是管理员工企业日常事务中的人事工作,使用人事管理系统会降低了资源管理成本,使管理者能集中精力在企业战略目标;另一方面,通过软件及时收集与整理分析大量的人事管理数据,为企业战略决策的生成与实施控制提供强有力的支持,以提高组织目标实现的可能性。1.2人事管理系统功能描述人事管理系统就是要实现对某单位的职工进行管理,整个系统包括人事资料的录入、资料查询和资料删除等功能。人事管理系统应该能够灵活有效的管理,体现多角色、多层次特色。不同的企业其人事管理业务与流程各不相同,随着管理要求的提高,人事管理软件需要具备人事业务流程的制订、修改、控制等操作。通过人事管理系统使得管理者快速高效地完成企业日常事务中的人事工作,降低了人事管理成本,使管理者能集中精力在企业战略目标;另一方面,通过软件及时收集与整理分析大量的人事管理数据,为企业战略决策的生成与实施控制提供强有力的支持,以提高组织目标实现的可能性。需求分析2.1系统目标人事管理系统就是要实现对某单位的职工进行管理,整个系统主要实现包括人事资料的录入、资料查询和资料删除等功能。在应用系统使用中,为保证系统的安全,必须设置用户检测程序。合法用户可进入,非合法用户拒绝登陆。同时要能够设置用户的使用权限,用户登录后只能进行其权限所允许的操作。用户可以修改本人的密码,系统管理员可以修改、冻结或删除普通用户。2.2业务流程图操作员管理业务流程图2.3数据流程图2.4数据字典数据字典就是将数据元素、数据流、数据存储、处理功能和外部实体等的详细情况加以记录,并按照一定方式进行排列所形成的一部关于数据的字典。数据字典是有关数据的信息的收集、维护和发布的机制,是有关数据的数据即元数据的中心仓库,数据字典是提供关于数据元素、元素组、记录信息的定义和使用机制,以及数据实体之间的联系。2.4.1建立数据元素表-1操作员数据结构表-2人事信息数据结构2.4.2建立数据流数据流表明了数据的流动方向及其名称,是数据载体的表现形式之一。在数据字典中所定义的数据流有两类:一类是从外部实体输入到系统中的数据流,二是从系统输出到外部实体的数据流。系统设计3.1系统功能1、用户管理模块。主要是实现操作用户的增加、删除、修改。2、密码修改模块。该模块主要实现各操作用户修改自己的操作密码,系统管理用户可以修改其他用户的密码。3、系统初始化模块。主要用来实现初始化功能,即清除所有数据表中的信息,只在operator.db数据表中保留一条默认的管理员信息。4、退出模块。就是退出系统。3.2系统结构数据库设计4.1E-R图实体属性一览表:管理员(用户名,密码,部门,联系电话,工资,职务,操作权限,查询权限,管理权限,最后操作时间)职员(职工编号,职工姓名,性别,出生年月,身份证号,地址,联系电话,单位,工资,职务,专业,参加工作时间,离职时间)部门(部门编号,部门名称,主管)主窗体设计5.1主窗体设计5.1.1界面设计创建一个新的工程文件,保存源程序文件名为main.pas,工程文件名为rlzygl.dpr,在窗体中添加一个mainmenu组件,一个toolbar组件,在toolbar组件中添加6个toolbutton组件,一个imagelist组件,双击imagelist组件打开对话框添加6个图片程序设计界面5.1.2属性设置窗体所涉及的组件有mainmenu,toolbutton,toolbar等。其属性设置具体如下第5.1节窗体属性设置表5-1窗体及组建的属性设置5.1.3程序设计代码如下:varmain_Form:Tmain_Form;username:string;password:string;R1,R2,R3:boolean;implementationuseslogin,Unit3,Unit4,Unit5,Unit6;{$R*.dfm}procedureTmain_Form.FormActivate(Sender:TObject);beginusername:='';password:='';R1:=false;R2:=false;R3:=false;F_login.showModal();ifusername<>''thenbeginifR1=truethenbeginn4.Enabled:=true;n6.Enabled:=true;toolbutton1.Enabled:=true;toolbutton3.Enabled:=true;endelsebeginn4.Enabled:=false;n6.Enabled:=false;toolbutton1.Enabled:=false;toolbutton3.Enabled:=false;end;ifR2=truethenbeginn2.Enabled:=true;toolbutton4.Enabled:=true;endelsebeginn3.Enabled:=false;toolbutton4.Enabled:=false;end;ifR3=truethenbeginn3.Enabled:=true;toolbutton5.Enabled:=true;endelsebeginn3.Enabled:=false;toolbutton5.Enabled:=false;end;endelseclose;end;procedureTmain_Form.N3Click(Sender:TObject);beginF_check.showModal();end;procedureTmain_Form.N8Click(Sender:TObject);beginclose;end;procedureTmain_Form.N2Click(Sender:TObject);beginF_rsInfo.showModal();end;procedureTmain_Form.N5Click(Sender:TObject);beginF_changepw.showmodal();end;procedureTmain_Form.N4Click(Sender:TObject);beginF_operator.showmodal();end;procedureTmain_Form.N6Click(Sender:TObject);varTabel1:TTable;beginTable1:=TTable.create(self);Table1.DatabaseName:='RLZYGL';Table1.TableName:='opertaor.db';Table1.EmptyTable;Table1.open;Table1.Append;Table1.fieldbyname('username').asstring:='admin';Table1.fieldbyname('password').asstring:='admin';Table1.fieldbyname('department').asstring:='计算机系';Table1.fieldbyname('stamp').asdatetime:=date();Table1.fieldbyname('right1').asboolean:=true;Table1.fieldbyname('right2').asboolean:=true;Table1.fieldbyname('right3').asboolean:=true;Table1.post;Table1.close;Table1.Tablename:='info.db';Table1.emptytable;Application.MessageBox('初始化结束!','提示信息',mb_ok);end;procedureTmain_Form.Button1Click(Sender:TObject);beginF_login.show;end;end.程序设计与编码6.1系统登陆窗体的设计图6-1登陆窗口用户名为:admin,密码为:admin进入人事管理系统,非法用户不可以进入系统。程序代码在附录里显示。6.2操作员管理窗体的设计图6-2操作员管理窗口6.3修改密码窗体的设计图6-3修改密码窗口6.4人事信息窗体的设计图6-4人事信息窗口系统测试7.1系统测试目的对程序设计工作的检验是进行系统测试,是保证系统质量和可靠性的关键步骤。总之,测试的目的是发现软件中的错误,应该把查出新错误的测试看做是成功的测试,没有发现新错误的测试是失败的测试。但发现错误不是目的,目的是开发出高质量的完全符合用户需要的软件。7.2系统测试系统测试是把经过测试的子系统装配成一个完整的系统然后进行测试。在这个过程中不仅能发现设计和编码的错误还能验证系统是否提供需求说明中指定的功能,而且能验证系统的动态特性是否预订要求。人事管理系统连接数据库正确,但是无法正常运行,也没有办法进行验证测试,功能没有实现。心得总结通过本次的软件设计,学到了很多关于Delphi的知识。程序主要是利用delphi来实现人事管理系统。经过此次软件设计,我对的delphi语言有了一定的了解,delphi与编程很类似,界面设计较简单和代码编译速度相对也较快。在编程的过程中遇到了些问题,通过自己翻书,上网查资料及向老师同学们请教,这些问题也得到了解决。经历了软件设计,不仅对我的学习提供了帮助,而且在各方面也得到了锻炼。没有足够的耐力和信心就很难坚持对软件设计每一步的顺利进行。同时我还要非常感谢我的任课老师对此次软件设计的精心安排和耐心指导。在软件设计过程中,老师无论是在理论上还是在实践中,都给了我很大的帮助。使我在程序的开发等各个方面得到了很大的提高。老师治学态度严谨,工作态度认真负责,为人亲切和蔼,学术理论和实践经验丰富,是我们学习的好榜样。在开发系统的过程中,我们团结合作,充分发挥了集体的力量,很好的完成了此次的软件设计。附录操作员管理代码procedureTF_operator.SpeedButton1Click(Sender:TObject);beginTable1:=TTable.creat(self);Table1.DatabaseName:='1220';Table1.TableName:='opertaor.db';Table1.open;Table1.setkey;Table1.Fieldbyname('name').asstring:=edit1.text;iftable1.gotokeythenbeginifRadiobutton1.CheckedthenbeginApplication.MessageBox('用户名相同,请检查!','提示信息',mb_ok);edit1.Text:='';edit2.Text:='';edit3.Text:='';edit1.SetFocus;endelseifRadio2.checkedthenbeginTable1.edit;savetotable;table1.post;endelsebeginTable1.edit;table1.Delete;table1.first;loadfromtable;end;endelsebeginifRadiobutton1.CheckedthenbeginTable1.Append;table1.edit;savetotable;table1.post;endelsebeginApplication.MessageBox('没有该用户,请检查!','提示信息',mb_ok);edit1.Text:='';edit2.Text:='';edit3.Text:='';edit1.SetFocus;end;end;table1.close;end;procedureTF_operator.FormActivate(Sender:TObject);beginedit1.Text:='';edit2.Text:='';edit3.Text:='';edit4.Text:='';edit4.Readonly:=true;edit4.Tabstop:=false;checkbox1.Checked:=false;checkbox2.Checked:=false;checkbox3.Checked:=false;edit4.Text:=datetostr(date());Table1:=TTable.creat(self);Table1.DatabaseName:='1220';Table1.TableName:='opertaor.db';Table1.open;ifnotTable1.EofthenLoadFormTable;Table1.Close;Radiobutton2.Checked:=true;end;procedureTF_operator.loadFormtable;beginedit1.text:=table1.fieldbyname('username').asstring;edit2.text:=table1.fieldbyname('password').asstring;edit3.text:=table1.fieldbyname('department').asstring;edit4.text:=datetostr(table1.fieldbyname('stamp').asdatetime);checkbox1.checked:=table1.fieldbyname('right1').asboolean;checkbox2.checked:=table1.fieldbyname('right2').as

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论