详细版C++MFC通讯录课程设计(3)

2018-12-27 18:50

else

MessageBox(\输入两次用户名不一致!\}

5修改、删除、查询模块:

////////////////////////////////列表/表头初始化模块////////////

BOOL CResearch::OnInitDialog()//列表控件的表头初始化////自己手动添加 { CDialog::OnInitDialog(); // TODO: 在此添加额外的初始化 DWORD dwStyle = m_list.GetExtendedStyle(); m_list.SetExtendedStyle(dwStyle|LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES); m_list.InsertColumn(0,_T( \姓名\ m_list.InsertColumn(1, _T(\职称\ m_list.InsertColumn(2,_T( \工作单位\ m_list.InsertColumn(3,_T( \电话号码\ m_list.InsertColumn(4,_T( \通信地址\ m_list.SetColumnWidth(0, 100); m_list.SetColumnWidth(1, 100); m_list.SetColumnWidth(2, 100); m_list.SetColumnWidth(3, 100);

}

m_list.SetColumnWidth(4, 200);

return TRUE; // return TRUE unless you set the focus to a control // 异常: OCX 属性页应返回 FALSE

/////////////////////////////////////////////////////////////////////////// /////////////////查询模块///////////////////////

void CResearch::OnBnClickedReseachnumber() // 查询 { UpdateData(TRUE); m_list.DeleteAllItems();//删除列表控件里内容 int num=0; //表示查找结果的个数 int i;

for(i=0;i0, 表示str中包含了m_name的字段 ret2=str2.Find(m_num01,0); ret3=str3.Find(m_num01,0); ret4=str4.Find(m_num01,0); ret5=str5.Find(m_num01,0); if(ret1>=0||ret2>=0||ret3>=0||ret4>=0||ret5>=0) { CString str; m_list.InsertItem(num,str); str=m_st[i].m_name; m_list.SetItemText(num,0,str); str=m_st[i].m_sex; m_list.SetItemText(num,1,str); str=m_st[i].m_cwork; m_list.SetItemText(num,2,str); str=m_st[i].m_tellphone; m_list.SetItemText(num,3,str); str=m_st[i].m_address; m_list.SetItemText(num,4,str); num+=1; //结果+1;

}

}

}

if(num==0) MessageBox(\没有相应的联系人信息!\ else

{CString str; str.Format(\ MessageBox(\找到\个联系人\提示\}

//////////////////////////删除模块///////////////////////////////////////

void CResearch::OnBnClickeDelnumber()//删除成员 { b=m_list.GetSelectionMark (); //或取行标志 m_list.DeleteItem(b); //删除标记行 int i; int size; int n_st=0; //文件中联系人的个数 char t[20]=\定义这个数组用来赋给删除的联系人 CFile file; // 建立一个文件类,关于其用法,请baidu。 file.Open(\ //打开文件 size=GetFileSize((void*)file.m_hFile,NULL); //读取文件大小,size==0表示是空文件 if(size>0) { file.SeekToBegin(); file.Read(&n_st,sizeof(n_st));//读取文件头信息大小 }

if(n_st>0 && n_st<100) //实验中限定为0~100个联系人记录 { m_num_student=n_st; file.Seek((b+1)*100+sizeof(n_st),ios::beg);//把文件的指针定在删除位置,文件从1开始读///.20*5 for( i=0;i<(n_st-b-1);i++)//数据上移 { //请注意与写入数据的顺序要保持一样,否则会读错数据。 file.Read(&(m_st[i].m_name),sizeof(m_st[i].m_name));

//文件指针已经指到该删除的位置,以下是数据上移

file.Read(&(m_st[i].m_sex),sizeof(m_st[i].m_sex)); file.Read(&(m_st[i].m_cwork),sizeof(m_st[i].m_cwork)); file.Read(&(m_st[i].m_tellphone),sizeof(m_st[i].m_tellphone)); file.Read(&(m_st[i].m_address),sizeof(m_st[i].m_address));

} file.Seek(b*100+sizeof(n_st),ios::beg);//数据上移 for( i=0;i<(n_st-b-1);i++)//文件指针已经指到该删除的位置,以下是数据上移 { file.Write(&(m_st[i].m_name),sizeof(m_st[i].m_name)); file.Write(&(m_st[i].m_sex),sizeof(m_st[i].m_sex)); file.Write(&(m_st[i].m_cwork),sizeof(m_st[i].m_cwork)); file.Write(&(m_st[i].m_tellphone),sizeof(m_st[i].m_tellphone)); file.Write(&(m_st[i].m_address),sizeof(m_st[i].m_address)); } file.Seek((n_st-1)*100+sizeof(n_st),ios::beg);///把空的写进末尾 {

file.Write(&t,sizeof(t)); file.Write(&t,sizeof(t)); file.Write(&t,sizeof(t)); file.Write(&t,sizeof(t)); file.Write(&t,sizeof(t)); } } file.Close(); }

