手机通讯录课程设计报告

合集下载

VC++课程设计报告--手机通讯录

VC++课程设计报告--手机通讯录

Visual C++课程设计题目名称:手机通讯录班级:姓名:学号:指导教师:完成时间:2013.1.18题目描述利用Visual C++实现一个手机通讯录,能够进行简单的操作管理。

1功能分析主要功能包括:(1)分组管理能够进行组别添加、删除、修改。

(2)用户管理能够实现联系人的添加、删除、修改,联系人信息包括姓名、手机、办公室电话、电子邮箱、QQ、微博。

(3)用户查询能够通过输入姓名或手机号码进行查询。

(4)功能模拟当选中一个联系人的时候,可以通过操作进行通话和发送短信。

2软件设计2.1 软件整体结构2.1.1总体框架图1 总体框架2.1.2联系人操作用户可以通过操作修改联系人信息或与联系人进行通话或短信联系。

图2 联系人操作2.2 模块功能添加组别:可以添加新的组别删除组别:选中欲删除的组别后,会自动删除该小组以及该组包含的人员记录添加人员:可以添加联系人记录,依次输入姓名、手机、办公室电话、电子邮箱、QQ、微博删除人员:选中欲删除的联系人的名字后,会自动删除他(她)的记录内容查找信息:可以选择用姓名、手机号两种查询方式图形基类的设计2.3 程序界面设计界面环境作为人机信息交流的通道,主要是辅助用户完成工作。

为了方便用户使用,在系统实现中进行了工具栏设计、光标设计和状态栏设计。

2.4 类与函数的设计与实现2.4.1定义一个类CPeople程序中处理的学生信息是一个数据序列,即线性表结构。

class CPeople{public:CString m_strNumber;CString m_strTelephone;CString m_strEmail;CString m_strQq;CString m_strMircoblog;void SetPeople(char *strNumber,char *strTelephone,char *strEmail,char *strQq,char *strMircoblog){m_strNumber=strNumber;m_strTelephone=strTelephone;m_strEmail=strEmail;m_strQq=strQq;m_strMircoblog=strMircoblog;}};2.4.2主要函数的设计与实现(1)联系人的添加void CMy11011111220113Dlg::OnAdd(){HTREEITEM selItem = m_treePhone.GetSelectedItem();//获得树中选中节点if(selItem == NULL) //如果没有选中节点,返回return;if(selItem == m_treePhone.GetRootItem()) //如果选中了根节点,返回return;DWORD data = m_treePhone.GetItemData(selItem); //获得选中节点关联数据if(data == NULL) //如果为空,是分组节点{CAddDlg dlg;if(dlg.DoModal() == IDOK)//显示添加人员对话框,并判断是否单击确定按钮{//在选中节点下添加新节点HTREEITEM item = m_treePhone.InsertItem(dlg.m_strName,2,2,selItem);CPeople *pString;pString=new CPeople;pString->m_strNumber=dlg.m_strNumber;pString->m_strTelephone=dlg.m_strTelephone;pString->m_strEmail=dlg.m_strEmail;pString->m_strQq=dlg.m_strQq;pString->m_strMircoblog=dlg.m_strMircoblog;m_treePhone.SetItemData(item,(DWORD)pString); //设置关联数据refreshList(selItem);}}}(2)联系人的删除void CMy11011111220113Dlg::OnDelete(){HTREEITEM selItem = m_treePhone.GetSelectedItem(); //获得树中选中节点if(selItem == NULL) //如果没有选中节点,返回return;if(selItem == m_treePhone.GetRootItem()) //如果选中了根节点,返回return;DWORD m = m_treePhone.GetItemData(selItem); //获得选中节点关联数据if(m != NULL) //如果不为空,是人员节点{if(AfxMessageBox("确定要删除" + m_treePhone.GetItemText(selItem) + "?",MB_OKCANCEL) == IDOK){HTREEITEM parent = m_treePhone.GetParentItem(selItem);CString *pString = (CString*)m; //删除关联数据delete pString;m_treePhone.DeleteItem(selItem); //删除节点refreshList(parent);}}}(3)联系人的修改void CMy11011111220113Dlg::OnModify()(4)信息查询void CMy11011111220113Dlg::OnFind()(5)组别的添加void CMy11011111220113Dlg::OnAddg()(6)组别的删除void CMy11011111220113Dlg::OnDeleteg()(7)组别的修改void CMy11011111220113Dlg::OnModifyg()3运行与测试结果3.1 程序主要运行界面3.1.1编译并连接源程序,执行程序后显示的主界面3.1.2添加联系人姐姐的界面3.1.2删除联系人哥哥的界面3.1.3查找联系人妹妹的界面3.1.4修改联系人李强的界面3.1.5呼叫界面3.1.6编辑短信界面3.1.7短信发送界面3.2 系统测试3.2.1界面操作测试通过操作各个菜单项,检查各部分的功能是否与菜单提示一致。

手机通讯录实验报告及使用说明(附源代码)

手机通讯录实验报告及使用说明(附源代码)

手机通讯录实验报告及使用说明(附源代码)自查报告。

标题,手机通讯录实验报告及使用说明(附源代码)。

自查报告内容:在本次实验中,我使用了Java编程语言,开发了一个简单的手机通讯录应用程序。

该应用程序可以实现添加联系人、查找联系人、删除联系人等基本功能。

在开发过程中,我遵循了面向对象的编程思想,使用了类和对象的概念来组织和管理联系人信息。

在实验中,我首先设计了Contact类,用于表示一个联系人的信息,包括姓名、电话号码、邮箱等属性。

然后,我设计了AddressBook类,用于管理联系人信息,包括添加联系人、查找联系人、删除联系人等操作。

最后,我编写了一个简单的用户界面,用于与用户交互,实现对通讯录的操作。

在实验过程中,我遇到了一些问题,比如在删除联系人时没有进行足够的输入验证,导致程序出现了错误。

不过,通过调试和修改代码,我最终解决了这些问题,并且实现了一个稳定和可靠的手机通讯录应用程序。

使用说明:1. 添加联系人,在应用程序中选择“添加联系人”选项,然后输入联系人的姓名、电话号码、邮箱等信息,点击“确认”按钮即可完成添加。

2. 查找联系人,在应用程序中选择“查找联系人”选项,然后输入联系人的姓名或电话号码,点击“搜索”按钮即可查找到对应的联系人信息。

3. 删除联系人,在应用程序中选择“删除联系人”选项,然后输入要删除的联系人的姓名或电话号码,点击“确认”按钮即可删除该联系人。

4. 显示所有联系人,在应用程序中选择“显示所有联系人”选项,即可查看当前通讯录中的所有联系人信息。

源代码:```java。

public class Contact {。

private String name;private String phone;private String email;public Contact(String name, String phone, String email) {。

= name;this.phone = phone;this.email = email;}。

手机通讯录系统课程设计报告

手机通讯录系统课程设计报告

课程名称: 程序设计基础课程设计 学院名称: 计算机科学与工程学院 专 业: 计算机科学与技术课程设计报告 装 订线目录一、绪论 (3)二、设计内容 (4)1、选题 (4)2、系统功能 (4)3、应用到的技术 (4)三、设计要求 (4)四、设计环境 (5)1、操作系统 (5)2、开发工具 (5)3、PC机配置 (5)五、系统结构图 (5)六、功能实现 (6)1、系统运行 (6)2、添加联系人 (6)3、修改联系人 (7)4、删除联系人 (8)5、查找联系人 (8)6、查看所有联系人 (8)7、对联系人在文件中的存储位置进行排序 (9)8、系统运行结束 (9)七、遇到的问题和解决的方法 (9)八、设计心得 (10)九、参考文献 (11)十、附件 (12)1、头文件 (12)2、主函数 (12)3、函数实现文件 (13)需求分析在这个信息化的时代,手机已成为继固话之后最为通俗的交流工具。

在这个人与人关系愈加密切的时代,“通讯”成了生活中的必需品。

这就有这么一个系统记录下人与人之间的多样联系方式——手机通讯系统。

通过系统记录下对方的联系方式,既减轻了大脑的负担,又不在受各种条件的约束,做到便捷随身管理相关的联系信息,摆脱了传统电话簿,名片的累赘。

从长远利益来看,可是意义重大的环保之举。

根据市场需求,手机通讯录管理系统所记录的信息一般分为个人、商业、办公三类。

清晰了机主的联系方向。

针对性的分门别类,使系统具有了方便了机主的存储和快速查阅优势功能,大大减少了在电话簿,名片上机械翻阅查找过程的时间。

于此同时又根据手机随身携带的特殊性,在一定程度上比一般的制作文件又其次,因为手机是随身携带的通讯工具,这与记事本相比将在一定程度上保障联系人信息的安全性,相对避免了个人隐私信息外泄从而带来的损失。

综上所述,手机通讯录管理系统是一个高效、实时、绿色环保的管理系统。

友元重载常函数构造函数析构判断数据链表手机通讯录管理系统一、主要功能模拟手机通信录管理系统,要求:(1)查看功能:选择此功能时,列出下列三类选择:A 办公类B 个人类C 商务类,当选中某类时,依次显示出此类所有数据中的姓名和电话号码(2)增加功能:能录入新数据(包括:姓名、电话号码、分类(可选项有:A 办公类 B 个人类 C 商务类)、电子邮件)。

手机通讯录安卓课程设计报告书

手机通讯录安卓课程设计报告书

XX科技大学计算机科学与工程学院智能终端系统及应用开发课程设计报告题目:手机通讯录学号:********班级:********姓名:********指导老师:********绪论随着3G网络的使用,移动终端不再仅是通讯网络的终端,还将成为互联网的终端。

因此,移动终端的应用软件和需要的服务将会有很大的发展空间。

在Google和Android手机联盟的共同推动下,Android在众多手机操作系统中脱颖而出,受到广大消费者的欢迎。

手机通讯录作为手机的基本功能之一,每天我们都在频繁地使用着。

根据手机功能使用调查显示,有9成以上的消费者使用手机通讯录功能。

随着手机通讯录功能的不断加强与完善,手机通讯录对于人们的意义,已不仅仅像记事簿一样显示通讯地址,而是向着个性化、人性化的方向发展[4]。

通讯录从无到有,从英文到中文,经过了十几年的发展历程,今后的发展趋势就是从通讯录发展为名片夹,也就是在一个人名下,可以存储座机、手机、单位、地址、电子邮件等内容。

这种名片夹在电话薄的基础上,大大丰富了内容,同时结构也发生了革命性变化,而且随着手机的发展,相信更优秀的通讯录会越来越受到社会各层人士的喜爱。

一、课程设计目的智能终端系统及应用开发课程设计是计算机相关专业的一个综合性实践教学环节,是学习完《智能终端系统及应用开发》课程后进行的一次全面的综合练习。

其目的在于促进学生复习和巩固Android 应用技术,加深对软件设计方法、软件设计技术和设计思想的理解,并能运用所学Android 设计知识,通过本课程设计让学生进行简单Android 应用软件的开发,掌握软件设计的方法和面向对象程序设计的基本技术,提高学生在软件开发方面的综合应用能力。

二、课程设计内容通过对Android技术的相关研究,了解Android源码实现原理以及过程,从而设计出一款能够使用的手机通讯录。

这款手机通讯录实现的相关内容如下:1.简洁、实用的操作界面。

手机通讯录系统课程设计

手机通讯录系统课程设计

手机通讯录系统课程设计一、课程目标知识目标:1. 让学生理解手机通讯录系统的基本概念,掌握其数据结构及存储方式;2. 使学生掌握编程语言中与手机通讯录系统相关的常用语法和功能;3. 引导学生了解手机通讯录系统的实际应用场景,认识到其重要性。

技能目标:1. 培养学生运用所学知识设计和实现一个简单的手机通讯录系统的能力;2. 提高学生分析问题、解决问题的能力,使其能够针对手机通讯录系统进行优化和改进;3. 培养学生的团队协作能力,使其能够在小组合作中发挥自己的优势,共同完成任务。

情感态度价值观目标:1. 培养学生对计算机科学和编程的兴趣,激发其学习热情;2. 引导学生认识到手机通讯录系统在生活中的广泛应用,增强其实用主义价值观;3. 培养学生的创新意识,使其敢于尝试新思路,勇于挑战困难。

课程性质:本课程为实践性较强的课程,结合理论教学和实际操作,使学生能够在实践中掌握知识。

学生特点:学生处于高年级阶段,已具备一定的编程基础,对手机通讯录系统有一定了解。

教学要求:教师应注重理论与实践相结合,关注学生的个体差异,提高学生的动手实践能力。

在教学过程中,将目标分解为具体的学习成果,便于后续教学设计和评估。

二、教学内容1. 手机通讯录系统概述:介绍手机通讯录系统的基本概念、功能及在实际应用中的重要性。

- 教材章节:第3章 数据结构与应用,第4节 手机通讯录系统2. 数据结构及存储方式:讲解手机通讯录系统中常用的数据结构(如链表、二叉树等)及其存储方式。

- 教材章节:第2章 线性表与树,第3章 数据结构与应用3. 编程语言实现:运用所学编程语言(如C语言、Python等)实现手机通讯录系统的功能。

- 教材章节:第1章 程序设计基础,第5章 编程语言实例分析4. 手机通讯录系统功能设计:- 添加、删除、查找和修改联系人信息- 教材章节:第4章 算法设计与分析,第6章 数据库原理与应用5. 系统优化与改进:分析现有手机通讯录系统的不足,提出优化方案并进行改进。

手机通讯录课程设计

手机通讯录课程设计

手机通讯录课程设计一、课程目标知识目标:1. 学生理解手机通讯录的基本概念,掌握通讯录的存储与管理工作原理。

2. 学生掌握在手机中新建、编辑、删除和查找联系人等操作方法。

3. 学生了解手机通讯录的安全性和隐私保护措施。

技能目标:1. 学生能够独立在手机中新建、编辑和删除联系人,实现通讯录的有效管理。

2. 学生学会使用手机通讯录中的搜索功能,快速找到所需联系人。

3. 学生能够对通讯录进行备份和恢复,确保数据的安全性。

情感态度价值观目标:1. 学生认识到手机通讯录在生活中的重要性,培养良好的通讯录管理习惯。

2. 学生在操作过程中,树立保护个人隐私和数据安全的意识。

3. 学生通过学习手机通讯录,增强对现代信息技术的兴趣和认识,培养积极向上的学习态度。

课程性质分析:本课程为信息技术课程,结合学生日常生活实际,以手机通讯录为教学载体,旨在提高学生的信息素养和实际操作能力。

学生特点分析:学生处于中学阶段,对手机操作有一定的基础,好奇心强,善于接受新事物。

但部分学生对通讯录管理重视程度不够,需引导培养其管理意识。

教学要求:1. 结合学生特点,注重理论与实践相结合,提高学生的实际操作能力。

2. 强化信息安全意识,培养学生的责任感。

3. 关注个体差异,给予每个学生充分的实践机会,确保学习成果的达成。

二、教学内容1. 通讯录基本概念:介绍手机通讯录的定义、功能及其在日常生活中的重要性。

- 教材章节:第二章第二节“手机通讯录概述”2. 通讯录操作方法:- 新建联系人:姓名、电话、邮箱、地址等信息的填写与保存。

- 编辑联系人:修改已保存联系人的信息。

- 删除联系人:删除不再需要的联系人。

- 查找联系人:使用搜索功能快速查找指定联系人。

- 教材章节:第二章第三节“通讯录的基本操作”3. 通讯录安全与隐私保护:- 备份通讯录:学习如何将通讯录数据进行备份。

- 恢复通讯录:掌握如何恢复已备份的通讯录。

- 隐私保护:了解通讯录隐私设置,提高数据安全性。

c手机通讯录课程设计

c手机通讯录课程设计

c手机通讯录课程设计一、课程目标知识目标:1. 学生能理解并掌握手机通讯录的基本概念和功能。

2. 学生能了解手机通讯录在生活中的实际应用,如快速查找联系人、添加与删除联系人等。

3. 学生能了解手机通讯录的存储方式及其安全性。

技能目标:1. 学生能熟练操作手机通讯录,包括新建、编辑、删除联系人等功能。

2. 学生能运用手机通讯录进行快速拨号,提高沟通效率。

3. 学生能通过手机通讯录导入和导出联系人,实现不同设备间的信息同步。

情感态度价值观目标:1. 学生能认识到手机通讯录在人际交往中的重要性,增强个人信息管理的意识。

2. 学生在操作手机通讯录的过程中,培养耐心、细致的良好习惯。

3. 学生通过学习手机通讯录,提高对现代通信技术的认识,增强信息安全意识。

本课程针对初中年级学生,结合课程性质、学生特点和教学要求,将目标分解为具体的学习成果。

在教学过程中,注重理论与实践相结合,让学生在实际操作中掌握知识,提高技能,培养情感态度价值观。

通过本课程的学习,使学生能够更好地利用手机通讯录,提高生活品质和沟通效率。

二、教学内容1. 手机通讯录概述- 了解手机通讯录的基本概念、功能及在生活中的应用。

- 熟悉手机通讯录的界面及基本操作。

2. 联系人的管理- 新建、编辑、删除联系人。

- 设置联系人头像、分组、备注等信息。

3. 拨号与短信- 使用手机通讯录快速拨号。

- 发送短信给通讯录中的联系人。

4. 通讯录的导入与导出- 学习导入和导出联系人,实现设备间信息同步。

- 了解不同手机品牌间通讯录的兼容性问题。

5. 通讯录安全与隐私- 了解手机通讯录的存储方式。

- 学习如何保护通讯录隐私,防止信息泄露。

教学内容根据课程目标进行科学性和系统性组织,按照以下教学大纲进行安排:第一课时:手机通讯录概述及基本操作。

第二课时:联系人的管理(新建、编辑、删除)。

第三课时:联系人信息的设置(头像、分组、备注)。

第四课时:拨号与短信功能的应用。

手机通讯录实验报告及使用说明(附源代码)

手机通讯录实验报告及使用说明(附源代码)

计算机专业教研室实验报告(数据结构)课程设计手机通讯录小组成员系别班级学号实验日期指导教师实验成绩一、实验内容功能要求:(1)将联系人的信息可以存放在文件中,从文件中也可以读出联系人的信息。

(2)可以添加一个新联系人的信息。

(3)可以删除一个联系人的信息,删除条件为电话号码或姓名。

(4)可以查询一个联系人的信息,查询条件为电话号码或姓名。

(5)可以对联系人的信息进行排序,排序条件为联系人的姓名。

二、实验过程1、整个程序包含三个文件。

手机通讯录.cpp、delong.h 、menu.h(点击产看代码)手机通讯录.cpp [主程序]delong.h [各种函数]menu.h [菜单目录]2、联系人信息包括编号、姓名、手机号码、家庭住址、E-mail、QQ、类别信息。

其中编号分配4位、姓名10位、手机号码13位、地址14位、E-mail 14位、QQ和类别都为12位。

但实际上存储的时候所占位数都要少一位。

因为存储的时候是以字符形式存储,读取的时候以字符串形式读取,需要用最后一位填写字符串结束标志’\0’。

3、函数列表:void AddSpace(int n); /*添加空格*/void Save(FILE *fp,int n,int j); /*将person[MAXSIZE]中的内容放到通讯录.txt*/j==0; 追加方式写入,适用于增加联系人的情况。

j==1; 重新方式写入,适用于修改、删除情况。

三、总结:1、还是有小BUG。

Eg:删除最后一个联系人的时候再输出全部信息时还是能输出一个联系人。

2、代码冗长:Eg:增加操作及存储,得到联系人信息增添空格的时候没有写AddSpace()函数。

在修改操作中得到修改后的联系人信息那里才用AddSpace()函数。

某些地方重复代码较多。

3、函数归编混乱,不利于读看。

四、实验具体实验程序代码(要有注释)、测试结果(最好截图)和实验总结1、开始界面2、创建通讯录,若存在则无须再次创建。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Visual C++课程设计题目名称:手机通讯录班级:信安1101:立翼学号:**********指导教师:***完成时间:2013.1.18目录1 题目描述 (2)2 功能分析 (2)3 系统设计 (2)3.1 系统整体结构 (2)3.1.1 系统中的信息类型划分 (2)3.1.2 对分组的操作 (3)3.1.3 对人员的操作 (3)3.2 主要模块设计 (3)3.2.1 信息类的设计 (3)3.2.2 命令的设计 (4)3.2.3 主要数据结构 (5)3.2.4 文件存储 (5)3.3 程序界面设计 (6)3.3.1 树控件设计 (6)3.3.2 列表视图控件设计 (6)3.3.3 模糊查询设计 (7)3.3.4 分组框设计 (7)3.4 类与函数的设计与实现 (7)3.4.1 联系人类的设计与实现 (7)3.4.2 分组类设计与实现 (8)3.4.3 命令类设计与实现 (8)4 运行与测试结果 (10)4.1 程序主要运行界面 (10)4.2 系统测试 (13)4.2.1 界面操作测试 (13)4.2.2 功能测试 (14)4.2.3 非正常操作测试 (14)5 小结 (14)1 题目描述设计一个手机通讯录管理软件。

要求:1)分组管理。

能够添加、删除、修改,每个分组设置一个来电音乐。

2)用户管理。

包括、手机、办公,电子,QQ ,微博,来电音乐3)用户查询。

初始时按照字母顺序显示所有人员,可以输入或者数字模糊查询4)功能模拟。

当选中一个用户时,有通话和短信选项可以操作,选择后进入相应界面。

2 功能分析系统主要功能包括:(1)分组管理。

可以添加、修改、删除分组。

添加分组时可设置来电音乐,也可修改来电音乐。

(2)用户管理。

可添加、显示、修改、删除用户信息。

用户信息包括、手机、办公、电子、QQ 、微博、来电音乐。

(3)用户查询。

初始时按照字母顺序显示所有人员,可输入或数字进行模糊查询。

可按分组显示人员。

(4)功能模拟。

当选中用户时,有通话和短信选项可以操作,选择后进入相应界面。

3 系统设计3.1 系统整体结构3.1.1 系统中的信息类型划分在本系统中,主要分为两类信息:分组信息和人员信息(如图1所所示)。

其中分组信息包括分组名称及分组来电音乐。

人员信息包括人员、手机、办公、电子、QQ 、微博、分组、来电音乐。

图图1 系统中的信息类型3.1.2对分组的操作用户可以添加分组,删除分组,重命名分组,修改分组音乐。

如图2所示。

图2 分组操作3.1.3对人员的操作用户可以添加人员,删除人员,修改人员,修改人员来电音乐,功能模拟。

如图3所示。

图3 人员操作3.2主要模块设计3.2.1信息类的设计首先创建两个类CPerson和CGroup,分别存储联系人的资料和所有的分组,CPerson 类里包含联系人的、手机、办公、电子、QQ、微博、所属分组、来电音乐,CGroup类里包含分组名称及其对应的来电音乐。

3.2.2命令的设计(1)面向对象的消息响应机制消息(Message)表示为能在对象间传递的数据集,它是对象间的通讯机制。

设计一个面向对象环境的本质是:对象可以用消息在彼此之间传送控制。

在Window环境中,一个特定的消息可以代表一个简单通用的事件;而任何特定的消息可以在不同的对象中引发不同的动作。

尽管对象接收消息的顺序在程序中是不可预知的,但对象处理每个消息所采取的行为却是显式定义的。

消息可由一个对象发送给另一个对象,或是由操作环境本身发送给某个对象;一个对象也可以通过向其他对象或自己发送一条或多条新消息来处理一个消息,有时即使一个简单的动作也包含了层层叠叠的消息处理。

(2)命令和命令类的设计a.分组操作:a)添加分组:OnAddGroup();CAddGroupDlg;b)重命名分组:OnGroupModify();CModifyGroupDlg;c)删除分组:OnDeleteGroup();DeleteList(CString groupname);d)显示分组人员信息:RefreshList();e)播放分组音乐:OnMusic();f)更改分组音乐:OnMusicOk();b.人员操作:a)添加人员:OnAdd();CAddDlg;b)修改人员信息:OnModify();CModify;c)删除人员:OnDelete();d)更改来电音乐:OnMusic();e)发送短信:OnMessage();CSendDlg;f)拨打:OnPhoneTo();CPhoneToDlg;g)显示单个人员信息:RefreshPerson(CString personname);h)显示所有人员信息:RefreshAllList();i)模糊查询:BlurFindStr(CString &strSource,CString&strFindCell);IsBlur(BYTE c1,BYTE c2,char c) (3)命令类及命令的层次如图4所示:图4 命令类及命令的层次3.2.3主要数据结构由于人员类CPerson和分组类CGroup是从MFC的CObject类派生,所以在系统实现中使用了MFC 库提供的数据结构CObList。

CObList类可以将CPerson *指针和CGroup *指针保存在双向链表中,允许双向查询,速度快。

在本系统的实现中,将联系人元素放于CObList类型变量(m_PersonList)的链表中,将分组元素放于CObList类型变量(m_GroupList)的链表中,可对其进行序列化和反序列化,方便信息的存储。

3.2.4文件存储(1)文件存储格式文件的存储格式主要有文本格式和二进制格式。

文本格式的一个显著优点是可以用文本编辑软件(如记事本)打开文件进行观察和读取。

与文本格式不同,二进制格式不能简单的将文件打开编辑。

但二进制文件读取速度快,并且能够利用 MFC库进行序列化,是主流的文件输出格式。

(2)序列化和反序列化序列化就是形成一个二进制文件,用于保存系统中要永久存储的对象数据。

序列化能够使程序中的对象永久保存,也就是说关闭程序重新运行后,这些对象仍然可以保留。

所谓反序列化就是从文件中读出已序列化的对象,并采用读出的数据给系统数据赋初值,即将数据从硬盘存储转换为存存储。

在本系统中,序列化就是向一个数据文件中逐个地写入图形元素对象;反序列化就是从二进制文件中读出数据,利用读出的数据实现对CPerson对象的构造。

为了完成序列化,MFC保存了已经序列化的数据对象信息。

MFC序列化一个文件时,它采用这些信息来动态创建CEntity对象,并自动把它们加载到图形对象列表中。

①类的序列化可序列化的类必须直接或间接从CObject派生,并且满足两个条件:第一,在类的声明中包含宏DECLARE_SERIAL;第二,在用来实现类成员函数的C++源文件(一般为.CPP文件)中包含宏IMPLEMENT_SERIAL。

②集合的序列化由于所有的集合类都是从CObject类派生出来的,并且集合类声明中都包含有DECLARE_SERIAL宏调用,因此我们就可以通过调用集合类的Serialize成员函数,很方便地使集合序列化。

例如,如果调用了有CPerson对象指针组成的CObList集合的Serialize函数,那么每个CPerson *指针所指向的对象的Serialize函数就会被自动调用。

在MFC应用程序框架中,从文档类CDocument类中派生出来的类可以很方便的实现数据序列化。

当用户选择了File菜单中的Save或者Open菜单项时,应用程序框架即会创建CArchive对象(以及部的CFile对象),然后再调用文档类的Serialize函数,并将CArchive对象的引用传递给它。

然后文档派生类的Serialize函数就会对每一个非临时数据成员进行序列化。

3.3程序界面设计界面环境作为人机信息交流的通道,主要是辅助用户完成工作。

为了方便用户使用,在系统实现中进行了树控件设计、列表视图控件设计、模糊查询设计和分组框设计。

3.3.1树控件设计为了向用户可以清晰的展现通讯录的容,本系统提供了树控件对通讯录容进行显示,使用户可以清楚的了解联系人的分布状况及分组的信息,方便用户的使用和操作,使通讯录的联系人信息一目了然,简洁清晰。

3.3.2列表视图控件设计采用列表视图控件来显示联系人消息,联系人所有的信息都显示在列表视图控件中,更直观简洁,而且,本程序按照联系人的字母顺序来显示联系人消息,方便用户通过来查找联系人,使用方便简单。

3.3.3模糊查询设计本程序为用户设计了模糊查询功能,更有利于用户的使用,方便用户查询联系人信息,是查询操作更为简单方便。

3.3.4分组框设计为了使分组操作和用户操作更加醒目,易于用户操作,本系统使用分组框将分组操作和用户操作分别分开来显示,使系统界面更为美观,让用户使用过程中心情舒畅。

3.4类与函数的设计与实现3.4.1联系人类的设计与实现CPerson类为整个手机通讯录软件提供了联系人的存储记录。

CPerson类的声明如下:class CPerson : public CObject{DECLARE_SERIAL(CPerson)CString name; //CString phone; //手机CString number; //办公CString email; //电子CString qq; //QQCString weibo; //微博CString group; //联系人所属分组CString music; //联系人来电音乐public:CPerson(CString lname="",CString lphone="",CString lnumber="",CString lemail="",CString lqq="",CString lweibo="",CString lgroup="",CString lmusic="");//构造函数virtual ~CPerson(); //析构函数virtual void Serialize(CArchive& ar);bool operator=(const CPerson &person); //重载函数};CPerson类派生于CObject类,存储了联系人的信息,其中不带参数的构造函数为序列化提供了条件。

3.4.2分组类设计与实现CGroup类为整个手机通讯录软件提供了存储记录功能。

相关文档
最新文档