西安科技大学VC++通讯薄程序报告Word下载.docx

上传人:b****3 文档编号:17867159 上传时间:2022-12-11 格式:DOCX 页数:16 大小:191.89KB
下载 相关 举报
西安科技大学VC++通讯薄程序报告Word下载.docx_第1页
第1页 / 共16页
西安科技大学VC++通讯薄程序报告Word下载.docx_第2页
第2页 / 共16页
西安科技大学VC++通讯薄程序报告Word下载.docx_第3页
第3页 / 共16页
西安科技大学VC++通讯薄程序报告Word下载.docx_第4页
第4页 / 共16页
西安科技大学VC++通讯薄程序报告Word下载.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

西安科技大学VC++通讯薄程序报告Word下载.docx

《西安科技大学VC++通讯薄程序报告Word下载.docx》由会员分享,可在线阅读,更多相关《西安科技大学VC++通讯薄程序报告Word下载.docx(16页珍藏版)》请在冰豆网上搜索。

西安科技大学VC++通讯薄程序报告Word下载.docx

保存、读取

新建

创建通讯薄界面程序

3.2系统业务处理流程

删除联系人

查看联系人

新建联系人

修改联系人

4.详细设计

定义联系人信息结构体

//联系人信息结构

structUSERINFO

{

//个人信息

charszUsrName[32];

charszUsrSex[4];

charszUsrNick[32];

charszUsrEmail[64];

charszUsrQQ[16];

charszUsrPhone[16];

charszUsrMobile[16];

charszUsrPost[16];

charszUsrAddr[64];

//单位信息

charszJobName[64];

charszJobDuty[64];

charszJobDept[64];

charszJobPhone[16];

charszJobOffice[32];

charszJobFax[16];

charszJobPost[16];

charszJobAddr[64];

};

操作链表

BOOLCAdBkDoc:

:

ModUserInfo(USERINFO*pInfo)

ASSERT(pInfo!

=NULL);

POSITIONpos=m_lsUserInfo.Find(pInfo);

if(!

pos)returnFALSE;

m_lsUserInfo.SetAt(pos,pInfo);

returnTRUE;

}

DelUserInfo(USERINFO*pInfo)

m_lsUserInfo.RemoveAt(pos);

returndeletepInfo,TRUE;

USERINFO*CAdBkDoc:

FindInfo(USERINFO*pInfo)

USERINFO*pTemp=NULL;

POSITIONpos=m_lsUserInfo.GetHeadPosition();

for(;

pos!

=NULL;

m_lsUserInfo.GetNext(pos))

{

pTemp=(USERINFO*)m_lsUserInfo.GetAt(pos);

if(lstrlen(pInfo->

szUsrName)&

&

lstrcmp(pInfo->

szUsrName,pTemp->

szUsrName)==0)

returnpTemp;

szUsrSex)&

szUsrSex,pTemp->

szUsrSex)==0)

szUsrNick)&

szUsrNick,pTemp->

szUsrNick)==0)

szUsrEmail)&

szUsrEmail,pTemp->

szUsrEmail)==0)

szUsrQQ)&

szUsrQQ,pTemp->

szUsrQQ)==0)

szUsrPhone)&

szUsrPhone,pTemp->

szUsrPhone)==0)

szUsrMobile)&

szUsrMobile,pTemp->

szUsrMobile)==0)

szUsrPost)&

szUsrPost,pTemp->

szUsrPost)==0)

szUsrAddr)&

szUsrAddr,pTemp->

szUsrAddr)==0)

szJobName)&

szJobName,pTemp->

szJobName)==0)

szJobDuty)&

szJobDuty,pTemp->

szJobDuty)==0)

szJobDept)&

szJobDept,pTemp->

szJobDept)==0)

}

returnNULL;

voidCLeftView:

OnNewInfo()

CNewUserDlgdlg;

if(dlg.DoModal()!

=IDOK)

return;

USERINFO*pInfo=newUSERINFO;

memset(pInfo,0,sizeof(USERINFO));

dlg.GetUserInfo(pInfo);

CAdBkDoc*pDoc=GetDocument();

USERINFO*pTemp=pDoc->

FindInfo(pInfo);

if(pTemp!

=NULL)

deletepInfo;

MessageBox("

该联系人已存在!

"

);

pDoc->

AddUserInfo(pInfo);

UpdateAllViews(NULL);

