基于MFC的简易通讯录管理系统设计精品Word下载.docx

上传人:b****6 文档编号:16446125 上传时间:2022-11-23 格式:DOCX 页数:13 大小:59.74KB
下载 相关 举报
基于MFC的简易通讯录管理系统设计精品Word下载.docx_第1页
第1页 / 共13页
基于MFC的简易通讯录管理系统设计精品Word下载.docx_第2页
第2页 / 共13页
基于MFC的简易通讯录管理系统设计精品Word下载.docx_第3页
第3页 / 共13页
基于MFC的简易通讯录管理系统设计精品Word下载.docx_第4页
第4页 / 共13页
基于MFC的简易通讯录管理系统设计精品Word下载.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

基于MFC的简易通讯录管理系统设计精品Word下载.docx

《基于MFC的简易通讯录管理系统设计精品Word下载.docx》由会员分享,可在线阅读,更多相关《基于MFC的简易通讯录管理系统设计精品Word下载.docx(13页珍藏版)》请在冰豆网上搜索。

基于MFC的简易通讯录管理系统设计精品Word下载.docx

二、需求分析

通讯录使我们每个人必不可少的一个工具,利用通讯录我们可以对同学、朋友、同事等信息进行有效的管理,包括查询、添加、删除和修改等。

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

基于MFC简易通讯录管理系统具有以下特点:

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

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

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

数据库的操作与运行相比文件较复杂,一般对安全性较高的大型信息管理系统采用数据库方式,这里我们采用文件存取方式即可。

三、整体设计

1、系统框图

2、模块功能

(1)添加记录:

可以增加通讯录相关信息;

(2)修改记录:

可以修改通讯录相关信息;

(3)查询记录:

可以查找通讯录中每个人的信息;

(4)删除记录:

可以删除通讯录单条个人信息;

(5)清除记录:

可以清除通讯录整个组信息;

四、代码编写

1、定义一个Cperson类

程序中处理的学生信息是一个数据序列,即线性表结构。

以Coject为基类,公有派生Cperson类。

Person.h中的代码:

classCPerson:

publicCObject

{

public:

DECLARE_SERIAL(CPerson)//对类进行串行化宏定义

CPerson();

virtual~CPerson();

CStringm_Name;

//姓名

CStringm_Phone;

//电话

CStringm_Company;

//公司

CStringm_Email;

//Email

virtualvoidSerialize(CArchive&

ar);

};

Person.cpp中编辑的初始化的代码

CPerson:

:

CPerson()

//初始化人员信息(m_Name,m_Phone,m_Company,m_Email)

m_Name="

"

;

m_Phone="

m_Company="

m_Email="

}

2、定义文档类数据成员m_StudengtList

在AddressBookview.h中编写代码:

classCAddressBookView:

publicCFormView

protected:

//createfromserializationonly

CAddressBookView();

DECLARE_DYNCREATE(CAddressBookView)

CAddressBookDoc*GetDocument();

virtual~CAddressBookView();

POSITIONm_Position;

//指向链表中当前结点的指针

CObList*m_PersonViewList;

//指向文档类成员(双向链表)的指针

DECLARE_MESSAGE_MAP()

3、初始化文档类成员

#include"

stdafx.h"

AddressBook.h"

Person.h"

AddressBookDoc.h"

AddressBookView.h"

voidCAddressBookView:

OnInitialUpdate()

CFormView:

OnInitialUpdate();

GetParentFrame()->

RecalcLayout();

ResizeParentToFit();

CAddressBookDoc*pDoc=GetDocument();

//获得文档类指针

m_PersonViewList=&

(pDoc->

m_PersonList);

//视图类指针指向文档类对象

m_Position=m_PersonViewList->

GetHeadPosition();

//获得头结点位置

CPerson*pListDoc=(CPerson*)m_PersonViewList->

GetAt(m_Position);

//获得头一个数据

m_strName=pListDoc->

m_Name;

m_strPhone=pListDoc->

m_Phone;

m_strCompany=pListDoc->

m_Company;

m_strEmail=pListDoc->

m_Email;

//将表头结点数据赋给视图类成员变量

UpdateData(false);

//刷新窗口

((CDialog*)this)->

GotoDlgCtrl(GetDlgItem(IDC_EDIT_NAME));

//将光标停在姓名编辑框

4、建立文档类和视图类数据成员之间的关系

编写命令按钮代码:

(1)添加记录

OnButtonAdd()

//界面

((CButton*)GetDlgItem(IDC_CHECK_MODIFY))->

EnableWindow(false);

((CButton*)GetDlgItem(IDC_BUTTON_CLEAR))->

((CButton*)GetDlgItem(IDC_BUTTON_PREVIOUS))->

((CButton*)GetDlgItem(IDC_BUTTON_NEXT))->

((CButton*)GetDlgItem(IDC_BUTTON_ADD))->

SetWindowText(_T("

继续添加"

));

((CButton*)GetDlgItem(IDC_BUTTON_DELETE))->

添加完毕"

((CEdit*)GetDlgItem(IDC_EDIT_NAME))->

EnableWindow(true);

((CEdit*)GetDlgItem(IDC_EDIT_EMAIL))->

((CEdit*)GetDlgItem(IDC_EDIT_PHONE))->

((CEdit*)GetDlgItem(IDC_EDIT_COMPANY))->

m_strName="

m_strPhone="

m_strCompany="

m_strEmail="

//清空编辑框

//刷新界面

CPerson*pListDoc=newCPerson();

AddTail(pListDoc);

