电子通讯录管理系统 毕业论文.doc

上传人:来看看 文档编号:3963128 上传时间:2019-10-11 格式:DOC 页数:24 大小:2.40MB
返回 下载 相关 举报
电子通讯录管理系统 毕业论文.doc_第1页
第1页 / 共24页
电子通讯录管理系统 毕业论文.doc_第2页
第2页 / 共24页
电子通讯录管理系统 毕业论文.doc_第3页
第3页 / 共24页
电子通讯录管理系统 毕业论文.doc_第4页
第4页 / 共24页
电子通讯录管理系统 毕业论文.doc_第5页
第5页 / 共24页
点击查看更多>>
资源描述

《电子通讯录管理系统 毕业论文.doc》由会员分享,可在线阅读,更多相关《电子通讯录管理系统 毕业论文.doc(24页珍藏版)》请在三一文库上搜索。

1、 第 24 页 共 24页一、前言随着计算机的飞速发展,人们的生活、工作、学习越来越依赖于计算机,同学、朋友之间的联系也常常是通过计算机来操作,因而建立一个电子通讯录管理系统也就相应而生。在从多的软件开发平台中,以Microsoft 的Visual Basic的开发平台较为简单,Visual Basic平台中有丰富的控件,可以很快地完成各种软件的开发界面,由于Visual Basic与Microsoft Access数据无缝链接,使开发一个数据库的软件更加简单,Visual Basic中的Data控件可以直接和Microsoft Access的数据库绑定;DBgrid控件可以直观地显示出数据库

2、中的信息,且Visual Basic中还可以直接引用SQL结构化查询语句,对数据的查询往往只要一条语句便可完成,因此对于数据库编程,Visual Basic是较好的选择。Visual Basic软件开发平台也有它的缺点,它生成的软件所需要的附带文件太多,一般一个数据库管理软件要真正用起来,至少要4MB,而且还必须生成一个安装包才能其它机器运行,因此光会做一个软件,而不会“打包”,该软件也只能在有Visual Basic的环境下才能运行,所以它的可移植性相对较差些。电子通讯录主要是记载同学、朋友、同事、客户等之间的联系方式,它应该有输入、修改、查询、打印等功能,首先用Microsoft Acce

3、ss建立一个数据库,然后再用Visual Basic的Data控件将数据库捆绑,再通过调用Data控件的方法和相应属性的设置便可完成上面的一些功能。二、设计框架及思路1设计框架2设计思路21数据库建立用Microsoft Access建立一个名为“通讯录”的数据库,在库中有两张表,一张为“Address”,其字段有姓名、通讯地址、联系电话、电子信箱、OICQ五个;另一张表为“密码”,其字段有用户、密码;整个数据库加密。22 软件工程建立整个工程包括主窗口、输入及修改窗口、查询窗口、打印窗口、密码修改窗口、登录窗口五大块。各个窗口中主要使用数据控件Data及DBgrid控件,其它为常用控件。23

4、 软件打包在整个工程完成之后,生成EXE文件,然后利用VB自带的安装向导,生成一个安装盘。三、工程实施1.界面设计1.1登录界面 该界面中共有7个控件,一个窗口,下表为窗口和控件的相应属性设置。 序号类别属性名属性值1form名称frmRegisterCaption电子通讯录管理系统登录窗口StartUpPosition2 CenterScreen2label名称label1Caption请选择用户名:Alignment1 Right JustifyForeColor&H00FF0000&(蓝色)3label名称label2Caption请输入密码:Alignment1 Right Justi

5、fyForeColor&H00FF0000&(蓝色)4command名称cmdConfirmCaption(&C)确定5command名称cmdExitCaption(&X)退出6text名称txtUserText7text名称txtPasswordPasswrodChar*8data名称PasswordDataconnect;pwd=19981105DataBaseNameC:Program Files电子通讯录通讯录.mdb1.2主窗口界面 该界面中使用了菜单编辑器,一个父窗口,下表为窗口和菜单的相应属性设置。序号类别属性名属性值1MDIform名称frmMainCaption电子通讯录管

6、理系统V1.0 设计人:王勇平 联系电话:0511-4415821BackColor&H00808000&WindowState2 Maximized2菜单名称InputMenu标题(&I)数据输入名称AskMenu标题(&A)数据查询名称PrintMenu标题(&P)数据打印名称PasswordSetMenu标题(&W)密码设置名称ExitMenu标题(&X)退出系统1.3 输入窗口界面 该界面中共有16个控件,一个窗口,下表为窗口和控件的相应属性设置。 序号类别属性名属性值1Form名称frmInputCaption电子通讯录输入窗口ControlBoxFalseStartUpPositi

