通讯录管理系统的设计与实现

合集下载

通讯录管理系统设计报告

通讯录管理系统设计报告

通讯录管理系统设计报告一、引言通讯录在日常生活中扮演着重要的角色,用来存储和管理各种联系人信息,方便人们随时找到需要联系的人或组织。

随着移动互联网的普及,通讯录的管理变得更加便捷和高效。

为了提高通讯录的管理效率,我们设计并开发了一款通讯录管理系统。

二、系统概述通讯录管理系统是一个基于Web的应用程序,用户可以通过浏览器访问系统,进行通讯录的管理操作。

系统主要包括以下功能:•用户登录与注册:用户可以注册新账号,并通过账号密码登录系统。

•联系人管理:用户可以添加、编辑、删除联系人信息,包括姓名、电话号码、邮箱等。

•分组管理:用户可以创建分组并将联系人归类到不同分组。

•搜索功能:用户可以通过关键词搜索联系人信息。

•导出和导入功能:用户可以将联系人信息导出为Excel表格,并可以通过Excel文件导入联系人到系统中。

三、系统架构通讯录管理系统采用了前后端分离的架构,前端使用Vue.js框架开发,提供友好的用户界面;后端使用Node.js和Express框架搭建RESTful API,负责数据的存储和管理。

系统中的数据存储在MySQL数据库中,用户的密码使用bcrypt进行加密存储,确保用户信息的安全性。

同时,系统对用户权限进行了细致管理,保障用户在系统中的数据安全。

四、系统界面系统的界面设计简洁直观,用户可以轻松进行操作。

主要包括登录页面、通讯录首页、联系人管理页面、分组管理页面等。

用户登录页面:[登录页面截图]通讯录首页:[通讯录首页截图]联系人管理页面:[联系人管理页面截图]五、系统特色•简洁高效:系统操作简单直观,提供了快速的联系人管理功能。

•个性化定制:用户可以根据自己的需求创建分组,快速查找联系人。

•数据安全:采用了加密技术和权限管理,确保用户数据的安全性。

•导入导出功能:支持Excel文件导入导出,方便用户管理大批量联系人信息。

六、未来展望通讯录管理系统将继续进行优化和迭代,引入更多智能化功能,如联系人推荐、消息提醒等,提升用户体验。

Java通讯录管理系统设计报告

Java通讯录管理系统设计报告

Java通讯录管理系统设计报告1. 引言随着社会发展和信息技术的进步,通讯录在人们的日常生活和工作中变得越来越重要。

Java通讯录管理系统是一种用于管理个人和组织联系信息的软件系统。

本篇文档将详细介绍Java通讯录管理系统的设计和实现。

2. 功能需求Java通讯录管理系统具有以下功能需求: - 添加联系人:用户可以添加新的联系人,包括姓名、电话号码、电子邮件等相关信息。

- 删除联系人:用户可以删除已存在的联系人。

- 编辑联系人:用户可以修改已存在联系人的信息。

- 搜索联系人:用户可以根据姓名、电话号码或其他关键字搜索联系人。

- 显示联系人列表:用户可以查看所有联系人的列表,并按照姓名或其他方式进行排序。

- 导入/导出联系人:用户可以将联系人导入/导出到文件中,以实现数据的备份和共享。

3. 系统设计3.1 技术栈选择Java通讯录管理系统采用Java语言进行开发,使用Java的面向对象特性来实现系统的各个功能模块。

系统使用MySQL数据库来存储联系人的信息。

3.2 系统架构Java通讯录管理系统采用三层架构,分为表示层、业务逻辑层和数据访问层。

•表示层:负责与用户的交互,包括图形界面和用户输入输出的处理。

•业务逻辑层:负责处理用户的请求,对联系人信息进行增加、删除、编辑、搜索等操作,并调用数据访问层进行数据的读写。

•数据访问层:负责与数据库交互,进行联系人信息的读写操作。

