详细版C++MFC通讯录课程设计文档格式.docx

上传人:b****1 文档编号:14249444 上传时间:2022-10-20 格式:DOCX 页数:26 大小:1.06MB
下载 相关 举报
详细版C++MFC通讯录课程设计文档格式.docx_第1页
第1页 / 共26页
详细版C++MFC通讯录课程设计文档格式.docx_第2页
第2页 / 共26页
详细版C++MFC通讯录课程设计文档格式.docx_第3页
第3页 / 共26页
详细版C++MFC通讯录课程设计文档格式.docx_第4页
第4页 / 共26页
详细版C++MFC通讯录课程设计文档格式.docx_第5页
第5页 / 共26页
点击查看更多>>
下载资源
资源描述

详细版C++MFC通讯录课程设计文档格式.docx

《详细版C++MFC通讯录课程设计文档格式.docx》由会员分享,可在线阅读,更多相关《详细版C++MFC通讯录课程设计文档格式.docx(26页珍藏版)》请在冰豆网上搜索。

详细版C++MFC通讯录课程设计文档格式.docx

1、设计一个简易的通讯录管理软件,能够维护、查询、管理通讯录的基本信息。

2、具有信息维护功能:

通讯录名单及相关信息的添加、删除等功能。

其中通讯录名单的信息包括姓名、电话号码、工作单位、称呼、通信地址等。

3、具有信息查询功能:

实现按姓名、电话号码、工作单位、称呼、通信地址等信息进行查询。

4、定义一个通讯类,其中包含姓名、电话号码、工作单位、称呼、通信地址等数据成员,同时包含修改,删除等成员函数。

三、设计内容。

1、任务概况。

系统将每个学生的基本信息可以实现添加、删除、修改、查询功能。

2、具备功能。

(1)分类显示联系人信息

(2)添加、删除、修改联系人信息

(3)可以按关键字查找联系人

3、整体框图。

4、主要模块代码。

1,登录模块:

在voidCTest_323Dlg:

:

OnPaint()/////////添加新的代码用于美化登录////界面

CPaintDCdc(this);

CBitmapbitmap;

bitmap.LoadBitmap(IDB_BITMAP1);

//

if(pWnd->

GetDlgCtrlID()==IDC_STATIC1)

{

pDC->

SetTextColor(RGB(255,0,0));

//字体颜色

SetBkColor(RGB(0,0,255));

//字体背景色

return(HBRUSH):

GetStockObject(WHITE_BRUSH);

//设置背景色

}

else

GetDlgCtrlID()==IDC_STATIC2||pWnd->

GetDlgCtrlID()==IDC_STATIC3)

{

pDC->

SetTextColor(RGB(0,0,0));

return(HBRUSH):

}

returnhbr;

}

///////////////////////登录按钮/////////////////////////////////////////////////////////////

voidCTest_323Dlg:

OnEnter()

{

UpdateData(TRUE);

CTest_323Dlgpt;

if(m_user.IsEmpty()||m_password.IsEmpty())

MessageBox("

用户名或密码不能为空"

"

用户登录信息"

);

else

if(m_user==pt.m_user1&

&

m_password==pt.m_password1)

OnReset();

UpdateData(FALSE);

CDialog:

OnOK();

////////////调用低层OnOK()函数,销毁对话框

CInterfaceinface;

inface.DoModal();

else

if(m_user==pt.m_user1&

m_password!

=pt.m_password1)

MessageBox("

密码不正确!

"

else

if(m_user!

=pt.m_user1&

MessageBox("

用户名和密码都不正确!

else

用户名不正确!

//////////////////////////置零////////////////////////////////////////////////////////

OnReset()////置零按钮

m_user="

;

m_password="

UpdateData(FALSE);

///////////////////////////////////////////////////////////////////////////

2主界面模块:

/////////////////各个按钮的响应函数///////////////////////////////////////////////

voidCInterface:

OnChangcode()//修改密码

CChangcodecode;

code.DoModal();

OnChangname()//修改用户名

CChangnamename;

name.DoModal();

OnBnClickedLogout()//注销

{

CTest_323Dlgdlg1;

dlg1.DoModal();

OnBnClickedAddone()//响应添加新的成员

CAddNumberaddnumber;

addnumber.DoModal();

OnBnClickedSeekone()//查询信息

{flag=0;

CResearchresearch;

research.DoModal();

OnBnClickedChangone()//修改成员按钮的响应

OnBnClickedDelone()//删除成员的按钮响应

//////////////////////////////////////////////////////////////////////////////////////

3添加成员模块:

//////////////////////////添加成员函数//////////////////////////

voidCAddNumber:

OnBnClickedAddnewnumber()//添加新的成员

if(m_address01.IsEmpty()||m_cwork01.IsEmpty()||m_name01.IsEmpty()||m_sex01.IsEmpty()||m_tellphone01.IsEmpty())

MessageBox("

添加的成员信息不能有空!

//判断添加的信息是否有空

CNewsletterst;

//自己定义的信息通信类

intn_st=0;

//联系人的个数

intsize=0;

inti;

ints=0;

CStringstr3;

CFilefile;

//建立一个文件类,关于其用法,请baidu。

file.Open("

Test_323.dat"

CFile:

modeReadWrite);

//打开文件

size=GetFileSize((void*)file.m_hFile,NULL);

//读取文件大小,size==0表示是空文件

if(size>

0)//如果文件不空,则读取文件前面4个字节(表示联系人记录数量的),为空则不读,默认为0个了。

file.SeekToBegin();

file.Read(&

n_st,sizeof(n_st));

if(n_st>

0&

n_st<

100)//实验中限定为0~100个联系人记录,5*20=100个字节

m_num_01=n_st;

for(i=0;

i<

(size-4)/100;

i++)//去掉记录联系人的个数的字节,然后/100即是联系人编号或行数

{

//请注意与写入数据的顺序要保持一样,否则会读错数据。

(m_st[i].m_name),sizeof(m_st[i].m_name));

(m_st[i].m_sex),sizeof(m_st[i].m_sex));

(m_st[i].m_cwork),sizeof(m_st[i].m_cwork));

(m_st[i].m_tellphone),sizeof(m_st[i].m_tellphone));

(m_st[i].m_address),sizeof(m_st[i].m_address));

str3=m_st[i].m_name;

//判断删除的

if(str3=="

)//把后面赋值为空

{

n_st=i;

s=i;

break;

}

}//以下代码主要还是把这条记录写入文件,注意写入的格式:

文件的前四个字节是保持联系人记录数,

//后面依次保持联系人记录注意,写联系人的每个信息的顺序要与读取时的顺序一致。

n_st+=1;

file.SeekToBegin();

file.Write(&

//写联系人记录个数

memcpy(st.m_name,m_name01.GetBuffer(m_name01.GetLength()),m_name01.GetLength());

st.m_name[m_name01.GetLength()]='

\0'

//在数组末尾加结束符号

memcpy(st.m_sex,m_sex01.GetBuffer(m_sex01.GetLength()),m_sex01.GetLength());

//把类CString对象的内容赋值到字符数组中

st.m_sex[m_sex01.GetLength()]='

memcpy(st.m_cwork,m_cwork01.GetBuffer(m_cwork01.GetLength()),m_cwork01.GetLength());

st.m_cwork[m_cwork01.GetLen

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

当前位置:首页 > 医药卫生 > 临床医学

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

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