题目通讯录管理系统
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
题目 2 通讯录管理系统
一.设计要求
1、问题描述
设有一通讯录,记录联系人的联系信息,包括联系人姓名、联系人多个联系电话、邮箱、联系地址以及所属群组。联系人按姓氏序列升序排列并按顺序编号。使用者能根据姓名或编号对联系人信息进行增删改查。请编制一程序模拟该通讯录的管理。
2、设计要求
1)基本要求
(1) 新建联系人。输入联系人的姓名、电话、email、地址和分组等信息,
并插入通讯录的正确位置。
(2) 编辑联系人。可修改、新增或删除联系人的电话、设置首个默认电话号
码、修改或删除email、地址和分组等信息。
(3) 删除联系人。可按姓名或序号删除联系人的信息。
(4) 查询联系人。可按姓名或序号查询联系人的信息并输出。
(5) 群组管理。可根据实际情况删除或新增分组,可为联系人分配群组或移
除群组,并可按群组查询联系人信息。
(6) 输出通讯录。按顺序输出通讯录的全部信息。
2)以下为选做:
(7) 按姓名查询联系人时可进行模糊查询。
(8) 通过文件读写实现通讯录信息的读取和记录。
二.概要设计
1.主界面设计
为了实现通讯录管理系统,设计一个含有多个菜单项的主控菜单子程序以链接系统的各项子功能,方便用户使用本系统。本系统主菜单运行界面如下图
所示。
2.存储结构设计
本系统主要采用链表结构类型存储联系人信息。
3.系统功能设计
本系统分为以下7个功能模块。
(1)添加联系人:添加联系人子模块可完成添加联系人姓名、电话、email、地址和分组等信息,并插入通讯录的正确位置。
(2) 编辑联系人。可修改、新增或删除联系人的电话、设置首个默认电话号码、修改或删除email、地址和分组等信息。
(3) 删除联系人。可按姓名或序号删除联系人的信息。
(4) 查询联系人。可按姓名或序号查询联系人的信息并输出。
(5) 群组管理。可根据实际情况删除或新增分组,可为联系人分配群组或移除群组,并可按群组查询联系人信息。
(6) 输出通讯录。按顺序输出通讯录的全部信息。
(7)可选择是否保存并退出系统。
三.模块设计
1.模块设计
本程序包含主程序模块,菜单选择模块和链表操作模块。调用关系如图所示:主程序模块菜单选择块链表操作模块
2.系统子程序及功能设计
本系统共设置8个函数,其中包含主函数,各函数名及功能说明如下:void addman();//添加联系人
void deleteman();//删除联系人
void updateman();//修改联系人
void searchman();//查找联系人
void printcontact();//输出全部联系人
void group();//分组
void save();//保存联系人
Int main();//主函数
四.详细设计
1.数据类型定义
class Node{
public:
Node *next;
string name; 姓名
string num; 电话
string email; 邮箱
string address; 地址
string group; 分组
};
class contact{
public :
Node *head;
contact(){head=new Node;head->next=NULL;};
void addman();//添加联系人
void deleteman();//删除联系人
void updateman();//修改联系人
void searchman();//查找联系人
void printcontact();//输出全部联系人
void group();//分组
void save();//保存联系人
};
2.系统主要子程序详细设计
(1)主程序模块设计
主函数:设定用户操作界面以及界面颜色和大小,调用菜单子模块函数
int main()
{
system("color 0D");
contact c;
cout<<" ★*******★★★★★★*******★"< cout<<"**************★欢迎来到通讯录管理系统★**************"< cout<<" ★*******★★★★★★*******★ "< int j; while(1){ cout<<"*********************************************************"< cout<<"----☆★------| 1.添加联系人 | ----★☆------"< cout<<"----☆★------| 2.查询联系人 | ----★☆------"<< endl; cout<<"----☆★------| 3.删除联系人 | ----★☆------"<< endl; cout<<"----☆★----- | 4.修改联系人 | ----★☆------"<< endl; cout<<"----☆★----- | 5.查看分组 | ----★☆------"<< endl; cout<<"----☆★------| 6.输出全部联系人 | ----★☆------"<< endl; cout<<"----☆★------| 0.退出系统 | ----★☆------"<< endl; cout<<"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"< cout<<" ★★★★★★请**选**择★★★★★★:" < cin>>j; switch(j){ case 1:{ c.addman();