大数据结构课程设计-通讯录管理系统.doc
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
《数据结构》 课 程 设 计 报 告 书 题 目: 通讯录管理系统 系 别: 计算机科学与应用系 学 号: 学生: 指导教师: 完成日期: 2012年5月28日 1 问题描述 (1)题目容:通讯录管理。 (2)基本要求:利用单链表实现通讯录的建立、通讯者的插入、通讯者的删除、通讯者的 查询以及通讯录的输出。 (3)设计目的:通过本次课程设计,了解通讯录的一些基本功能。掌握利用单链表进行插 入,查找,用关键字建立单链表。 2 需求分析 经过本次的课程设计,我认为通讯录主要实现的功能如下: (1)添加信息:一个通讯录应该有其基本的添加功能。在程序设计时,我通过一个具有添 加功能的函数,实现了个人信息的添加,如:,性别,,QQ,地址。 (2)删除信息:当你不需要某个联系人的信息时,可以直接将该人的信息删除。 (3)查找:一个通讯录应该具有令一基本功能就是查找,本设计时可以按联系人为关键字 查找的,只要你输入要查找人的或手机或QQ就可出来相应的个人信息。 (4)输出:一个通讯录应该具有输出所有联系人的功能,本设计按照次序可以从头到尾把 通讯录中的所有联系人都输出,供自己查看。 (5)退出:当你做完你要做的事情之后,就可以退出该程序。 3 总体设计 3.1 算法的定义 LinkList Creat_LinkList()创建空单链表 void Insert_LinkList(LinkList H)建立通讯录,录入联系人的信息,可以把联系人的,性别,手机号,QQ号,地址录入 系统。 void Locate_LinkList(LinkList H)按照联系人的,手机,QQ查找通讯录中联系人的信息。 void Delete_LinkList(LinkList H)按照联系人的,手机,QQ删除联系人的所有信息。 void print_LinkList(LinkList H)输出通讯录中的所有联系人的信息供使用者查看。 3.2 系统流程图 图3-1通讯录管理功能图 3.3 详细程序设计 1)定义数据结构 typedef struct Node //定义 数据结构 { char name[20];// char sex[4]; //性别 char tel[11];// char qq[13]; //qq char ad[100];//地址 Node *next;//存放后继元素的地址 }LNode,*LinkList; 2)创建一个空的单链表 LinkList Creat_LinkList() {//创建空单链表,入口参数无 LinkList H; H=new LNode; if(H)//确认创建头结点创建是否成功,若成功,修改单链表头结点的指针域为0表空表 { H->next=NULL; } return H; } 3)向通讯录中插入联系人 void Insert_LinkList(LinkList H) { LinkList p; p=new LNode; if(!p) { cout<<"不能插入!"<<endl; } cout<<"请输入你要插入的联系人信息:"<<endl; cout<<":"<<endl; cin>>p->name; cout<<"性别:"<<endl; cin>>p->sex; cout<<"手机:"<<endl; cin>>p->tel; cout<<"QQ:"<<endl; cin>>p->qq; cout<<"地址:"<<endl; cin>>p->ad; p->next=H->next; H->next=p; cout<<"插入成功"<<endl; } 4)查询通讯录中某个联系人的信息 void Locate_LinkList(LinkList H) { int x; LinkList p=H->next; cout<<"你要通过哪种方式查询?"<<endl; cout<<"1.通过联系人查询"<<endl; cout<<"2.通过联系人手机查询"<<endl; cout<<"3.通过联系人QQ查询"<<endl; cin>>x; char str[30]; if(x==1) { cout<<"请输入你要查询的联系人的:"; cin>>str; while(p && strcmp(p->name,str)!=0) { p=p->next; } } if(x==2) { cout<<"请输入你要查询的联系人的手机:"; cin>>str; while(p&&strcmp(p->tel,str)!=0) { p=p->next; } } if(x==3) { cout<<"请输入你要查询的联系人的QQ:"; cin>>str; while(p&&strcmp(p->qq,str)!=0) { p=p->next; } 【通讯录管理系统设计】 在《数据结构》课程设计中,通信录管理系统是一个常见的实践项目,旨在让学生掌握数据结构,特别是单链表的应用。这个系统的主要目的是实现通讯录的基本功能,包括建立、插入、删除、查询和输出联系人信息。 **核心知识点** 1. **单链表**:通讯录管理系统的核心数据结构是单链表,它是一种线性数据结构,每个节点包含数据元素和一个指向下一个节点的指针。在这个案例中,节点包含了联系人的姓名、性别、电话、QQ号码和地址。 2. **数据结构定义**:`typedef struct Node`定义了一个名为`LNode`的结构体,其中包含联系人的属性和一个指向下一个节点的指针`next`。这个结构体用于创建链表节点。 3. **链表操作函数**: - `Creat_LinkList()`:创建一个空的链表。它分配内存并初始化头结点,使`next`指针为空。 - `Insert_LinkList()`:向链表中插入新的联系人信息。用户通过输入界面提供信息,然后新节点被插入链表的末尾。 - `Locate_LinkList()`:根据用户的选择(姓名、电话或QQ)查找特定联系人。它遍历链表直到找到匹配项或遍历结束。 - `Delete_LinkList()`:根据用户提供的关键信息(姓名、电话或QQ)删除联系人。这需要遍历链表找到目标节点,然后更新指针以删除该节点。 - `print_LinkList()`:打印链表中所有联系人的信息,方便用户查看。 4. **需求分析**:系统需要具备添加、删除、查找、输出和退出等功能。这些功能满足了用户管理个人联系信息的基本需求。 5. **系统流程**:系统流程图展示了从启动到退出的整个过程,包括用户交互和内部的链表操作。 6. **算法设计**:在单链表中插入、查找和删除联系人涉及到基础的链表操作,如头结点的处理、新节点的插入以及根据条件遍历链表等。 7. **程序实现**:使用C++编程语言实现,通过定义和操作链表结构来实现通讯录功能。每个功能对应一个函数,使得代码结构清晰,易于理解和维护。 通过这个课程设计,学生可以深入理解单链表的运作原理,并学会如何利用它来实现实际问题的解决方案,如通讯录管理。此外,这也能提高他们在实际编程中解决问题的能力,为后续更复杂的数据结构和算法学习打下坚实的基础。
![application/msword](https://img-home.csdnimg.cn/images/20210720083327.png)
![cpp](https://img-home.csdnimg.cn/images/20210720083646.png)
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![thumb](https://img-home.csdnimg.cn/images/20210720083646.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![](https://csdnimg.cn/release/download_crawler_static/87843392/bg1.jpg)
![](https://csdnimg.cn/release/download_crawler_static/87843392/bg2.jpg)
![](https://csdnimg.cn/release/download_crawler_static/87843392/bg3.jpg)
剩余13页未读,继续阅读
![avatar-default](https://csdnimg.cn/release/downloadcmsfe/public/img/lazyLogo2.1882d7f4.png)
![avatar](https://profile-avatar.csdnimg.cn/f3d219d0e10d40ef9bf4553a2dcb10a5_qq_43966957.jpg!1)
- 粉丝: 100
- 资源: 9355
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![voice](https://csdnimg.cn/release/downloadcmsfe/public/img/voice.245cc511.png)
![center-task](https://csdnimg.cn/release/downloadcmsfe/public/img/center-task.c2eda91a.png)
最新资源
- 打包和分发Rust工具.pdf
- SQL中的CREATE LOGFILE GROUP 语句.pdf
- C语言-leetcode题解之第172题阶乘后的零.zip
- C语言-leetcode题解之第171题Excel列表序号.zip
- C语言-leetcode题解之第169题多数元素.zip
- ocr-图像识别资源ocr-图像识别资源
- 图像识别:基于Resnet50 + VGG16模型融合的人体细胞癌症分类模型实现-图像识别资源
- C语言-leetcode题解之第168题Excel列表名称.zip
- C语言-leetcode题解之第167题两数之和II-输入有序数组.zip
- C语言-leetcode题解之第166题分数到小数.zip
![feedback](https://img-home.csdnimg.cn/images/20220527035711.png)
![feedback-tip](https://img-home.csdnimg.cn/images/20220527035111.png)
![dialog-icon](https://csdnimg.cn/release/downloadcmsfe/public/img/green-success.6a4acb44.png)