MessageBox("

添加联系人信息成功!

//TODO:

在此添加命令处理程序代码

更新视图显示

OnTvnSelchanged(NMHDR*pNMHDR,LRESULT*pResult)

LPNMTREEVIEWpNMTreeView=reinterpret_cast<

LPNMTREEVIEW>

(pNMHDR);

CTreeCtrl&

refTreeCtrl=GetTreeCtrl();

HTREEITEMhItem=pNMTreeView->

itemNew.hItem;

m_strSelect=refTreeCtrl.GetItemText(hItem);

UpdateAllViews(NULL,1L,0);

if(pDoc->

m_strSelect.Compare("

所有联系人"

))

refTreeCtrl.Expand(hItem,TVE_EXPAND);

*pResult=0;

OnUpdate(CView*pSender,LPARAMlHint,CObject*pHint)

if(lHint==1L)

refTreeCtrl.DeleteAllItems();

HTREEITEMhRoot=refTreeCtrl.InsertItem(_T("

),TVI_ROOT);

USERINFO*pInfo=NULL;

POSITIONpos=pDoc->

m_lsUserInfo.GetHeadPosition();

m_lsUserInfo.GetNext(pos))

pInfo=(USERINFO*)pDoc->

m_lsUserInfo.GetAt(pos);

refTreeCtrl.InsertItem(pInfo->

szUsrName,hRoot);

refTreeCtrl.SelectItem(hRoot);

refTreeCtrl.Expand(hRoot,TVE_EXPAND);

在此添加专用代码和/或调用基类

树形控件

voidCAdBkView:

CListCtrl&

refListCtrl=GetListCtrl();

refListCtrl.DeleteAllItems();

intnItem=0;

POSITIONpos=NULL;

pos=pDoc->

for(;

{

pInfo=(USERINFO*)pDoc->

if(pDoc->

m_strSelect.Compare(pInfo->

szUsrName))

continue;

refListCtrl.InsertItem(nItem,"

refListCtrl.SetItemText(nItem,0,pInfo->

szUsrName);

refListCtrl.SetItemText(nItem,1,pInfo->

szUsrPhone);

refListCtrl.SetItemText(nItem,2,pInfo->

szUsrMobile);

refListCtrl.SetItemText(nItem,3,pInfo->

szUsrQQ);

refListCtrl.SetItemText(nItem,4,pInfo->

szUsrEmail);

refListCtrl.SetItemText(nItem,5,pInfo->

szUsrAddr);

break;

}

else

nItem++;

查看联系人信息

OnViewInfo()

USERINFOtemp,*pInfo;

memset(&

temp,0,sizeof(USERINFO));

HTREEITEMhItem=refTreeCtrl.GetSelectedItem();

if(hItem==NULL)

lstrcpy(temp.szUsrName,refTreeCtrl.GetItemText(hItem));

pInfo=pDoc->

FindInfo(&

temp);

if(pInfo==NULL)

CUsrInfoDlg*pDlg=newCUsrInfoDlg(this);

pDlg->

SetUserInfo(pInfo);

Create(IDD_USERINFO_DIALOG,this);

ShowWindow(SW_SHOW);

POSITIONpos=refListCtrl.GetFirstSelectedItemPosition();

if(pos==NULL)

intnItem=refListCtrl.GetNextSelectedItem(pos);

lstrcpy(temp.szUsrName,refListCtrl.GetItemText(nItem,0));

OnUpdateViewInfo(CCmdUI*pCmdUI)

pCmdUI->

Enable(refTreeCtrl.GetSelectedItem()!

Enable(refListCtrl.GetFirstSelectedItemPosition()!

修改联系人信息

OnModifyInfo()

CModUserDlgdlg;

dlg.SetUserInfo(pInfo);

ModUserInfo(pInfo);

lstrcpy(temp.szUsrName,refListCtrl.GetItemText(nItem,0));

删除联系人信息

OnDeleteInfo()

DelUserInfo(pInfo);

5.测试与实现

6.总结

在实现程序的过程中,分别创建菜单栏、工具栏和对话框,并在应用程序框架窗口使用这些界面元素。

同时,通过为菜单、工具命令添加相应的消息响应函数,在这些函数中实现特定功能。

在程序实现中遇到未定义标识符、未包含成员函数等问题,在讨论之后都能解决。

能实现基本通讯薄功能,但在界面设计及修改联系人信息、读取与保存联系人信息等方面还有待优化。

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

当前位置:首页 > 考试认证 > IT认证

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

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