7、on2 CenterScreen2label名称InputLabel(0)Caption姓名:Alignment1 Right JustifyForeColor&H00FF0000&(蓝色)3label名称InputLabel(1)Caption通讯地址:Alignment1 Right JustifyForeColor&H00FF0000&(蓝色)4label名称InputLabel(2)Caption联系电话:Alignment1 Right JustifyForeColor&H00FF0000&(蓝色)5label名称InputLabel(3)Caption电子信箱:Alignment1

8、 Right JustifyForeColor&H00FF0000&(蓝色)6Label名称InputLabel(4)CaptionOICQ:Alignment1 Right JustifyForeColor&H00FF0000&(蓝色)7text名称TxtField(0)ForeColor&H00FF0000&(蓝色)Text8text名称TxtField(1)ForeColor&H00FF0000&(蓝色)Text9text名称TxtField(2)ForeColor&H00FF0000&(蓝色)Text10text名称TxtField(3)ForeColor&H00FF0000&(蓝色)

9、Text11text名称TxtField(4)ForeColor&H00FF0000&(蓝色)Text12data名称InputDataconnect;pwd=19981105DataBaseNameC:Program Files电子通讯录通讯录.mdbRecordSourceAddress13DBgrid名称InputGridDataSourceInputdataHeadLines1.5RowHeight300ForeColor&H00FF0000&(蓝色)14Command名称CmdSaveCaption(&I)存库Style1- GraphicalPicture选取ToolTipText

10、将数据存入库中15Command名称CmdDeleteCaption(&D)删除Style1- GraphicalPicture选取ToolTipText删除当前数据16Command名称CmdExitCaption(&X)退出Style1- GraphicalPicture选取ToolTipText退出1.4查询窗口界面 该界面中共有11个控件,一个窗口,下表为窗口和控件的相应属性设置。 序号类别属性名属性值1Form名称FrmAskCaption电子通讯录查询窗口ControlBoxFalseStartUpPosition2 CenterScreen2label名称LblCondition

11、Caption条件:Alignment1 Right JustifyForeColor&H00FF0000&(蓝色)3text名称TxtConditionForeColor&H00FF0000&(蓝色)Text4Check名称FieldCheck(0)Caption姓名5Check名称FieldCheck(1)Caption通讯地址6Check名称FieldCheck(2)Caption联系电话7Check名称FieldCheck(3)Caption电子信箱8data名称AskDataconnect;pwd=19981105DataBaseNameC:Program Files电子通讯录通讯录

12、.mdbReadOnlyTrueRecordSourceAddress9DBgrid名称AskGridAllowUpdateFalseDataSourceAskdataHeadLines1.5RowHeight300ForeColor&H00FF0000&(蓝色)10Command名称CmdFindCaption(&F)查找Style1- GraphicalPicture选取ToolTipText按所设条件查找11Command名称CmdPrintCaption(&P)打印Style1- GraphicalPicture选取ToolTipText打印12Command名称cmdExitCapt

13、ion(&X)退出Style1- GraphicalPicture选取ToolTipText退出1.5 打印窗口界面 该界面中共有16个控件,一个窗口,下表为窗口和控件的相应属性设置。 序号类别属性名属性值1Form名称FrmPrintCaption电子通讯录打印窗口ControlBoxFalseWindowState2 MaxiziedMDIchildTrue2Label名称Label1Caption字体大小:Alignment1 Right JustifyForeColor&H00FF0000&(蓝色)3Label名称Label2Caption行间距:Alignment1 Right Ju

14、stifyForeColor&H00FF0000&(蓝色)4Label名称Label3Caption页码:Alignment1 Right JustifyForeColor&H00FF0000&(蓝色)5data名称PrintDataconnect;pwd=19981105DataBaseNameC:Program Files电子通讯录通讯录.mdbRecordSourceselect * from address order by 姓名6DBgrid名称AdjustGridDataSourcePrintdata7Command名称CmdPrintCaption(&P)打印Style1- Gr

15、aphicalPicture选取ToolTipText打印8Command名称CmdUpCaption(&U)上页Style1- GraphicalPicture选取ToolTipText上一页9Command名称CmdDownCaption(&D)下页Style1- GraphicalPicture选取ToolTipText下一页10Command名称CmdExitCaption(&X)退出Style1- GraphicalPicture选取ToolTipText退出11Combo名称FontSizeComboForeColor&H00FF0000&(蓝色)Text10.512Combo名称

