通讯录实验报告
通讯录大型实验报告

通讯录⼤型实验报告⼤类基础课程⼤型实验实验题⽬通讯录学⽣姓名学⽣学号学⽣班级任课教师提交⽇期计算机科学与技术学院通讯录实验报告⼀、⼤型实验的内容通讯录⽤于联系⼈信息的管理,要求完成的主要的功能包括查询功能、根据姓名对⼈员信息排序输出、能根据姓名、电话修改或删除⼈员信息等。
可以完成查询联系⼈、添加、删除或修改联系⼈、从⼩到⼤依次显⽰联系⼈信息等⼯作。
要求使⽤学习过的C/C++程序设计的知识完成通讯录的设计与实现。
⼆、运⾏环境通讯录(LMS)在Visual Studio 2010平台下开发,操作系统:Windows 7。
硬件环境:(备注:可以查看“计算机”属性)处理器:Intel(R)Core(TM)********************.70GHz内存:2.00GB系统类型:32位操作系统三、实验课题分析(主要的模块功能、流程图)3.1 通讯录的主要功能通讯录主要功能为:查询功能、根据姓名对⼈员信息排序输出、能根据姓名、电话修改或删除⼈员信息等,可以完成查询联系⼈、添加、删除或修改联系⼈、从⼩到⼤依次显⽰联系⼈信息等⼯作。
详细的系统功能结构为图1所⽰。
图1 系统结构图系统各模块的功能具体描述为:1、查找模块选择查找⽅式,不同查找⽅式的结果可能会有差异。
根据姓名、电话能精确查询⼈员信息;根据地址能够进⾏模糊查询⼈员信息;根据⼈员类别能查询⼈员信息。
2、输⼊模块使⽤者可以添加新的联系⼈,添加内容包括联系⼈的姓名、性别、电话、地址、邮政编码、邮箱、QQ号、类别。
3、排序展⽰模块该功能可以显⽰排序前通讯录中所有联系⼈信息,然后按照各名字的中⽂ASCII⼤⼩从⼩到⼤进⾏排序,然后显⽰排序后的所有联系⼈信息。
4、变更⼈员模块修改:⾸先进⾏查找,按姓名或电话号码进⾏查找,找到相应的联系⼈直接进⼊修改。
根据提⽰选择该联系⼈需要修改的字段,并进⾏修改。
删除:⾸先进⾏查找,按姓名或电话号码进⾏查找,找到相应的联系⼈直接进⼊确认删除。
通讯录系统实验报告

通讯录系统实验报告通讯录系统实验报告一、引言通讯录系统是一种方便管理联系人信息的工具。
随着社会的发展和科技的进步,人们的联系方式越来越多样化,传统的纸质通讯录已经无法满足人们的需求。
因此,设计和开发一个高效、便捷的通讯录系统成为了一个重要的课题。
二、实验目的本次实验的目的是设计和实现一个通讯录系统,使用户能够方便地存储、查找和管理联系人信息。
通过这个实验,我们可以学习和掌握数据库的基本操作,提高我们的编程能力和实践能力。
三、实验过程1.需求分析在设计通讯录系统之前,我们首先需要进行需求分析。
通过调研和访谈,我们了解到用户对通讯录系统的需求主要包括以下几点:- 用户可以添加、编辑和删除联系人信息;- 用户可以按照姓名、电话号码等字段进行快速查找;- 用户可以导入和导出联系人信息,方便备份和共享;- 界面简洁明了,操作简单易用。
2.数据库设计在进行数据库设计时,我们需要确定通讯录系统的数据结构。
通讯录系统的主要数据包括联系人的姓名、电话号码、邮箱等信息。
我们可以使用关系型数据库来存储这些数据,并通过SQL语句进行操作。
3.界面设计为了提高用户体验,我们需要设计一个简洁明了的界面。
界面设计应该符合用户的使用习惯,操作简单易懂。
在设计界面时,我们可以考虑使用图形化界面或者命令行界面。
4.编码实现在编码实现过程中,我们需要根据需求分析和数据库设计来进行编码。
编码实现的重点是实现用户的各项操作功能,包括添加联系人、编辑联系人、删除联系人、查找联系人等。
5.测试和优化在编码实现完成后,我们需要进行测试和优化。
通过测试,我们可以发现和修复潜在的bug,优化系统的性能和稳定性。
四、实验结果经过几天的努力,我们成功地设计和实现了一个通讯录系统。
该系统具有以下特点:- 界面简洁明了,操作简单易用;- 用户可以方便地添加、编辑和删除联系人信息;- 用户可以按照姓名、电话号码等字段进行快速查找;- 用户可以导入和导出联系人信息,方便备份和共享。
通讯录实验报告

