通讯录课程设计报告.docx
- 文档编号:11717041
- 上传时间:2023-03-31
- 格式:DOCX
- 页数:23
- 大小:1.74MB
通讯录课程设计报告.docx
《通讯录课程设计报告.docx》由会员分享,可在线阅读,更多相关《通讯录课程设计报告.docx(23页珍藏版)》请在冰豆网上搜索。
通讯录课程设计报告
通讯录课程设计报告
LT
1.需求分析
随着社会的发展,人际关系变得越来越重要,为了保持良好的人际关系,必须经常与亲戚、朋友、同学、同事保持联系,但是有时候存在着许多的限制条件,比如怎样找到交流对象的各种信息?
可能你会想到现实生活中的手机等通讯工具,由于这些工具的单一性,不可能在第一时间找到自己想要的信息资料,因此,为了能够快速查找到联系人的信息,节省查找时间,开发通讯录管理系统。
通讯录管理系统是一个基于SQL数据库储存和JAVA界面模式的个人通讯录管理系统。
它是将自己的联系人的具体信息集中管理,成为一个方便人们使用的小软件。
在开发过程中主要运用Java,SQLServer技术,由于开发工具和数据库之间的良好使用,可以为开发带来方便,使之成为一个可施行的系统。
从而达到开发的目的-----实现对通讯录信息的管理。
通过采用相关技术,以及老师的辅导和同学们的帮助,将系统设计的功能全部实现。
功能包括:
用户的登录,添加联系人信息,修改联系人信息,删除联系人信息,查询联系人信息,可以浏览全部通讯的联系人,并且可以根据数据表的各字段来查询你所要找的联系人等功能。
2.系统分析
2.1.系统的可行性研究
目的:
可行性研究的目的是用最小的代价在尽可能少的时间内确定问题是否能够解决。
而该系统正式用比较简单的VFP语言来编写的小型的、实用的通讯录信息管理系统,既能很好地完成对用户信息的管理,又比较经济实惠。
本系统采用的是VFP语言,在技术难度方面,由于有指导老师的指导和相关参考文献,特别是网上也有很丰富的相关资料,通过参考一些功能模块程序的设计,实现该系统是完全可以的。
本系统的设计是在windowsXP中文版环境下,使用Visual Foxpro6.0开发的。
它是可以运行于windowsXP相关平台的数据库开发系统。
Visual Foxpro6.0不仅可以简化数据库管理,而且应用程序的开发流程更为合理,它使组织数据,定义数据库规则和建立应用程序的工作变得简单易行,利用可视化的设计工具和向导,用户可以快速的创建表单、查询等。
2.2.功能需求分析
本系统主要实现对通讯录信息进行管理,需要实现以下几个方面的管理功能:
(1)通讯录管理信息:
信息的添加、删除、浏览、修改和查询等操作。
(2)系统维护:
包括用户登录,用户修改密码,数据的修改、浏览、添加、删除以及按姓名、联系方式、地址进行查询。
3.
系统设计
3.1.系统模块设计
图3-1系统模块结构图
添加:
系统提示用户添加新人员信息,输入到文件中,人员的信息包含姓名(name)、电话号码(phonenum)、类型(type)、电子邮件(email)。
显示:
该功能显示所有以保存的人员的姓名、电话号码、类型和电子邮件。
查询:
由用户输入要查找的人员姓名、电话号码或者类型,系统将调用查找函数,使用相关文件命令输出所查找人员的相关信息。
删除:
由用户输入需要删除人员的姓名,系统调用删除函数将此人所有相关信息删除。
修改:
由用户输入需要修改的人员的姓名,系统调用修改函数,用户修改需修改的信息。
保存退出:
完成任务,退出系统。
3.2.数据库设计
数据库中包括系统用户表、通讯表各表结构设计如下。
1、系统用户表
用户表代表了一个用户的个人信息,是不允许随意修改的,所以本系统采用了一定的保密措施,主要是用户的管理,所有的用户信息保存在这个表中,该表被命名为用户表.DBF,其结构表,如表3.1所示。
表3.1系统用户表结构
编号
字段名
字段类型
字段长度
小数位数
作用
1
姓名
字符型
10
0
用户名称
2
密码
字符型
3
0
用户密码
3
用户类型
数值型
1
0
用户类型
2、通讯录。
DBF。
其结构如表3.2所示。
主要是通讯录信息的管理,包括联系方式、地址、电话等。
该表被命名为通讯录.DBF,主要是在建表时利用表设计器对表四要素:
字段、类型、长度、小数位相应的设置。
其结构表如表3.2所示。
表3.2通讯录表结构
编号
字段名
字段类型
字段长度
小数位数
索引
1
编号
数据型
2
0
主索引
2
姓名
字符型
6
0
3
性别
字符型
2
0
4
出生年月
日期型
8
0
5
住宅电话
字符型
10
0
6
办公电话
字符型
10
0
7
手机
字符型
11
0
8
小灵通
字符型
8
0
9
字符型
9
0
10
字符型
20
0
11
备注
字符型
10
0
12
家庭住址
字符型
10
0
13
邮政编码
字符型
10
4.系统实施
4.1.开发环境
⑴ 开发条件:
硬件:
没人一台Intel Pentium 4以上的计算机
软件:
Word、Visio、Myeclipes6.0.1、Windows XP、SQL Server2000;
⑵ 开发时间:
开发的整个过程在三周内完成;
⑶ 经费问题:
经费少,适合学生开发的简单系统。
4.2.建立数据库
4.2.1.数据库创建代码
createdatabase通讯录管理系统
onprimary
(
name='通讯录管理系统',
Filename='d:
\数据库\通讯管理系统.mdf',
size=10mb,
maxsize=100mb,
filegrowth=20%
)
logon
(
name='通讯录管理系统',
filename='d:
\数据库\通讯录管理系统.ldf',
size=20mb,
maxsize=100mb,
filegrowth=20%
)
4.2.2.数据库表创建代码
4.2.2.1.用户表
createtable用户
(
用户名char(20)primarykey,
密码char(40)notnull,
)
4.2.2.2.联系人表
createtable联系人
(
编号char(10)primarykey,
姓名char(10),
性别char(4)notnull,
电话号码char(10)notnull,
E_mailchar(50),
地址char(30),
分组类型char(10),
)
4.2.2.3.分组表
createtable同学分组
(
同学编号char(10)primarykeyFOREIGNKEY(同学编号)REFERENCES联系人(编号),
姓名char(10),
)
go
createtable朋友分组
(
朋友编号char(10)primarykeyFOREIGNKEY(朋友编号)REFERENCES联系人(编号),
姓名char(10),
)
go
createtable同事分组
(
同事编号char(10)primarykeyFOREIGNKEY(同事编号)REFERENCES联系人(编号),
姓名char(10),
)
4.2.2.4.视图创建代码
go
createview朋友
as
select朋友分组.朋友编号,朋友分组.姓名,电话号码,性别,E_mail,分组类型
from朋友分组,联系人
where朋友分组.朋友编号=联系人.编号
go
createview同学
as
select同学分组.同学编号,同学分组.姓名,电话号码,性别,E_mail,分组类型
from联系人,同学分组
where同学分组.同学编号=联系人.编号
go
createview所有联系人
as
select联系人.姓名,联系人.电话号码,联系人.性别,联系人.E_mail,分组类型
from联系人
go
4.2.2.5.存储过程代码创建
createprocedure_朋友
as
select朋友分组.朋友编号,朋友分组.姓名,电话号码,性别,E_mail,分组类型
from联系人,朋友分组
where朋友分组.朋友编号=联系人.编号
go
createprocedure_同学
as
select同学分组.同学编号,同学分组.姓名,电话号码,性别,E_mail,分组类型
from联系人,同学分组
where同学分组.同学编号=联系人.编号
go
createprocedure_所有联系人
as
select*
from联系人
4.3.程序设计
4.3.1.主程序的设计
程序在运行期间要使用部分的变量来传递数据,所有这些变量都要在程序中定义。
在VisualFoxPro6.0中新建一个项目文件,以“个人通讯录管理系统”的名称保存。
打开该项目的管理器,在管理器的“代码”选项卡中添加一个名为“MAIN”的代码文件,并在“MAIN”代码文件窗口中添加代码如下:
SETTALKOFF&&关闭对话
SETESCAPEOFF&&关闭ESCAPE键
SETEXACTON&&打开完全匹配
SETEXCLUSIVEON&&打开独占
SETCONSOLEON&&将输出结果到发送到主窗口或当前窗口
SETDATETOLONG&&设置长日期
SETSCOREOFF&&关闭分值栏
SETSAFETYOFF&&关闭安全提示
SETSTATUSBAROFF&&关闭系统提示栏
SETCENTURYON&&打开世纪开关
SETDELETEDON&&屏闭删除项
SETSYSMENUOFF&&关闭系统菜单
SETNOTIFYOFF&&关闭提示
&&设置系统窗口属性
_SCREEN.MaxButton=.F.&&取消最大化按钮
_SCREEN.MaxWidth=800&&设置最大宽度
_SCREEN.MaxHeight=600&&设置最大高度
_SCREEN.Caption="个人通讯录管理系统"&&设置窗口标题
_SCREEN.Picture='6.jpg'&&设置窗口背景图片
_SCREEN.AutoCenter=.T.&&指定表单初次显示时,自动位于主窗口中央
publicUserName,UserType&&定义全局变量
Doxtcd.mpr&&打开菜单
DoFormfrmLogin.scx
READEVENTS
ProcedureOnQuit
CLEAREVENTS
CLOSEALL
QUIT
Endprocedure
4.3.2.登录界面的设计
4.3.2.1.用户登录模块
登录界面的作用是为了验证用户的合法性,只有合法的用户才能进入系统,并且要求使用者提供密码。
设计完成的登录界面如图4.1所示。
图4.3.1登录设计界面
在该界面中显示当前的操作时间,该时间为本系统从操作系统中取出的时间,而且不允许操作者进行修改,所以在表单执行时会自动显示该时间,并设置成只读状态。
此外,该登录界面还设置了一些美化操作。
采用动态效果,让“欢迎使用通讯录系统”动起来。
密码错误将不许用户进入系统。
上述功能的代码设计如下:
对象cmdOK过程:
Click
IFALLTRIM(thisform.txtUserName.Value)==''
MessageBox("请输入用户名")
RETURN
ENDIF
IFALLTRIM(thisform.txtUserPwd.Value)==''
MessageBox("请输入密码")
RETURN
ENDIF
SELECT用户表&&查找指定用户名为的记录
LocateForAllt(用户名)=Allt(thisform.txtUserName.Value)
IfFound()==.T.&&如果找到
IfAllt(密码)==Allt(thisform.txtUserPwd.Value)&&比较密码,成功则进入
MessageBox("欢迎光临",64,"提示信息")
UserName=用户名
UserType=用户类型
releasethisform
Else&&比较密码不成功
MessageBox("密码不正确",16,"错误提示")
Endif
Else&&没有找到指定用户
MessageBox("用户名不存在",16,"错误提示")
Endif
对象:
Timer1过程:
Timer
locali,j,k
i=int(rand()*255)
j=int(rand()*255)
k=int(rand()*255)
thisform.label3.forecolor=RGB(i,j,k)
ifthisform.label3.left+180>0
thisform.label3.left=thisform.label3.left-10
else
thisform.label3.left=360
Endif
4.3.2.2.用户注册模块
设计完成的注册界面如图4.2所示。
图4.3.2 登录设计界面
对象:
command(确定),过程:
click
public mima1,mima2
mima1=trim(thisform.text2.value)
mima2=trim(thisform.text3.value)
if mima1==mima2
USE 用户表
APPEND BLANK
REPLACE 用户名 WITH ALLTRIM(THISFORM.TEXT1.VALUE)
REPLACE 密码 WITH ALLTRIM(THISFORM.TEXT2.VALUE)
messagebox('恭喜您,注册成功~')
else
y=messagebox('两次输入的密码不一致~',16+0+0,'警告~')
if y=1
thisform.text2.value=""
thisform.text3.value=""
endif
endif
4.3.2.3.主界面设计
该系统提供的所有功能都放置在一个统一的界面中供用户选择,该界面称之为主界面。
本系统的主界面采用了菜单交互方式,如图4.2所示。
图4.3.3 主界面
在此界面上还提供了4项功能,下面对其分别进行介绍。
4.3.2.4. 用户密码管理模块
用户密码修改界面如图4.3所示。
该界面的所有功能都在相同的界面下操作,选择菜单对应的用户密码修改/修改密码命令,弹出以下界面。
上述功能的代码设计如下:
图4.3.4 用户密码管理界面
(1)确定:
对象 cmdOk 过程:
Click
If thisform.txt用户名.Value = ""
MessageBox("用户名不存在", 16, "提示")
return
Endif
If ALLTRIM(thisform.txtPwd.Value) !
= ALLTRIM(thisform.txt密码.Value)
MessageBox("密码不正确", 16, "提示")
return
Endif
If ALLTRIM(thisform.txtPwd1.Value) == ""
MessageBox("请输入新密码", 16, "提示")
return
Endif
If ALLTRIM(thisform.txtPwd1.Value) !
= ALLTRIM(thisform.txtPwd2.Value)
MessageBox("新密码与确认密码不同", 16, "提示")
return
Endif
&&设置用户记录的密码
thisform.txt密码.Value = ALLTRIM(thisform.txtPwd1.Value)
TableUpdate(.T.) &&保存缓冲区中的数据
release thisform &&关闭表单
MessageBox("密码已经成功修改,请在下次登录时使用新密码")
(2)取消:
对象 cmdCancel 过程 Click
release thisform
4.3.2.5.查询管理模块
查询管理模块界面如图4.5—4.6所示。
这是系统的查询部分,是使用该系统的关键核心部分,里面涉及查询常用的三种方式,包括姓名、住址、联系方式查询。
上述功能的代码设计如下:
图4.3.5按姓名查询界面
对象:
Command1(查询) 过程:
Click
xm=allt(thisform.text1.value) loca for 姓名=xm
if.not.found( )
. messagebox("查无此人",1+32,"信息") endif
thisform.refresh
对象:
Command2(退出) 过程:
Click
thisform.release
图4.3.6按住址查询界面
对象:
Command1(查询) 过程:
Click
xm=allt(thisform.text1.value)
loca for 家庭地址=xm
if.not.found( )
messagebox("查无此人",1+32,"信息") endif
thisform.refresh
对象:
Command2(退出) 过程:
Click
Thisform.release
图4.3.7按通讯方式查询界面
对象:
Command1(查询) 过程:
Click
tx=allt(thisform.text1.value)
loca for 住宅电话=tx.or.手机=tx.or.办公电话=tx.or.小灵通=tx
if.not.found( )
messagebox("查无此人",1+32,"信息")
else
brow for 住宅电话=tx.or.手机=tx.or.办公电话=tx.or.小灵通=tx
thisform.refresh
endif
4.3.2.6.系统退出管理模块
系统运行完成之后总要有关闭或退出模块以防止他人使用,为了用户的使用方便,该系统采用菜单交互式,即由用户选择文件/退出命令,退出系统。
实现系统的关闭。
界面如图4.7所示。
图4.3.6 系统退出管理窗口
4.3.2.7.导入模块
该模块主要实现的功能是从文件中导入人员信息。
通过函数voidload()来实现,打开文件进行通讯录建立操作,通过移动指针将通讯录的信息记录在文件中。
4.4.系统测试
图4.4.1程序的开始主菜单页面
图4.4.2程序的录入界面
图4.4.3程序的查询菜单界面
图4.4.4程序的显示界面
图4.4.5程序的按姓名查询界面
图4.4.6程序的按电话号码查询界面
图4.4.7程序的按类型查询界面
图4.4.8程序的删除界面
图4.4.9程序删除后的界面
图4.4.10程序的修改界面
图4.4.11程序修改后的界面
图4.4.12
程序的退出界面
5.课程设计总结
本次课程设计我选择的题目是通讯录管理系统的程序设计。
通讯录系统是我们很常用一个小系统,开始选择题目是感觉这个应该简单点,我自知C语言和数据结构学的都不够好,但做了之后才知道并不简单。
不过通过设计这个程序,我从中学到了很多。
这个系统中每个人员的信息都要求包括姓名、电话号码、类型和电子邮件。
程序具有数据录入、显示、查询、删除、修改、等功能,所以我采用链表实现,其中还应用了数组的知识。
在编写过程中,开始我只是简单把一些函数罗列在了一起,毫无逻辑性,导致有的错误看不出来,遇到了不少麻烦,甚至改了好多次都没有成功,不过在老师和同学的帮助下,最终的程序基本实现了所要求的功能,但在一些方面还不够完善。
例如在添加模块中,连续输入时可以辨别是否重复,一旦返回主菜单了再次输入时则无法辨别是否与以前所存储的重复。
通过这个小系统的设计我深深的体会到我学习的这些知识还远远不够,为了能做出更好的程序我们必须积累知识,打开思路,因为只有多多练习才能写出较好的程序。
总之,这次的课程设计使我体会较大的是应用比理论学习难得多,它涉及到各种实际问题。
但实习时所用到的这些知识会有更深的记忆,理解也更加透彻。
6.参考文献
[1] 《C程序设计教程(第3版)》 作者:
崔武子 李青等
[2] 《数据结构(C语言版)》 作者:
严蔚敏 吴伟民
[3] 《数据结构课程设计》作者:
苏仕华
[4] 《数据结构课程设计》作者:
滕国文
[5] 《管理信息系统》作者:
郭海佳鲍春生
评价项目
具体要求
分值
评分
工作量与态度
全面完成课程设计的任务,工作量饱满,按时出勤
20
20
18
16
14
≤12
设计质量
UML建模的质量高,图表规范,文理通顺,基础理论扎实,能综合运用所学知识分析和解决问题
60
60
55
50
45
≤40
程序质量
动手能力强,采用面向对象的方法编写程序,程序符合UML建模的思想,功能完善,界面友好,代码没有错误
20
20
17
14
11
≤8
成绩等级
优秀良好中等及格不及格
分数
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 通讯录 课程设计 报告
![提示](https://static.bdocx.com/images/bang_tan.gif)