通讯录实验报告

合集下载

通讯录大型实验报告

通讯录大型实验报告

通讯录⼤型实验报告⼤类基础课程⼤型实验实验题⽬通讯录学⽣姓名学⽣学号学⽣班级任课教师提交⽇期计算机科学与技术学院通讯录实验报告⼀、⼤型实验的内容通讯录⽤于联系⼈信息的管理,要求完成的主要的功能包括查询功能、根据姓名对⼈员信息排序输出、能根据姓名、电话修改或删除⼈员信息等。

可以完成查询联系⼈、添加、删除或修改联系⼈、从⼩到⼤依次显⽰联系⼈信息等⼯作。

要求使⽤学习过的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)打印分发:将制作好的通讯录打印出来,分发给各部门。

手机通讯录实验报告及使用说明(附源代码)

手机通讯录实验报告及使用说明(附源代码)

手机通讯录实验报告及使用说明(附源代码)自查报告。

标题,手机通讯录实验报告及使用说明(附源代码)。

自查报告:在进行手机通讯录实验及使用说明的撰写过程中,我对手机通讯录的功能和操作进行了深入的研究和实践。

在实验中,我首先对手机通讯录的基本功能进行了分析和总结,包括添加联系人、编辑联系人信息、删除联系人等操作。

然后,我利用编程知识,编写了手机通讯录的源代码,并进行了测试和调试。

在实验中,我发现手机通讯录的功能十分实用,可以帮助用户轻松管理联系人信息,提高工作效率。

通过对手机通讯录的操作和源代码的编写,我对手机通讯录的原理和实现方式有了更深入的了解,也增强了我的编程能力和实际操作能力。

在使用说明的撰写过程中,我详细介绍了手机通讯录的各项功能操作和使用方法,并附上了源代码的下载链接,方便读者进行学习和实践。

我还对手机通讯录的使用注意事项进行了说明,帮助用户更好地使用手机通讯录,并避免操作失误。

总的来说,通过本次实验和使用说明的撰写,我对手机通讯录有了更深入的了解,也提高了我的编程能力和文档撰写能力。

我相信这份实验报告和使用说明能够帮助更多的人学习和使用手机通讯录,提高工作和生活效率。

