基于MFC的简易通讯录管理系统设计docWord格式.docx
- 文档编号:13501290
- 上传时间:2022-10-11
- 格式:DOCX
- 页数:12
- 大小:112.41KB
基于MFC的简易通讯录管理系统设计docWord格式.docx
《基于MFC的简易通讯录管理系统设计docWord格式.docx》由会员分享,可在线阅读,更多相关《基于MFC的简易通讯录管理系统设计docWord格式.docx(12页珍藏版)》请在冰豆网上搜索。
三、整体设计
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;
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(ID
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 MFC 简易 通讯录 管理 系统 设计 doc