VC++通讯录管理系统课程设计报告.docx

上传人:b****5 文档编号:6347178 上传时间:2023-01-05 格式:DOCX 页数:11 大小:308.59KB
下载 相关 举报
VC++通讯录管理系统课程设计报告.docx_第1页
第1页 / 共11页
VC++通讯录管理系统课程设计报告.docx_第2页
第2页 / 共11页
VC++通讯录管理系统课程设计报告.docx_第3页
第3页 / 共11页
VC++通讯录管理系统课程设计报告.docx_第4页
第4页 / 共11页
VC++通讯录管理系统课程设计报告.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

VC++通讯录管理系统课程设计报告.docx

《VC++通讯录管理系统课程设计报告.docx》由会员分享,可在线阅读,更多相关《VC++通讯录管理系统课程设计报告.docx(11页珍藏版)》请在冰豆网上搜索。

VC++通讯录管理系统课程设计报告.docx

VC++通讯录管理系统课程设计报告

 

Vc++设计与开发

 

 

题目:

通讯录管理系统

班级:

11级计算机科学与技术1班

学号:

2013ZSB040105

姓名:

李鹏翔

 

摘要

通讯录使我们每个人必不可少的一个工具,此通讯录系统利用VC++设计完成,ACCESS数据库。

本着人性化的设计,此系统包括了联系人的学号,姓名、电话、家庭住址、E-mail、qq、和宿舍等信息,利用此系统可以对联系人进行查询、增加、修改、删除等操作,基本上可以满足我们对通讯录的所需。

对于通讯录功能的实现采用添加控件的方法,在程序设计中,采用了面向对象解决问题的方法。

程序通过调试运行,初步实现了设计目标,并且经过适当完善后,将可以应用在商业中解决实际问题。

针对以上要求,简易通讯管理系统具有以下特点:

1,操作简单,所有人不需学习就可以用的系统。

2,输入简单,输入框都有相关提示,我们可以按照提示输入相关信息。

3界面显示信息完整,界面上每一个编辑框显示一条联系人信息,很清楚地显示了联系人的全部信息。

关键字:

VC++,通讯录管理系统,acesss数据库.

一引言

计算机有着广泛的应用,通讯录是它的应用之一。

计算机本身有着许多传统系统文件无法超越的优点,比如检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。

利用这些优点提高通信录管理的效率,是企业的高效化、正规化正确选择与世界接轨的重要条件。

本次设计主要实现通讯录的查询、添加、修改、删除等功能,进行控件添加、编写代码的程序设计。

人际交往是非常普遍,同时也非常重要的,大量的人员交往和联系,能够达到信息的交流,共同完成合作项目,随着各种信息量的剧增,单独处理好联系通讯录有非常重要的意义,信息分类能使事务处理条理清晰,通讯录可以单独处理人力资源信息,提高管理工作效率。

通过通讯录这样的系统,可以做到信息的规范管理、科学统计和快速的查询,从而减少管理方面的工作量。

二数据库设计

用MicrosoftAccess创建的联系人信息数据student.accdb结构如下。

1联系人信息表,表名为student,结构如图一所示。

图一

2相关测试数据,如图二所示。

图二

三功能模块设计

1通讯录管理系统模块

 

图三:

在MicrosoftVisualC++中用MFC可以实现系统程序的编写,实现运行结果可视化,MFC的好处是简化Windows操作,把经常使用而有复杂、烦琐的操作,封装成各种类(MFC程序框架),它使程序员从繁杂的编程中解脱出来,提高了编程和代码效率。

用消息驱动机制来实现代码的添加[1],产生消息。

在MFC中建立一个单文档应用程序,加入数据库支持,选择对应的数据源。

采用模块化原理可以使软件结构清晰,容易设计也容易阅读和理解,也易于测试和调度,所以它有利于提高软件的可靠性和可修改性。

主、副界面如图四、图五所示。

图四

图五

2系统的主要功能

通讯录管理系统的主要功能有查询、添加、删除、修改。

当实现查询功能时,联系人的姓名不能为空,若为空,会弹出一个对话框,通知用户“要查询的姓名不能为空”,若查询的联系人不在系统里,则有提示消息“没有查到你要找的姓名”;实现修改功能时,选择要修改的信息,输入正确的信息,单击“确定”;实现删除功能时,选择要删除的信息,单击“确定”。