16、LineHeightComboForeColor&H00FF0000&(蓝色)Text3mm13Combo名称PageComboForeColor&H00FF0000&(蓝色)Text114Picture名称Picture1BackColor&H00808080&(深灰)AutoRedrawTrue15Picture名称ShowWinBackColor&H00FFFFFF& (白色)AutoRedrawTrue16Vscroll名称Vscroll1Max10000Min-1000Value-450LargeChange100SmallChange1001.6密码修改界面 该界面中共有7个控件,

17、一个窗口,下表为窗口和控件的相应属性设置。 序号类别属性名属性值1form名称frmPasswordCaption密码StartUpPosition2 CenterScreen2label名称label1Caption新密码:Alignment1 Right JustifyForeColor&H00FF0000&(蓝色)3label名称label2Caption验证:Alignment1 Right JustifyForeColor&H00FF0000&(蓝色)4command名称cmdConfirmCaption(&C)确定5command名称cmdExitCaption(&X)退出6tex

18、t名称TxtPasswordPasswrodChar*7text名称txtCheckPasswrodChar*8data名称PasswordDataconnect;pwd=19981105DataBaseNameC:Program Files电子通讯录通讯录.mdb2.程序代码编写2.1登录窗口代码 本窗口的代码相对较小,只要是判断输入的密码是否与数据库中的密码一致,若一致则打开主窗口,否则显示出错信息。该代码只要在cmdConfirm_Click的鼠标单击事件中完成。主要代码如下:Private Sub cmdConfirm_Click()PasswordData.RecordSource

19、= select * from 密码 where 用户= & txtUser.Text & and (密码= & txtPassword.Text & or 密码=Null) PasswordData.Refresh If PasswordData.Recordset.RecordCount 1 Then a = MsgBox(密码不正确!请重输!, vbExclamation + vbOKOnly, 电子通讯录) Exit Sub ElseIf PasswordData.Recordset.RecordCount = 1 Then Unload Me frmMain.ShowEnd Sub为

20、了使输入者方便,还增加了光标定位程序,该功能主要在KeyDown事件中完成。光标定位主要是判断是否按下“光标移动键”或“回车键”,在Visual Basic中,是通过键的ASCII值来判断的,某键的ASCII值可用vbKey+键名来代替,如:上箭头可用vbKeyUp来代替,通过if语句判断便可完成,详细见源程序。2.2主窗口代码 在主窗口中,主要是根据菜单,调用相应的窗口,用“窗口名.show”语句来完成,例如点击“数据输入”菜单子项的代码如下:Private Sub InputMenu_Click()frmInput.ShowEnd Sub 在主窗口中,主要是根据菜单,调用相应的窗口,用“窗

21、口名.show”语句来完成,例如点击“数据输入”菜单子项的代码如下:2.3输入窗口代码 输入窗口是系统中比较重要的窗口,要让使用者方便地输入数据,光标的移动就必须灵活、方便;而且是否入到数据库中要直观,修改也要比较方便。为了使光标定位程序编写较为简单,使用了控件数组即TxtField文本框控件数组,在程序中通过Index的值来判断当前焦点在哪个文本框中,然后再根据KeyCode的值来决定将光标定位到哪个文本框中,光标定位用文本框的方法setfocus来完成,如:txtField(index).setfocus。在数据输入完后,按下回车键,光标自动定到“存库”按钮上,此时再按下回车键便可将数据存

22、入库中。保存数据时,是向数据库添加一条记录,这里使用了数据库捆绑控件Data,先将Data控件与数据库中的“Address”表绑定,使用Data控件中的“RecordSet”来操作数据库,Data控件中,可用RecordSet.AddNew来添加一条新记录,将文本框的文本赋给相应的字段即:Recordset.Fields(i).Value = txtField(i).Text,可用一个循环语名来完成,最后,调用RecordSet.Update语句来修改数据库。此外,使用了Visual Basic的Dbgrid控件,通过该控件可以直接操作数据库里的数据,若发现数据库中某条记录有错,可直接在Dbg

