ImageVerifierCode 换一换
格式:DOCX , 页数:27 ,大小:2.12MB ,
资源ID:7204138      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/7204138.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(名片管理系统课程设计.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

名片管理系统课程设计.docx

1、名片管理系统课程设计 目 录 一、设计课题名称及要求1二、需求分析2三、软件配置3四、数据库分析3五、设计思路5六、Delphi界面设计6七、代码编写与实现9八、系统演示16九、遇到问题及解决方法24十、收获与体会26十一、参考文献27一、设计课题名称及要求1、 设计课题名片管理系统2、 设计要求(1)要求对名片系统进行分类管理,对表中个人基本情况、银行开户情况和税号、联系途径、家庭基本情况、个人业绩及简历、业务现状进行系统性的分析、设计,并形成系统设计说明书; (2)设计语言 基于Object Pascal 语言的Delphi语言 (3)系统功能要求A、提供便捷、美观及丰富的界面以便能录入各

2、类数据。B、动态查询各类信息(按工司的地址、电话、银行的帐号,家庭住址等进行查询)。C、能用图形、报表和表格三种形式对社会关系网中的人员的各种情况进行分析和统计。D、能打印各类统计信息。E、应用程序采用多文挡界面的风格。F、尽量用菜单。G、界面的风格要多样化,但必须满足用户的要求。H、打印源程序、主要界面和报表。 二、需求分析1、 需求背景随着社会发展的日异月新,商业来往日益广泛,人们之间的交往也日益频繁,于是人们手中便出现了繁多的名片、通讯片等记录一些客户信息等的联系工具,这些东西虽然能够保存一些基本信息,但是占得空间比较大,积累的名片多了,使用起来很麻烦,也不方便管理,同时也不方便管理,很

3、容易丢失 ,而如果建立自己的电子文档文档对名片进行管理,虽然能克服上面所讲的缺点,但查询效率低下,在广大客户中难以普及,所以能够有一个既可以存储信息,又能够进行更新、查询等功能,必要时还能够进行统计分析,以及打印的管理系统就显得很有必要。所以我就借助这次课程设计进行名片管理系统的设计开发,同时也可以方便自己以后对名片的管理维护。2、 需求说明所要设计开发的该软件应该能够满足实际的需求,通过分析调查分析如下(1)个人能够对自己的纸质名片进行信息输入的功能,以便日后能够查询维护管理; (2)当需要快速查找某个联系人时,能够快速的进行查询本条名片的相关个人信息及其他记录; (3)同时要能够进行对系统

4、的所包含的记录进行删除、添加、修改等; (4)并能够满足用户对所包含的记录进行纸质名片的打印、及预览; (5)若需要,则还要能够对其进行统计分析统计,如性别人数统计、年龄统计、所包含名片的客户的职务统计以及所属公司等的统计 3、分析需求 该名片管理系统适用于个人名片管理系统,个人对自己保存的客户的名片的管理与维护。其名片管理系统包括以下几个内容:客户信息添加、修改、查询、删除增加客户信息提交添加信息 修改客户信息确定修改信息查询客户详细信息选择查询条件进行查询删除某条客户信息选择需要先删除的信息确认删除信息统计分析 客户性别统计分析图形表示 客户年龄统计分析图形表示 客户职务统计分析图形表示

5、客户公司信息统计分析图形表示 客户家庭情况统计分析图形表示 名片打印 所选名片或全部名片打印预览打印三、 软件配置软件配置主要包括数据库的选择和操作界面设计的选择。我所设计的名片管理系统的软件要求,由于只是针对个人进行名片管理与维护,所以要求不是很高,所以我选择了方便的SQL Server 2000 数据库;由于要设计的系统使人们能够简单方便的接受,设计要人性化,所以选择了Delphi 7 进行设计界面与整个系统。四、 数据库分析对名片管理系统的分析,首先建立数据库,最根本通过在UML系统模型上建立所需要涉及的表格及相互关系,由于系统较简单,所以建立的表也比较少总共涉及三个表: 用户表:包括用

6、户号、用户名、用户密码,其中用户号设为主键,用户号、用户名、密码都设为非空; 员工表:这是最主要的表,包括所有信息:员工号、姓名、性别、年龄、职务、电话、家庭住址、银行账号、税号、所在公司以及个人简历等基本的信息,其中将员工号设为主键,姓名非空;公司表:这个表所涉及公司的信息,包括公司号、公司名、公司地址、公司网址、主要经营业绩等信息,将公司号设为主键,公司名非空通过对上述三个表进行分析比较可以得出该系统数据库的E-R图:五、 设计思想名片管理系统应该能够限制登录的权限,只有合法用户才能够通过登陆界面进行名片的管理与维护,通过对名片管理系统的分析理解现将我的设计思路画如下:六、 Delphi

7、界面设计 完成了上面数据库的设计分析,以及设计该名片管理系统的思路后,从而建立起了能够保障系统顺利、正确运行的后台。现在就需要进行名片管理系统的界面设计a) 系统开始界面要进行名片管理,首先必须进入系统的引导界面,这个界面设计比较简单,只是起到一个引导进入的界面,设计界面如下:2、用户登陆界面 如上图所示,是对系统登录权限的管理,只有当用户名跟密码正确时才允许进入主界面进行管理,否则无法访问该系统。 3、主界面设计 主界面我采用了下拉菜单进行管理和访问,如上图,可以进行对客户进行默认查询和删除某条记录等操作,界面设计如上。4、添加、修改、查询界面设计 对客户信息进行添加、修改、查询的界面设计如

