通讯录设计报告
通讯录管理系统课程设计报告
通讯录管理系统课程设计报告一、课程设计背景随着信息化时代的到来,通讯录管理系统已经成为了人们日常生活中必不可少的一部分。
在这个快节奏的社会中,人们需要随时随地地获取和管理自己的联系人信息。
因此,设计一个高效、方便、易用的通讯录管理系统就显得尤为重要。
二、需求分析1.功能需求(1)用户注册与登录:用户可以通过注册账号并登录到系统中。
(2)通讯录添加:用户可以添加联系人,包括姓名、电话号码、电子邮件等信息。
(3)通讯录查询:用户可以根据姓名或电话号码等信息查询特定联系人。
(4)通讯录修改:用户可以对已有联系人信息进行修改。
(5)通讯录删除:用户可以删除指定的联系人。
2.非功能需求(1)易用性:系统应该具有良好的界面设计和操作逻辑,使用户能够快速上手使用。
(2)安全性:系统应该具有安全防护措施,保护用户的数据不被非法获取或篡改。
(3)稳定性:系统应该具有高可靠性和稳定性,确保在任何情况下都能正常运行。
三、技术选型本次课程设计采用Java语言进行开发,使用MySQL数据库作为数据存储后端。
前端采用Java Swing框架进行设计,实现用户界面的构建和交互。
后端采用JDBC技术进行与数据库的交互。
四、系统设计1.系统架构本系统采用MVC(Model-View-Controller)架构模式,将业务逻辑、数据存储和用户界面分离开来,提高了代码的可维护性和可扩展性。
2.模块设计(1)用户管理模块:实现用户注册、登录等功能。
(2)通讯录管理模块:实现通讯录添加、查询、修改、删除等功能。
(3)数据存储模块:负责与数据库进行交互,实现数据的持久化存储。
五、系统实现1.前端实现本系统采用Java Swing框架进行开发,通过调用Swing组件库中的各种控件来构建用户界面。
其中包括登录窗口、注册窗口、主窗口等界面。
2.后端实现本系统采用JDBC技术进行与MySQL数据库的交互。
通过编写SQL语句来完成对数据库中表格的增删改查操作,并将结果返回给前端界面显示。
VB通讯录的设计报告
一.题目分析1.1数据库设计:建立通讯录管理系统的数据库,通讯录包括姓名、关系、手机号码、通信地址等。
1.2系统结构设计:利用模块化设计思想,将系统进行模块划分,并给出系统功能结构图。
1.3功能模块设计:(1)数据输入功能:可以增加记录。
(2)数据显示功能:可以显示每条记录。
(3)查询功能:可以按姓名查找通讯录信息。
(4)删除功能:可以按姓名删除通讯录信息。
(5)打印功能:可以打印个人通讯录信息二.设计过程通讯录的基本设计思想是通过对不同功能的窗体的调用,达到完成各种功能的目的,在不减少功能的前提下尽可能减少主窗体的繁琐,充分发挥VB的可视化功能和事件驱动功能。
系统结构图如下:图一通讯录查结构图图二个人信息结构图图三通信录功能结构图数据库设计:数据库设计的任务是确定系统所需的数据库。
数据库是表的集合,通常一个系统只需一个数据库。
设计的任务是根据需求分析,确定数据库所包含的表及字段、表间的关系,然后具体确定表的结构,包括字段名、字段类型及宽度,需要的索引等。
根据对需求得到的数据结构进行分析,按数据输入输出的要求,确定表和表间的关系,并进行验证、调整、修改、完善,使其能够实现用户对数据和功能的要求。
、根据分析确定系统要设置如下表:通讯信息表,包括以下字段:姓名、关系、手机号码、通讯地址等。
通讯信息表字段名类型宽度小数位数姓名字符型10关系字符型10手机号码字符型14通讯地址字符型20表一通讯信息表通讯信息功能:实现功能:添加、修改、删除、查看个人信息数据。
实现过程:可采用表单向导制作针对个人档案表数据维护的表单。
图四Visual Basic设计界面三.调试过程1.由于不小心将语句For n = 1 to 记录数书写成For n = 1 记录数(漏掉了to)提示了如下界面2.在用VB是常出现下面的界面,再通过了解之后发现是由于被删除产生的。
提示了如下界面3.在这个语句编写的过够中由于一开始没有If,导致了错误。
数据结构课程设计报告---通讯录
数据结构课程设计报告---通讯录## 一、项目背景随着信息科技的发展,现代社会通讯录的应用越来越普遍,满足了人们信息的获取和管理的需求。
本项目的设计目的在于使用面向对象的程序思想,以面向对象的方式它来实现对通讯录信息的管理,进而提高信息的管理效率,提升信息的可靠性和安全性,最终达到为社会实施科学管理的目的。
## 二、系统需求1. 界面美观、格式明确,有良好的友好提示。
2. 系统稳定性强,能承受短时间的高并发量使用。
3. 提供友好的系统操作界面,对用户操作进行一定的约束,方便用户操作。
4.提供有效的联系人信息管理功能,能够实现增删改查等操作。
5.支持联系人信息备份和恢复,以及密码设置。
6.能够防止任何人未经授权而访问系统,或者磁盘信息的泄露。
此系统的设计主要分为三大部分,即界面层、业务逻辑层和数据存储层。
界面层通过展示信息给用户,实现数据的输入及输出;业务逻辑层主要处理用户请求,实现对数据的操作;数据存储层通过文件存储数据,实现对联系人信息的永久保存。
本项目采用C++语言,以链表数据结构为基础,将用户的联系人存储在链表中,充分利用其动态性,实现联系人的增删改查操作.同时,为了提供更进一步的使用,增加了密码功能,对未授权访问进行防止,以及数据备份和恢复功能。
## 四、功能实现1. 界面设计:首先,根据系统所需要的功能,采用控制台方式,以文字提示形式,配以整齐美观的各项参数和信息,实现各项功能。
2. 加密控制:本系统实现授权登陆加密功能,使系统对未经授权的用户隐藏信息,以确保系统的安全性。
3. 测试功能:功能的测试旨在确保程序的完整性和正确性。
4. 管理功能:本系统实现联系人信息的增删改查操作,在这几项功能的实现过程中,使用链表数据结构,更好的实现程序的功能。
5. 修改密码功能:此功能实现用户可以修改自己的密码,以确保用户自己可以比较安全的使用系统,不会受到他人的侵犯。
6. 加载和存储数据:通过使用文件存储,实现数据的存储和读取,以及备份功能,实现对数据永久保存。
通讯录管理系统设计报告
通讯录管理系统设计报告一、引言通讯录在日常生活中扮演着重要的角色,用来存储和管理各种联系人信息,方便人们随时找到需要联系的人或组织。
随着移动互联网的普及,通讯录的管理变得更加便捷和高效。
为了提高通讯录的管理效率,我们设计并开发了一款通讯录管理系统。
二、系统概述通讯录管理系统是一个基于Web的应用程序,用户可以通过浏览器访问系统,进行通讯录的管理操作。
系统主要包括以下功能:•用户登录与注册:用户可以注册新账号,并通过账号密码登录系统。
•联系人管理:用户可以添加、编辑、删除联系人信息,包括姓名、电话号码、邮箱等。
•分组管理:用户可以创建分组并将联系人归类到不同分组。
•搜索功能:用户可以通过关键词搜索联系人信息。
•导出和导入功能:用户可以将联系人信息导出为Excel表格,并可以通过Excel文件导入联系人到系统中。
三、系统架构通讯录管理系统采用了前后端分离的架构,前端使用Vue.js框架开发,提供友好的用户界面;后端使用Node.js和Express框架搭建RESTful API,负责数据的存储和管理。
系统中的数据存储在MySQL数据库中,用户的密码使用bcrypt进行加密存储,确保用户信息的安全性。
同时,系统对用户权限进行了细致管理,保障用户在系统中的数据安全。
四、系统界面系统的界面设计简洁直观,用户可以轻松进行操作。
主要包括登录页面、通讯录首页、联系人管理页面、分组管理页面等。
用户登录页面:[登录页面截图]通讯录首页:[通讯录首页截图]联系人管理页面:[联系人管理页面截图]五、系统特色•简洁高效:系统操作简单直观,提供了快速的联系人管理功能。
•个性化定制:用户可以根据自己的需求创建分组,快速查找联系人。
•数据安全:采用了加密技术和权限管理,确保用户数据的安全性。
•导入导出功能:支持Excel文件导入导出,方便用户管理大批量联系人信息。
六、未来展望通讯录管理系统将继续进行优化和迭代,引入更多智能化功能,如联系人推荐、消息提醒等,提升用户体验。
通讯录管理系统课程设计报告系统存储结构
通讯录管理系统课程设计报告系统存储结构一、引言通讯录管理系统是一种方便快捷地存储和管理联系人信息的应用程序。
在该系统中,数据的存储结构至关重要,它直接关系到系统的性能和稳定性。
本文将介绍通讯录管理系统的系统存储结构设计,包括数据的组织方式、存储介质选择等内容。
二、存储结构设计1. 数据的组织方式在通讯录管理系统中,联系人信息是系统中最主要的数据之一。
为了高效地存储和管理这些信息,我们选择采用数据库的方式进行组织。
数据库将联系人信息按照一定的结构进行组织和存储,方便系统对数据的检索和更新。
2. 数据库的选择在选择数据库时,我们考虑到系统的使用特点和性能要求,最终选择了关系型数据库。
关系型数据库具有良好的数据一致性和完整性,能够满足系统的数据管理需求。
同时,支持 SQL 查询语言的特性也使得对数据进行灵活的操作成为可能。
3. 数据表设计在关系型数据库中,数据是以表的形式进行存储的。
针对通讯录管理系统的需求,我们设计了以下几张表:•用户表:用于存储系统的用户信息,包括用户名、密码等;•联系人表:用于存储用户的联系人信息,包括姓名、电话号码、邮箱地址等;•分组表:用于将联系人进行分类管理,方便用户对联系人信息进行组织。
每张表之间通过外键进行关联,确保数据的一致性和完整性。
三、存储介质选择除了数据库存储外,系统还需要选择适当的存储介质来保存一些系统配置信息和用户的登录状态等数据。
我们选择了文件系统作为存储介质,将这些数据以文件的形式进行存储。
四、存储结构的优化为了提高系统的性能和响应速度,我们对存储结构进行了一定的优化。
主要包括以下几点:•索引设计:对关键字段建立索引,加快检索速度;•归档策略:定期对系统中的数据进行归档,减少存储空间的占用;•缓存机制:使用缓存技术对频繁访问的数据进行缓存,减少数据库访问的频率。
五、总结系统存储结构的设计对于通讯录管理系统的性能和稳定性具有重要影响。
通过合理选择数据库和存储介质,并对存储结构进行优化,可以有效提高系统的用户体验和响应速度。
通讯录管理系统课程设计报告
通讯录管理系统课程设计报告一、引言通讯录管理系统是一种用于存储和管理联系人信息的应用程序,它可以帮助用户方便地记录和查找各种联系人信息。
在本课程设计报告中,我们将讨论通讯录管理系统的设计和实现过程,以及系统的功能特点和操作流程。
二、需求分析通讯录管理系统需要具备以下基本功能: 1. 添加联系人信息:用户可以输入姓名、电话号码、电子邮件地址等信息来添加新的联系人。
2. 查找联系人信息:用户可以通过姓名或电话号码等关键词来查找已添加的联系人信息。
3. 修改联系人信息:用户可以对已有联系人信息进行修改和更新。
4. 删除联系人信息:用户可以选择删除不需要的联系人信息。
5. 显示所有联系人信息:系统可以按照一定的格式将所有联系人信息展示给用户。
三、系统设计1. 数据结构为了存储联系人信息,我们可以使用一个包含姓名、电话号码、电子邮件地址等字段的结构体来表示每个联系人。
可以使用链表或数组来组织所有联系人信息。
2. 模块设计通讯录管理系统可以划分为以下几个模块: - 添加联系人模块:实现添加新联系人信息的功能。
- 查找联系人模块:实现根据关键词查找联系人信息的功能。
- 修改联系人模块:实现对已有联系人信息进行修改和更新的功能。
- 删除联系人模块:实现删除不需要的联系人信息的功能。
- 显示联系人模块:实现将所有联系人信息按照一定格式展示给用户的功能。
3. 用户界面设计用户界面应该简洁明了,包括各个功能的按钮或选项,以及输入框和显示信息的区域。
用户应该能够方便地进行各种操作和查看联系人信息。
四、系统实现1. 数据存储可以使用文件来存储联系人信息,也可以使用数据库来进行数据持久化。
2. 界面实现可以使用图形界面或命令行界面来实现用户交互功能,不同的界面设计会影响用户体验。
3. 功能实现根据需求分析中的功能,实现各个模块的功能代码,确保系统可以正确地完成相关操作。
五、功能测试在系统实现完毕后,需要进行功能测试,确保系统的各个功能都能正常运行,并且符合需求。
c通讯录课程设计报告
c通讯录课程设计报告一、课程目标本通讯录课程设计旨在通过实践活动,使学生在信息技术学科的基础上,掌握以下知识目标、技能目标和情感态度价值观目标:1. 知识目标:- 了解通讯录的基本概念、功能及在实际生活中的应用。
- 掌握通讯录的录入、修改、删除、查询等基本操作。
- 了解如何对通讯录进行分类、排序和筛选,以便快速查找和整理信息。
2. 技能目标:- 学会使用电子表格软件(如Microsoft Excel)创建、编辑和管理通讯录。
- 能够运用所学知识,设计并优化个人或团队的通讯录,提高信息处理效率。
- 培养学生的团队协作能力,通过小组讨论和分享,提高问题解决和沟通表达能力。
3. 情感态度价值观目标:- 培养学生珍惜个人信息,尊重他人隐私的观念。
- 增强学生的信息素养,认识到信息技术在生活中的重要性,激发对信息技术的学习兴趣。
- 通过对通讯录的学习和实际操作,培养学生的责任心和细致严谨的工作态度。
课程性质:本课程为实践性较强的信息技术课程,结合学生年级特点和教学要求,注重培养学生的动手操作能力和团队协作能力。
学生特点:考虑到学生所在年级,他们在信息技术方面已具备一定的基础,对新鲜事物充满好奇心,善于合作学习。
教学要求:结合课程目标和学科特点,教师应注重实践操作,引导学生主动探索、积极思考,将所学知识应用于实际生活中,达到学以致用的目的。
在教学过程中,教师需关注学生的学习进度,及时调整教学策略,确保课程目标的实现。
通过本课程的学习,使学生能够熟练掌握通讯录的制作和管理,提高个人信息素养。
二、教学内容根据课程目标,本章节教学内容围绕通讯录的制作和管理展开,确保内容的科学性和系统性。
以下是详细的教学大纲及教材关联内容:1. 通讯录概述- 介绍通讯录的定义、功能及应用场景。
- 教材章节:第一章 信息技术与日常生活。
2. 通讯录的基本操作- 学习通讯录的录入、修改、删除、查询等操作。
- 教材章节:第二章 电子表格软件的基本操作。
通讯录管理系统课程设计报告总结
通讯录管理系统课程设计报告总结一、引言通讯录管理系统作为一种常见的信息管理工具,在日常生活中发挥着重要作用,能够帮助人们方便地管理和查找联系人信息。
本次课程设计旨在设计和实现一个简单的通讯录管理系统,运用所学的软件开发技术和方法,提升学生的实际项目开发能力。
二、需求分析本系统主要包括以下功能模块: 1. 用户登录和注册:用户可以通过用户名和密码登录系统,也可以注册新用户; 2. 通讯录管理:用户可以添加、删除、修改联系人信息,并可以按照姓名、电话号码等字段进行排序和搜索; 3. 导入和导出:用户可以将通讯录数据导出到文件中,也可以从文件中导入数据; 4. 权限管理:管理员可以对用户进行管理,设定不同用户的权限和角色。
三、设计与实现本系统采用Python语言进行开发,使用了Django框架进行Web应用的搭建,并结合SQLite数据库实现数据的存储和管理。
系统的前端页面采用HTML、CSS和JavaScript进行设计,实现了用户友好的界面交互。
在系统的设计过程中,我们遵循了软件工程的相关原则和方法,包括需求分析、概要设计、详细设计、编码和测试等阶段。
通过团队合作,我们按照功能模块分工合作,每位成员负责不同的部分,最终将各部分整合在一起进行测试和优化。
四、测试与优化在系统开发过程中,我们进行了严格的测试工作,包括单元测试、集成测试和系统测试等,确保系统的功能正常运行和性能优秀。
在测试过程中,我们发现了一些问题并对其进行了优化,提高了系统的稳定性和用户体验。
五、总结与展望通过本次通讯录管理系统课程设计,我们深入了解了软件开发的整个流程,提升了团队协作能力和项目管理能力。
在未来的学习和工作中,我们将继续探索软件开发领域,不断提高自己的技术水平,为社会和行业做出更多贡献。
以上是本次通讯录管理系统课程设计的报告总结,希望能够对读者有所启发和帮助。
感谢大家的支持与关注!。
java通讯录课程设计报告
课程设计报告:Java通讯录一、引言本次课程设计是关于Java通讯录的开发,旨在让我们更深入地理解Java编程语言在现实生活中的应用。
通讯录是一种常见的应用程序,它可以帮助我们管理联系人信息,方便我们与朋友和家人保持联系。
二、需求分析本次课程设计的目标是根据用户需求,设计并实现一个功能齐全的Java通讯录应用程序。
具体需求如下:用户可以添加联系人信息,包括姓名、电话号码、电子邮件地址等。
用户可以删除联系人信息。
用户可以编辑联系人信息。
用户可以按姓名、电话号码或电子邮件地址搜索联系人信息。
用户可以查看所有联系人信息。
三、设计数据库设计为了存储联系人信息,我们选择使用Java内置的ArrayList类作为数据库。
ArrayList是一个动态数组,可以根据需要自动增长。
我们将使用ArrayList的add()方法添加联系人信息,使用get()方法获取联系人信息,使用remove()方法删除联系人信息。
界面设计我们使用Java Swing库来创建用户界面。
界面包括以下组件:JLabel:显示提示信息和标题。
JTextField:用于输入和编辑联系人信息。
JButton:用于触发添加、删除、编辑和搜索等操作。
JTable:用于显示所有联系人信息。
JComboBox:用于选择搜索条件。
四、实现添加联系人信息当用户点击“添加”按钮时,程序会创建一个新的联系人对象,并将用户输入的信息设置到该对象中。
然后,程序将该对象添加到ArrayList中。
删除联系人信息当用户选择要删除的联系人并点击“删除”按钮时,程序会从ArrayList中删除该联系人对象。
编辑联系人信息当用户选择要编辑的联系人并点击“编辑”按钮时,程序会将该联系人的信息显示在文本框中,以便用户进行修改。
修改完成后,程序会将修改后的信息保存到ArrayList中。
搜索联系人信息当用户选择搜索条件并输入搜索关键字时,程序会在ArrayList 中查找符合条件的联系人对象,并将其显示在表格中。
通讯录c课程设计报告
通讯录c 课程设计报告一、课程目标本课程为六年级信息技术学科“通讯录C”课程设计,旨在通过实践操作,使学生在知识、技能及情感态度价值观方面取得以下目标:1. 知识目标:(1)掌握通讯录的基本概念及作用;(2)学会使用电子表格软件(如Microsoft Excel)创建、编辑和保存通讯录;(3)了解通讯录信息分类和排序的方法。
2. 技能目标:(1)能够独立完成通讯录的创建、编辑和保存操作;(2)能够运用电子表格软件对通讯录进行信息分类和排序;(3)学会在电子表格中插入公式,实现通讯录信息的自动计算。
3. 情感态度价值观目标:(1)培养学生对信息技术的兴趣和热情,提高信息素养;(2)培养学生团队协作精神,学会在小组合作中共同解决问题;(3)引导学生认识到信息保护的重要性,养成信息安全意识。
本课程结合六年级学生的认知特点,注重实践操作,将知识目标、技能目标和情感态度价值观目标融入教学过程中,使学生能够在轻松愉快的氛围中学习信息技术,提高综合运用能力。
同时,课程目标具体、可衡量,便于教学设计和评估。
二、教学内容本章节教学内容依据课程目标,结合教材第四章“电子表格与数据处理”内容,具体安排如下:1. 通讯录基本概念与作用:介绍通讯录的定义、功能及在日常生活和工作中重要性。
2. 电子表格软件操作:(1)认识Microsoft Excel界面,学会基本操作;(2)创建新工作簿,编辑单元格内容;(3)保存和打开工作簿。
3. 通讯录创建与编辑:(1)设计通讯录表格结构;(2)录入联系人信息;(3)调整单元格格式,美化通讯录。
4. 通讯录信息处理:(1)运用公式进行信息统计;(2)使用排序和筛选功能,快速查找联系人;(3)分类汇总联系人信息。
5. 通讯录保护与分享:(1)设置密码保护通讯录;(2)导出和分享通讯录。
教学进度安排:共计4课时,分别为:1. 第1课时:通讯录基本概念与作用、电子表格软件认识;2. 第2课时:创建与编辑通讯录;3. 第3课时:通讯录信息处理;4. 第4课时:通讯录保护与分享。
通讯录管理系统课程设计报告Java
通讯录管理系统课程设计报告Java1. 简介通讯录管理系统是一种方便用户存储和管理联系人信息的工具。
本课程设计将使用Java语言开发一个简单的通讯录管理系统,实现对联系人信息的增删改查功能。
通过本项目的实践,学习者将掌握Java编程语言的基础知识和面向对象编程的技巧。
2. 功能需求通讯录管理系统应包含以下功能: - 添加联系人信息:用户可以输入联系人的姓名、电话号码、邮箱等信息添加到通讯录中。
- 显示所有联系人信息:系统能够展示所有已保存在通讯录中的联系人信息。
- 查找联系人信息:用户可以通过姓名或电话号码查找特定联系人的信息。
- 修改联系人信息:用户可以对已保存的联系人信息进行修改。
- 删除联系人信息:用户可以删除通讯录中的联系人信息。
实现以上功能需要设计相应的数据结构和算法,以及编写用户交互界面。
3. 技术实现3.1 数据结构在Java中,可以使用ArrayList或HashMap等数据结构来存储联系人信息。
ArrayList适用于有序的联系人列表,而HashMap适用于根据键值快速查找联系人信息。
3.2 用户交互界面用户交互界面可以通过Java的Swing或JavaFX等GUI工具包来实现。
设计一个简洁明了的界面,包含菜单栏、输入框、按钮等组件,以方便用户操作。
3.3 功能实现•添加联系人信息:用户输入信息后,将联系人信息添加到数据结构中。
•显示所有联系人信息:遍历数据结构,将所有联系人信息展示在界面上。
•查找联系人信息:根据用户输入的查询条件,在数据结构中查找对应的联系人信息。
•修改联系人信息:根据用户输入的修改信息,更新数据结构中相应的联系人信息。
•删除联系人信息:根据用户输入的删除条件,从数据结构中移除对应的联系人信息。
4. 总结通讯录管理系统是一个简单实用的应用程序,能够帮助用户有效管理联系人信息。
通过本课程设计,学习者将学习如何使用Java语言开发基本的应用程序,掌握面向对象编程的基本原理和技巧。
通讯录管理系统课程设计报告总结
任务名称:通讯录管理系统课程设计报告总结一、引言通讯录管理系统是一种用于管理联系人和通讯信息的应用程序。
该系统的设计旨在满足用户对个人和组织通讯信息的管理和查询需求。
本报告对通讯录管理系统的设计过程进行总结,并提出了改进建议。
二、系统需求分析在进行系统设计前,我们首先对用户需求进行了深入分析。
以下是我们对通讯录管理系统的需求分析总结:2.1 用户需求1.用户需要能够方便地添加、删除和编辑联系人信息。
2.用户需要能够快速搜索和查找特定联系人的信息。
3.用户需要能够导出通讯录信息并与其他应用程序集成。
4.用户需要能够进行批量操作,如导入联系人信息或发送批量邮件。
2.2 系统需求1.系统需要提供用户友好的用户界面,操作简单直观。
2.系统需要具备高效的搜索和查询功能,以满足用户的快速查找需求。
3.系统需要能够存储大量联系人信息,并确保数据安全性和完整性。
4.系统需要提供数据导入导出功能和与其他应用程序的集成能力。
三、系统设计在系统设计阶段,我们采用了面向对象的方法进行系统建模和设计。
以下是系统设计的要点:3.1 系统架构通讯录管理系统采用了三层架构模式:表示层、业务逻辑层和数据访问层。
这种架构模式将系统的功能划分为不同的层次,方便系统的维护和扩展。
3.2 数据库设计我们使用了关系型数据库来存储和管理通讯录信息。
数据库设计包括联系人表、联系人组表等。
通过合理的数据表设计,实现了联系人和联系人组之间的关联和查询。
3.3 用户界面设计为了提供用户友好的界面,我们通过使用图形用户界面(GUI)的方式构建了系统界面。
界面设计简洁明了,用户可以方便地进行联系人管理和查询操作。
3.4 功能设计根据用户需求,系统实现了联系人的添加、删除、编辑等功能。
同时,系统还提供了高效的搜索和查询功能,用户可以通过姓名、电话号码等信息快速查找联系人。
四、系统实现与测试在系统实现阶段,我们按照设计要求逐步开发各个模块,并进行了系统测试。
学生通讯录管理系统课程设计报告
学生通讯录管理系统课程设计报告一、课程设计背景学生通讯录管理系统是一个旨在帮助学生和教师更好地管理个人信息和通讯录的软件系统。
随着信息技术的不断发展,现代教育领域对教学、管理和学习等方面的要求越来越高,传统的纸质通讯录管理方式已经无法满足教育机构的需求。
因此,开发一个便捷、高效的学生通讯录管理系统成为当今教育信息化的重要课题。
二、需求分析学生通讯录管理系统主要包括以下功能模块:1.学生信息管理:用于录入、修改和删除学生个人信息,包括姓名、学号、性别、联系方式等;2.通讯录管理:实现通讯录的分类、查找、添加和删除功能,方便学生和教师进行联系;3.用户权限管理:设置不同权限等级的用户,如学生、教师和管理员,确保信息安全性;4.数据备份与恢复:对系统中的重要数据进行定期备份,保障数据的安全性;5.界面友好性:系统界面简洁明了,操作便捷,用户体验良好。
三、系统设计1. 系统架构学生通讯录管理系统采用客户端-服务器架构,客户端提供给学生和教师使用,服务器端用于存储核心数据和处理业务逻辑。
2. 数据库设计系统采用关系型数据库,主要包括以下表:•学生表(Student):包含学生的基本信息;•教师表(Teacher):包含教师的基本信息;•通讯录表(Contact):记录学生或教师之间的联系方式;•用户表(User):存储系统用户的账号信息和权限。
3. 功能实现(1)学生信息管理学生信息管理模块提供学生信息的增删改查功能,管理员可以对学生信息进行修改和删除,学生可以查看、修改自己的个人信息。
(2)通讯录管理通讯录管理模块支持对通讯录的分类和搜索功能,学生和教师可以添加、删除通讯录条目,并对通讯录进行管理。
(3)用户权限管理系统设定不同权限等级的用户,管理员有最高权限,可以管理用户账号和角色,确保系统的安全性。
四、系统实现系统采用Java语言进行开发,前端界面使用JavaFX技术,后端采用Spring框架实现业务逻辑,数据库连接采用JDBC等技术。
通讯录系统课程设计实验报告
目录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()的功能是:创建新的通讯录。
通讯录详细设计报告
软件测试实训-2详细设计报告项目名称: 通讯录管理系统(CS04)负责人:日期:注:(按照书上的顺序,每个项目一个编号,附在项目名称后面,如三角形问题CS01)详细设计说明书作用范围该详细设计说明书讨论的是“通讯录管理系统”各模块的详细设计。
系统目标1.后台数据库设计,后台需要建立Adrress数据库,维护两个表groupInfo和people。
并且利用windows的ODBC和前台连接。
2.前台使用MCF 的CRecordset派生类实现和后台通讯。
3.前台利用CDialog派生类实现用户界面,显示系统信息,接受用户的输入和结果显示。
后台数据库设计1.组信息表groupInfo结构2.联系人信息表people结构3.表关系结构前台设计描述数据描述1.主窗口类 CAddressListDlg,关联主用户界面,实现主要的程序逻辑。
主界面上的主要控件有:IDC_TREE_LIST,IDC_STATIC,IDC_EDIT,IDC_BUTTON……。
2.CGroupInfo类成员变量:long m_id;CString m_groupName;3.CPeople类成员变量:long m_id;long m_groupId;CString m_fullName;BOOL m_sex;CString m_company;CString m_phoneInCompany;CString m_homeAddress;CString m_phineInHome;CString m_mobile;CString m_mail;CString m_qq;CString m_msn;CString m_memory;4.界面编辑信息数据结构typedef struct{CString strName;bool bSex;CString strCompany;CString strPhoneInCompany;CString strHomeAddress;CString strPhoneInHome;CString strMobile;CString strMail;CString strQq;CString strMsn;CString strMemory;}INTERFACECTRLDATA;主要功能实现函数1.添加组✧函数名 OnButtonAppendgroup()✧主要流程,用户点击“增加组”,输入新组名,选择确认/放弃,确认后,调用添加联系人组函数CappendNewGroupDialog::OnOk()。
通讯录管理系统课程设计报告需求分析
通讯录管理系统课程设计报告需求分析一、背景介绍在当今社会,随着通讯技术的不断发展和普及,通讯录管理系统成为人们日常生活和工作中不可或缺的工具。
为了提高通讯录管理系统的便捷性和效率,本课程设计旨在分析通讯录管理系统的需求,进而设计一个功能完善、操作简便的系统,满足用户的实际需求。
二、需求分析1. 功能需求通讯录管理系统应具备以下基本功能: - 添加联系人:用户可以录入新的联系人信息,包括姓名、电话号码、邮箱等。
- 编辑联系人:用户可以修改已有联系人的信息。
- 删除联系人:用户可以删除不需要的联系人信息。
- 搜索联系人:用户可以根据关键词快速搜索联系人信息。
- 分组管理:用户可以对联系人进行分类管理,方便查找和管理。
2. 性能需求通讯录管理系统的性能需求包括: - 快速响应:系统应具备快速响应用户操作的能力,保证用户体验流畅。
- 数据安全:系统需要保障用户数据的安全性,防止数据泄露和丢失。
- 稳定性:系统需要保持稳定运行,避免出现频繁的崩溃和错误。
3. 可靠性需求通讯录管理系统的可靠性需求包括: - 数据备份:系统应具备数据备份和恢复功能,确保数据不会因意外情况丢失。
- 异常处理:系统需要具备异常处理机制,能够处理用户操作中出现的异常情况。
- 用户权限管理:系统需要对用户进行权限管理,保证只有授权用户可以访问和操作系统。
4. 易用性需求通讯录管理系统的易用性需求包括: - 界面友好:系统界面设计应简洁明了,操作逻辑清晰,便于用户使用。
- 操作简便:用户操作应简单明了,不需要复杂的步骤就能完成常用功能。
- 提示反馈:系统应提供操作提示和反馈,帮助用户正确使用系统。
三、总结基于以上需求分析,通讯录管理系统应具备功能完善、性能优良、可靠稳定、易用便捷的特点,以满足用户的实际需求。
通过本课程设计,我们将致力于设计一个满足以上需求的通讯录管理系统,为用户提供便捷高效的通讯录管理体验。
以上是对通讯录管理系统课程设计报告需求分析的整体内容,系统将围绕这些需求进行设计和实现。
c通讯录课程设计报告
c通讯录课程设计报告一、教学目标本课程的目标是让学生掌握通讯录的基本概念、设计和实现方法。
通过本课程的学习,学生应能理解通讯录的结构和功能,掌握通讯录的编写和使用方法,培养学生的实际动手能力和解决问题的能力。
具体目标如下:1.知识目标:学生能够理解通讯录的基本概念,掌握通讯录的设计和实现方法。
2.技能目标:学生能够编写和使用通讯录,解决实际问题。
3.情感态度价值观目标:学生通过学习通讯录,培养对信息技术的兴趣和热情,增强信息处理的实际能力。
二、教学内容本课程的教学内容主要包括通讯录的基本概念、设计和实现方法。
具体安排如下:1.第一章:通讯录的基本概念,介绍通讯录的定义、功能和分类。
2.第二章:通讯录的设计,介绍通讯录的设计原则、方法和步骤。
3.第三章:通讯录的实现,介绍通讯录的编程语言、技术和工具。
4.第四章:通讯录的应用,介绍通讯录在日常生活和工作中的应用场景。
三、教学方法为了激发学生的学习兴趣和主动性,本课程将采用多种教学方法,如讲授法、讨论法、案例分析法和实验法等。
具体方法如下:1.讲授法:通过讲解通讯录的基本概念、设计和实现方法,使学生掌握相关知识。
2.讨论法:学生就通讯录的应用场景和实际问题进行讨论,培养学生的思考和表达能力。
3.案例分析法:分析实际案例,使学生了解通讯录在日常生活和工作中的应用,提高学生的实际操作能力。
4.实验法:安排实验课,让学生动手编写和使用通讯录,培养学生的实际动手能力。
四、教学资源为了支持教学内容和教学方法的实施,丰富学生的学习体验,我们将选择和准备以下教学资源:1.教材:选用权威、实用的通讯录教材,为学生提供系统、全面的知识体系。
2.参考书:推荐学生阅读相关参考书,拓展知识面,提高学生的自学能力。
3.多媒体资料:制作课件、视频等多媒体资料,直观展示通讯录的设计和实现过程。
4.实验设备:准备计算机、编程环境等实验设备,确保学生能够顺利进行实验操作。
五、教学评估本课程的评估方式包括平时表现、作业和考试等,旨在全面、客观、公正地反映学生的学习成果。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C程序设计报告系(部、中心)姓名学号专业班级课程名称设计题目名称起止时间成绩指导教师签名目录第1章题目与要求 (3)1.1 基本要求(及格 (3)1.2 高级要求(加分)... (3)第2章用户需求分析 (3)2.1 功能需求 (3)第3章设计方案 (3)3.1设计思路 (3)3.2功能设计 (3)第4章实施方案 (4)第5章软件调试 (5)5.1 错误介绍 (5)5.2 错误分析及解决方案 (5)第6章程序流程图及结构说明 (6)第7章程序清单 (7)第8章效果展示 (18)第1章题目与要求本次程序设计实践的题目是《通信录管理系统的设计》。
1.1基本要求(及格)(1)使用C语言,设计一个字符界面并带有菜单的通信录管理系统,每个记录中应包含:姓名、性别、年龄、联系电话、电子邮箱等项目。
(2)最大记录数:100。
(3)程序基本功能:显示记录、添加记录、删除记录。
1.2高级要求(加分)(1)以多文件方式设计该程序。
(2)对程序中的数据类型进行自定义(为方便程序的阅读和管理,定义自己的类型名)。
(3)能将该通讯录制作成文件保存于磁盘。
第2章用户需求分析2.1 功能需求通过《程序设计实践I(能源11-12)》指导书中的相关要求,以及参考程序流程图的基本程序的框架,同时用户需求的基本功能,要求系统需要有以下功能:(1)有菜单选择界面;(2)联系人信息修改简单方便,支持多种方式的修改;(3)方便的联系人信息查询,支持多种方式的查询;(4)联系人信息查看功能能供用户详细的查看;(5)退出时若用户更改了联系人相关信息或添加、删除联系人时,会提示用户联系人信息已更改是否保存;(8)有动态的开始界面。
第3章设计方案3.1 设计思路为了更好地实现上述内容,此程序采用了结构体、链表,来处理联系人的数据。
结构体能够包含联系人的各项信息,如姓名、家庭地址、电话号码等,克服了数组只能包含同种类型的数据的缺点。
链表数据的存放不需要连续的内存,相对于结构体数组减少了内存空间的浪费。
利用fopen等函数创建文件、保存文件数据等,实现退出程序后联系人的数据能够保存,方便以后的查看、添加、修改等动作。
采取多文件的方式,能够更好地对程序进行维护调试。
3.2 功能设计本程序一共有13个子文件,共11个模块,有实现9项功能。
(1)创建联系人列表模块能够建立新的文件,实现联系人的分类存放,方便用户的对联系人的管理。
(2)添加功能能够打开已有的文件,用户需选择添加的联系人所在的文件,事先联系人的分类存放,方便以后的查看修改等操作。
添加完成后,程序将自动的进行排序操作。
(3)删除联系人选择此功能后,用户需要选择要删除联系人所在文件,再行删除。
提醒用户是否保存设置。
(4)修改联系人信息选择此功能后,用户需要选择要删除联系人所在文件,再进行各项修改。
提示用户是否保存修改。
(5)查询联系人信息用户选择了打开的文件后,可以按照姓名、手机号等对联系人进行查找。
然后打印在屏幕上。
(6)查看联系人列表用户只需选择要查看的联系人所在的文件。
系统将自动将此文件中的所有所有人打印在屏幕上。
(7)删除文件(8)退出系统第4章实施方案(1)数据结构采用链表,定义如下结构体用来建立节点:typedef struct LinkPerson{char name[20],mobile[15];char home_ph[15],E_mail[40],work_units[40];char qq[11];struct LinkPerson *next;}LP;将此结构体的typedef式的名字是LP。
next是是结构体指针,用来指向下一节点,保证链表的连续性,最后一个节点的next=NULL,作为链表的结束标志。
(2)建立链表部分代码如下:里面的所有变量已经在函数中声明while(1){n++;if(n==1) head->next=p1;else p2->next=p1;p2=p1;p1=(struct LinkPerson *)malloc(LEN);printf("姓名\n");scanf("%s",p1->name);if(strcmp(p1->name,"0")==0)break;printf("手机号\n");scanf("%s",p1->mobile);printf("家庭电话\n");scanf("%s",p1->home_ph);printf("电子邮箱\n");scanf("%s",p1->E_mail);printf("班级\n");scanf("%s",p1->work_units);printf("QQ\n");scanf("%s",p1->qq);}free(p1);当用户输入的姓名为0,程序会退出链表的创建。
循环对出后,p1->next=NULL;将最后一个节点指向空(NULL),(3)文件操作本程序对文件进行的主要操作有打开、关闭、顺序读写操作。
采用fopen函数打开文件,打开方式采用了w+、r、r+,当文件不存在时采取w+方式打开能够创建一个新的文本,r用来打开已经存在的文件,当文本不存在时将对出系统。
(4)通过对以上介绍的算法的不同组合完成了整个程序的需要的函数creat()、read ()add()等。
(5)函数的衔接各个功能函数之间的衔接主要通过函数的返回值以及函数的参数。
例如完成创建功能时,第一步调用函数creat()时会产生一个结构体指针指向结构体的头,第二部在调用save ()函数时将利用creat产生的返回值完成文件的创建以及数据的保存。
其他的功能亦如此。
第5章软件的调试5.1 错误介绍(1)变量重复定义。
(2)无法统计人数,统计人数超过实际人数。
(3)进行某项功能时,出现提示,点击确定后,软件退出运行。
(4)输出联系人列表时,屏幕上出现乱码。
5.2错误分析及解决方案(1)在本程序中有全局变量n用来统计人数,当n出现问题后将不能完成统计以及排序工作,n 在编译链接时系统提示重复定义,经过查找资料后,修改的方案是,将n 的定义有在头文件中的static n 改在main.c 中 int c ;在其他文件中用extern n ;声明。
统计人数超过实际人数,经分析是read 函数里没有将n 归0,导致再次调用时又在原来的基础上操作。
(2)出现错误3的原因 在于某个函数出现死循环,经查找是由于save 函数将数据写入文件时,循环条件的不合适导致了,死循环才会出现此错误。
如果输入文件名错误时有可能导致软件自动退出,但不会出现提示。
(3)出现错误4 有两种可能。
第一种是没有文件中没有存入数据。
第二种是读数据的方式为w+导致文件重建,将原先的数据丢失。
第6章 程序流程图及结构说明6.1 程序流程图分析根据《程序设计实践I (能源11-12)》指导书中的相关要求,以及参考程序流程图的基本程序的框架,同时由我用C 设计的通讯录管理系统的功能和相关的界面,我将我的通讯录管理系统设计如图一的程序流程图。
图一第7章程序清单(1)主函数/***********ton.c******************/#include "main.h"char selete[10];int n=0;//统计联系人的个数void main(){ int sele=0;system("color 4F");printf("请耐心等待!!");load();while(1){printf("\n \2\1\t\t\t 欢迎使用通讯录管理系统\n\n");printf("\n 1.新建联系人列表2.添加联系人 3.删除 4.修改 5.查询 6.输出联系人的信息7.删除文件\n8.退出9.paixu\n请输入选择:");scanf("%d",&sele);switch(sele){case 1:{head=creat();save(head);break;}case 2:{head=add();save(head);break;}case 3:{system("cls"); head=del();save(head);break;}case 4:{system("cls");head=modify();save(head);break;}case 5:{system("cls");find();break;}case 6:{ print();break;}case 7:{delfile();break;}case 8:{exit(0);break;}case 9:{head=read();head=array(head);save(head);break;}}}}(2)子函数/***********add.c****************/#include "main.h"LP *add(void) //函数功能:增加联系人信息{LP *head,*p1,*p2;extern n;head=p2=read();while(p2->next!=NULL) //找到原先数据的终点,作为新增数据的起点 {p2=p2->next;}p1=(LP *)malloc(LEN);printf("请输入增加联系人的信息:\n");printf("姓名\n");scanf("%s",p1->name);//if(strcmp(p1->name,"0")==0)// break;printf("手机号\n");scanf("%s",p1->mobile);printf("家庭电话\n");scanf("%s",p1->home_ph);printf("电子邮箱\n");scanf("%s",p1->E_mail);printf("班级\n");scanf("%s",p1->work_units);printf("QQ\n");scanf("%s",p1->qq);// FORMAT;while(1){n++;if(n==1) head->next=p1;else p2->next=p1;p2=p1;p1=(struct LinkPerson *)malloc(LEN);printf("姓名\n");scanf("%s",p1->name);if(strcmp(p1->name,"0")==0)break;printf("手机号\n");scanf("%s",p1->mobile);printf("家庭电话\n");scanf("%s",p1->home_ph);printf("电子邮箱\n");scanf("%s",p1->E_mail);printf("班级\n");scanf("%s",p1->work_units);printf("QQ\n");scanf("%s",p1->qq);//scanf("%s%s%s%s%s%s%s%s%s",p1->name,p1->mobile,p1->office_ ph,p1->home_ph,p1->E_mail,p1->in_cities,p1->work_units,p1->address,p1->group);}p2->next=NULL;free(p1);p1=NULL;head=array(head);return (head);}/***********array.c*****************/#include "main.h"LP *array(LP *head) //函数功能:排序{ extern n;int i,j;LP *p0,*p1,*p2,*h;h=p1=p2=head;if(n<=1) return(h);for(i=0; i<n-1; i++){p1=p2=h;for(j=0; j<n-i-1; j++){p2=p1->next;if((p1==h) && strcmp(p1->name,p2->name)>0 ){h=p2;p1->next=p2->next;p2->next=p1;p0=p2;}else if( strcmp(p1->name,p2->name)>0 ){p0->next=p2;p1->next=p2->next;p2->next=p1;p0=p2;}else { p0=p1; p1=p2; p2=p2->next; }}}return(h);}/**********creat.c**************/#include"main.h"LP creat() //创建{int m=0;LP *head,*p1,*p2;printf("\n请输入通讯录联系人信息:\n\n");p2=p1=head=(struct LinkPerson *)malloc(LEN); p1->next=NULL;printf("姓名\n");scanf("%s",p1->name);printf("手机号\n");scanf("%s",p1->mobile);printf("家庭电话\n");scanf("%s",p1->home_ph);printf("电子邮箱\n");scanf("%s",p1->E_mail);printf("班级\n");scanf("%s",p1->work_units);printf("QQ\n");scanf("%s",p1->qq);while(1){m++;if(m==1) head=p1;elsep1->next=p2;p1=p2;p2=(struct LinkPerson *)malloc(LEN) ;printf("姓名\n");scanf("%s",p2->name);if(strcmp(p2->name,"0")==0)break;printf("手机号\n");scanf("%s",p2->mobile);printf("家庭电话\n");scanf("%s",p2->home_ph);printf("电子邮箱\n");scanf("%s",p2->E_mail);printf("班级\n");scanf("%s",p2->work_units);printf("QQ\n");scanf("%s",p2->qq);}p1->next=NULL;free(p2);n=m;head=array(head);return head;}/*************del.c*******************/#include "main.h"LP *del(void) //函数功能:删除信息{;char [20];LP *head,*p1,*p2;start_del:p1=p2=head=read();printf("请输入要删除的联系人姓名: ");scanf("%s",name);while( strcmp(p1->name,name)!=0 && (p1->next!=NULL) ){ p2=p1; p1=p1->next; } //找出p1指向的节点if( strcmp(p1->name,name)==0){if(p1==head) head=p1->next;elsep2->next=p1->next;printf("del: %s\n",name);free(p1);n--;printf("还有联系人%d位\n",n);}elseprintf("没有你要删除的联系人!\n");printf("\n是否继续进行删除操作? 1.是2.返回主菜单3.退出4.是否保存设置y\\n \n请输入:");scanf("%s",selete);if( strcmp(selete,"1")==0 ) goto start_del;else if( strcmp(selete,"2")==0 ) return 0;else if( strcmp(selete,"n")==0 ) return 0;else if( strcmp(selete,"3")==0 ) exit(0);else if( strcmp(selete,"y")==0 ) return head;else return(head);}/*****shanchuwenjian******/void delfile(){char file[80];printf( " 输入要删除的文件名");scanf("%s",file);//gets(file);if (remove(file)==0)printf( "已删除:%s.\n ",file);elseprintf("无法删除文件,可能是文件不存在!!");}/**************find.c**************************/#include "main.h"int find() //函数功能:查找{char select[10],home_ph[15];char name[20],mobile[15];LP *p1,*p2,*head;start_f:p1=p2=head=read();printf("按下列选项查询联系人信息\n");printf(" 1.按姓名 2.按手机号码 3.家庭电话\n 请选择:");scanf("%s",select);if( strcmp(select,"1")==0 ){printf("请输入姓名:");scanf("%s",name);while( strcmp(p1->name,name)!=0 && (p1->next!=NULL) ){ p2=p1; p1=p1->next; } //找出p1指向的节点if( strcmp(p1->name,name)==0 ){FORMAT;printf("%s %s %s %s %s %s %s %s%s\n",p1->name,p1->mobile,p1->home_ph,p1->E_mail,p1->work_units,p1->qq);}else printf("没有要查找的联系人信息!!\n");}else if( strcmp(select,"2")==0 ){printf("请输入手机号码:");scanf("%s",mobile);while( strcmp(p1->mobile,mobile)!=0 && (p1->next!=NULL) ){ p2=p1; p1=p1->next; } //找出p1指向的节点if(strcmp(p1->mobile,mobile)==0){FORMAT;printf("%s %s %s %s %s %s %s %s%s\n",p1->name,p1->mobile,p1->home_ph,p1->E_mail,p1->work_units,p1->qq);}else printf("没有要查找的联系人信息!!\n");}else if( strcmp(select,"3")==0 ){int n_n=0;printf("请输入群组:");scanf("%s",home_ph);while( strcmp(p1->home_ph,home_ph)!=0 && (p1->next!=NULL) ) { p2=p1; p1=p1->next; } //找出p1指向的节点if(strcmp(p1->home_ph,home_ph)==0){FORMAT;printf("%s %s %s %s %s %s %s %s%s\n",p1->name,p1->mobile,p1->home_ph,p1->E_mail,p1->work_units,p1->qq);}else printf("没有要查找的联系人信息!!\n");}else { printf("\n请输入正确的选择!!\n"); goto start_f; }printf("\n 1.继续查找2.返回主菜单3.退出\n请选择:");scanf("%s",select);if( strcmp(select,"1")==0 ) goto start_f;else if( strcmp(select,"2")==0 ) return 0;else if( strcmp(select,"3")==0 ) exit(0);else return 0;}/********************load.c*********************/#include"main.h"#include "windows.h"char l[]="load.....";void load(){int i=0,a=0;while(i<3){system("cls");while(l[a]!='\0'){printf("%c",l[a]);a++;Sleep(50);}a=0;i++;Sleep(50);}system("cls");}/**************modify.c***************/#include "main.h"LP *modify() //函数功能:修改联系人信息{char name[20];int select;LP*p2,*head,*p1;start_mod:p1=p2=head=read();printf("请输入要修改的联系人姓名: ");scanf("%s",name);while( strcmp(p1->name,name)!=0 && (p1->next!=NULL) ) { p2=p1; p1=p1->next; } //找出p1指向的节点if( strcmp(p1->name,name)==0 ){printf("将要修改的联系人的信息\n");FORMAT;printf("%s %s %s %s %s %s\n",p1->name,p1->mobile,p1->home_ph,p1->E_mail,p1->work_units,p1->qq);printf("请输入要修改的选项\n");printf(" 1.姓名\t 2.手机\t 3.家庭电话\t 4.电子邮箱\n 5.班级\t6.QQ\n请输入:");scanf("%d",&select);printf("请输入该项新的信息:");if(select==1) { scanf("%s", p1->name); }if(select==2) { scanf("%s",p1->mobile); }//if(select==3) { scanf("%s",p1->office_ph); }if(select==3) { scanf("%s",p1->home_ph); }if(select==4) { scanf("%s",p1->E_mail); }//if(select==6) { scanf("%s",p1->in_cities); }if(select==5) { scanf("%s",p1->work_units); }if(select==6) { scanf("%s",p1->qq); }//if(select==9) { scanf("%s",p1->group); }///save(head);}else { printf("\n没有该联系人,请重新输入!\n\n"); goto start_mod;}printf("\n是否继续进行修改操作? 1.是2.返回主菜单3.退出4.是否保存y\n \n请输入:");scanf("%s",selete);if( strcmp(selete,"1")==0 ) goto start_mod;else if( strcmp(selete,"2")==0 ) return 0;else if( strcmp(selete,"3")==0 ) exit(0);else if( strcmp(selete,"n")==0 ) return 0;else if( strcmp(selete,"y")==0 ) return head;}/***********print.c*************/#include"main.h"void print() //函数功能:输出信息{LP *p1,*head;extern n;p1=head=read();printf("共有联系人%d 名\n\n",n);FORMAT;if(head!=NULL)do{printf("\n%s %s %s %s %s%s\n",p1->name,p1->mobile,p1->home_ph,p1->E_mail,p1->work_units,p1->qq);p1=p1->next;}while(p1!=NULL);}/******************reead.c******************/#include"main.h"LP *read(void) //函数功能:读取文件{FILE *fp;LP *head=NULL, *p1=NULL, *p2=NULL;int m=0;extern n;n=0;printf("请输入要打开的文件");scanf("%s",infile);if ((fp=fopen(infile, "r"))==NULL){ printf("Can not open this file!\n"); exit(0); }while(!feof(fp)){p1=(LP *)malloc(LEN);fscanf(fp,"%s%s%s%s%s%s\n",p1->name,p1->mobile,p1->home_ph,p1->E_mail,p1->work _units,p1->qq);m+=1;n++;if(m==1) head=p1;else p2->next=p1;p2=p1;}p2->next=NULL;fclose(fp);return head;}/***********save.c**************/#include "main.h "void save(LP *head) //函数功能:保存文件{FILE *out;LP *p1=head;char outfile[30];printf("请输入要保存的文件!\n");scanf("%s",outfile);out=fopen(outfile, "w+");if (out==NULL){ printf("Can not open this file!\n"); exit(0); }fclose(out);if ((out=fopen(outfile, "r+"))==NULL){ printf("Can not open this file!\n"); exit(0); }while(p1!=NULL){fprintf(out,"%s\t%s\t%s\t%s\t%s\t%s\n",p1->name,p1->mobile,p1->home_ph,p1->E_mail,p1 ->work_units,p1->qq);p1=p1->next;}fclose(out);}头文件/***********main.h**************/#ifndef _MIAN_H_#define _MIAN_H_#include "stdio.h"#include "stdlib.h"#include "string.h"//#include "conio.h"#define LEN sizeof(struct LinkPerson)#define FORMAT printf("姓名手机家庭电话电子邮箱班级QQ") //int n=0;//统计联系人的个数static char infile[30];extern char selete[10];//姓名、手机、办公电话、家庭电话、电子邮箱、所在省市、工作单位、家庭住址,群组分类(亲属、同事、同学、朋友、其他)typedef struct LinkPerson{char name[20],mobile[15];char home_ph[15],E_mail[40],work_units[40];char qq[11];struct LinkPerson *next;}LP;LP *head;void print();LP *creat() ;void save(LP *head); //函数功能:保存文件LP *read(void); //函数功能:读取文件LP *array(LP *head); //函数功能:排序void print(); //函数功能:输出信息LP *add(void); //函数功能:增加联系人信息LP *del(void); //函数功能:删除信息LP *modify(); //函数功能:修改联系人信息int find(); //函数功能:查找void load();void delfile();#endif第8章效果展示图2 动画启动界面程序运行界面图3 功能列表功能1新建联系人列表图4 功能2添加联系人功能3 删除联系人图6图7功能4修改图8 功能5 查询功能能实现多种方式查询图9 功能6 输出联系人图10功能7 删除文件图11 204未删除图12功能9 退出系统。