实验课程名称通讯录管理系统专业班级 10级计科1班学生姓名学号指导教师2012至2013学年第一学期第1 至18 周目录第1章概述 (3)1.1现状分析 (3)1.2实现意义 (3)第2章系统分析 (4)2.1用户需求分析 (4)2.2管理者需求分析 (4)第3章概要设计 (5)3.1主控菜单设计 (5)3.2 总结构设计流程图 (6)第4章详细设计 (6)4.1通讯录建立模块设计 (6)4.2通讯录查询模块设计 (7)4.3通讯录删除模块设计 (7)4.4通讯录链表的输出模块设计 (8)第5章运行与测试 (9)第6章总结和心得 (9)参考文献 (10)附件(源代码) (10)第1章概述1.1现状分析日益繁多的人际交往使得我们很难记住与每个人之间的联系方式,通讯录能够便捷的给我们带来所需要的相关信息。
为了实现通讯录管理的几种操作功能,首先设计一个含有多少个菜单项的主控菜单程序,然后再为这些菜单配上相应的功能。
1.2实现意义随着计算机的普及,人们的生活摆脱了传统式的记事本、电话簿,越来越多的靠计算机或者手机中的电话簿程序来帮助人们记住这些事情,极其简便。
这就需要有一个使用的通讯录管理系统,用户可以方便的通过自己电脑的通讯录管理系统,来随时查阅自己所需要的信息,而不必再大费周折去翻开那繁琐的记事本。
通讯录管理系统是一个专门针对储存用户联系方式以及一些简单个人信息的实用管理系统,它方便了用户对众多客户、朋友、同事等个人信息的储存和快速查阅的功能,大大减少了查找过程的时间。
然而要靠计算机来记住这些信息,首先就得要求用单链表做数据结构,设计一个实现通讯者信息的输入、查询、删除、输出、等功能的通讯录管理系统。
每条通讯者信息包含:编号、姓名、性别、电话号码、地址等信息。
第2章系统分析2.1用户需求分析为实现系统功能,本程序主要分为五个模块。
它们分别为:输入一个信息、删除一个信息、查询一个信息、插入一个信息、输出所有的信息、退出该程序。
作通讯录的实训报告