附源代码:```java。

public class Contact {。

private String name;private String phoneNumber;private String email;public Contact(String name, String phoneNumber, String email) {。

= name;this.phoneNumber = phoneNumber;this.email = email;}。

public String getName() {。

return name;}。

public void setName(String name) {。

= name;}。

public String getPhoneNumber() {。

通讯录实验报告c

通讯录实验报告c

通讯录实验报告c篇一:C语言实验报告通讯录C语言集中上机报告院系:班级:姓名:合作者:指导教师:XX年6月1日通信录目录一概述 ................................................ ................................................... (3)课程设计的目的 ................................................ ................................................... . (3)二总体方案 ................................................ ................................................... . (4)三程序的调试与运行结果说明 ................................................................................................... .. 4四课程设计总结 ................................................ ................................................... .. (6)五后记 ................................................ ................................................... (7)六附录 ................................................ ................................................... (7)参考文献 ................................................ ................................................... .. (11)一概述课程设计的目的实现个人通讯录管理,录入包括姓名、地址、邮政编码、电话号码的信息。

通讯录管理实验报告

通讯录管理实验报告

一、实验背景随着科技的发展,人们的生活节奏越来越快,通讯方式也日益多样化。

为了方便人们管理和查阅通讯信息,通讯录管理系统应运而生。

本实验旨在通过设计和实现一个通讯录管理系统,提高通讯信息管理的效率和便捷性。

二、实验目的1. 熟悉通讯录管理系统的基本功能和操作流程;2. 掌握通讯录管理系统的设计方法和实现技巧;3. 提高编程能力和系统分析能力。

三、实验内容1. 系统需求分析根据实验要求,本通讯录管理系统应具备以下功能:(1)添加联系人:输入联系人信息,包括姓名、电话、邮箱、QQ号等,并将其保存到系统中;(2)删除联系人:根据联系人姓名或电话,删除指定联系人信息;(3)修改联系人信息:根据联系人姓名或电话,修改指定联系人的信息;(4)查询联系人:根据联系人姓名、电话、邮箱或QQ号,查询指定联系人的信息;(5)导出通讯录:将通讯录信息导出到文本文件或Excel文件;(6)导入通讯录:从文本文件或Excel文件中导入通讯录信息。

2. 系统设计本系统采用C++编程语言,利用面向对象编程思想进行设计。

系统采用单例模式,确保全局只有一个通讯录对象。

联系人信息以链表形式存储,便于插入、删除和修改操作。

(1)数据结构设计联系人信息使用结构体存储,包括姓名、电话、邮箱、QQ号等字段。

```cppstruct Contact {string name;string phone;string email;string qq;Contact next;};```(2)类设计- Contact类:负责存储联系人信息,包括姓名、电话、邮箱、QQ号等字段;- ContactManager类:负责管理联系人链表,包括添加、删除、修改、查询、导出和导入等功能。

```cppclass Contact {public:string name;string phone;string email;string qq;Contact next;Contact(string n, string p, string e, string q) : name(n), phone(p), email(e), qq(q), next(NULL) {}};class ContactManager {private:Contact head;public:ContactManager() : head(NULL) {}~ContactManager() {// 释放链表内存Contact temp;while (head != NULL) {temp = head;head = head->next;delete temp;}}void AddContact(Contact contact) {// 添加联系人}void DeleteContact(string phone) {// 删除联系人}void ModifyContact(string phone, Contact newContact) { // 修改联系人信息}Contact QueryContact(string phone) {// 查询联系人return NULL;}void ExportContact() {// 导出通讯录}void ImportContact() {// 导入通讯录}};```3. 系统实现根据系统设计,使用C++编程语言实现各个功能模块。

数据结构实验报告2--通讯录

数据结构实验报告2--通讯录

一、实验目的1、能够利用单链表的基本运算进行单链表的相关操作。

2、加深对链式存储数据结构的理解,逐步培养解决实际问题的编程能力。

3、熟练掌握线性表的类型定义方法、存储方法及其基本运算(元素的建立、查找、删除等)的实现方法,培养综合运用所学知识,根据具体问题进行数据结构设计和算法设计的能力。

二、实验环境具有Windows XP或2003的计算机、V istual C++ 6.0、网络环境。

三、实验内容设计一个班级同学的通讯录,要求如下:✓通讯录中每个同学的信息包含以下内容:学号(id)、姓名(name)、电话号码(tel)。

如果需要更多其他信息,请自行添加。

✓程序主菜单包含以下几个功能:(1)添加记录:通过键盘输入信息,添加一条通讯录记录。

(2)删除记录:通过键盘输入学号,删除该学号的记录。

(3)输出记录:输出通讯录全部记录。

(4)按姓名查找:通过键盘输入姓名,输出该同学的所有信息。

(5)按电话号排序:按电话号码从小到大排序并输出排序后的信息。

(6)清空记录:删除通讯录中的全部记录,并删除文件。

(7)退出。

程序清单#include<stdio.h>#include<stdlib.h>#include<string.h>#define N 20typedef struct student{char tel[N];char name[N];char id[N];struct student *next;}linklist;//创建信息void createlist(linklist *&l){int ch;linklist *s,*p;printf("***********创建通讯录***********\n");printf("----请输入通讯者信息-----:\n请输入非零整数,输入0则退出:\n");scanf("%d",&ch);l=(linklist *)malloc(sizeof(linklist));s=l;while(ch!=0){p=(linklist *)malloc(sizeof(linklist));printf("请输入通讯者姓名:");scanf("%s",p->name);printf("请输入通讯者电话号:");scanf("%s",p->tel);printf("请输入通讯者身份证号:");scanf("%s",p->id);s->next=p;s=p;printf("请输入通讯者信息:\n请输入非零整数,输入0则退出:\n");scanf("%d",&ch);}s->next=NULL;}//删除信息void listdelete(linklist *&l,int t ){int j=0;linklist *p,*q;p=l;while(p!=NULL&&j<t-1){j++;p=p->next;}if(p==NULL)exit(0);else{q=p->next;if(q==NULL)exit(0);p->next=q->next;printf("***************删除系统**************\n");printf("-------你将删除的联系人的信息为-------:\n");printf("通讯者姓名:%s\n",q->name);printf("通讯者电话号:%s\n",q->tel);printf("通讯者身份证号:%s\n",q->id);printf("******-------******删除成功******------*******\n");free(q);}}//输出信息void output(linklist *l){linklist *p;p=l->next;printf("----***----输出所有联系者信息----***----:\n");while(p!=NULL){printf("通讯者姓名:%s\n",p->name);printf("通讯者电话号:%s\n",p->tel);printf("通讯者身份证号:%s\n",p->id);printf("*****************************\n");p=p->next;}}//按姓名查找void findname(linklist *l){char n[N];linklist *p=l->next;printf("***************查找系统*************\n");printf("----------请输入要查找的姓名---------:\n");scanf("%s",n);while(p!=NULL){if(strcmp(p->name,n)){printf("-----***--你要查找的资料为--***----:\n");printf("通讯者姓名:%s\n",p->name);printf("通讯者电话号:%s\n",p->tel);printf("通讯者身份证号:%s\n",p->id);printf("*****************************");break;}elsep=p->next;}}//按电话号排序void sorttel(linklist *&l){linklist *p,*q,*s;q=l;p=q->next->next;q->next->next=NULL;while(p){while(q->next&&(strcmp(p->tel,q->next->tel)>0))q=q->next;s=p->next;p->next=q->next;q->next=p;p=s;q=l;}}//清空void release(linklist *&l){linklist *p,*q;p=l;q=p->next;while(q!=NULL){free(p);p=q;q=p->next;}free(p);printf("--------数据已全部被清空----------\n,*****内存回收*****\n"); }//主函数void main(){int i,t;linklist *l;while(1){printf("通讯录功能如下:\n1.建立通讯录信息\n2.删除信息\n3.输出信息\n4.按姓名查找信息\n5.按电话号排序信息\n6.清空信息\n7.退出");scanf("%d",&i);if(i<=0||i>7)break;switch(i){case 1:createlist(l);break;case 2:printf("---------请输入第t个要删除的信息---------:\n");scanf("%d",&t);listdelete(l,t);break;case 3:output(l);break;case 4:findname(l);break;case 5:sorttel(l);printf("-----***---&&&--这是按电话号排序后的信息列表--&&&---***-----\n");output(l);break;case 6:release(l);break;case 7:break;}}}运行结果:建立通讯录信息运行结果截图:输入零后通讯录信息输出结果截面图:查询通讯录信息运行结果截图:通讯录信息排序运行结果截图:删除通讯录信息运行结果截图:删除通讯录信息后的输出结果截面图:清空通讯录信息的运行结果截面图:四、实验心得与小结通过这次的上机实验,使我学到了一些回顾了以前学过的知识,使我对数据结构程序设计有了更深层次的认识和理解,懂得了灵活运用。

通讯录制作实习报告

通讯录制作实习报告

实习单位:ABC通讯录制作公司实习时间:2023年2月1日至2023年2月28日实习内容:在ABC通讯录制作公司实习期间,我主要负责了通讯录的制作、排版和校对工作。

实习期间,我参与了多个项目的通讯录制作,包括公司内部通讯录、学校班级通讯录和社团组织通讯录等。

以下是我实习期间的主要工作内容:1. 数据收集:在制作通讯录之前,我需要收集相关人员的姓名、职务、电话号码和电子邮件等信息。

通过与相关人员沟通,确保数据的准确性和完整性。

2. 通讯录排版:根据客户的要求,使用专业软件(如InDesign、Word等)进行通讯录的排版。

包括设置页边距、字体、字号、行间距等,确保通讯录的版面整洁、美观。

3. 信息校对:在通讯录排版完成后,我对每个页面的信息进行仔细校对,确保姓名、职务、电话号码等信息的准确无误。

同时,与客户沟通,确认通讯录的版面和内容是否符合要求。

4. 打印和装订:在通讯录校对无误后,我将文件发送至打印厂进行打印,并根据客户的要求选择合适的纸张和装订方式。

在装订过程中,确保通讯录的装订质量。

5. 交付客户:在通讯录制作完成后,我将成品交付给客户,并收集客户的反馈意见,以便在今后的制作过程中进行改进。

实习收获:1. 技能提升:通过实习,我熟练掌握了通讯录制作、排版和校对的相关技能,提高了自己的专业素养。

2. 团队协作:在实习过程中,我与同事们共同完成多个项目的通讯录制作,学会了与他人协作,提高了自己的沟通能力和团队意识。

3. 客户服务:在与客户沟通的过程中,我学会了倾听客户需求,为客户提供满意的服务,提高了自己的客户服务能力。

4. 工作态度:实习期间,我严格遵守公司的规章制度,按时完成工作任务,养成了良好的工作习惯和态度。

通过本次实习,我深刻认识到通讯录制作工作的重要性。

作为一名通讯录制作人员,需要具备严谨的工作态度、良好的沟通能力和团队协作精神。

在今后的学习和工作中,我将继续努力提升自己的专业素养,为客户提供更优质的服务。

通讯录实验报告

通讯录实验报告

通讯录实验报告通讯录实验报告引言:通讯录是一种用于存储和管理联系人信息的工具。

随着科技的进步,我们已经不再依赖纸质通讯录,而是使用电子通讯录来管理我们的联系人。

在本次实验中,我们将探索通讯录的设计和功能,并测试其在现实生活中的实用性。

一、通讯录的设计原则通讯录的设计应遵循以下原则:简洁、易用、高效。

首先,通讯录应该能够简洁地展示联系人的基本信息,如姓名、电话号码和电子邮件地址等。

其次,通讯录的界面应该简单直观,用户可以轻松地添加、编辑和删除联系人信息。

最后,通讯录应该能够快速地搜索和筛选联系人,以提高用户的工作效率。

二、通讯录的功能1. 添加联系人:通讯录应该提供一个方便的界面,让用户可以轻松地添加联系人信息。

用户可以输入姓名、电话号码、电子邮件地址等基本信息,并可以选择添加其他附加信息,如生日、地址等。

2. 编辑联系人:通讯录应该允许用户随时编辑联系人信息。

当联系人的电话号码或电子邮件地址发生变化时,用户应能够快速地更新这些信息。

此外,通讯录还应提供一个简单的界面,让用户可以添加或删除联系人的附加信息。

3. 删除联系人:通讯录应该允许用户删除不再需要的联系人信息。

当用户不再需要某个联系人的信息时,他们应该能够轻松地将其从通讯录中删除。

4. 搜索联系人:通讯录应该提供一个快速、准确的搜索功能,以帮助用户快速找到他们需要的联系人。

用户可以通过输入姓名、电话号码或电子邮件地址等关键词来搜索联系人。

5. 分组管理:通讯录应该允许用户将联系人分组,以便更好地管理他们的联系人信息。

用户可以根据个人喜好或工作需求创建不同的分组,并将相关联系人归类到相应的分组中。

三、通讯录的实用性测试为了测试通讯录的实用性,我们进行了一项实验。

我们邀请了一些参与者使用不同的通讯录应用程序,并要求他们完成一系列任务,如添加联系人、编辑联系人信息、删除联系人、搜索联系人等。

通过观察参与者的表现和收集他们的反馈,我们得出了以下结论:1. 大多数参与者反馈通讯录应用程序的界面设计简洁、直观,易于使用。

通讯录实训实验报告

通讯录实训实验报告

实训报告题目:通讯录院系:信息科技学院专业:计算机科学与技术姓名: ***学号: ****指导教师: ******日期: 2012年1月7日桂林电子科技大学信息科技学院目录1 问题定义 (4)2 系统设计 (4)2.1 总体设计 (4)2.2 详细设计 (6)2.2.3 输入记录模块 (7)2.2.4 查询记录模块 (8)2.2.5 更新记录模块 (8)2.2.6 统计记录模块 (8)3 系统实现 (9)3.1 编码 (9)3.1.1 程序预处理 (9)3.1.2 主函数main() (9)3.1.3 主菜单界面 (9)3.1.4 表格形式显示记录 (10)3.1.5 记录查找定位 (10)3.1.6 格式化输入数据 (10)3.1.7 增加记录 (10)3.1.8 查询记录……………………………………………………………………10…3.1.9 删除学生记录 (11)3.1.10 修改记录 (11)3.1.11 插入记录 (12)3.1.12 统计记录 (12)3.1.13 排序记录 (13)3.1.14 存储记录 (13)3.1.15 截图 (17)前言课程设计环节是应用型本科院校非常重要的一个教学环节,是学完一门课后应用本课知识及以前的知识积累而进行的综合性、开放性的训练。

通过课程设计,不仅能够使学生得到系统的技能训练,巩固和加强所学得专业理论知识,而且能够培养学生工程意识、创新能力、团队精神等综合素质,培养学生的设计能力和解决实际问题的能力。

C语言由于其强大的功能,丰富的表达能力,高效的代码,良好的移植性和灵活性,自1972年问世以来,经久不衰,即使现在出现了面向对象的程序设计方法和开发工具,但它仍然是人们学习程序设计的首选语言,用它训练和提高编程技术,以及开发应用程序等。

我们通过《C语言程序设计》这门课程的学习,已经能编写解决小问题的程序,对程序的开发也有了初步的认识,还掌握了C 语言的基本语法,这一过程确确实实令我们感到欣喜,有点计算机可以完成自我任务的成就感。

通讯录系统课程设计实验报告

通讯录系统课程设计实验报告

目录1系统可行性分析 (2)1.1软硬件环境 (2)1.11软件环境 (2)1.12 硬件环境 (2)1.2系统可行性分析分类 (2)1.21技术可行性 (2)1.22 经济可行性 (2)1.23管理可行性 (2)2 需求规格说明书 (2)2.1模块要求 (3)2.2 设计要求 (3)2.3 设计要求功能分析 (3)3 设计规格说明书 (3)3.1 通讯录总的流程图 (4)3.2 创建通讯录的流程图 (4)3.3 添加通讯录记录的流程图 (5)3.4 查找联系人记录的流程图 (5)4 测试策略与方案 (6)4.1测试类型 (6)4.2 测试项目 (7)4.3 测试环境与配置 (7)4.4 输入数据设置 (7)4.5 输入功能设置 (8)5 课程设计总结 (10)参考文献 (10)附件:程序源代码 (11)1系统可行性分析1.1软硬件环境分析1.11软件环境用户端 windows2000 windows2003 windowsxp win7服务器端 windowsxp及以上的操作系统编程语言:c++1.12硬件环境有高性能的电子计算机,大容量的存储装置,个人电脑及连接起来的网线等,组成信息资源共享的计算机网络等1.2系统可行性分析分类1.21技术可行性可以用C语言和相应的软硬件环境实现1.22经济可行性在经济上,用此系统加强了通讯系统信息管理效率,可以省人力资源的开支1.23管理可行性分析在工作上,获取信息量相对较大,开发了此系统,提高了获取信息的效率,方便信息储存和修改及以后随时查找信息系统分析结论该系统是一个比较人性化的管理系统2需求规格说明书2.1模块要求:第一个模块——主函数main()的功能是:根据选单的选项调用各函数,并完成相应的功能。

第二个模块——Menu()的功能是:显示英文提示选单。

第三个模块——Quit()的功能是:退出选单。

第四个模块——Create()的功能是:创建新的通讯录。

手机通讯录实验报告及使用说明(附源代码)

手机通讯录实验报告及使用说明(附源代码)

手机通讯录实验报告及使用说明(附源代码)自查报告。

标题,手机通讯录实验报告及使用说明(附源代码)。

自查报告:
在进行手机通讯录实验及使用说明的撰写过程中,我仔细阅读
了实验要求,并按照要求完成了实验报告的撰写和源代码的整理。

在此过程中,我遇到了一些困难,但通过查阅资料和请教老师同学,最终顺利完成了任务。

在实验报告中,我详细描述了手机通讯录的功能和使用方法,
包括添加联系人、查找联系人、编辑联系人信息、删除联系人等操作。

我还附上了源代码,并对关键部分进行了解释和注释,以便他
人能够理解和使用。

在整个实验过程中,我学习到了许多关于手机通讯录的知识,
包括数据库的设计和操作、用户界面的设计和实现等。

通过动手实践,我加深了对这些知识的理解,并提升了自己的编程能力。

在撰写实验报告的过程中,我也注意到了一些自己的不足之处,比如在代码注释和格式上还有待改进。

因此,我会继续努力学习,
不断提升自己的编程水平和文档撰写能力。

总的来说,通过这次实验和撰写实验报告,我收获颇丰,不仅
掌握了手机通讯录的设计和实现方法,还提升了自己的综合能力。

我会继续努力,为以后更多的实验和项目做好准备。

自查人,XXX。

日期,XXXX年XX月XX日。

手机通讯录实验报告及使用说明(附源代码)

手机通讯录实验报告及使用说明(附源代码)

手机通讯录实验报告及使用说明(附源代码)英文回答:Mobile Phone Address Book Experiment Report and User Guide。

Introduction。

The mobile phone address book is an essential feature that allows users to store and manage their contacts. This experiment aims to evaluate the functionality and usability of the address book feature on a popular smartphone model.Methods。

Test Device: iPhone 14 Pro Max。

Software: iOS 16.1.1。

Participants: 10 users with varying levels ofsmartphone experience.Procedure:1. Users were given a series of tasks to perform using the address book feature, including adding, editing, deleting, and searching for contacts.2. The tasks were designed to assess the ease of use, efficiency, and overall functionality of the address book.3. Users were asked to provide feedback on their experience and any areas for improvement.Results。

通讯录实验报告

通讯录实验报告

实验一Windows应用程序设计一、实验目的1、掌握Windows应用程序设计2、掌握数据库编程二、实验环境Windows 2003操作系统,V isual 2005,数据库管理系统三、实验源程序及关键代码解释1)需求编写一个Windows应用程序,完成电话号码信息的添加、修改、删除和查询功能。

用程序界面自行设计2)数据库结构3)功能描述实现对联系人姓名、电话号码、地址的添加,查找,修改,删除。