8、下三图所示,基本框架都一样所用到的控件也差不多,通过跟数据库连接进行管理: 修改界面查询界面5、报表界面设计 通过Delphi 的quickreport多种控件的应用,从而实现报表功能,从而满足打印预览、打印等功能,设计如下。七、 代码编写与实现程序代码是程序的核心所在,是名片管理系统开发的灵魂。这部分也是花费我时间最多的的部分。现将实现的功能的代码程序实现一一列出。a) 系统开始的代码实现名片管理系统启动时,首先出现的是系统的进入系统界面,单击界面的“进入”按钮,就可进入登陆界面。其下面的代码如下:procedure TForm1.Button1Click(Sender: TObject);

9、begin form2.show;end;在进入系统界面设计中,我也添加了当前日期时间的显示,日期时间显示的代码如下:procedure TForm1.Timer1Timer(Sender: TObject);begin label2.Caption:=datetimetostr(now);end;其实这个功能实现也很简单,只是用到了datetime函数,从而方便快捷的实现功能。b) 用户登陆的代码实现在进入用户登录界面后,程序从数据库中获取用户名和密码,和输入的用户名的密码比较,如果正确,则身份验证通过,符合权限;否则,警告用户出错,重新输入。确认按钮下面的代码实现如下:procedure

10、TForm2.Button1Click(Sender: TObject);var username,password:string;begin if edit1.text=then messagebox(form2.Handle,请输入用户名,警告,mb_ok+mb_iconwarning) else if edit2.text=then messagebox(form2.Handle,请输入密码,警告,mb_ok+mb_iconwarning) else begin username:=edit1.text; password:=edit2.text;begin adoquery1.Clos

11、e; adoquery1.SQL.Clear; adoquery1.SQL.Add(select * from 用户表 where 用户名=:A1 and 密码=:A2); adoquery1.Parameters.ParamByName(A1).Value:=trim(edit1.Text); adoquery1.Parameters.ParamByName(A2).Value:=trim(edit2.Text); adoquery1.Open; if adoquery1.recordcount=1 then begin form2.hide; form4.show; end else me

12、ssagebox(form2.Handle,请输入正确密码,警告,mb_ok+mb_iconwarning); end;end;end;若用户要退出登陆界面,则按“取消”按钮,代码如下:procedure TForm2.Button2Click(Sender: TObject);begin close;end;c) 主界面代码在主界面里,基本可以实现所有功能,通过下拉菜单,可以进入各个窗体的相关功能的实现,下拉菜单设计如下: 在默认查询功能是实现对整个表进行显示,其下代码实现如下:procedure TForm4.Button1Click(Sender: TObject);begin with

13、 adoquery1 do begin close; sql.clear; sql.add(select * from 员工表 ); open; end;end;在进行删除操作时,删除按钮下面的代码如下:procedure TForm4.Button2Click(Sender: TObject);begin if MessageDlg(确认删除吗?,mtconfirmation,mbOKCancel,0)=mrOK then adoquery1.Delete ;end;各种情况的统计分析按钮只是起到一个转到作用,具体统计是在各个统计界面实现.d) 添加功能的代码实现通过下拉菜单进入到添加窗体,

