发布时间 : 星期六 文章数据结构课程设计报告 手机个人通讯录信息管理系统正文终稿更新完毕开始阅读
1 课题概述
1.1 课题任务
【问题描述】
对手机个人通讯录的创建和查询等信息管理作一个简单的模拟。
【设计要求】
设计手机个人通讯录管理的模拟程序。 (1)采用顺序表或结构体链表存储结构。
(2)实现通讯录的创建、修改、插入、删除、分组等管理功能。 (3)实现通讯录的各种查询和统计功能。
(4)采用优化的查询和排序算法和实用的人机交互界面。 (5)其它完善性功能。
1.2 课题原理
利用数据结构中的顺序表或链表对手机通讯录的联系人信息进行存储,同时通过图形界面的设计制作对手机通讯录的各个功能进行模拟。
1.3相关知识
(1)顺序表或链表的基本结构;
(2)顺序表和链表的基本操作,如:插入、删除、查找; (3)C++ MFC可视化程序设计的基本知识;
2 需求分析
2.1 课题调研
我们的课题是手机通讯录的模拟,我们对身边同学手机通讯录进行了基本的调查,发现这些通讯录的基本功能大致相同:
(1)均带有分组功能。将联系人可以分为多个组存储。
(2)可以直观地展示各组联系人以及每个联系人的详细信息。点击每个条目后,自动展开分组或者直接显示出联系人的详细信息。 (3)可以对分组进行修改、删除、添加等操作。
(4)可以对联系人进行添加、删除、修改、移动等操作。 (5)可以进行姓名和号码的查询。 (6)拥有人性化的操作界面。
所以我们便以此为设计目标,进行手机通讯录的模拟程序设计。
2.2 用户需求分析
如今手机越来越成为人们生活、学习和工作中不可缺少的一员,但其最基本的功能是通话,通讯录的存在是及其必要和重要的,一个合理的手机通讯录能够更方便地对用户进行服务,用户使用它可以更便捷地查找和添加联系人,修改其信息等等,因此需求十分巨大。
在计算机还未普及之前通讯管理都是由联系人采用名片,笔录手工记帐的方式来操作的.现在一般的通讯录管理都是采用计算机作为工具的实用的计算机通讯录管理程序来帮助人们进行更有效的通讯录信息管理。通讯录管理系统是典型的信息管理系统,其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。要求应用程序功能完备,易使用等特点。
功能上,需要实现通讯录管理系统的基本功能,如课题调研中所述的功能。性能上,应当考虑更多的更快捷的查找操作,保证程序的运行速度。
3 方案设计
3.1 总体功能设计
(1)新建联系人、新建组功能 (2)删除、编辑联系人和组的功能 (3)移动联系人到其他分组的功能 (4)按姓名查询联系人功能
(5)按号码查询联系人功能
(6)显示联系人和组的详细信息功能 (7)联系人数量、分组数的基本统计功能 (8)帮助功能
3.2 数据结构设计
为了方便文件存储操作,整个程序数据结构采用顺序表来设计。
class Contact//最基本单位为联系人类,其中有每个联系人的具体信息条目 {
public:
Contact(); ~Contact();
int Create(char *n, char *p, char *c, char *r); char name[25];//姓名
char phonenumber[12];//号码 char city[25];//城市
char remark[MAX_REMARK];//备注 int numberofcalls;//通话次数 struct record{ struct date{ int year; int month; int day; int hour; int minute;
} date;//通话日期时间 struct talktime{ int minute;
int second;
} talktime;//通话时长
} record[MAX_RECORD];//通话记录 };
class Group//组类包含联系人类数组,每组包含一定数目的联系人 {
public:
Group(); ~Group();
int Create(char *groupname);
int AddContact(char *n,char *p,char *c,char *r); int SearchContactName(char *key);
int SearchContactPhonenumber(char *key); int DeleteContact(int c);
void HeapAdjust(int s, int m); int Order();
char name[MAX_GROUPNAME];//组名 int numberofmenber;//成员数
Contact contact[MAX_NUMBEROFMENBER];//联系人数组 };
class PhoneBook//通讯录类包含组数组,只有一个通讯录,其下包含多个组 {
public:
PhoneBook(); ~PhoneBook();
int AddGroup(char *groupname); int SearchGroup(char *key); int DeleteGroup(char *key);
int SearchContactName(char * key, int &g, int &c);
int SearchContactPhonenumber(char * key, int &g, int &c); int DeleteContact(char *key); int order();
int numberofgroup;//组数
Group group[MAX_NUMBEROFGROUP];//组数组 };