在执行添加和删除操作时姓名一栏不能为空;修改操作是对选中的某行修改手机号码和地址信息,姓名不变;执行删除操作时必须选中某一行;显示全部信息按钮可以将存入数据全部显示。

代码及解释:public partial class Form1 : Form{public Form1(){InitializeComponent();}public void Getsorce(string migchar){string xxx = "Data Source=(LOCAL);initial Catalog=tongxunlu;IntegratedSecurity=True;";SqlConnection con = new SqlConnection(xxx);con.Open();SqlCommand com = new SqlCommand(migchar, con);SqlDataReader dr = com.ExecuteReader();listView1.FullRowSelect = true;listView1.Items.Clear();while (dr.Read()){ListViewItem lv = new ListViewItem(dr[0].ToString());lv.SubItems.Add(dr[1].ToString());lv.SubItems.Add(dr[2].ToString());lv.SubItems.Add(dr[3].ToString());listView1.Items.Add(lv);}}private void toolStripButton1_Click(object sender, EventArgs e){if (textBox1.Text.Trim() == "")MessageBox.Show("请填写姓名", "提示",MessageBoxButtons .OK );else{ListViewItem temp = this.listView1.Items[this.listView1.Items.Count - 1];int code = Convert.ToInt32(temp.SubItems[0].Text.Trim()); code = code + 1;string code1 = code.ToString();string name;string phone;string address = textBox3.Text;string connstr = "Data Source=(LOCAL);initial Catalog=tongxunlu;Integrated Security=True;";name = textBox1.Text.Trim();phone = textBox2.Text.Trim();try{string sql = "insert into Table_1(code,name,phone,address) values ('" + code1 + "','" + name + "','" + phone + "','" + address + "')";SqlConnection conn = new SqlConnection(connstr);SqlCommand cmd = new SqlCommand(sql, conn);conn.Open();cmd.ExecuteNonQuery();conn.Close();MessageBox.Show("添加成功!","提示",MessageBoxButtons .OK );textBox1.Text = "";textBox2.Text = "";textBox3.Text = "";Getsorce("select * from Table_1 where code='" + code1 + "'");}catch (Exception ee){MessageBox.Show(ee.Message);}}}private void toolStripButton5_Click(object sender, EventArgs e){Getsorce("select * from Table_1 order by code asc");}private void toolStripButton2_Click(object sender, EventArgs e){listView1.FullRowSelect = true;if (this.listView1.SelectedItems.Count == 0){MessageBox.Show("请选中要删除的信息!","提示",MessageBoxButtons .OK );}else{ListViewItem temp =this.listView1.SelectedItems[this.listView1.SelectedItems.Count - 1];string code1 = temp.SubItems[0].Text.Trim(); ;string name = temp.SubItems[1].Text.Trim();string phone = temp.SubItems[2].Text.Trim();SqlConnection conn = new SqlConnection("Data Source=(LOCAL);initialCatalog=tongxunlu;Integrated Security=True;");try{string sql = "delete Table_1 where code='" + code1 + "'and name='" + name + "'and phone='" + phone + "'";conn.Open();SqlCommand cmd = new SqlCommand(sql, conn);cmd.ExecuteNonQuery();conn.Close();MessageBox.Show("删除成功!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);Getsorce("select * from Table_1 order by code asc");}catch (Exception ee){MessageBox.Show(ee.Message);}}}private void toolStripButton4_Click(object sender, EventArgs e){if (textBox1.Text.Trim() == "")MessageBox.Show("请填写要查询的姓名", "提示", MessageBoxButtons.OK);else{string str = textBox1.Text.Trim();Getsorce("select * from Table_1 where name='" + str + "'");}}private void toolStripButton3_Click(object sender, EventArgs e){listView1.FullRowSelect = true;if (this.listView1.SelectedItems.Count == 0){MessageBox.Show("请先选中要修改的信息!", "提示", MessageBoxButtons.OK);}else{ListViewItem temp =this.listView1.SelectedItems[this.listView1.SelectedItems.Count - 1];string code1 = temp.SubItems[0].Text.Trim(); ;string phone = textBox2.Text.Trim();string address = textBox3.Text;string connstr = "Data Source=(LOCAL);initial Catalog=tongxunlu;Integrated Security=True;";try{string sql = "update Table_1 set phone=' "+ phone + " ', address=' "+ address + " ' where code ='" + code1 + "'";SqlConnection conn = new SqlConnection(connstr);SqlCommand cmd = new SqlCommand(sql, conn);conn.Open();cmd.ExecuteNonQuery();conn.Close();MessageBox.Show("修改成功!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);Getsorce("select * from Table_1 where code='" + code1 + "'");}catch (Exception ee){MessageBox.Show(ee.Message);}}}private void Form1_Load(object sender, EventArgs e)//开始运行即显示全部信息 {listView1.FullRowSelect = true;Getsorce("select * from Table_1 order by code asc");}}4、实验调试过程及运行结果当姓名一栏空缺时点击添加按钮出现:当没有选中行点击删除按钮时显示:当姓名一栏空缺时点击查询按钮出现:当没有选中行点击修改按钮时显示:5、实验总结:个人觉得本实验难点在与数据库的连接和对数据库的操作1、创建Command对象Command对象的用途:1、对数据存储执行命令的对象2、允许指定参数的精确细节3、执行命令得到一系列返回记录和一些由命令提供的附加信息4、可以执行不返回任何记录的命令,如插入数据或更新数据的SQL查询。

c#通讯录实验

c#通讯录实验

南昌航空大学实验报告二00 年月日课程名称:c#面向对象程序设计实验名称:通讯录设计班级:姓名:同组人:指导教师评定:签名:一、实验目的熟悉和掌握c#的使用。

二、实验要求设计一个通讯录的管理系统,包含:姓名(NAME )街道(STREET)城市(CITY)邮编(EIP)国家(STATE),关系(relative),电话email、QQ等数据项,也可以自行扩展其他数据项.设计内容:用面向对象思想完成类的设计,并实现以下几方面的功能:1)输入信息;2)显示信息;3)查找以姓名作为关键字;4)删除信息;5)存盘;6)装入;三、实验步骤1.创建一个项目,;2.创建class类;3.写出class类的属性,并写出构造函数;4.编写input方法并使用文件存储;5.编写search方法;6.编写del方法;7.编写show方法;8.写出主函数,并调用这些方法实现要求。

