课程设计---基于MFC的简易通讯录管理系统设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于MFC的简易通讯录管理系统设计
目录
一、引言 (1)
二、需求分析 (1)
三、整体设计 (2)
1、系统框图 (2)
2、模块功能 (2)
四、代码编写 (2)
1、定义一个Cperson类 (2)
2、定义文档类数据成员m_StudengtList (3)
3、初始化文档类成员 (4)
4、建立文档类和视图类数据成员之间的关系 (5)
五、测试结果 (10)
1、编译并连接源程序,执行程序后显示的初始界面 (10)
2、添加王豆豆的信息显示的界面 (11)
3、删除通讯录中的信息 (11)
4、修改通讯录中的信息 (12)
六、设计小结 (12)
一、引言
21世纪是IT普及的世界,到处都存在IT的身影,实时通讯已是占据它不可或缺的地位。一个好的、强大的通讯录系统的好坏,不但可以直接影响到企业、个人的人际关系,而且会间接的影响到企业、个人经济利益和社会地位。随着社会的发展,科技的进步,计算机的应用在社会各领域中都得到了普及,越来越多的人都感受到利用计算机进行各类管理的科学和便捷,利用计算机进行通讯管理已经是一种趋势。
MFC是Microsoft Foundation Class Library(微软基础类库)的缩写形式。它是C++的类集,提供面向对象框架,利用这个框架,程序员可以轻松的创建Windows应用程序。基于MFC的通讯管理系统具有美观的窗口界面、充足可靠的信息数据、简单方便的维护手段和灵活多变的查询方式以及快捷而准确的查询结果。
二、需求分析
通讯录使我们每个人必不可少的一个工具,利用通讯录我们可以对同学、朋友、同事等信息进行有效的管理,包括查询、添加、删除和修改等。
此通讯录系统利用本着人性化的设计,此系统包括了联系人的姓名、电话、地址、E-mail、和备注等信息,利用此系统可以对联系人进行查询、增加、修改、删除等操作,基本上可以满足我们对通讯录的需要。
基于MFC简易通讯录管理系统具有以下特点:1,操作简单,所有人不需学习就可以使用的系统;2,输入简单,输入框都有相关提示,我们可以按照提示输入相关信息;3,界面显示信息完整,界面上每一个编辑框显示一条联系人信息,很清楚地显示了联系人的全部信息。数据库的操作与运行相比文件较复杂,一般对安全性较高的大型信息管理系统采用数据库方式,这里我们采用文件存取方式即可。
1
三、整体设计
1、系统框图
2、模块功能
(1) 添加记录:可以增加通讯录相关信息;
(2) 修改记录:可以修改通讯录相关信息;
(3) 查询记录:可以查找通讯录中每个人的信息;
(4) 删除记录:可以删除通讯录单条个人信息;
(5) 清除记录:可以清除通讯录整个组信息;
四、代码编写
1、定义一个Cperson类
程序中处理的学生信息是一个数据序列,即线性表结构。以Coject为基类,公有派生Cperson类。
Person.h中的代码:
2
class CPerson:public CObject
{
public:
DECLARE_SERIAL(CPerson) //对类进行串行化宏定义CPerson();
virtual ~CPerson();
CString m_Name; //姓名
CString m_Phone; //电话
CString m_Company; //公司
CString m_Email; //Email
public:
virtual void Serialize(CArchive& ar);
};
Person.cpp中编辑的初始化的代码
CPerson::CPerson()
{
//初始化人员信息(m_Name,m_Phone,m_Company,m_Email) m_Name=""; //姓名
m_Phone=""; //电话
m_Company=""; //公司
m_Email=""; //Email
}
2、定义文档类数据成员m_StudengtList
在AddressBookview.h中编写代码:
class CAddressBookView : public CFormView
{
protected: // create from serialization only CAddressBookView();
3
DECLARE_DYNCREATE(CAddressBookView)
public:
CAddressBookDoc* GetDocument();
public:
virtual ~CAddressBookView();
protected:
POSITION m_Position; //指向链表中当前结点的指针
CObList *m_PersonViewList;//指向文档类成员(双向链表)的指针protected:
DECLARE_MESSAGE_MAP()
};
3、初始化文档类成员
#include "stdafx.h"
#include "AddressBook.h"
#include "Person.h"
#include "AddressBookDoc.h"
#include "AddressBookView.h"
void CAddressBookView::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;
4