随着信息技术的飞速发展,通讯录在人们的工作、生活中扮演着越来越重要的角色。
为了提高同学们对通讯录管理的认识,培养实际操作能力,我校组织了通讯录实训活动。
本次实训旨在使同学们掌握通讯录的基本操作,提高信息处理能力,为今后的工作打下坚实基础。
二、实训目标1. 熟悉通讯录的基本概念和作用;2. 掌握通讯录的创建、编辑、查询、导出等功能;3. 学会使用通讯录进行日常信息管理;4. 培养同学们团队协作和沟通能力。
三、实训内容1. 通讯录基础知识实训老师首先向同学们介绍了通讯录的基本概念、作用以及常见的通讯录类型。
通讯录是一种用于存储和查询联系人信息的工具,可以方便地记录和查找电话、邮箱、地址等个人信息。
常见的通讯录类型有纸质通讯录、电子通讯录等。
2. 通讯录创建与编辑同学们在实训老师的指导下,学习了如何创建一个新的通讯录。
首先,选择合适的通讯录类型,如电子通讯录;然后,输入联系人的姓名、电话、邮箱、地址等基本信息。
在编辑通讯录时,同学们掌握了如何修改、删除、添加联系人信息。
3. 通讯录查询与导出实训老师讲解了如何通过姓名、电话、邮箱等条件在通讯录中查询联系人信息。
此外,同学们还学会了如何将通讯录导出为Excel、Word等格式,方便后续的整理和使用。
4. 实际操作演练为了巩固所学知识,同学们进行了实际操作演练。
在实训老师的带领下,同学们分组进行通讯录管理,包括创建通讯录、添加联系人、查询信息等。
通过实际操作,同学们熟练掌握了通讯录的基本操作。
1. 同学们对通讯录的基本概念、作用有了更深入的了解;2. 掌握了通讯录的创建、编辑、查询、导出等功能;3. 提高了信息处理能力,为今后的工作打下了坚实基础;4. 培养了团队协作和沟通能力。
五、实训总结本次通讯录实训活动,同学们积极参与,认真完成各项任务。
通过实训,同学们对通讯录有了更加全面的认识,掌握了通讯录的基本操作,提高了信息处理能力。
在今后的工作和生活中,通讯录将发挥重要作用,希望同学们能够充分利用所学知识,提高工作效率。
通讯录管理系统实验报告

通讯录管理系统实验报告通讯录管理系统实验报告一、引言通讯录是我们日常生活中不可或缺的一部分,它帮助我们记录和管理与各种人的联系方式。
然而,传统的纸质通讯录存在着不便携、易丢失、难以更新等问题。
为了解决这些问题,我们设计并实现了一个通讯录管理系统。
二、系统设计1. 功能设计我们的通讯录管理系统具有以下主要功能:- 添加联系人:用户可以输入联系人的姓名、电话号码、电子邮件等信息,并将其保存到系统中。
- 查找联系人:用户可以根据姓名、电话号码等关键字在通讯录中查找指定的联系人。
- 编辑联系人:用户可以对已有的联系人信息进行修改,包括姓名、电话号码、电子邮件等。
- 删除联系人:用户可以选择删除不需要的联系人信息。
- 导出联系人:用户可以将通讯录中的联系人信息导出为Excel或CSV文件,以便在其他应用程序中使用。
2. 技术实现为了实现上述功能,我们使用了以下技术:- 前端界面:采用HTML、CSS和JavaScript技术,实现用户友好的界面设计。
- 后端逻辑:采用Python编程语言,使用Flask框架搭建Web应用程序。
- 数据存储:使用MySQL数据库存储联系人信息,并通过SQL语句实现数据的增删改查操作。
三、系统实现1. 前端界面我们的前端界面采用了简洁、直观的设计风格,用户可以通过输入框和按钮进行各种操作。
在添加联系人时,用户需要填写姓名、电话号码等信息,并点击保存按钮将联系人信息提交到后端。
在查找联系人时,用户可以输入关键字并点击搜索按钮,系统将根据关键字在通讯录中查找匹配的联系人并显示在界面上。
2. 后端逻辑后端逻辑主要由Flask框架实现,通过路由和视图函数来处理用户的请求。
当用户提交添加联系人的请求时,后端会接收到用户输入的信息,并将其存储到数据库中。
当用户搜索联系人或编辑联系人时,后端会根据用户的请求在数据库中进行相应的查询和更新操作。
当用户删除联系人时,后端会从数据库中删除对应的联系人信息。
通讯录管理实验报告