四、参考源代码using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.IO;namespace kk综合实验{class Program{static void Main(string[] args){Console.WriteLine("*******************欢迎使用**********************");Console.WriteLine("*******************1表示输入*********************");Console.WriteLine("*******************2表示查找*********************");Console.WriteLine("*******************3表示删除*********************");Console.WriteLine("***************4表示显示联系人信息***************");Console.WriteLine("***************5表示退出该系统*******************");int k = 0;while (k != 5){Console.WriteLine("**************************************");Console.WriteLine("请输入i的值表示操作");int i = int.Parse(Console.ReadLine());person p = new person();switch (i){case 1:p.input();break;case 2:p.search();break;case 3:p.del();break;case 4:p.show();break;case 5:Console.WriteLine("谢谢使用!");k = 5;break;}}}public class person{public string name;public string street;public string city;public string eip;public string state;public string relate;public string tel;public string email;public string qq;public person() { }public person(string n, string s, string c, string e, string st, string r, string t, string em, string q){name = n;street = s;city = c;eip = e;state = st;relate = r;tel = t;email = em;qq = q;}public void input() //输入信息{Console.WriteLine("请输入联系人姓名:");name = Console.ReadLine();Console.WriteLine("请输入联系人电话:");email = Console.ReadLine();Console.WriteLine("请输入联系人qq:");qq = Console.ReadLine();Console.WriteLine("请输入联系人关系:");relate = Console.ReadLine();Console.WriteLine("请输入联系人关系:");state = Console.ReadLine();Console.WriteLine("请输入联系人城市:");city = Console.ReadLine();Console.WriteLine("请输入联系人街道:");street = Console.ReadLine();Console.WriteLine("请输入联系人邮编:");eip = Console.ReadLine();FileStream fs1 = new FileStream("D:\\contactlist.txt", FileMode.Append); //存盘StreamWriter sw = new StreamWriter(fs1);sw.WriteLine(name);sw.WriteLine(email);sw.WriteLine(qq);sw.WriteLine(relate);sw.WriteLine(state);sw.WriteLine(city);sw.WriteLine(street);sw.WriteLine(eip);sw.Close();}public void search() //查询信息 {int i=0;Console.WriteLine("请输入要查找的联系人姓名:");string keyname = Console.ReadLine();string[] list = File.ReadAllLines(@"D:\\contactlist.txt");while(i<=list.Length-1){if (match(list[i], keyname) == 0){Console.WriteLine("姓名:{0}", list[i++]);Console.WriteLine("电话:{0}", list[i++]);Console.WriteLine("Q Q:{0}", list[i++]);Console.WriteLine("关系:{0}", list[i++]);Console.WriteLine("国家:{0}", list[i++]);Console.WriteLine("城市:{0}", list[i++]);Console.WriteLine("街道:{0}", list[i++]);Console.WriteLine("{0}", list[i]);break;}elsei = i + 1;}if (i >= list.Length)Console.WriteLine("未找到该联系人!");}public int match(string kl, string keyname){int n=1;char[] l =kl .ToArray();char[] k = keyname.ToArray();for (int i = 0; i < kl.Length; i++)for (int j = 0; j < keyname.Length-1; j++){if (kl[i] == keyname[j])n = 0;elsen = 1;}return n;}public void del() //删除信息{int i;Console.Write("请输入要删除的联系人姓名:");string name = Console.ReadLine();string[] list = File.ReadAllLines(@"D:\\contactlist.txt");for (i = 0; i < list.Length-1; i++){if (list[i] == name){list[i++] = null;list[i++] = null;list[i++] = null;list[i++] = null;list[i++] = null;list[i++] = null;list[i++] = null;list[i] = null;File.WriteAllLines("D:\\contactlist.txt", list);Console.WriteLine("删除成功!");break;}}if (i == list.Length)Console.WriteLine("联系人列表中没有找到该联系人!");}public void show() //显示信息{int i=0;string[] list = File.ReadAllLines(@"D:\\contactlist.txt");Console.WriteLine("联系人信息:");while(i<=list.Length-1){Console.WriteLine("姓名:{0}", list[i++]);Console.WriteLine("电话:{0}", list[i++]);Console.WriteLine("Q Q:{0}", list[i++]);Console.WriteLine("关系:{0}", list[i++]);Console.WriteLine("国家:{0}", list[i++]);Console.WriteLine("城市:{0}", list[i++]);Console.WriteLine("街道:{0}", list[i++]);Console.WriteLine("{0}", list[i++]);Console.WriteLine("********************");}}}}}五、实验结果六、实验体会这次试验内容比以前做的实验多很多,但是却是对自己已经学过的东西是一种很好的检验。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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;}}。

相关文档
最新文档