3.3 类设计在Java通讯录管理系统中,主要涉及以下类的设计: - Contact类:表示一个联系人,包含姓名、电话号码、电子邮件等属性。

- ContactDAO接口:定义对联系人的增删改查等操作。

- ContactDAOImpl类:实现ContactDAO接口,负责与数据库进行交互。

- ContactService类:负责处理业务逻辑,调用ContactDAOImpl 类进行联系人信息的操作。

- ContactConsole类:表示层的用户界面,处理用户输入输出和展示联系人信息。

数据结构课程设计通讯录管理系统报告

数据结构课程设计通讯录管理系统报告

数据结构课程设计通讯录管理系统报告前言通讯录管理系统是一种常见的应用程序,用于帮助用户有效地组织和管理他们的联系人信息。

本报告旨在介绍和分析一个基于数据结构设计的通讯录管理系统,其中实现了基本的通讯录功能,并且通过合适的数据结构和算法进行优化。

功能需求通讯录管理系统需要实现以下基本功能: - 添加联系人信息 - 查找联系人信息 - 删除联系人信息 - 更新联系人信息 - 显示所有联系人信息数据结构选择为了实现通讯录管理系统的功能,我们选择使用链表作为数据结构。

链表是一种简单而灵活的数据结构,可以动态地添加或删除节点,非常适合存储联系人信息这种动态的数据。

在这里,我们采用双向链表,使得查找、插入和删除操作更加高效。

算法设计添加联系人信息添加联系人信息时,我们需要遍历链表找到合适的位置插入新节点,这里的算法复杂度为O(n),其中n表示链表的长度。

查找联系人信息查找联系人信息时,我们需要遍历链表查找目标节点,这里的算法复杂度为O(n)。

删除联系人信息删除联系人信息时,我们同样需要遍历链表找到目标节点并删除,其算法复杂度为O(n)。

更新联系人信息更新联系人信息时,我们首先需要查找到目标节点,然后进行更新操作,其算法复杂度也为O(n)。

系统优化为了提高系统的性能,我们可以通过以下几种方式进行优化: - 使用哈希表索引联系人信息,减少查找联系人的时间复杂度; - 引入缓存机制,减少频繁的IO 操作。

总结通过本报告的介绍和分析,我们了解了一个基于数据结构设计的通讯录管理系统的实现原理和优化方法。

在实际应用中,针对具体需求和场景,我们可以进一步优化系统性能,提升用户体验。

通讯录管理系统作为一种简单而实用的应用程序,将在日常生活中发挥重要作用。

学生通讯录管理系统数据结构课程设计

学生通讯录管理系统数据结构课程设计

学生通讯录管理系统数据结构课程设计一、需求分析在学生通讯录管理系统中,我们需要实现以下功能:1.学生信息的录入与管理2.通讯录信息的增删查改3.数据的持久化存储二、系统设计1. 数据结构设计为了实现学生通讯录管理系统的功能,我们需要设计以下数据结构:•学生信息结构体包括学号、姓名、性别、年龄等字段•通讯录信息结构体包括联系人姓名、电话号码、邮箱等字段2. 算法设计2.1 添加学生信息当用户选择添加学生信息时,系统会要求用户输入学号、姓名、性别、年龄等信息,然后将这些信息存储在学生信息的数据结构中。