通讯录管理实验报告通讯录管理实验报告一、引言通讯录是现代社会中不可或缺的一项工具,它能够帮助我们有效地管理联系人信息,提高沟通效率。
然而,随着社会的发展和科技的进步,传统的纸质通讯录已经无法满足人们的需求。
因此,本次实验旨在探索和研究通讯录管理的现代化方法。
二、实验目的1. 研究并比较不同通讯录管理软件的功能和特点;2. 分析并评估通讯录管理软件对用户的实际需求的满足程度;3. 提出改进建议,以优化通讯录管理软件的设计和使用体验。
三、实验方法本次实验采用了以下方法:1. 调查问卷:设计并分发调查问卷,收集用户对不同通讯录管理软件的使用体验和需求反馈;2. 功能比较:选取几款常见的通讯录管理软件,对其功能进行详细比较和分析;3. 用户体验测试:邀请一些用户进行实际操作测试,观察他们在使用过程中的反应和问题。
四、实验结果与分析1. 调查问卷结果显示,用户对通讯录管理软件的主要需求是方便快捷地添加、编辑和查找联系人信息,以及支持多种联系方式的整合。
2. 功能比较结果表明,不同的通讯录管理软件在功能上存在差异,有些软件提供了更多的高级功能,如群组管理、备份与恢复等,而有些软件则更注重简洁易用的界面设计。
3. 用户体验测试发现,一些通讯录管理软件存在操作繁琐、界面复杂等问题,导致用户在使用过程中感到困惑和不便。
五、改进建议基于实验结果和分析,我们提出以下改进建议:1. 界面设计优化:通讯录管理软件应该追求简洁、直观的界面设计,方便用户快速上手和操作。
2. 功能定制化:根据用户需求,通讯录管理软件应提供个性化的功能定制选项,使用户能够根据自己的实际需求进行设置。
3. 数据安全保护:通讯录管理软件应加强数据安全保护措施,防止用户隐私信息泄露或丢失。
4. 多平台兼容性:通讯录管理软件应支持多种操作系统和设备,以满足用户在不同设备上的使用需求。
六、结论通过本次实验,我们对通讯录管理软件进行了深入研究和分析,发现了其功能和设计上的一些问题,并提出了相应的改进建议。
手机通讯录实验报告及使用说明(附源代码)

计算机专业教研室实验报告(数据结构)课程设计手机通讯录小组成员系别班级学号实验日期指导教师实验成绩一、实验内容功能要求:(1)将联系人的信息可以存放在文件中,从文件中也可以读出联系人的信息。
(2)可以添加一个新联系人的信息。
(3)可以删除一个联系人的信息,删除条件为电话号码或姓名。
(4)可以查询一个联系人的信息,查询条件为电话号码或姓名。
(5)可以对联系人的信息进行排序,排序条件为联系人的姓名。
二、实验过程1、整个程序包含三个文件。
手机通讯录.cpp、delong.h 、menu.h(点击产看代码)手机通讯录.cpp [主程序]delong.h [各种函数]menu.h [菜单目录]2、联系人信息包括编号、姓名、手机号码、家庭住址、E-mail、QQ、类别信息。
其中编号分配4位、姓名10位、手机号码13位、地址14位、E-mail 14位、QQ和类别都为12位。
但实际上存储的时候所占位数都要少一位。
因为存储的时候是以字符形式存储,读取的时候以字符串形式读取,需要用最后一位填写字符串结束标志’\0’。
3、函数列表:void AddSpace(int n); /*添加空格*/void Save(FILE *fp,int n,int j); /*将person[MAXSIZE]中的内容放到通讯录.txt*/j==0; 追加方式写入,适用于增加联系人的情况。
j==1; 重新方式写入,适用于修改、删除情况。
三、总结:1、还是有小BUG。
Eg:删除最后一个联系人的时候再输出全部信息时还是能输出一个联系人。
2、代码冗长:Eg:增加操作及存储,得到联系人信息增添空格的时候没有写AddSpace()函数。
在修改操作中得到修改后的联系人信息那里才用AddSpace()函数。
某些地方重复代码较多。
3、函数归编混乱,不利于读看。
四、实验具体实验程序代码(要有注释)、测试结果(最好截图)和实验总结1、开始界面2、创建通讯录,若存在则无须再次创建。
通讯录制作实习报告