14、在输入信息后,保存按键下面代码实现如下:procedure TForm5.Button1Click(Sender: TObject);begin if flag = true then beginif edit1.text=then messagebox(form5.Handle,请输入编号,编号,mb_ok+mb_iconwarning) else if edit2.text=then messagebox(form5.Handle,请输入姓名,姓名,mb_ok+mb_iconwarning) end; with ADOQuery1 do begin close; with sql do b

15、egin clear; add(insert into员工表values(:p0,:p1,:p2,:p3,:p4,:p5,:p6,:p7,:p8,:p9,:p10); end; parameters0.Value := edit1.Text; parameters1.Value := edit2.Text; parameters2.Value := edit3.Text; parameters3.Value := edit4.Text; parameters4.Value := edit5.Text; parameters5.Value := edit6.Text; parameters6.V

16、alue := edit7.Text; parameters7.Value := edit8.Text; parameters8.Value := edit9.Text; parameters9.Value := edit10.Text; parameters10.Value := edit11.Text; ExecSQL ; flag:=false; messagebox(form5.handle,新名片添加成功,恭喜,mb_ok); end; end;若要继续保存,则“继续添加”按钮下面的代码实现如下:procedure TForm5.Button2Click(Sender: TObjec

17、t);beginflag := true; /点击添加按妞时 是程序处于INSERT状态 edit1.Text:=; edit2.Text:=; edit3.Text:=; edit4.Text:=; edit5.Text:=; edit6.Text:=; edit8.Text:=; edit9.Text:=; edit10.Text:=; edit11.Text:=;end;e) 修改功能的代码实现在进入修改界面后,首先选择要修改的某条记录,选择按钮下的代码实现如下:procedure TForm6.Button4Click(Sender: TObject);begin if (ComboB

18、ox1.Text=编号) then begin with adoquery1 do begin close; sql.clear; sql.add(select * from 员工表 where 序号=:A1); parameters.parambyname(A1).value:=edit12.text; open; end; end; if (ComboBox1.Text=姓名) then begin with adoquery1 do begin close; sql.clear; sql.add(select * from 员工表 where 姓名=:A2); parameters.pa

19、rambyname(A2).value:=edit12.text; open; end; end;end; 在修改信息后,保存按钮下面的代码实现如下:procedure TForm6.Button1Click(Sender: TObject);var i:integer;begin i:=dbgrid1.Fields0.asinteger;if edit1.text=then showmessage(编号不能为空) else if edit2.text=then showmessage(姓名不能为空) else with adoquery1 do begin close; sql.clear;

20、 sql.Add(update 员工表 set 序号=+edit1.Text+,姓名=+edit2.Text+,性别=+edit3.Text+,年龄=+edit4.Text+,职务=+edit5.Text+,联系方式=+edit6.Text+,家庭住址=+edit7.Text+,银行账号=+edit8.Text+,税号=+edit9.Text+,所在公司=+edit10.Text+,个人简历=+edit11.Text+); sql.Add(where 序号=+inttostr(i)+); showmessage(信息已经成功修改!);end;其中datasource需要编写代码,实现如下:pr

21、ocedure TForm6.DataSource1DataChange(Sender: TObject; Field: TField);begin edit1.Text:= adoquery1.fieldbyname(序号).AsString; edit2.Text:=adoquery1.fieldbyname(姓名).AsString; edit3.Text:= adoquery1.fieldbyname(性别).AsString; edit4.Text:= adoquery1.fieldbyname(年龄).AsString; edit5.Text:= adoquery1.fieldby

22、name(职务).AsString; edit6.Text:=adoquery1.fieldbyname(联系方式).AsString; edit7.Text:=adoquery1.fieldbyname(家庭住址).AsString; edit8.Text:= adoquery1.fieldbyname(银行账号).AsString; edit9.Text:= adoquery1.fieldbyname(税号).AsString; edit10.Text:=adoquery1.fieldbyname(所在公司).AsString; edit11.text:=adoquery1.fieldby

23、name(个人简历).asString;end;f) 查询功能的代码实现在进入查询功能的界面后,查询按钮下面的代码实现如下:procedure TForm7.Button1Click(Sender: TObject);begin if (ComboBox1.Text=编号) then begin with adoquery1 do begin close; sql.clear; sql.add(select * from 员工表 where 序号=:A1); parameters.parambyname(A1).value:=edit1.text; open; end; end;if (Com

24、boBox1.Text=姓名) then begin with adoquery1 do begin close; sql.clear; sql.add(select * from 员工表 where 姓名=:A2); parameters.parambyname(A2).value:=edit1.text; open;end;end;end;g) 报表实现为了实现名片的报表的输出打印预览及打印,我没有选择rave控件,而是应用Qreport组件来实现报表,报表可以输出全部名片信息或者单个名片,同时显示当前日期和时间。h) 统计功能的代码实现在Data controls控件中,选择DBchar

25、t组件和ADOquery来选择对某个信息的统计分析,主要在adoquery的属性中,比如SQL设置为select 性别,count(*) from 员工表group by 性别就可以实现性别人数的统计分析。八、 系统演示运行名片管理系统后,首先进入系统进入界面点击进入后,便进入用户登陆界面: 若没有输入密码则提醒:若输入密码错误,在点击确认后,出现警告: 只有密码正确后才允许进入主菜单界面,点击“默认查询”后,显示如下:从表中可以发现员工表中的全部信息,在表的右边的导向按钮可以进行各种信息的统计,当点击“家庭情况统计”便出现下面的饼形统计图,统计出各个家庭的住址人数统计图从图中可以看出,在整个

26、名片管理中,家庭住在湖南的占到七分之三,占了将近一半,其他如图。点击“公司情况统计”出现相同公司人数的统计情况饼形图:同样也可以从图中看到公司情况的统计图。 当要查看年龄统计情况的分析时,只要点击“年龄统计”导向就可以,统计图如下面所示: 点击“性别统计”后,就出现下面的柱形性别人数统计,若要进行对客户的职务进行统计,只要点击“职务情况统计”就会出现饼形的职务人数统计图:进行完统计情况分析后, 在主菜单里也可以从下拉菜单里选择添加,便进入对客户的添加,加入一部分信息后,点击保存,如图:点击确定后,便可在主菜单中查看到,若要继续添加,则按“续添加记录”按钮,便再次添加,不再详细介绍。点击返回,便

27、回到主菜单,从下拉菜单中选择修改,便可进行修改操作,首先要选择修改的某条记录,可按编号或姓名选择,如下操作:从上图可以看到要修改的某条记录的全部信息,若要修改年龄,直接重新输入新的年龄就行,点击保存,便修改成功,可以通过默认查询或查询看到所修改后的信息。当默认查询里面的记录较多时,不容易查询到需要的记录,可以从下拉菜单中选择查询,便可通过编号或姓名进行查询,若要查询刚才添加的信息,如图,选择编号8查询后,从图中也可以看到刚才的年龄确实修改成功! 删除记录很简单,只要在主菜单中的默认查询的表格中选择要删除的某个记录,点击删除就OK了!,如下:点击OK后,要删除的编号为8的记录就删除了。从而基本操

28、作也结束了。 若用户要对名片进行打印的话,在下拉菜单中选择报表,直接就可以在报表中进行报表预览,打印等操作,如图:在表眉上,有打印等操作,见下图:通过报表可以打印整个名片的信息,报表中也显示出当前日期和时间。若要退出该系统,直接在主菜单的下拉菜单中选择退出即可。 至此,我所设计的名片管理系统的主要演示基本完毕!九、遇到问题及解决方法在做这个名片管理系统的过程中,由于是第一次用deliphi 做系统,在做之前根本就没接触过Delphi 所以在做该名片管理系统之前,首先花费了我大部分时间去研究Delphi 的使用。现就在做本次课程设计过程中遇到的几个问题一一叙述如下:1、首先通过对本次课程设计所提

29、出对名片管理系统的要求,我就遇到了第一个问题:数据库怎么建,应该建几个表,每个表的主外键关系及约束情况。由于没做过数据库,根本不知道要怎么建表。接到课题后,我与和我做相同系统的同学商量探讨后,最后根据数据库课本所介绍的方法,我建立了三个表,分别是:员工表、用户表、公司表。并建立了相对的约束,从而为后面的系统设计做好铺垫。2、一个最基本最基础的问题是我不知道怎么从一个FORM进入另一个FORM,这么基础的问题我因为没看书,一直在纳闷。直到我看了一个系统的实例我才豁然开朗,原来只是一个简单的SHOW 就解决问题了,呵呵。3、在设计基本功能时,我在编写修改功能的代码的时候出错了,搞了整整一个晚上,我就是发现不了为什么就是不能修改,而且老报错,真气人。明明觉得我的代码根本没有问题,但就是出不来,真郁闷。就在第二天中午,我在XX上查找出错原因,才突然发现出现了一个致命的错误,原来在做修改的时候,最后的结束语句不能用OPEN,只能用ExecSQ

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1