实验三通讯录

1、设计并实现日常生活中通讯录的管理系统。该系统需3位同学一组,按模块分工协作完成,系统具体功能需求描述如下:


① 输入数据建立通讯录表:在系统使用前先需要创建通讯录,可以一次输入(或文件导入)多个成员的通讯录信息,建立通讯录。要求此表为顺序存储结构

② 查看所有通讯录信息:显示通讯录表中所有成员的通讯录信息。

③ 查询通讯录中满足要求的信息:可以根据不同方式查询,如按姓名查询、按姓氏查询、按编号查询等。

④ 新增通讯录信息:每次可添加一个新成员的通讯录信息。

⑤ 修改通讯录信息:修改通讯录中已有成员的信息。

⑥ 删除通讯录成员:删除通讯录表中已有的成员,但需要把删除的成员信息放到另一张被删成员表中,以便错误操作后允许恢复。该被删成员表要求采用链式存储

⑦恢复被删成员信息:一旦发现误删,则可以在被删成员表中找到该成员,重新加入到通讯录表中。

系统实现要求:


① 通讯录表必须使用动态分配顺序存储结构,被删成员表必须使用链式存储结构。

②通讯录信息至少包括:编号、姓名、电话1、电话2、邮箱、......等,其他可自行设置。

③用菜单方式选择相应功能,且各功能的有关操作需通过调用各函数来实现,如:初始化通讯录表用函数void InitAddressBook(SqList &TXL)、浏览所有通讯录成员函数 BrowseAddressBook(SqList TSL) 等等,这些操作因针对通讯录原始表,属于顺序结构,故可将这些子函数放在头文件test3_Seq.h中。针对被删成员表的操作,由于是链式存储结构,故针对此表的相关操作课定义在test3_link.h中。

③ 建立主函数文件test3.cpp,通过调用上述头文件中的函数来实现该系统。

④ 给出系统数据类型的定义、存储结构定义以及各个函数之间的调用关系。


//需要的结构
typedef struct AddressBook {
    char id[20];                         //编号
    char name[20];                       //姓名
    char phone_one[20];                  //电话1
    char phone_two[20];                  //电话2
    char email[20];                      //邮箱
    ......
} ElemType;
//顺序存储
typedef struct {
    ElemType *AddressBook_data;            //信息
    int length;                            //存储有多少个信息
} SqList;
//链式
struct Node {
    ElemType AddressBook_data;    //信息
    struct Node *next;
};
void InitAddressBook(SqList &L);//初始化顺序存储
void Printf_AddressBook(SqList L);//查看所有通讯录信息
void Insert_AddressBook(SqList &L);//增加通讯录信息
void Search_AddressBook(SqList L);//查询通讯录信息
void Modify_AddressBook(SqList &L);//修改通讯录信息
void Delete_AddressBook(SqList &L,LinkList &List);//删除指定信息,并放入链表中
void Init_Delete_AddressBook(LinkList &List);//初始化链式存储
void Insert_Delete_AddressBook(LinkList &List, ElemType e);//增加被删除的通讯录信息
void Search_Delete_AddressBook(LinkList List);//查询被删除的通讯录信息
void Renew_Delete_AddressBook(SqList &L, LinkList &List);//将指定被删除的通讯录信息恢复到原通讯录

(可另行添加文件操作,同时自己利用puts()、printf()等函数设计好UI以及交互完善就好了)

由于代码很多,这里就不贴上来了,主要提供一个思路,如果确实需要到时候再贴。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 人的这一生,起点就是出生的那一刻,终点就是生命的结束。人生这条路,有无数的选择,起点或许相同,但终点却又可能不同。...
    子耳子耳阅读 295评论 0 0
  • 1. 何周周最近交了男朋友,是一个叫徐垚的小男生。 照片发到我手机上的时候,我对她说:“你就不要再祸害纯情小男生了...
    花辞MK阅读 445评论 0 0
  • 老头用拐杖探了探门诊大厅的厚门帘,好像先伸出一只脚,告诉外面往里闯的人“这里有根拐杖”,慢慢挪到帘子缝的地方,拐杖...
    Lnrsyao阅读 152评论 0 0
  • three.js中新建一个立方体怎么让它只显示六条边?wireframe设置为true时将对角线也显示出来了 ju...
    不系流年系乾坤阅读 901评论 0 0