同时系统还可以浏览上一条记录、下一条记录、第一条记录、最后一条记录,为用户提供方便。

3.系统的主要文件

这个通讯录管理系统的应用程序名称是Ex_ODBC29。

主要的.cpp文件有Ex_ODBC29View.cpp和InfoDlg.cpp,主要的.h文件有Ex_ODBC29View.h和InfoDlg.h

Ex_ODBC29View.cpp里主要有实现查询功能的CEx_ODBC29View:

:

OnButtonQuery()函数,实现添加功能的CEx_ODBC29View:

:

OnRecAdd()函数,实现修改功能的voidCEx_ODBC29View:

:

OnRecEdit()函数,实现删除功能的CEx_ODBC29View:

:

OnRecDel()

OnButtonQuery()函数的内容和功能:

m_strQuery是控件IDC_EDIT_QUERY的变量,这个变量用来判断查询的姓名是否为空关闭记录集,m_pSet->m_strFilter.Format("pname='%s'",m_strQuery)语句用于指定查询的条件,pname是表connection的字段名;m_pSet->m_strSort="ptelephone"语句用于按ptelephone字段从小到大排序,ptelephone是表connection的字段名;UpdateData(FALSE)自动更新表单中控件显示的内容。

MessageBox("要查询的联系人不能为空!

"),MessageBox("没有查到你要找的联系人!

")用于反馈用户操作。

OnRecAdd()函数的内容和功能:

由于增加和显示记录在同一个界面出现,容易造成误操作。

因此,在修改和添加记录数据之前,往往设计一个对话框用于获得所需要的数据,然后用该数据进行当前记录的编辑。

这样就能避免它们的相互影响,且保证代码的相对独立性。

获得所需数据的对话框名为“联系人信息表”,对话框资源的ID号是IDD_INFO_TABLE,对话框资源对应的类名为CInfoDlg,要进行添加操作,首先为这个类添加一个对象[2],以便引用控件变量,添加完信息确定之后,“联系人信息表”的内容传值给主界面对应的变量,如m_pSet->m_ptelephone=dlg.m_strPersonTelephone。

OnRecEdit()函数的内容和功能:

修改函数首先选中要修改的信息,即把主界面的信息传值给“联系人信息表”如dlg.m_strPersonTelephone=m_pSet->m_ptelephone;确定修改信息,则把“联系人信息表”的信息传值给主界面如m_pSet->m_ptelephone=dlg.m_strPersonTelephone;完成修改操作,也引用了系统功能函数m_pSet->Edit()修改当前记录,m_pSet->Update()将新记录存入数据库。

OnRecDel()函数的内容和功能:

引用系统功能函数m_pSet->Delete()删除当前记录,m_pSet->GetStatus(status)获取当前记录集状态,if(status.m_lCurrentRecord==0)若当前记录索引号为0(0表示第1条记录),m_pSet->MoveNext()则下移一个记录,否则m_pSet->MoveFirst()移动到第1个记录处。

InfoDlg.cpp文件中的CInfoDlg:

:

OnOK()函数内容和功能:

用于控制不正确的操作,例如当添加信息时若姓名和号码为空则不能进行操作,用判断语句来实现if(m_strPersonName.IsEmpty())MessageBox("姓名不能为空!

");

Else

if(m_strPersonTelephone.IsEmpty())

MessageBox("学号不能为空!

");

在Ex_ODBC29View.cpp文件处的开始处增加语句#include“InfoDlg.h”

添加消息映射函数

用MFCClassWizard为各控件添加消息如图11所示

如图11添加消息映射函数

添加控件变量

为CEx_ODBC29View的控件添加相关联的数据成员,如图12所示

如图12添加相关联的数据成员

为CInfoDlg的控件添加控件变量,如如图13所示

如图13添加CInfo的成员变量

4主要类的实现

功能的实现主要由CEx_ODBC29View和CInfoDlg这两个类实现。

在OnButtonQuery()函数中,使用CRecordSet类的成员变量m_strFilter,m_strSort和成员函数Open可以对表进行记录的查询和排序。

单击“查询“按钮,将编辑框中的姓名对数据表进行查询,并将查找的记录显示在添加的控件中。

UpdateData()实现控件数据的输入和读取,TrimLeft()是CString类的一个成员函数,用于去除字符串左边的空格,if(m_strQuery.IsEmpty())判断查询内容是否为空,执行MessageBox("要查询的联系人不能为空!

")if(m_pSet->IsOpen())判断记录集是否打开,如果打开,则先关闭。

m_pSet->m_strFilter.Format("pname='%s'",m_strQuery)语句用于指定查询的条件,m_pSet->m_strSort="ptelephone"语句用于按ptelephone字段从小到大排序,m_pSet->Open()打开记录集,if(!

m_pSet->IsEOF())如果打开记录集有记录,UpdateData(FALSE)自动更新表单中控件显示的内容,若没有这个记录执行MessageBox("没有查到你要找的联系人!

")。

在OnOK()函数中,UpdateData()实现控件数据的输入和读取,TrimLeft()用于去除字符串左边的空格,if(m_strPersonName.IsEmpty())判断姓名是否为空执行MessageBox("姓名不能为空!

")if(m_strPersonTelephone.IsEmpty())判断学号是否为空,执行MessageBox("学号不能为空!

")

在OnRecAdd()函数中,因为添加在另一个对话框中进行,所以首先要为两个对话框的控件变量建立联系,所以定义一个CInfoDlg类的对象dlg,if(dlg.DoModal()==IDOK)DoModal是CDialog基类成员函数,用于将对话框模式方式来显示,m_pSet->AddNew()在表的末尾增添新记录,数据由控件向相关联的成员变量复制m_pSet->m_ptelephone=dlg.m_strPersonTelephone,依次完成其他几个变量复制,m_pSet->Update()将新记录存入数据库,m_pSet->Requery()刷新记录集。

在OnRecEdit()函数中,因为是修改首先要知道修改的内容,把要修改的内容传到修改对话框中dlg.m_strPersonTelephone=m_pSet->m_ptelephone,依次完成其他信息的传递,if(dlg.DoModal()==IDOK)表示确认修改内容,m_pSet->Edit()修改当前记录,m_pSet->m_ptelephone=dlg.m_strPersonTelephone修改当前记录字段值,m_pSet->Update()将修改结果存入数据库,UpdateData(FALSE)数据由控件相关联的成员变量向控件传输。

在OnRecDel()函数中,m_pSet->GetStatus(status)获取当前记录集状态,m_pSet->Delete()删除当前记录if(status.m_lCurrentRecord==0)若当前记录索引号为0,m_pSet->MoveNext()下移一记录m_pSet->MoveFirst()移动到第一个记录,UpdateData(FALSE)控件显示成员变量的值。

5图形界面设计

控件的布局如下图6,图7,图8,图9,图10

如图6

如图7

如图8

如图9,如图10

四设计总结

通过通讯录管理系统课程设计,我学到了很多东西,感受到计算机的强大功能和巨大用处,在做的过程中遇到的一些困难,在同学热心帮助下顺利解决了,与同学之间的讨论让我受益匪浅,我明白了讨论和独立思考的重要性,我相信在以后的学习的过程中,我会不断前进。

通讯录管理系统的主要内容有用MicrosoftAccess建立一个数据表,用ODBC连接数据源[3],用MFC建立一个单文档应用程序,在对话框设计模板中添加必要的控件,为控件添加相关联变量,选择变量的类型、类别,设定变量的大小,变量的大小。

用MFCClassWizard为控件添加消息映射,为消息函数OnButtonQuery()、OnRecAdd()、OnRecEdit()、OnRecDel()、OnOK()添加代码,实现查询、添加、修改、删除功能。

通过设计基本满足了通讯录系统的需求,但是这个设计比较简单,一些其他方面的功能没有得到体现,比如联系人的生日,日期,记录的统计。

参考文献

[1]郑阿奇VisualC++实用教程.第3版.北京:

电子工业出版社.

[2]谭浩强..C++程序设计.北京:

清华大学出版社,2004

[3]陈卫卫.VisualC++数据库编程技术与实例.人民邮电出版社

[4]管西京深入体验vc++项目开.发清华大学出版社

 

WelcomeTo

Download!

!

!

 

欢迎您的下载,资料仅供参考!

 

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

当前位置:首页 > PPT模板 > 其它模板

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

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