一、实习背景随着信息化时代的到来,通讯录作为人们日常工作中不可或缺的工具,其重要性日益凸显。
为了更好地掌握通讯录制作的相关技能,提高自己的办公效率,我于近期在一家企业进行了为期一个月的通讯录制作实习。
本次实习旨在通过实际操作,深入了解通讯录制作的全过程,提高自己的办公软件应用能力。
二、实习单位及岗位实习单位:XX科技有限公司实习岗位:行政助理三、实习内容1. 实习目标通过本次实习,我期望达到以下目标:(1)掌握通讯录制作的基本流程和技巧;(2)熟悉常用办公软件(如Excel、Word等)在通讯录制作中的应用;(3)提高自己在实际工作中的沟通能力和团队协作能力。
2. 实习过程(1)实习初期实习初期,我在导师的带领下,了解了公司各部门的组织架构和人员信息。
随后,我开始学习通讯录制作的基本流程,包括收集信息、整理数据、设计模板、录入信息、校对修改等。
(2)实习中期在实习中期,我参与了公司通讯录的更新和维护工作。
具体内容包括:1)收集各部门人员的新增、变动和离职信息;2)根据收集到的信息,更新通讯录内容;3)对通讯录进行分类整理,便于查找;4)定期检查通讯录的准确性,确保信息及时更新。
(3)实习后期实习后期,我尝试独立完成一次通讯录的制作。
在导师的指导下,我学习了如何设计通讯录模板,并运用Excel和Word等办公软件进行操作。
以下是我制作通讯录的具体步骤:1)确定通讯录模板样式:根据公司实际情况,我选择了简洁、大方的模板样式,方便员工查找和使用。
2)收集信息:通过询问各部门负责人,收集到最新的员工信息,包括姓名、部门、职位、联系方式等。
3)录入信息:运用Excel软件,将收集到的信息录入表格中,并对数据进行分类整理。
4)设计模板:利用Word软件,根据模板样式,设计通讯录的排版和格式。
5)校对修改:在完成通讯录制作后,对内容进行仔细检查,确保信息准确无误。
6)打印分发:将制作好的通讯录打印出来,分发给各部门。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验课程名称通讯录管理系统专业班级 10级计科1班学生姓名学号指导教师2012至2013学年第一学期第1 至18 周目录第1章概述 (3)1.1现状分析 (3)1.2实现意义 (3)第2章系统分析 (4)2.1用户需求分析 (4)2.2管理者需求分析 (4)第3章概要设计 (5)3.1主控菜单设计 (5)3.2 总结构设计流程图 (6)第4章详细设计 (6)4.1通讯录建立模块设计 (6)4.2通讯录查询模块设计 (7)4.3通讯录删除模块设计 (7)4.4通讯录链表的输出模块设计 (8)第5章运行与测试 (9)第6章总结和心得 (9)参考文献 (10)附件(源代码) (10)第1章概述1.1现状分析日益繁多的人际交往使得我们很难记住与每个人之间的联系方式,通讯录能够便捷的给我们带来所需要的相关信息。
为了实现通讯录管理的几种操作功能,首先设计一个含有多少个菜单项的主控菜单程序,然后再为这些菜单配上相应的功能。
1.2实现意义随着计算机的普及,人们的生活摆脱了传统式的记事本、电话簿,越来越多的靠计算机或者手机中的电话簿程序来帮助人们记住这些事情,极其简便。
这就需要有一个使用的通讯录管理系统,用户可以方便的通过自己电脑的通讯录管理系统,来随时查阅自己所需要的信息,而不必再大费周折去翻开那繁琐的记事本。
通讯录管理系统是一个专门针对储存用户联系方式以及一些简单个人信息的实用管理系统,它方便了用户对众多客户、朋友、同事等个人信息的储存和快速查阅的功能,大大减少了查找过程的时间。
然而要靠计算机来记住这些信息,首先就得要求用单链表做数据结构,设计一个实现通讯者信息的输入、查询、删除、输出、等功能的通讯录管理系统。
每条通讯者信息包含:编号、姓名、性别、电话号码、地址等信息。
第2章系统分析2.1用户需求分析为实现系统功能,本程序主要分为五个模块。
它们分别为:输入一个信息、删除一个信息、查询一个信息、插入一个信息、输出所有的信息、退出该程序。
这五个函数再通过主函数调用分别得以实现。
主函数,首先提供了程序运行时的友好界面,列出了清单,提供用户做出选择,以便决定使用通讯录的哪种功能。
然后,通过执行多分支选择语句—switch语句,分别实现其它各个函数的调用功能。
界面必须美观简洁能够使人一目了然操作方便。
2.2管理者需求分析题目要求编写程序实现通讯者通讯录的管理每个同学的通讯录基本信息包括编号、姓名、性别、电话和住址。
要求给用户提供功能界面根据用户的选择实现添加、查找、删除、输出某个记录的功能用文件实现基本信息的存储。
按照题目要求同学通讯录系统需要实现的功能有添加信息、查找信息、显示信息以及删除信息。
并且在通讯录的个人信息中必须包含有编号、姓名、性别、电话号码以及家庭住址。
据此要求可以得知本程序必须满足以下要求:一、首先要有一个基本信息类类中包含有编号、姓名、性别、电话号码以及家庭住址的内容。
二、必须有一个便于操作的菜单实现添加信息、查找信息、显示信息以及删除信息的功能。
三、必须能够实现文件的存取以及修改功能以便于真正的达到同学录记录数据的目的。
第3章概要设计根据要求通讯录需要提供文件的输入、输出等操作;还需要保存记录以进行删除、查找等操作,另外还需提供键盘式选择菜单实现选择功能。
3.1主控菜单设计系统功能模块图如下:图3.1通讯录管理系统总体结构图3.2 总结构设计流程图第4章详细设计4.1通讯录建立模块设计linklist createlist(void){linklist head=(listnode *)malloc(sizeof(listnode));listnode *p,*rear;int flag=0;rear=head;while(flag==0){p=(listnode *)malloc(sizeof(listnode));printf("编号(4) 姓名(8) 性别(11) 电话(11) 地址(13)\n");printf("**********\n");scanf("%s%s%s%s%s",p->data.num,p->,p->data.sex,p->data.phone,p->data.add r);rear->next=p;rear=p;printf("结束建表吗?(1/0):");scanf("%d",&flag);}rear->next=NULL;return head;}4.2通讯录查询模块设计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("请选择\n");p=head->next;scanf("%d",&xz);if(xz==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) return p=NULL;else return p;}elseif(xz==2){printf("请输入查找者的姓名 ");scanf("%s",name);while(p&&strcmp(p->,name)!=0)p=p->next;return p;}}4.3通讯录删除模块设计void delnode(linklist head){int j=0;listnode *p,*q;p=listfind(head);if(p==NULL) printf("没有查到要删除的通讯者\n");printf("真的要删除该结点吗?(0/1)");scanf("%d",&j);if(j==0){q=head;while(q!=NULL&&q->next!=p)q=q->next;q->next=p->next;free(p);printf("通讯者已被删除\n"); }}4.4通讯录链表的输出模块设计void printlist(linklist head){listnode *p;p=head->next;printf("编号姓名性别联系电话地址\n");printf("--------------\n");while(p!=NULL){printf("%s,%s,%s,%s,%s\n",p->data.num,p->,p->data.sex,p->data.phone,p->data. addr);printf("--------------\n");p=p->next;}}第5章运行与测试第6章总结和心得在编代码时,因为不细心的少符号或输入有误而导致花了大量时间去调试,终于调试对了又发现链接不起,拿到同学电脑上去调试,发现是安装的软件有问题。
在运行监测中第一项:通讯录链表的建立,就出现了有问题,原本要求输入五个参数就能完成起通讯录链表的建立,但是出现要输入六个参数才能完成建立。
回去看源代码才发现在输出项中多输了一个%s。
接着调试,在通讯者结点的删除中出现了无法删除,经过修改源代码调试后又出现能删除了但是又不能继续往下做了,又进行修改和调试找不出问题所在,没办法找同学帮我看了一下,才发现在通讯者结点的删除代码中没有printf(“通讯者已被删除!\n)经过无数次的调试修改终于完成了,感到欣慰,也感到失落,原来不懂的太多太多。
参考文献[1] 数据结构:严蔚敏,吴伟民编著.—北京:清华大学出版社,2007[2] 数据结构课程设计:苏仕华编著.—北京:清华大学出版社,2002[3] 数据结构自学辅导:苏仕华编著.—北京:机械工业出版社,2005 附件(源代码)#include<stdio.h>#include<string.h>#include<stdlib.h>typedef struct{char num[5];char name[9];char sex[3];char phone[13];char addr[31];}datatype;typedef struct node{datatype data;struct node *next;}listnode;typedef listnode *linklist;linklist head;listnode *p;int menu_select();linklist createlist(void);void insertnode(linklist head,listnode *p);listnode *listfind(linklist head);void delnode(linklist head);void printlist(linklist head);void main(){for( ; ;){switch (menu_select()){case 1:printf("**********\n");printf("通讯录链表的建立");printf("**********\n");head=createlist();break;case 2:printf("**********\n");printf("通讯者信息的添加");printf("**********");printf("编号(4) 姓名(8) 性别(11) 电话(11) 地址(13)");printf("**********\n");p=(listnode *)malloc(sizeof(listnode));scanf("%s%s%s%s%s",p->data.num,p->,p->data.sex,p->data.phone,p->data.add r);insertnode(head,p);break;case 3:printf("**********\n");printf("通讯者信息的查询");printf("**********\n");p=listfind(head);if(p!=NULL){printf("编号姓名性别电话地址\n ");printf("%s,%s,%s,%s,%s\n",p->data.num,p->,p->data.sex,p->data.phone,p->d ata.addr);printf("**********\n");}elseprintf("没有查到通讯者!\n");break;case 4:printf("**********\n");printf("通讯录信息删除");printf("**********\n");delnode(head);case 5:printf("**********\n");printf("通讯录信息输出");printf("**********\n");printlist(head);break;case 0:printf("\t再见!\n");return;}}}/**********/int menu_select(){int sn;printf("通讯录管理席系统\n");printf("===========\n");printf("1 通讯录链表的建立\n");printf("2 通讯者结点的插入\n");printf("3 通讯者结点的查询\n");printf("4 通讯者结点的删除\n");printf("5 通讯链表的输出\n");printf("0 退出管理系统\n");printf("===========\n");printf(" 请选择 0-5");for( ; ;){scanf("%d",&sn);if(sn<0||sn>5)printf("\n\t输入错误,重选0-5");elsebreak;}return sn;}linklist createlist(void){linklist head=(listnode *)malloc(sizeof(listnode));listnode *p,*rear;int flag=0;rear=head;while(flag==0){p=(listnode *)malloc(sizeof(listnode));printf("编号(4) 姓名(8) 性别(11) 电话(11) 地址(13)\n");printf("**********\n");scanf("%s%s%s%s%s",p->data.num,p->,p->data.sex,p->data.phone,p->data.add r);rear->next=p;rear=p;printf("结束建表吗?(1/0):");scanf("%d",&flag);}rear->next=NULL;return 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;p2=p2->next;}p1->next=p;p->next=p2;}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("请选择\n");p=head->next;scanf("%d",&xz);if(xz==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)return p=NULL;else return p;}elseif(xz==2){printf("请输入查找者的姓名 ");scanf("%s",name);while(p&&strcmp(p->,name)!=0)p=p->next;return p;}}void delnode(linklist head){int j=0;listnode *p,*q;p=listfind(head);if(p==NULL) printf("没有查到要删除的通讯者\n");printf("真的要删除该结点吗?(0/1)");scanf("%d",&j);if(j==0){q=head;while(q!=NULL&&q->next!=p)q=q->next;q->next=p->next;free(p);printf("通讯者已被删除\n");}}void printlist(linklist head){listnode *p;p=head->next;printf("编号姓名性别联系电话地址\n");printf("--------------\n");while(p!=NULL){printf("%s,%s,%s,%s,%s\n",p->data.num,p->,p->data.sex,p->data.phone,p->data. addr);printf("--------------\n");p=p->next;}}。