通讯录课程设计报告Word下载.docx
《通讯录课程设计报告Word下载.docx》由会员分享,可在线阅读,更多相关《通讯录课程设计报告Word下载.docx(23页珍藏版)》请在冰点文库上搜索。
3.2.数据库设计
数据库中包括系统用户表、通讯表各表结构设计如下。
1、系统用户表
用户表代表了一个用户的个人信息,是不允许随意修改的,所以本系统采用了一定的保密措施,主要是用户的管理,所有的用户信息保存在这个表中,该表被命名为用户表.DBF,其结构表,如表3.1所示。
表3.1系统用户表结构
编号
字段名
字段类型
字段长度
小数位数
作用
1
姓名
字符型
10
用户名称
2
密码
3
用户密码
用户类型
数值型
2、通讯录。
DBF。
其结构如表3.2所示。
主要是通讯录信息的管理,包括联系方式、地址、电话等。
该表被命名为通讯录.DBF,主要是在建表时利用表设计器对表四要素:
字段、类型、长度、小数位相应的设置。
其结构表如表3.2所示。
表3.2通讯录表结构
索引
数据型
主索引
6
性别
4
出生年月
日期型
8
5
住宅电话
办公电话
7
手机
11
小灵通
9
QQ
e-mail
20
备注
12
家庭住址
13
邮政编码
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='
\数据库\通讯录管理系统.ldf'
size=20mb,
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联系人(编号),
go
createtable朋友分组
朋友编号char(10)primarykeyFOREIGNKEY(朋友编号)REFERENCES联系人(编号),
createtable同事分组
同事编号char(10)primarykeyFOREIGNKEY(同事编号)REFERENCES联系人(编号),
4.2.2.4.视图创建代码
createview朋友
as
select朋友分组.朋友编号,朋友分组.姓名,电话号码,性别,E_mail,分组类型
from朋友分组,联系人
where朋友分组.朋友编号=联系人.编号
createview同学
select同学分组.同学编号,同学分组.姓名,电话号码,性别,E_mail,分组类型
from联系人,同学分组
where同学分组.同学编号=联系人.编号
createview所有联系人
select联系人.姓名,联系人.电话号码,联系人.性别,联系人.E_mail,分组类型
from联系人
4.2.2.5.存储过程代码创建
createprocedure_朋友
from联系人,朋友分组
createprocedure_同学
createprocedure_所有联系人
select*
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)=='
请输入密码"
SELECT用户表&
查找指定用户名为的记录
LocateForAllt(用户名)=Allt(thisform.txtUserName.Value)
IfFound()==.T.&
如果找到
IfAllt(密码)==Allt(thisform.txtUserPwd.Value)&
比较密码,成功则进入
MessageBox("
欢迎光临"
64,"
提示信息"
UserName=用户名
UserType=用户类型
releasethisform
Else&
比较密码不成功
密码不正确"
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>
thisform.label3.left=thisform.label3.left-10
else
thisform.label3.left=360
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)
密码
ALLTRIM(THISFORM.TEXT2.VALUE)
messagebox('
恭喜您,注册成功~'
y=messagebox('
两次输入的密码不一致~'
16+0+0,'
警告~'
)
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
过程:
If
thisform.txt用户名.Value
=
16,
提示"
return
ALLTRIM(thisform.txtPwd.Value)
!
ALLTRIM(thisform.txt密码.Value)
ALLTRIM(thisform.txtPwd1.Value)
==
请输入新密码"
ALLTRIM(thisform.txtPwd2.Value)
新密码与确认密码不同"
设置用户记录的密码
thisform.txt密码.Value
ALLTRIM(thisform.txtPwd1.Value)
TableUpdate(.T.)
保存缓冲区中的数据
release
thisform
关闭表单
密码已经成功修改,请在下次登录时使用新密码"
(2)取消:
cmdCancel
过程
release
thisform
4.3.2.5.查询管理模块
查询管理模块界面如图4.5—4.6所示。
这是系统的查询部分,是使用该系统的关键核心部分,里面涉及查询常用的三种方式,包括姓名、住址、联系方式查询。
图4.3.5按姓名查询界面
Command1(查询)
xm=allt(thisform.text1.value)
loca
for
姓名=xm
if.not.found(
.
messagebox("
查无此人"
1+32,"
信息"
thisform.refresh
Command2(退出)
Click
thisform.release
图4.3.6按住址查询界面
xm=allt(thisform.text1.value)
家庭地址=xm
Thisform.release
图4.3.7按通讯方式查询界面
tx=allt(thisform.text1.value)
住宅电话=tx.or.手机=tx.or.办公电话=tx.or.小灵通=tx
brow
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]
《管理信息系统》作者:
郭海佳鲍春生
评价项目
具体要求
分值
评分
工作量与态度
全面完成课程设计的任务,工作量饱满,按时出勤
18
16
14
≤12
设计质量
UML建模的质量高,图表规范,文理通顺,基础理论扎实,能综合运用所学知识分析和解决问题
60
55
50
45
≤40
程序质量
动手能力强,采用面向对象的方法编写程序,程序符合UML建模的思想,功能完善,界面友好,代码没有错误
17
≤8
成绩等级
优秀良好中等及格不及格
分数