//新建空人员信息添加至链表,并将当前位置移至该处

//获得文档指针

pDoc->

SetModifiedFlag();

//设置文档被修改标置

//姓名编辑框获得焦点

//TODO:

Addyourcontrolnotificationhandlercodehere

(2)删除记录

OnButtonDelete()

CStringstr;

GetDlgItem(IDC_BUTTON_DELETE)->

GetWindowText(str);

if(str=="

删除记录(&

D)"

{

CObject*pOld;

//临时对象指针

pOld=m_PersonViewList->

//使其指向当前指针

m_PersonViewList->

RemoveAt(m_Position);

//将当前结点从列表中删除

deletepOld;

//释放空间

if(m_PersonViewList->

IsEmpty())//链表若为空,则调用添加生成一个新结点

{

CAddressBookDoc*pDoc=GetDocument();

pDoc->

OnNewDocument();

m_Position=m_PersonViewList->

}

CAddressBookDoc*pDoc=(CAddressBookDoc*)GetDocument();

pDoc->

//获得文档指针,标志文档已被修改

OnInitialUpdate();

//显示列表第一个结点

}

else

AfxMessageBox("

添加完毕!

);

((CButton*)GetDlgItem(IDC_CHECK_MODIFY))->

((CButton*)GetDlgItem(IDC_BUTTON_CLEAR))->

((CButton*)GetDlgItem(IDC_BUTTON_NEXT))->

添加记录(&

A)"

((CButton*)GetDlgItem(IDC_BUTTON_DELETE))->

((CEdit*)GetDlgItem(IDC_EDIT_NAME))->

((CEdit*)GetDlgItem(IDC_EDIT_EMAIL))->

((CEdit*)GetDlgItem(IDC_EDIT_PHONE))->

((CEdit*)GetDlgItem(IDC_EDIT_COMPANY))->

(3)清除记录

OnButtonClear()

if(m_PersonViewList->

GetCount()==1)//链表若为空,则调用添加生成一个新结点

没有可清空的记录!

return;

if(MessageBox("

所有的记录将被清空!

"

清空警告"

MB_YESNO)==IDYES)

(4)向前浏览

OnButtonPrevious()

POSITIONm_templeposition;

//定义一个临时位置指针

m_templeposition=m_Position;

//并使其指向当前结点的前驱结点

m_PersonViewList->

GetPrev(m_templeposition);

//获得当前结点位置的前一个

if(m_templeposition==NULL)

{//若到链表头结点

AfxMessageBox(_T("

已到表头!

m_Position=m_templeposition;

//当前指针定位到前一个

CPerson*pListDoc=(CPerson*)m_PersonViewList->

//获得前一个人员的信息

m_strName=pListDoc->

m_strPhone=pListDoc->

m_strCompany=pListDoc->

m_strEmail=pListDoc->

//赋值给视图类数据成员

UpdateData(false);

(5)向后浏览

OnButtonNext()

GetNext(m_templeposition);

//获得当前结点位置的后一个

{//若到链表尾结点

已到表尾!

//当前指针定位到后一个

//TODO:

(6)释放链表对象空间

classCAddressBookDoc:

publicCDocument

CAddressBookDoc();

DECLARE_DYNCREATE(CAddressBookDoc)

//Attributes

CObListm_PersonList;

//文档类成员

virtual~CAddressBookDoc();

DECLARE_MESSAGE_MAP()

五、测试结果

1、编译并连接源程序,执行程序后显示的初始界面

2、添加王豆豆的信息显示的界面

3、删除通讯录中的信息

4、修改通讯录中的信息

六、设计小结

在做这个小课题之前,先参考一些书,对整个Windows程序内部运行机制先做一定的了解,整个Windows程序的运行机制是:

1,创建窗口:

设计一个窗口类、注册窗口类、创建窗口、显示及更新窗口;

2,消息循环;

3,窗口过程函数,其中窗口过程函数是关键,根据我们的需要来进行编写。

MFC(MicrosoftFoundationClass,微软的基础类库),它是微软为了简化程序员的开发工作所开发的一套C++类的集合,是一套面向对象的函数库,以类的方式提供给用户使用,利用这些类可以有效地帮助程序员完成Windows应用程序的开发,而MFCAppWizard是一个辅助我们生成源代码的向导工具,它可以帮助我们自动生成基MFC框架的源代码。

该向导的的每一个步骤中,我们都可以根据需要来选择各种特性,从而实现定制应用程序。

对于基于MFC的简易通讯录管理系统的设计,需要对联系人的信息进行管理,需要调用MFC类中的函数,对于这个MFC的应用程序,主要的类有CPerson、CAddressBookView、CAddressBookDoc等几个类,里面封装了一些函数和一些变量,例如CPerson是由Cobject派生出来的,CPerson中的构造函数CPerson()对人员的信息进行初始化;

CAddressBookView类封装了函数OnButtonAdd()、OnButtonDelete()、OnButtonPrevious()、OnChangeEditCompany()等函数,实现对人员信息的添加,删除,信息的查询,改变工作信息;

CAddressBookDoc类封装了OnNewDocument()、DeleteContents()函数,实现对文档类成员的初始化和对文档成员的删除。

基于MFC的简易通讯录管理系统,只是对MFC的简单的应用,通过它,我对MFC的工作机制有了初步的了解,对MFC的深入了解还需要更多的时间和更多的实践,以后会尝试把数据库MicrosoftSQLServer2000或Access2003和MFC相结合做出功能更强大的应用程序来。

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

当前位置:首页 > 工程科技 > 信息与通信

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

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