1、1、设计一个简易的通讯录管理软件,能够维护、查询、管理通讯录的基本信息。2、具有信息维护功能:通讯录名单及相关信息的添加、删除等功能。其中通讯录名单的信息包括姓名、电话号码、工作单位、称呼、通信地址等。3、具有信息查询功能:实现按姓名、电话号码、工作单位、称呼、通信地址等信息进行查询。4、定义一个通讯类,其中包含姓名、电话号码、工作单位、称呼、通信地址等数据成员,同时包含修改,删除等成员函数。三、设计内容。1、任务概况。系统将每个学生的基本信息可以实现添加、删除、修改、查询功能。2、 具备功能。(1)分类显示联系人信息(2)添加、删除、修改联系人信息(3)可以按关键字查找联系人3、整体框图。4
2、、主要模块代码。1,登录模块:在void CTest_323Dlg:OnPaint() /添加新的代码用于美化登录/界面 CPaintDC dc(this); CBitmap bitmap; 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);/设置背景色 elseGetDlgCtrlID(
3、)=IDC_STATIC2|pWnd-GetDlgCtrlID()=IDC_STATIC3) pDC-SetTextColor(RGB(0,0,0); return (HBRUSH): return hbr;/登录按钮/void CTest_323Dlg:OnEnter() UpdateData(TRUE);CTest_323Dlg pt;if (m_user.IsEmpty() | m_password.IsEmpty()MessageBox(用户名或密码不能为空, 用户登录信息);else if (m_user=pt.m_user1&m_password=pt.m_password1) O
4、nReset(); UpdateData(FALSE); CDialog:OnOK();/调用低层OnOK()函数,销毁对话框 CInterface inface; 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主界面模块:/各个
5、按钮的响应函数/void CInterface:OnChangcode() /修改密码 CChangcode code; code.DoModal();OnChangname() /修改用户名 CChangname name; name.DoModal();OnBnClickedLogout()/注销 CTest_323Dlg dlg1; dlg1.DoModal();OnBnClickedAddone()/响应添加新的成员 CAddNumber addnumber; addnumber.DoModal();OnBnClickedSeekone()/查询信息 flag=0; CResearch
6、 research; research.DoModal();OnBnClickedChangone()/修改成员按钮的响应OnBnClickedDelone()/删除成员的按钮响应/3添加成员模块:/添加成员函数/void CAddNumber:OnBnClickedAddnewnumber()/添加新的成员 if(m_address01.IsEmpty()|m_cwork01.IsEmpty()|m_name01.IsEmpty()|m_sex01.IsEmpty()|m_tellphone01.IsEmpty() MessageBox(添加的成员信息不能有空!/判断添加的信息是否有空 CN
7、ewsletter st;/自己定义的信息通信类 int n_st=0; /联系人的个数 int size=0; int i; int s=0; CString str3; CFile file; / 建立一个文件类,关于其用法,请baidu。 file.Open(Test_323.dat,CFile:modeReadWrite); /打开文件 size=GetFileSize(void*)file.m_hFile,NULL); /读取文件大小,size=0表示是空文件 if(size0) /如果文件不空,则读取文件前面4个字节(表示联系人记录数量的),为空则不读,默认为0个了。 file.S
8、eekToBegin(); file.Read(&n_st,sizeof(n_st); if(n_st0 & n_st100) /实验中限定为0100个联系人记录,5*20=100个字节 m_num_01=n_st; for( i=0;i(size-4)/100;i+)/去掉记录联系人的个数的字节,然后/100即是联系人编号或行数 /请注意与写入数据的顺序要保持一样,否则会读错数据。(m_sti.m_name),sizeof(m_sti.m_name);(m_sti.m_sex),sizeof(m_sti.m_sex);(m_sti.m_cwork),sizeof(m_sti.m_cwork)
9、;(m_sti.m_tellphone),sizeof(m_sti.m_tellphone);(m_sti.m_address),sizeof(m_sti.m_address); str3=m_sti.m_name;/判断删除的 if(str3=)/把后面赋值为空 n_st=i; s=i; break; /以下代码主要还是把这条记录写入文件,注意写入的格式:文件的前四个字节是保持联系人记录数, /后面依次保持联系人记录注意,写联系人的每个信息的顺序要与读取时的顺序一致。 n_st+=1; file.SeekToBegin(); file.Write(&/写联系人记录个数 memcpy(st.m
10、_name,m_name01.GetBuffer(m_name01.GetLength(),m_name01.GetLength(); st.m_namem_name01.GetLength()=0 /在数组末尾加结束符号 memcpy(st.m_sex,m_sex01.GetBuffer(m_sex01.GetLength(),m_sex01.GetLength(); / 把类CString对象的内容赋值到字符数组中 st.m_sexm_sex01.GetLength()= memcpy(st.m_cwork,m_cwork01.GetBuffer(m_cwork01.GetLength(),m_cwork01.GetLength(); st.m_cworkm_cwork01.GetLen
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1