23、rid控件中修改,数据库里的数据也相应的修改,还可以点中Dbgrid网格中某一行,再调用Data控件的Recordset.Delete可删除该条记录,当然这些操作都在于Dbgrid与Data控件必须绑定。具体代码可见源程序。2.4查询窗口代码 Visual Basic的Data控件中的RecordSource可直接使用SQL查询语句,因此,对于查询可直接用SQL语句来完成。当条件输入框txtCondition中输入查询的条件,并选中要查询的字段(通过FieldCheck的选择)时,按下“查找”按钮,便将查询的SQL语句赋给Data控件的RecordSource,再将Data控件与Dbgrid控

24、件绑定,查询的结果便直接显示到网格上了。在这里关键要生成SQL语句,下面是生成SQL语句的代码:Private Sub cmdFind_Click()Dim SQLstring As StringIf txtCondition.Text = Then Exit SubSQLstring = select * from address whereIf FieldCheck(0).Value = 1 Then SQLstring = SQLstring & 姓名 like* & _ txtCondition.Text & * or If FieldCheck(1).Value = 1 Then S

25、QLstring = SQLstring & 通讯地址 like* & _ txtCondition.Text & * or If FieldCheck(2).Value = 1 Then SQLstring = SQLstring & 联系电话 like* & _ txtCondition.Text & * or If FieldCheck(3).Value = 1 Then SQLstring = SQLstring & 电子信箱 like* & _ txtCondition.Text & * or SQLstring = Left(SQLstring, Len(SQLstring) -

26、5)AskData.RecordSource = SQLstringAskData.RefreshEnd Sub 上面代码中,通过对FieldCheck的Value是否等于1来判断是否是选中状态,若选中,则在SQL语句中增加该字段的查询条件,在SQL中使用like和通配符可进行模糊查找。 若想将查询出的结果打印出来,可以直接编写一段代码就行,在编写过程中,将打印机当成Printer对象使用,在其后面使用print语句便可完成打印输出任务。2.5打印窗口代码 打印窗口是整个系统中设计最为复杂的,要通过自己编写代码来完成打印任务。在该窗口中,设计两个PictureBox控件,一个作为背景,一个作为

27、纸张;再设计一个滚动条,通过滚动条来完成纸张的移动;再设计一个Dbgrid控件,通过Dbgrid的标题行列宽的调整来控制输出的列宽。 在程序编制过程中,每次行间距、字体大小的改变都将影响整张纸的布局,因此每次都应计算行间距、字体大小的改变所引起各种参数的变化。打印参数主要有边距、行距、行数等,首先计算一页中的行数,可由下面代码完成:LineHeight = Val(LineHeightCombo.Text) * 56.7 / 2Lines = (ShowWin.Height - 2000) / (LineHeight / 2 + ShowWin.TextHeight(陆)其次,计算总的页数,只

28、要将总记录数除以每页的行数便可得到:If PrintData.Recordset.RecordCount Mod Lines = 0 Then TotalPage = PrintData.Recordset.RecordCount / LinesElse TotalPage = PrintData.Recordset.RecordCount Lines + 1End If 当各参数确定后,就要调用打印模块,在打印模块中,首先要确定要列的位置,这里我利用Dbgrid的列宽来决定列的位置,通过一个循环,将Dbgrid的列宽赋给对应的CurrentX的值:For j = 1 To .Fields.C

29、ount tempX = tempX + AdjustGrid.Columns(j - 1).Width ps.CurrentX = tempX ps.Print .Fields(j - 1).Name; Next 具体实施时,先在Picture控件上显示打印结果(预览),然后再输出。代码可参见附录的源程序。2.6密码修改窗口代码密码修改首先应有一个确认身份的过程,因此调用登录窗口,先验证是否有权修改,若身份符合,打开修改窗口,修改成功显示一个提示框。在这个窗口中,只要使用了Data控件中的RecordSet.Edit的方法。四、工程发布 界面和程序代码调试完后,将工程生成一个执行文件,该执行

30、文件要在Visual Basic环境中才能运行,为了能让工程在其它机器上能运行,就必须进行发布,也就是说要做一个安装盘,此时可通过Visual Basic所带的“应用程序安装向导”来进行软件发布,按照提示一步步操作便可完成。五、系统试运行 将上面制作好的安装盘刻录到光盘中,或复制到三张磁盘里,然后到没有安装Visual Basic环境的机器上,点击盘中的“Setup”应用程序,按提示安装,安装后在“程序”菜单中打开“电子通讯录管理系统”。再请一个不了解此程序的人自由地输入、查询、打印,看看系统是否正常运行,若有错则应重新调试。若上面步骤能顺利完成表明整个工程已经完成。六、帮助文件及使用手册完成

31、作为一个完整的软件系统来说,帮助文件和使用手册是不能少的,帮助文件可以帮助初学者方便使用系统。Visual Basic应用程序的帮助文件可用Word制作,先将帮助文件的文字和图片在Word中编辑完成,然后保存为.RTF格式,再利用Visual Basic光盘中的HCW帮助文件制作系统,将其生成Windows通过帮助文件格式,再与系统对接便可。由于该系统较为简单,因此略去了帮助文件的制作。七、致谢本系统制作过程中,得到祁云嵩老师的大力帮助,在此表示衷心的感谢。八、参考文献1 Visual Basic 程序设计快速入门 刘炳文著 人民邮电出版社2 Visual Basic 程序设计基础 段银田等著

32、 高等教育出版社3 Visual Basic 参考手册 王克已编 人民邮电出版社4 SQL使用指南 Allen G.Taylor著 吴言等译 电子工业出版社5 Office 2000 中文版使用与技巧 高越朋等著 清华大学出版社九 附录(源程序)1. 登录窗口Private Sub txtPassword_KeyDown(KeyCode As Integer, Shift As Integer) If KeyCode = vbKeyUp Then txtUser.SetFocus If KeyCode = 13 Then cmdConfirm_ClickEnd SubPrivate Sub t

33、xtUser_KeyDown(KeyCode As Integer, Shift As Integer) If KeyCode = vbKeyDown Or KeyCode = 13 Then txtPassword.SetFocusEnd SubPrivate Sub cmdExit_Click() Unload MeEnd SubPrivate Sub cmdConfirm_Click() If txtUser.Text = Thena = MsgBox(请输入你的用户名!, vbExclamation + vbOKOnly, 电子通讯录) Exit Sub End IfPasswordD

34、ata.RecordSource = select * from 密码 where 用户= & _ txtUser.Text & and (密码= & _ txtPassword.Text & or 密码=Null) PasswordData.Refresh If PasswordData.Recordset.RecordCount 0 And KeyCode = vbKeyUp Then txtField(Index - 1).SetFocus txtField(Index - 1).SelStart = 0 txtField(Index - 1).SelLength = 10ElseIf

35、Index 4 And (KeyCode = vbKeyDown Or KeyCode = 13) Then txtField(Index + 1).SetFocus txtField(Index + 1).SelStart = 0 txtField(Index + 1).SelLength = 10ElseIf Index = 4 And KeyCode = 13 Then cmdSave_ClickEnd IfEnd SubPrivate Sub cmdSave_Click()a = MsgBox(真的将输入的数据存入到库中吗?, 36, 电子通讯录管理系统)If a 6 Then Exi

36、t SubInputData.Recordset.AddNewFor i = 0 To 4 On Error GoTo abc InputData.Recordset.Fields(i).Value = txtField(i).TextNext iInputData.Recordset.UpdateInputData.Recordset.MoveLastFor i = 0 To 4 txtField(i).Text = Next itxtField(0).SetFocusExit Subabc: temp = InputData.Recordset.Fields(i).Name & 输入太多文

37、字! a = MsgBox(temp, 16, 电子通讯录管理系统)End SubPrivate Sub InputGrid_HeadClick(ByVal ColIndex As Integer)InputData.RecordSource = select * from address order by _ & InputData.Recordset.Fields(ColIndex).NameInputData.RefreshEnd SubPrivate Sub cmdExit_Click() Unload MeEnd SubPrivate Sub cmdDelete_Click() If

38、 InputData.Recordset.RecordCount 1 Then Exit Subtemp$ = 真的删除当前的“ & InputData.Recordset.Fields(0).Value & _ ”的记录吗? a = MsgBox(temp$, 36, 电子通讯录管理系统) If a 6 Then Exit Sub InputData.Recordset.Delete InputData.Recordset.MoveNextEnd Sub4. 查询窗口Private Sub cmdExit_Click() Unload MeEnd SubPrivate Sub cmdFind

39、_Click()Dim SQLstring As StringIf txtCondition.Text = Then Exit SubSQLstring = select * from address whereIf FieldCheck(0).Value = 1 Then SQLstring = SQLstring & 姓名 like* &_ txtCondition.Text & * or If FieldCheck(1).Value = 1 Then SQLstring = SQLstring & 通讯地址 like* &_ txtCondition.Text & * or If FieldCheck(2).V

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1