个人通讯录程序设计论文资料.docx
《个人通讯录程序设计论文资料.docx》由会员分享,可在线阅读,更多相关《个人通讯录程序设计论文资料.docx(20页珍藏版)》请在冰豆网上搜索。
个人通讯录程序设计论文资料
一、选题意义及目的
1.1课程设计选题
个人通讯录
1.2课程设计的目的
本次设计开发的软件为个人通讯录系统软件,是鉴于目前人们联系人日益增加,而传统的手工通讯录又不能跟上时代的发展步伐,人们对个人通讯录的自动化与准确化的要求日益强烈的背景下构思出来的,该软件设计完成后可用于所有个人通讯录的管理。
目前社会上信息管理系统发展飞快,各行各业都引入了信息管理软件来管理自己日益增长的各种信息,个人通讯录也是有了很大的发展,商业化的个人通讯录软件也不少。
但本系统完全独立开发,力求使系统功能简洁明了,但功能齐全且易于操作。
我们的交往范围不断扩大,这在丰富了我们的生活的同时也加大了我们对朋友信息记忆的难度。
这不仅影响我们的正常交流,甚至该我们带来不少尴尬。
这就需要我们建立一个通讯录管理系统来对我们的好友信息进行便捷的管理。
通讯录管理系统的主要任务是通过大量的资料提供管理所需的信息这就必须存储和管理大量的资料。
因此建立一个良好的数据组织和数据库,使整个系统都可以及时、方便、准确的调用和管理所需要的资料,是衡量信息系统开发工作好坏的重要指标之一。
本系统主要是为了更好的管理每个人的通讯录,给每个人提供一个井然有序的管理平台,防止手工管理混乱,造成不必要的麻烦。
二、需求分析
2.1一个完整的个人通讯录系统主要应该包括四个模块
(1)登陆管理系统
输入账户密码,密码正确进入系统,用户名与密码均不能为空,若输入正确则能连接数据库显示“欢迎使用”,若密码错误则显示“密码错误”,若输入的用户错误则显示“没有此用户,请重新输入”
(2)个人信息查询
输入要查询联系人的姓名、学号进入系统查找联系人
(3)个人信息维护(包括增加,修改,删除)
输入要修改联系人的姓名或学号在数据库中找到此人,输入新的联系人信息,保存修改即可完成信息修改。
(4)退出
2.2模块之间的联系可表示为
登录用户表
联系人信息表
2.3技术支持
Visual Basic是一种可视化的、面对对象和条用事件驱动方式的结构化高级程序设计,可用于开发Windows环境下的种类应用程序。
它简单易学、效率高,且功能强大,可以与Windows的专业开发工具SDK相媲美,而且程序开发人员不必具有C/C++编程基础。
在Visual Basic环境下,利用事件驱动的编程机制、新颖易用的可视化设计工具,使用Windows内部的应用程序接口函数,以及动态链接库、动态数据交换、对象的链接与嵌入、开放式数据访问等技术,可以高效、快速地开发出Windows环境下功能强大、图形界面丰富的应用软件系统。
总的来说,Visual Basic具有以下特点:
可视化编程:
用传统程序设计语言设计程序时,都是通过编写程序代码来设计用户界面,在设计过程中看不到界面的实际显示效果,必须编译后运行程序才能观察。
如果对界面的效果不满意,还要回到程序中修改。
Visual Basic提供了可视化设计工具,把Windows界面设计的复杂性“封装”起来,开发人员不必为界面设计而编写大量程序代码。
只需要按设计要求的屏幕布局,用系统提供的工具,在屏幕上画出各种“部件”,即图形对象,并设置这些图形对象的属性。
Visual Basic自动产生界面设计代码,程序设计人员只需要编写实现程序功能的那部分代码,从而可以大大提高程序设计的效率。
面向对象的程序设计:
4.0版以后的Visual Basic支持面向对象的程序设计,但它与一般的面向对象的程序设计语言(C++)不完全相同。
在一般的面向对象程序设计语言中,对象由程序代码和数据组成,是抽象的概念。
而Visual Basic则是应用面向对象的程序设计方法(OOP),把程序和数据封装起来作为一个对象,并为每个对象赋予应有的属性,使对象成为实在的东西。
在设计对象时,不必编写建立和描述每个对象的程序代码,而是用工具画在界面上,Visual Basic自动生成对象的程序代码并封装起来。
每个对象以图形方式显示在界面上,都是可视的。
结构化程序设计语言:
Visual Basic是在BASIC语言的基础上发展起来的,具有高级程序设计语言的语句结构,接近于自然语言和人类的逻辑思维方式。
Visual Basic语句简单易懂,其编辑器支持彩色代码,可自动进行语法错误检查,同时具有功能强大且使用灵活的调试器和编译器。
Visual Basic是解释型语言,在输入代码的同时,解释系统将高级语言分解翻译成计算机可以识别的机器指令,并判断每个语句的语法错误。
在设计Visual Basic程序的过程中,随时可以运行程序,而在整个程序设计好之后,可以编译生成可执行文件(.EXE),脱离Visual Basic环境,直接在Windows环境下运行。
访问数据库:
Visual Basic具有强大的数据库管理功能,利用数据控件和数据库管理窗口,可以直接建立或处理Microsoft Access格式的数据库,并提供了强大的数据存储和检索功能。
同时,Visual Basic还能直接编辑和访问其他外部数据库,这些数据库格式都可以用Visual Basic编辑和处理。
Visual Basic提供开放式数据连接,即ODBC功能,可通过直接访问或建立连接的方式使用并操作后台大型网络数据库。
在应用程序中,可以使用结构化查询语言SQL数据标准,直接访问服务器上的数据库,并提供了简单的面向对象的库操作指令和多用户数据库访问的加锁机制和网络数据库的SQL的编程技术,为单机上运行的数据库提供了SQL网络接口,以便在分布式环境中快速而有效地实现客户/服务器方案
三、程序代码
(1)登录系统
PrivateSubdenglubtn_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)Handlesdenglubtn.Click
DimnameStrAsString=uerscmb.Text
DimpwdStrAsString=txtpwd.Text
'初始验证用户名密码不能为空
IfnameStr=""Then
MsgBox("用户名不能为空")
uerscmb.Focus()
Return
EndIf
IfpwdStr=""Then
MsgBox("密码不能为空")
txtpwd.Focus()
Return
EndIf
'从配置文件中获取连接字符串
DimconnStrAsString=ConfigurationManager.ConnectionStrings("tongxunlu.My.MySettings.tongxunluConnectionString").ConnectionString
'建立和数据库的连接
DimconnAsSqlConnection=NewSqlConnection(connStr)
DimcmdAsSqlCommand=NewSqlCommand()
cmd.Connection=conn
cmd.CommandText="Select*fromdengluwhereusers='"&nameStr&"'"
DimreaderAsSqlDataReader=Nothing
Try
'打开链接
conn.Open()
'执行命令
reader=cmd.ExecuteReader()
Ifreader.Read()Then
IfpwdStr=reader("pwd")Then
MsgBox("欢迎使用!
")
执行.Show()
Else
MsgBox("密码错误!
")
EndIf
Else
MsgBox("没有此用户,请重新输入!
")
EndIf
CatchexAsException
'抛出异常
ThrowNewApplicationException(ex.ToString())
Finally
reader.Close()
conn.Close()
EndTry
EndSub
(2)注册用户
PrivateSubButton1_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton1.Click
DimstrNameAsString=txtName.Text
DimstrPwd1AsString=txtPwd1.Text
DimstrPwd2AsString=txtPwd2.Text
IfstrName=""Then
MsgBox("用户名不能为空",MsgBoxStyle.Information,"提示")
txtName.Focus()
Return
EndIf
IfstrPwd1=""Then
MsgBox("密码不能为空",MsgBoxStyle.Information,"提示")
txtPwd1.Focus()
Return
EndIf
IfstrPwd2=""Then
MsgBox("确认密码不能为空",MsgBoxStyle.Information,"提示")
txtPwd2.Focus()
Return
EndIf
IfstrPwd1<>strPwd2Then
MsgBox("确认密码与密码必须相同",MsgBoxStyle.Information,"提示")
txtPwd2.Focus()
Return
EndIf
IfstrPwd1.Length<6OrstrPwd1.Length>10Then
MsgBox("密码长度在6-10位之间",MsgBoxStyle.Information,"提示")
txtPwd1.Focus()
Return
EndIf
‘建立连接
DimconnStrAsString=_
ConfigurationManager.ConnectionStrings("tongxunlu.My.MySettings.tongxunluConnectionString").ConnectionString
DimconnAsSqlConnection=NewSqlConnection(connStr)
DimadapterAsSqlDataAdapter=NewSqlDataAdapter("Select*fromdenglu",conn)
DimcmdAsSqlCommandBuilder=NewSqlCommandBuilder(adapter)
DimdsAsDataSet=NewDataSet()
adapter.Fill(ds,"users")
DimuserTableAsDataTable=ds.Tables("users")
DimrowAsDataRow=userTable.NewRow()
DimcmmAsSqlCommand=NewSqlCommand()
cmm.Connection=conn
cmm.CommandText="Select*fromdengluwhereusers='"&strName&"'"
DimreaderAsSqlDataReader
conn.Open()
reader=cmm.ExecuteReader()
Ifreader.Read()Then
MsgBox("用户名已存在!
")
EndIf
reader.Close()
row("users")=strName
row("pwd")=strPwd1
userTable.Rows.Add(row)
adapter.Update(ds.Tables("users"))
MsgBox("注册成功")
Me.Hide()
EndSub
(3)新建联系人
PrivateSubNewBtn_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesNewBtn.Click
IfTxtId.Text=""Then
MsgBox("学号不能为空",MsgBoxStyle.Information,"提示")
TxtId.Focus()
Return
EndIf
IfTxtName.Text=""Then
MsgBox("姓名不能为空",MsgBoxStyle.Information,"提示")
TxtName.Focus()
Return
EndIf
IfTxtphone.Text=""Then
MsgBox("电话不能为空",MsgBoxStyle.Information,"提示")
Txtphone.Focus()
Return
EndIf
IfTxtqq.Text=""Then
MsgBox("QQ不能为空",MsgBoxStyle.Information,"提示")
Txtqq.Focus()
Return
EndIf
IfTxtaddress.Text=""Then
MsgBox("地址不能为空",MsgBoxStyle.Information,"提示")
Txtaddress.Focus()
Return
EndIf
DimconnStrAsString=_
ConfigurationManager.ConnectionStrings("tongxunlu.My.MySettings.tongxunluConnectionString").ConnectionString
DimconnAsSqlConnection=NewSqlConnection(connStr)
DimadapterAsSqlDataAdapter=NewSqlDataAdapter("Select*fromlianxirentable",conn)
DimcmdAsSqlCommandBuilder=NewSqlCommandBuilder(adapter)
DimdsAsDataSet=NewDataSet()
adapter.Fill(ds,"lianxirentable")
DimuserTableAsDataTable=ds.Tables("lianxirentable")
DimrowAsDataRow=userTable.NewRow()
DimcmmAsSqlCommand=NewSqlCommand()
cmm.Connection=conn
cmm.CommandText="Select*fromlianxirentablewhereid='"&TxtId.Text&"'"
DimreaderAsSqlDataReader
conn.Open()
reader=cmm.ExecuteReader()
Ifreader.Read()Then
MsgBox("学号已存在!
")
Return
EndIf
reader.Close()
‘获取输入信息
row("id")=TxtId.Text
row("name")=TxtName.Text
IfRadioButton1.Checked=TrueThen
row("sex")=False
Else
row("sex")=True
EndIf
row("birthday")=Txtbirthday.Text
row("QQ")=Txtqq.Text
row("telephone")=Txtphone.Text
row("email")=Txtemail.Text
row("address")=Txtaddress.Text
userTable.Rows.Add(row)
’更新到表
adapter.Update(ds.Tables("lianxirentable"))
MsgBox("添加成功")
Me.Hide()
EndSub
(4)查看联系人
PrivateSubButton1_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton1.Click
IfComboBox1.Text="请选择"Then
MsgBox("请选择查询方式",MsgBoxStyle.OkOnly,"提示")
ExitSub
ElseIfComboBox1.Text="学号"Then
DimstrAsString=TextBox1.Text
Dgvlianxiren.DataSource=TongxunluDataSet1.lianxirentable.Select("idLike'"&str&"%'")
ElseIfComboBox1.Text="姓名"Then
DimstrAsString=TextBox1.Text
Dgvlianxiren.DataSource=TongxunluDataSet1.lianxirentable.Select("nameLike'"&str&"%'")
EndIf
IfTextBox1.Text=""Then
MsgBox("请输入查询条件",MsgBoxStyle.OkOnly,"警告")
ExitSub
EndIf
EndSub
(5)修改联系人
PrivateSubBaocunbtn_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesBaocunbtn.Click
DimrowAsDataRow=BindingContext(Dgvlianxiren.DataSource,Dgvlianxiren.DataMember).Current.row
'修改行中对应字段的数据
'row("id")=TxtId.Text
row("name")=TxtName.Text
IfRadioButton1.Checked=TrueThen
row("sex")=False
Else
row("sex")=True
EndIf
row("birthday")=Txtbirthday.Text
row("telephone")=txttelephone.Text
row("qq")=Txtqq.Text
row("email")=txtemail.Text
row("address")=Txtaddress.Text
'提交到数据库
LianxirentableTableAdapter.Update(TongxunluDataSet2.lianxirentable)
TongxunluDataSet2.lianxirentable.AcceptChanges()
EndSub
(6)删除联系人
PrivateSubButton2_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton2.Click
IfMsgBox("确定要删除此行数据吗?
",MsgBoxStyle.OkCancel)=MsgBoxResult.OkThen
'得到当前选中行对应的DAtatable中的DataRow
DimrowAsDataRow=BindingContext(dgvlianxiren.DataSource,dgvlianxiren.DataMember).Current.Row
'删除此行
row.Delete()
'更新到数据库
LianxirentableTableAdapter.Update(TongxunluDataSet3.lianxirentable)
TongxunluDataSet3.lianxirentable.AcceptChanges()
EndIf
EndSub
四、运行界面及文字说明
(1)登录系统
图1主界面
输入账号密码进入系统,用户名与密码均不能为空,若输入正确则能连接数据库显示“欢迎使用”,若密码错误则显示“密码错误”,若输入的用户错误则显示“没有此用户,请重新输入”
图2登录界面图3登录正确界面
账户密码输入正确自动进入执行主页面
图4执行界面
点击相应模块进入相应界面
(2)新建联系人
图5新建联系人界面
图6添加新建联系人信息界面
图7添加联系人成功界面
(3)查看联系人
可选择输入姓名或学号点击确定连入数据库查看已经存在的联系人。
图8查看联系人结果界面
(4)修改联系人
首先正确输入要修改联系人的基本信息连接数据库查找到此人,在输入要修改联系人的联系方式即可完成修改。
图9修改联系人界面
图10修改联系人信息成功界面
(5)删除联系人
图11删除联系人显示界面
图12确认删除联系人界面
除此之外还可以注册新用户,但要求注册新用户的密码长度要在6~10位之间且要重复输入一遍密码确认密码。
图13注册新用户界面
图14注册用户密码错误界面图5注册成功界面
退出个人通讯录,点击即可退出个人通讯录
5、小结
在本系统的开发过程中,由于本人是初次开发软件,在知识、经验方面都存在着不足。
小组内的沟通配合还存在欠缺,另外,在整个开发的过程中,时间也比较仓促。
因此,该系统必然会存在一些缺陷和不足。
因为对个人通讯录管理的整个流程不够熟悉,在需求分析时未能做到完全满足用户的需求。
虽然网络在个人通讯录管理中的应用不是很多,但是未来的发展方向,在本次开发过程由于硬件的限制,未能实现网络功能,因此在以后的系统更新过程中可能会造成一些不必要的数据损失。
尽管本管理系统存在着很多不足,但其功能全面、易于日后程