void addStudentInfo() {// 读取用户输入的学生信息// 将学生信息存储在学生信息结构体中}2.2 修改通讯录信息用户可以根据联系人姓名查找通讯录信息,并进行修改操作,比如修改电话号码、邮箱等内容。

void modifyContactInfo() {// 根据联系人姓名查找通讯录信息// 用户进行修改操作}2.3 删除通讯录信息用户可以根据联系人姓名删除通讯录信息。

void deleteContactInfo() {// 根据联系人姓名删除通讯录信息}3. 数据存储设计为了持久化存储数据,我们可以选择使用文件存储或数据库存储。

在本系统中,我们选择文件存储的方式,数据以文本的形式存储在文件中。

三、系统实现通过以上设计,我们可以开始实现学生通讯录管理系统。

在实现过程中,我们需要注意保证数据结构的正确性和数据操作的合法性,从而确保系统的稳定性和可靠性。

四、总结通过本次数据结构课程设计,我们深入了解了学生通讯录管理系统的实现原理和功能设计。

在接下来的学习中,我们将继续努力提升自己的编程能力,不断完善系统的功能和性能,为实现更多复杂系统打下坚实的基础。

数据结构课程设计通讯录管理系统

数据结构课程设计通讯录管理系统

数据结构课程设计通讯录管理系统一、系统需求分析通讯录管理系统的主要目标是提供一个方便、高效的方式来管理联系人信息。

具体需求包括:1、能够添加联系人,包括姓名、电话号码、电子邮件、地址等基本信息。

2、可以对联系人信息进行修改和删除操作。

3、支持按照姓名、电话号码等关键字进行快速查找。

4、能够以列表形式展示所有联系人的信息。

二、数据结构选择为了实现上述功能,我们需要选择合适的数据结构来存储联系人信息。

考虑到联系人信息的多样性和动态性,链表是一个不错的选择。

链表可以方便地进行插入、删除和修改操作,并且能够灵活地调整存储空间。

另外,为了提高查找效率,我们可以结合使用哈希表。

通过将联系人的关键信息(如姓名或电话号码)进行哈希运算,快速定位到对应的联系人节点。

三、系统功能实现1、添加联系人功能当用户选择添加联系人时,系统会提示用户输入联系人的各项信息。

这些信息被封装成一个结构体,并通过链表的插入操作添加到链表中。

同时,将关键信息映射到哈希表中,以便后续快速查找。

2、修改联系人功能用户输入要修改的联系人的关键字,系统通过哈希表快速找到对应的联系人节点。

然后,提示用户输入修改后的信息,并更新链表和哈希表中的数据。

3、删除联系人功能与修改功能类似,通过关键字找到联系人节点,从链表和哈希表中删除相应的节点和信息。

4、查找联系人功能用户输入查找关键字,系统通过哈希表进行快速定位,如果找到匹配的联系人,则显示其详细信息。

5、展示所有联系人功能遍历链表,将所有联系人的信息以列表形式输出到屏幕上。

四、系统界面设计为了提高用户体验,系统设计了简洁直观的界面。

主界面提供了添加、修改、删除、查找和展示所有联系人等功能选项。

用户通过选择相应的选项,进入对应的操作流程。

五、代码实现示例以下是部分关键代码的示例:```c//联系人结构体typedef struct Contact {char name50;char phoneNumber20;char email50;char address100;struct Contact next;} Contact;//哈希表节点结构体typedef struct HashNode {char key50;Contact contact;struct HashNode next;} HashNode;//链表插入联系人void insertContact(Contact head, Contact newContact) {newContact>next = head;head = newContact;}//哈希函数unsigned int hashFunction(const char key) {unsigned int hash = 0;while (key) {hash =(hash << 5) + key++;}return hash % HASH_TABLE_SIZE;}//查找联系人Contact findContact(Contact head, const char key, HashNode hashTable) {unsigned int hashValue = hashFunction(key);HashNode node = hashTablehashValue;while (node) {if (strcmp(node>key, key) == 0) {return node>contact;}node = node>next;}Contact current = head;while (current) {if (strcmp(current>name, key) == 0 ||strcmp(current>phoneNumber, key) == 0) {//更新哈希表HashNode newNode =(HashNode )malloc(sizeof(HashNode));strcpy(newNode>key, key);newNode>contact = current;newNode>next = hashTablehashValue;hashTablehashValue = newNode;return current;}current = current>next;}return NULL;}```六、系统测试在完成系统的开发后,需要进行全面的测试以确保系统的稳定性和可靠性。

通讯录管理系统设计与实现

通讯录管理系统设计与实现

1引言通讯录是用来记载、查询联系人通讯信息的工具。

电子通讯录已成为手机、电子词典等电子设备中不可缺少的工具软件。

通讯录管理系统能有效地管理通讯录相关信息,包括输入、查询、添加、修改、删除等功能,该软件给用户提供了一个简单的人机界面,用户可以根据提示信进行各种操作。

本次设计使用的编程语言是C语言。

通过设计"通讯录管理系统"使其具有数据输入、修改、删除、添加、显示和查询等功能。

我们可以进一步理解和掌握课堂上所学各种基本抽象数据类型的逻辑结构、存储结构和操作实现算法,以及它们在程序中的使用方法。

这个设计可以使我们掌握软件设计的基本内容和设计方法;使我们的软件设计的能力得到规范;使我们掌握使用各种计算机资料和有关参考资料,提高我们进行程序设计的基本能力。

2问题分析本题目主要涉及线性表的基本操作。

通讯录中的记录通常按记载顺序先后有序,因此选用线性表;如果考虑到很少删除联系人,并且新增联系人又添加在表尾,则可采用顺序表;但是如果考虑到在任何位置插入或删除操作,因涉及经常性的插入和删除,则应优先考虑采用链表。

通过上述分析,我选择了单链表存储结构,通讯录存储结构如下struct record{char name[20];char phonenum[20];char type[20];char email[20];}student[50];struct slnode{record date;struct slnode *next;struct slnode *prior;};typedef slnode * linklist;linklist l;通讯录中需要有查询功能、增加功能、删除功能和修改功能,所以要建立具有这些功能的子函数,对程序实现模块化。

这其中要用到对链表的删除、插入等知识。

删除时用一结构体指针指向链表的第一个结点,检查该节点的值是否等于输入的要删除的,若相等就删除,不相等则后移指针,直至表尾。

桌面通讯录管理系统的 设计与实现

桌面通讯录管理系统的 设计与实现

北京师范大学毕业论文(设计)论文(设计)题目桌面通讯录管理系统的设计与实现院(系):信息科学与技术学院专业:计算机科学与技术专业学号:0632133015学生姓名:张荣荣指导教师:尹乾指导教师职称:副教授指导教师单位:信息科学与技术学院2009 年11 月01 日目录绪论 (4)第一章、概述 (5)1.1 数据库及其应用 (5)1.2 数据库系统 (5)1.3 数据库系统简介 (6)第二章、数据库系统设计 (7)2.1数据库设计概述 (7)2.2数据库设计周期 (7)第三章、图书管理系统具体设计 (8)3.1 图书管理系统总体规划 (8)3.2需求分析 (9)3.3功能设计 (11)3.4逻辑设计 (11)3.5物理设计 (12)第四章、数据库实现 (13)4.1数据库的建立 (13)4.2数据库应用程序的实现 (16)4.3桌面通讯录管理系统的调试 (37)4.4桌面通讯录管理系统其它设计工作 (38)第五章、结束语 (40)参考文献 (41)桌面通讯录管理系统的设计与实现摘要本文介绍了数据库管理系统的基本设计方法,详细阐述了整个应用系统的设计思路,并对各部分设计周期进行了详尽的分析,最终达成了一个完整的设计方案;在文章的最后,还根据数据库系统的调试结果,提出了可以进一步改进的部分,以便在投入实际应用后系统可以更加稳定可靠的工作。

本文的数据库系统是一个桌面通讯录管理系统,包括查看界面和管理界面,分别有添加、删除、查看等功能。

通讯录管理是同学们都熟悉的内容,在这个项目中,可以通过自己设计的表单对一个简单的数据表进行管理,包括添加、修改、删除以及查询等功能,最后生成一个可执行文件,并在桌面上创建一个快捷方式,随时使用这个应用程序去管理通讯录。

关键字桌面通讯录管理系统数据库系统AbstractThis article describes the basic design of the database management system approach, elaborated the entire application system design ideas, and all parts of the design cycle of a detailed analysis, and finally reach a complete design; in the article Finally, according to the database system debugging results, further improvements can be made part of the post in order to put into practical application systems can be more stable and reliable work.This database system is a desktop address book management system, including the view interface and management interface, respectively, add, delete, view and other functions.Address book management is the students are familiar with the content, in this project, you can form their own design for a simple data table management, Including add, modify, delete, and query functions, ultimately producing an executable file, and create a shortcut on the desktop, ready to use this application to manage contacts.KeywordsDesktop Address Book Management System Database System绪论通讯录管理是同学们都熟悉的内容,在这个项目中,可以通过自己设计的表单对一个简单的数据表进行管理,包括添加、修改、删除以及查询等功能,最后生成一个可执行文件,并在桌面上创建一个快捷方式,随时使。

通讯录管理系统

通讯录管理系统

通讯录管理系统一、引言随着科技的不断发展,电子设备的运用愈发广泛,通讯工具也从最早的电话、传真、邮件演变到如今的移动电话、微信等APP软件。

同时,人们通讯的宽带和速度也得到了很大的进步,这里提到的速度指的是通讯的速度和传输的速度。

在日常生活中,人们需要不断联系和交流,而一个完善的通讯管理系统能够辅助人们做到这一点。

二、通讯录管理系统的概述通讯录管理系统是一个集成化的系统,它包括通讯录的建立、搜索、编辑、删除等基本功能,同时也有通讯录的导入、导出、备份、恢复等高级功能。

对于个人而言,通讯录管理系统是一个非常有用的工具,可以让我们对日常生活中的联系人实现精细化管理。

对于企业和组织而言,通讯录管理系统则是一个不可或缺的管理工具,它可以让企业和组织对内外联系人进行统一管理,提高工作效率,实现快速响应与灵活沟通。

三、通讯录管理系统的需求分析1. 用户管理需求通讯录管理系统的用户一般包括个人、企业和组织等,他们的管理需求有所不同,例如个人通讯录管理系统需要支持用户自主导入、导出、备份、恢复,企业通讯录管理系统需要支持管理员进行用户管理和权限控制等。

2. 数据整合需求通讯录管理系统需要支持将人员信息从不同的来源整合到一个集中的库中,这可以通过数据导入、数据同步、数据抓取等方式实现。

3. 可扩展性和可定制化需求通讯录管理系统应该具有良好的可扩展性和可定制化的能力,以满足企业和组织不同的需求。

4. 安全性需求通讯录管理系统需要具有安全性,防止数据泄漏和恶意攻击等安全问题,同时还要实现数据备份、数据恢复等功能。

五、通讯录管理系统的设计1. 系统结构设计通讯录管理系统应该是一个分层结构的系统,分为表示层、业务层、数据访问层和数据存储层四个层级。

其中,表示层为用户提供了用户界面,业务层处理用户请求,数据访问层为业务层提供数据访问接口,数据存储层则负责数据存储管理。

2. 系统模块设计通讯录管理系统主要包括三个模块:用户管理模块、通讯录管理模块和数据备份恢复模块。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

课程设计报告课程设计名称:数据结构课程设计系:三系学生姓名:班级:学号:成绩:指导教师:开课时间:2011-2012学年一学期课程设计任务书课程名称:数据结构指导教师:专业班级:学生姓名:起止日期: 2012.12-2013.1 设计题目一:通讯录管理系统的设计与实现1 概述1.1现状分析课程设计是实践教学中的重要环节,它以某一门课程为基础,涉及和课程相关的各方面知识,是一门独立于课程外的特殊课程。

课程设计就是让所有同学对课程更全面的应用。

本次实验项目“通讯录管理”就是针对数据结构的一门应用较为广泛的系统管理方法。

1.2 实现意义本次实验应用性能很好,结构清楚,能随时添加、删除、查找、修改、输出联系人;并且可以用姓名、编号两种方式;而且其中增加了排序功能,使得插入之后排序为接下来的操作提供便利,操作更精确,以人性化的方式展现出来,效果十分突出。

2 系统分析编程完成通讯录的一般性管理工作如通讯录中记录的增加、修改、查找、删除、输出等功能。

每个记录包含编号、姓名、性别、电话号码、住址个人基本信息。

用《数据结构》中的链表做数据结构结合c语言基本知识编写一个通讯录管理系统。

本程序相对简单,使用方便,几乎不用特殊的命令,只需按提示输入即可。

对于建立通讯录管理系统,则需了解并掌握数据结构与算法的设计方法,尤其在算法方面,链表及结点的联系,提高综合运用所学的理论知识和方法独立分析和解决问题的能力。

3 概要设计3.1算法的设计本实验从整体上分为七大模块:(1)通讯录链表的建立;(2)通讯者结点的插入;(3)通讯者结点的查询;(4)通讯者结点的删除;(5)通讯者结点的修改;(6)通讯录链表的输出;(7)退出通讯录管理通讯者结点的删除系统。

3.2 通讯录系统图系统功能模块图如图所示:4 详细设计4.1 主菜单模块设计编写一个主控菜单驱动程序,输入0—6以进入相应选择项。

1. 实现循环和功能选择假设输入选择用变量k ,它作为0-6之间的一个输入变量,由getchar 读入,提供给switch 语句。

使用while 语句循环实现重复选择,并在主函数void main( )中实现。

2.得到k 的合理值设计一个函数用来输出提示信息和处理信息输入,这个函数应该返回一个数值k ,以便供给switch 语句使用。

对于k 输入值,在switch 中case 语句对应数字0—6,在swith 语句中再调用相应的函数,使得程序得以执行,对于不符合要求的输入,提示输入错误并要求重新输入。

主菜单 创建通讯录 插入通讯录查找通讯录删除通讯录输出通讯录退出通讯录修改通讯录系统功能模块图4.2 通讯录建立模块设计1.系统用到的数据有:char number[5]; //编号char name[20]; //姓名char sex[10]; //性别char telephone[20]; //电话char address[20]; //地址函数:LinkList CreateList(void); //实现通讯录链表的建立功能void InsertNode(LinkList head,ListNode *p); //实现通讯录结点的插入void PaixuNode(linklist *&l); //信息按编号排序ListNode *ListFind(LinkList head); //实现通讯录结点的查找void DeleteNode(LinkList head); //实现通讯录结点的删除void ModifyNode(LinkList head); //实现通讯录结点的修改void PrintList(LinkList head); //实现通讯录结点的输出*/2.我们知道的建立链表有两种方法,一种为头插入法,一种为尾插入法。

头插入法是每次将新插入的结点插在链表的表头,而尾插入法是将新插入的结点插入在链表的尾部。

我们这里用尾插入法描述算法。

(1) 使链表的头尾指针head、rear指向新生成的头结点(也是尾结点);(2) 置结束标志为0(假);(3)while(结束标志不为真){P指向新生结点;读入一个通讯者数据至新结点的数据域;将新结点链接到尾结点之后;使为指针指向新结点;提示:是否结束建表,读入一个结束标志;}(4) 尾结点指针域置空值NULL。

具体算法如下:/-------------------------------------------------------//* 用尾插入法建立通讯录链表函数*//------------------------------------------------------/LinkList CreateList(void){//尾插入法建立带头结点的通讯录链表算法LinkList head=(ListNode *)malloc(sizeof(ListNode));//申请头结点ListNode *p,*rear;int flag=0; //结束指标置0rear=head; //尾指针初始化指向头结点while(flag==0){ p=(ListNode *)malloc(sizeof(ListNode));//申请新结点printf("编号(1) 姓名(2) 性别电话(4) 地址(5)\n");printf("-----------------------------------------------------------\n");scanf("%s%s%s%s%s",p->data.num,p->,p->data.sex,p->data.phone,p->data.addr);rear->next=p; //新结点连接到尾结点之后rear=p; //尾指针指向新结点printf("结束建表吗?(1/0):");scanf("%d",&flag); //读入一个标志数据}rear->next=NULL; //终端结点指针域置空return head; //返回链表头指针}4.3 通讯录插入模块设计插入结点的基本思想是:使用两个指针变量p1和p2分别指向当前访问过的结点和下一个待访问的结点,循环顺序查找链表,寻找插入结点的位置,其中p1指向待插入结点的前一个结点。

(1)用p1指向原链表头结点,p2指向链表的第一个结点;(2)while(p2=NULL && p2->data.num<p->data.num){p1=p2; //p1指向刚访问过的结点;p2=p2->next; //p2指向表的下一个结点(3)插入新结点。

具体算法如下:/-------------------------------------------------------//*在通讯录链表head中插入结点*//-------------------------------------------------------/void InsertNode(LinkList head,ListNode *p){ListNode *p1,*p2;p1=head;p2=p1->next;while(p2!=NULL && strcmp(p2->data.num,p->data.num)<0){p1=p2; //p1指向刚访问过的结点p2=p2->next; //p2指向表的下一个结点}p1->next=p; //插入p所指向的结点p->next=p2; //连接表中剩余部分}4.4 通讯录查询模块设计查询的基本思想是:首先输入要查找的通讯者的编号或姓名,从表头顺序访问表中结点。

如查找成功,则返回一个指向查找到的通讯者信息的结点;若查找失败,则返回一个空的指针值NULL。

当按编号好查找时,如需要查找的通讯者编号不在表中,则不一定需要循环才比较到表尾,因为表是按编号递增有序的;而当按姓名查找时,这要循环比较到表尾,才能确定查不到的情况。

具体算法如下:/-------------------------------------------------------//* 有序通讯录链表上的查找*//-------------------------------------------------------/ListNode * ListFind(LinkList head){//有序通讯录链表上的查找ListNode *p;char num[5];char name[9];int xz;printf("----------------------------n");printf(" 1. 按编号查询\n");printf(" 2. 按姓名查询\n");printf("----------------------------\n");printf(" 请选择1/2:");p=head->next; //假定通讯录表带有结点scanf("%d",&t);if(t==1){printf("请输入要查找者的编号:");scanf("%s",num);while(p && strcmp(p->data.num,num)<0)p=p->next;if(p==NULL || strcmp(p->data.num,num)>0)p=NULL; //没有查到要查找的通讯者}elseif(t==2) {printf("请输入要查找者的姓名: ");scanf("%s",name);while(p && strcmp(p->,name)!=0)p=p->next;}return p;}4.5 通讯录删除模块设计删除的基本思想是:先调用查找函数,查询到要删除的结点,删除结点即可。

算法如下:/*****************************//* 通讯录链表上的结点的删除*//*****************************/void DelNode(LinkList head){char s;ListNode *p,*q;p=ListFind(head);//调用查找函数if(p==NULL){printf("没有查到要删除的通讯者!\n");return;}printf("%s%s%s%s%s\n",p->data.number ,p->,p->data.sex,p->data.telephone, p->data.address);printf("真的要删除该结点吗?(y/n) : ");scanf("%s",&s);if(s=='y'){ q=head;while(p!=NULL && q->next!=p)q=q->next;q->next=p->next;//删除结点free(p); //释放被删除的结点空间printf("通讯者已被删除!\n");return; }printf("通讯者没有被删除!\n");}4.6通讯录修改模块设计修改的基本思想是:先调用查找函数,查询到要修改的结点,修改从新输入结点即可。

相关文档
最新文档