////////////////////修改成员模块/////////////////////////////

void CResearch::OnBnClickedButton5()//修改成员 { UpdateData(TRUE); if(m_name_01.IsEmpty()||m_sex_01.IsEmpty()||m_cwork_01.IsEmpty()||m_tellphone_01.IsEmpty()||m_address_01.IsEmpty()) MessageBox(\修改不能为空,请输入修改信息!\ else { b=m_list.GetSelectionMark (); int n_p=0,size; CNewsletter st; CFile file; file.Open(\ //打开文件

size=GetFileSize((void*)file.m_hFile,NULL); //读取文件大小,size==0表示是空文件 if(size>0) { file.SeekToBegin(); file.Read(&n_p,sizeof(n_p)); } file.Seek(b*100+sizeof(n_p),ios::beg); file.Read(&(m_st[b].m_name),sizeof(m_st[b].m_name)); file.Read(&(m_st[b].m_sex),sizeof(m_st[b].m_sex)); file.Read(&(m_st[b].m_cwork),sizeof(m_st[b].m_cwork));

file.Read(&(m_st[b].m_tellphone),sizeof(m_st[b].m_tellphone)); file.Read(&(m_st[b].m_address),sizeof(m_st[b].m_address)); CString str=m_st[b].m_name; CString str1=m_st[b].m_sex; CString str2=m_st[b].m_cwork; CString str3=m_st[b].m_tellphone; CString str4=m_st[b].m_address; UpdateData(TRUE); if(m_name_01!=\ { memcpy(st.m_name,m_name_01.GetBuffer(m_name_01.GetLength()),m_name_01.GetLength()); // 把类CString对象name的内容赋值到字符数组中 st.m_name[m_name_01.GetLength()]='\\0'; } else { memcpy(st.m_name,str.GetBuffer(str.GetLength()),str.GetLength()); // 把类CString对象name的内容赋值到字符数组中 st.m_name[str.GetLength()]='\\0'; } if(m_sex_01!=\ { memcpy(st.m_sex,m_sex_01.GetBuffer(m_sex_01.GetLength()),m_sex_01.GetLength()); // 把类CString对象name的内容赋值到字符数组中 st.m_sex[m_sex_01.GetLength()]='\\0'; } else { memcpy(st.m_sex,str1.GetBuffer(str1.GetLength()),str1.GetLength()); // 把类CString对象name的内容赋值到字符数组中 st.m_sex[str1.GetLength()]='\\0'; } if(m_cwork_01!=\ { memcpy(st.m_cwork,m_cwork_01.GetBuffer(m_cwork_01.GetLength()),m_cwork_01.GetLength()); // 把类CString对象name的内容赋值到字符数组中 st.m_cwork[m_cwork_01.GetLength()]='\\0'; } else


详细版C++MFC通讯录课程设计(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:议论文的叙例教师版

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: