展讯电话本设计流程详解

需积分: 0 2 下载量 57 浏览量 更新于2024-09-16 收藏 108KB DOC 举报
"电话本设计的基本流程主要涉及展讯PB(电话本)的工作流程,包括名片的存储位置、参数设置、操作流程以及数据结构初始化。本文档由wujuan@spreadtone.com于2010-03-24编写,适用于想要学习展讯电话本设计的人员。" 在电话本设计中,PB(电话本)的核心功能和流程至关重要。PB工作流程首先涉及到名片的存储选择,名片可以存储在手机的NV(非易失性存储)或SIM卡上。手机NV存储空间有限,只能容纳14条包含姓名、号码和email的记录,而SIM卡则仅能存储名字和移动号码。 在判断名片存储位置时,通过`MMIPB_IsInSIMGroup(entry_ptr->group_id)`函数来决定是存储到SIM卡还是手机。在PB的操作中,排序和查找是最关键的部分,这通常涉及到了二分法和顺序查找法等算法,确保数据的有效管理和快速访问。 在系统开机初始化阶段,PB会进行一系列的初始化操作。这些操作包括APPINIT_Task调用的MMIAPIPB_InitEntryList(),接着是MMIPB_InitEntryList()和MMIPB_InitNvPhonebookInfo(),以及InitEntryListParameter()和MMIPB_InitSearchList等。这些函数按照一定的调用关系执行,用于初始化数据结构,如`s_mmipb_nv_info_t`和`g_mmipb_entry_list`。 `s_mmipb_nv_info_t`结构体用于存储NV存储器的相关信息,包括有效性标志、最大姓名长度、最大号码长度、最大记录数和已使用的记录数。另一方面,`g_mmipb_entry_list`结构体则反映了特定存储器中的排序状态和entry_id的使用情况,其中包含了排序用的表和entry_id的状态。 电话本设计还涉及到其他操作,如添加、删除和搜索记录,每次操作后都需要对整个列表重新排序,以保持数据的有序性。通过深入理解这些基本流程和数据结构,可以更好地设计和优化电话本功能,提高用户体验。

简单个人电话号码查询系统(难度2) 【问题描述】 人们在日常生活中经常需要查找某个人或某个单位的电话号码,本实验将实现一个简单的个人电话号码查询系统,根据用户输人的信息(例如姓名等)进行快速查询。 【基本要求 】 ()在外存上,用文件保仔电话号码信息; 2)在内存中,设计数据结构存储电话号码信息; (3)提供查询功能:根据姓名实现快速查询; (4) 提供其他维护功能:例如插人、删除、修改等; 5)按电话号码进行排序。 【设计恩椇】 由于需要管理的电话号码信息较多,而且要在程序运行结束后仍然保存电话号 码信息,所以电话号码信息采用文件的形式存放到外存中。在系统运行时,需要将电话号码信息从文件调人内存来进行查找等操作,为了接收文件中的内容,要有一个数据结 const int max=10; struct TeleNumber string name; //4:2 string phoneNumber; 1固定电话号码 string mobileNumber; 1/移动电话号码 string email; 1/电子邮箱 1 Tele max; 为了实现对电话号码的快速查询,可以将上述结构数组排序,以便应用折半查找,但是,在数组中实现插人和州除操作的代价较高。如果记录需频繁进行插人或删除 操作,可以考虑采用二叉排序树组织电话号码信息,则查找和维护都能获得较高的时间性能。更复杂地,需要考虑该二叉排序树是否平衡,如何使之达到平衡。

2023-06-13 上传