通讯录管理系统课程设计报告书C语言
- 格式:doc
- 大小:105.95 KB
- 文档页数:17
通讯录管理系统课程设计c语言一、课程目标知识目标:1. 理解通讯录管理系统的基础概念,掌握C语言实现通讯录管理的核心功能;2. 学会使用结构体、数组、文件操作等C语言基础知识,实现数据的存储与读取;3. 掌握函数的定义与调用,能运用模块化编程思想设计通讯录管理系统。
技能目标:1. 能够运用所学知识独立设计并实现一个简单的通讯录管理系统;2. 培养良好的编程习惯,编写规范、可读性强的代码;3. 提高问题分析能力,通过编写程序解决实际问题。
情感态度价值观目标:1. 培养学生对C语言的兴趣,激发学习热情,树立编程自信心;2. 培养学生的团队协作意识,学会在团队中发挥个人优势,共同解决问题;3. 培养学生严谨、踏实的学术态度,养成勤奋思考、乐于探究的良好习惯。
课程性质:本课程为实践性较强的课程,旨在让学生通过实际操作,掌握C语言在通讯录管理系统中的应用。
学生特点:学生具备一定的C语言基础,对编程有一定了解,但实际操作能力有待提高。
教学要求:结合学生特点,注重理论与实践相结合,强调动手实践,培养学生实际编程能力。
通过分解课程目标为具体学习成果,使学生在完成课程学习后,能独立设计并实现一个简单的通讯录管理系统。
二、教学内容1. 通讯录管理系统概述- 了解通讯录管理系统的基本功能与需求;- 掌握系统设计的基本流程与模块划分。
2. C语言基础知识回顾- 结构体、数组的使用;- 文件操作(读写、打开、关闭文件);- 函数的定义与调用。
3. 通讯录管理系统核心功能实现- 设计并实现数据结构存储通讯录信息;- 编写功能函数,包括增加、删除、修改和查询联系人;- 实现数据的持久化存储。
4. 系统测试与优化- 学习测试方法,对系统进行功能测试;- 分析测试结果,优化代码与算法。
5. 编程规范与团队协作- 学习编程规范,编写高质量的代码;- 了解团队协作的重要性,培养团队协作能力。
教学内容安排与进度:第1周:通讯录管理系统概述与需求分析;第2周:C语言基础知识回顾;第3周:设计数据结构与功能函数;第4周:实现通讯录管理系统核心功能;第5周:系统测试与优化;第6周:总结与团队协作。
通讯录管理系统C语言课程设计报告
一、课题简介
通讯录管理系统是一种常见的应用程序,旨在帮助用户组织和管理他们的联系人信息。
本课程设计将利用C语言来实现一个基本的通讯录管理系统,旨在帮助学生掌握C语言编程的基本知识和技能。
二、设计目的
1.帮助学生熟悉C语言的基本语法和编程逻辑;
2.提高学生对数据结构的理解和运用能力;
3.培养学生的编程能力和软件开发思维;
4.提高学生的团队合作和项目管理能力。
三、设计内容
本课程设计将围绕以下几个方面展开:
1.用户界面设计:设计一个简洁直观的用户界面,包括菜单选项、输
入输出界面等;
2.数据结构设计:设计通讯录数据结构,包括联系人姓名、电话号码
等信息的存储方式;
3.功能实现:实现通讯录管理系统的基本功能,包括添加联系人、删
除联系人、查找联系人等操作;
4.文件操作:实现通讯录数据的读写操作,将联系人信息保存到文件
中,以便下次运行时读取;
5.错误处理:处理用户输入错误等异常情况,保证程序的稳定性和可
靠性。
四、预期效果
通过本课程设计,学生将能够掌握以下技能:
1.掌握C语言基本语法和编程逻辑;
2.熟悉数据结构的设计和运用;
3.提高编程能力和软件开发思维;
4.培养团队合作和项目管理能力。
五、总结
通过设计一个通讯录管理系统的C语言课程项目,学生将在实践中加深对C语言的理解和应用,提高编程技能和解决问题的能力。
希望本课程设计能够为学生的编程学习提供一定的帮助和指导。
以上为《通讯录管理系统C语言课程设计报告》的简要介绋,希望能够为课程设计的顺利进行提供一定的参考和指引。
通讯录管理系统c语言课程设计报告(一)通讯录管理系统C语言课程设计报告1. 简介通讯录管理系统是一款基于C语言开发的软件,旨在帮助用户方便地存储、查找、编辑和删除联系人信息。
本报告将对该系统的功能和设计进行详细介绍。
2. 系统功能通讯录管理系统具备以下主要功能:•添加联系人:用户可以输入联系人的姓名、电话号码、电子邮件等信息,并将其添加到通讯录中。
•查找联系人:用户可以根据姓名或电话号码等方式,快速查找通讯录中的联系人信息。
•编辑联系人:用户可以修改通讯录中已有联系人的信息,如电话号码、电子邮件等。
•删除联系人:用户可以从通讯录中删除特定联系人。
•显示通讯录:用户可以查看通讯录中的所有联系人信息。
•退出系统:用户可以选择退出通讯录管理系统。
3. 系统设计数据结构通讯录管理系统主要使用以下数据结构存储联系人信息:•结构体:定义了一个联系人的数据结构,包括姓名、电话号码、电子邮件等字段。
•数组:用于存储多个联系人信息,构成通讯录。
数组的每个元素对应一个联系人的结构体。
主要函数添加联系人函数void addContact(struct Contact contacts[], int *num Contacts)•功能:向通讯录中添加一个联系人。
•输入参数:通讯录数组contacts、通讯录中联系人数量numContacts的指针。
•输出:无。
查找联系人函数void searchContact(struct Contact contacts[], int n umContacts)•功能:根据用户提供的关键词在通讯录中查找联系人。
•输入参数:通讯录数组contacts、通讯录中联系人数量numContacts。
•输出:无。
编辑联系人函数void editContact(struct Contact contacts[], int num Contacts)•功能:根据用户选择的联系人在通讯录中编辑联系人信息。
c语言通讯录管理系统课程设计一、课程目标知识目标:1. 理解C语言中数据结构的基本概念,掌握通讯录管理系统中链表的应用;2. 掌握C语言中文件操作的基本方法,实现对通讯录信息的存储和读取;3. 学会使用C语言编程解决实际问题,具备分析和设计简单通讯录管理系统的能力。
技能目标:1. 能够运用所学知识,设计并实现一个具备增加、删除、修改和查询功能的通讯录管理系统;2. 能够运用链表数据结构,实现通讯录信息的动态管理;3. 能够编写清晰的C语言代码,养成良好的编程习惯。
情感态度价值观目标:1. 培养学生的团队合作精神,提高沟通与协作能力;2. 激发学生对计算机编程的兴趣,培养自主学习和解决问题的能力;3. 引导学生认识到编程在解决实际问题中的应用价值,增强其学习责任感。
课程性质:本课程为实践性较强的课程,结合C语言编程知识,让学生通过实际操作,掌握通讯录管理系统的设计与实现。
学生特点:学生在本年级已具备一定的C语言基础,对数据结构有一定了解,但实际编程能力有待提高。
教学要求:教师需结合学生特点,采用任务驱动法,引导学生主动参与课堂,通过实践操作,提高学生的编程能力和解决实际问题的能力。
同时,注重培养学生的团队合作精神和自主学习能力。
在教学过程中,关注学生的情感态度价值观的培养,使其在学习过程中形成积极向上的心态。
二、教学内容1. 数据结构基础:复习C语言中的结构体和指针,引入链表的概念及其在通讯录管理系统中的应用。
- 教材章节:第三章 数据结构,第5节 链表。
- 内容安排:讲解链表的创建、插入、删除等基本操作。
2. 文件操作:介绍C语言中文件读写的基本方法,使学生能够将通讯录信息保存在文件中。
- 教材章节:第五章 文件,第2节 文件的读写。
- 内容安排:讲解fopen、fprintf、fscanf、fclose等文件操作函数的使用。
3. 通讯录管理系统功能设计:- 教材章节:实践项目——通讯录管理系统。
机电工程学院中南大学本科生C语言课程设计题目通讯录管理系统成员姓名蔡贵学号班级:机械1003班成员姓名张晴学号班级:机械1003班成员姓名陈祎靖学号班级:机械1003班成员姓名宁磊磊学号班级:机械1003班指导教师樊广军学院机电工程学院完成时间2011年06 月31 日目录第一章绪论 (2)1.1 设计题目及要求 (2)1.2 系统功能需求分析 (2)第二章开发环境 (3)2.1 C语言的背景 (3)2.2 C语言主菜单介绍 (3)第三章总体设计与实现 (11)3.1 概要设计 (11)3.2 详细设计 (11)第四章测试数据及其结果分析 (15)4.1 测试 (15)4.2 问题思考 (18)第五章总结 (19)附录 (20)一源代码 (20)二参考文献 (27)第一章绪论1.1 设计题目及要求:◆建立通讯录信息,信息至少包含编号、姓名、年龄、电话、通讯地址、电子邮箱等;◆能够提供添加、删除和修改通讯录信息的功能;◆能够提供安不同方式查询的功能;如按姓名或年龄、电话等查询;◆将通讯录保存在文件中;◆能够按表格方式输出通讯录信息。
1.2系统功能需求分析:主要包含一下多种功能:添加:添加通讯录记录显示:显示通讯录记录删除:删除通讯录记录查询:查询通讯录记录修改:修改通讯录记录保存:将信息保存到文件第二章开发环境2.1 C语言的背景C语言属于高级程序语言的一种,它的前身是“ALGOL”。
其创始人是布朗•W•卡尼汉和丹尼斯•M•利奇。
C语言问世时是带有很大的局限性,因为它只能用于UNIX系统上。
然而随着科学技术的进步,计算机工业的发展,C语言逐渐脱离UNIX。
1987年美国标准化协会制定了C语言的国际标准,简称“ANSI C”,从此以后它便成为一种广泛使用的程序语言。
C语言的优点很多,主要的有如下四点:1.兼备高级语言与低级语言的优点,属于一种中间语言。
2.它是一种结构化程序设计语言,非常适合结构化程序设计。
C语言通讯录管理系统课程设计报告一、引言通讯录管理系统是一种常见的实用性软件,用于记录和管理个人或组织的联系人信息。
本文档旨在介绍一种基于C语言开发的通讯录管理系统的设计与实现。
通过本系统,用户可以方便地添加、删除、搜索和编辑联系人信息,实现了通讯录的基本功能。
二、系统需求分析本通讯录管理系统的主要功能包括: 1. 添加联系人:用户可以添加联系人的姓名、电话号码、邮箱等信息。
2. 删除联系人:用户可以根据联系人的姓名或电话号码删除对应的联系人信息。
3. 查找联系人:用户可以根据联系人的姓名或电话号码查找对应的联系人信息。
4. 修改联系人:用户可以修改已存在联系人的信息。
5. 显示所有联系人:用户可以查看通讯录中所有的联系人信息。
三、系统设计1. 数据结构设计为了实现通讯录管理系统,我们需要设计适当的数据结构来存储联系人信息。
在本设计中,使用结构体数组来表示每个联系人的信息,其中每个结构体包含姓名、电话号码、邮箱等成员变量。
struct Contact {char name[50];char phoneNumber[20];char email[50];};2. 功能模块设计本系统主要包含以下几个功能模块:a. 添加联系人模块用户可以选择添加新的联系人,输入姓名、电话号码和邮箱等信息后,系统将在通讯录中添加新的联系人。
b. 删除联系人模块用户可以根据输入的姓名或电话号码查找对应的联系人信息,并选择删除对应的联系人。
c. 查找联系人模块用户可以根据输入的姓名或电话号码查找对应的联系人信息,并在界面上显示查询结果。
d. 修改联系人模块用户可以根据输入的姓名或电话号码查找对应的联系人信息,并选择修改对应的联系人。
e. 显示所有联系人模块用户可以选择显示通讯录中所有的联系人信息,在界面上进行展示。
3. 系统框架设计本系统的整体框架如下:1. 主菜单显示2. 根据用户的选择,进入对应的功能模块四、系统流程图下图展示了通讯录管理系统的整体流程:主菜单 -> 用户选择功能模块 -> 执行对应模块功能五、代码实现以下为通讯录管理系统的部分核心代码实现,完整代码可参考附录部分。
c语言课程设计通讯录管理系统课程设计报告一、教学目标本课程旨在通过学习C语言通讯录管理系统的设计与实现,让学生掌握C语言编程的基本技能,培养其软件开发的基本思路与方法。
具体目标如下:1.知识目标:–理解C语言的基本数据类型、运算符、控制结构。
–学习C语言函数的定义与调用。
–掌握结构体、文件操作等高级C语言特性。
2.技能目标:–能够运用C语言实现简单的数据结构,如链表、数组。
–培养学生使用C语言进行程序设计的能力,能够独立完成程序编写、调试与优化。
–学会使用C语言实现文件操作,包括文件的读取与写入。
3.情感态度价值观目标:–培养学生对计算机科学的兴趣,增强其自主学习的动力。
–通过项目实践,培养学生的团队协作能力和解决问题的能力。
–引导学生理解技术对生活的影响,培养其对技术发展的责任感。
二、教学内容教学内容选取C语言编程的核心知识点,结合通讯录管理系统的实例进行讲解。
具体内容包括:1.C语言基础:数据类型、变量、运算符、控制结构。
2.函数:函数定义、调用、参数传递、返回值。
3.数据结构:数组、链表、栈和队列。
4.文件操作:文件读写、文件指针。
5.通讯录管理系统实现:结构体定义、系统功能实现、项目管理。
三、教学方法结合C语言特点和通讯录管理系统实例,采用以下教学方法:1.讲授法:系统讲解C语言基础知识和通讯录管理系统的设计理念。
2.案例分析法:通过分析典型代码案例,让学生理解程序设计逻辑。
3.实验法:学生在实验室进行编程实践,巩固理论知识。
4.讨论法:分组讨论问题,培养学生的团队协作和沟通能力。
四、教学资源1.教材:《C程序设计语言》(K&R)、《C Primer Plus》。
2.参考书:《C语言编程思想》、《C语言实践》。
3.多媒体资料:教学PPT、在线编程教程、视频讲解。
4.实验设备:计算机、网络环境、编程环境(如Code::Blocks、VisualStudio)。
五、教学评估本课程的教学评估将综合考虑学生的平时表现、作业、考试等方面,以全面、客观、公正地评价学生的学习成果。
通讯录管理系统c语言课程设计报告通讯录管理系统C语言课程设计报告1. 项目概述•本项目是一个通讯录管理系统,旨在提供用户管理通讯录的功能。
•使用C语言开发,具有良好的跨平台兼容性。
•主要功能包括添加联系人、查找联系人、编辑联系人、删除联系人等。
2. 项目背景•通讯录是现代社会必不可少的工具,用于管理个人和组织的联系人信息。
•传统的纸质通讯录已不能满足日益增长的信息管理需求。
•本项目旨在开发一款方便、高效的电子通讯录管理系统,满足人们对联系人信息管理的需求。
3. 技术实现•采用C语言作为开发语言,具有良好的跨平台兼容性和高效的执行速度。
•主要采用文件存储方式,将联系人信息保存在本地文件中。
•使用结构体来表示联系人信息,方便管理和操作。
4. 功能模块添加联系人•用户可以通过输入姓名、电话号码、电子邮件等信息,添加新的联系人。
•程序将自动生成一个唯一的联系人ID,并将联系人信息保存到文件中。
查找联系人•用户可以通过姓名、电话号码等条件进行查找联系人。
•程序将根据用户输入的条件,在通讯录中查找符合条件的联系人,并将结果返回给用户。
编辑联系人•用户可以选择要编辑的联系人,并进行修改联系人信息的操作。
•程序将根据用户输入的联系人ID,找到对应的联系人并允许用户修改其信息。
删除联系人•用户可以选择要删除的联系人,并进行删除操作。
•程序将根据用户输入的联系人ID,找到对应的联系人并从通讯录中删除。
5. 实施计划需求分析•确定系统所需的功能模块和用户需求,并进行详细的功能需求分析。
概要设计•设计系统的整体结构,包括模块划分、数据结构设计等。
详细设计•对每个模块进行具体的设计,包括函数接口定义、算法流程图等。
编码实现•根据详细设计的结果,使用C语言进行编码实现。
调试测试•对编码实现的程序进行测试和调试,修复可能出现的问题。
文档撰写•撰写项目的相关文档,包括使用说明、技术文档等。
6. 总结与展望•本项目成功开发了一个通讯录管理系统,具有简洁、高效的特点。
学生通讯录管理系统任务说明:主要利用c语言的文件操作能力设计开发一个小型的通讯录管理系统,至少具有如下功能:①记录通讯录内的人员的学号、姓名、学院、电话号码。
②显示所有人员的信息。
③通过输入姓名查找人员信息。
④通过输入姓名查找到要删除的人员信息,然后可以进行删除。
⑤通过输入姓名查找到要修改的人员信息,然后可以进行修改。
⑥添加人员信息。
系统功能描述:本程序的功能是为用户提供简单的通讯录进行管理,通过该程序存储联系人信息,提供关键字(只能是英文关键字进行查找)查找功能,可以对数据进行修改、删除、添加等操作。
各按钮的功能如下:查找记录:以姓名为关键字,查找并显示该记录。
若查找不到,则显示“好象没有”;添加记录:将当前记录按姓名序加入通讯录,然后显示第一条记录;修改记录:修改当前记录,显示当前记录。
姓名为关键字,不允许修改;删除记录:删除当前记录,然后显示第一条记录;第一条记录:将当前记录指针移动至首节点,若已为首节点,则不移动;前一条记录:将当前记录指针向前移动一个节点,若已为首节点,则不移动;后一条记录:将当前记录指针向后移动一个节点,若已为尾节点,则不移动;最后一条记录:将当前记录指针移动至尾节点,若已为尾节点,则不移动;加载:从文件中掉入已保存的通讯录数据;保存:保存通讯录数据;退出:退出系统;设计思路:根据要求,电话录数据以文本文件存放在文件中,故需要提供文件的输入、输出等操作;还需要保存记录以进行修改,删除,查找等操作;另外还应提供键盘式选择菜单实现功能选择。
软件中使用的结构体和结构体数组,如:structcallmember{charname[20];charaddress[20];charcode[20];charcallnumber[ 20];};对用户的信息进行保存,他们都以二进制的形式读写。
其中:charname[20];charaddress[20];charcode[20];charcallnumber[20]通过对这些资源的合理利用使系统初步实现了通讯录管理系统的基本功能。
c通讯录课程设计报告一、课程目标本通讯录课程设计旨在通过实践活动,使学生在信息技术学科的基础上,掌握以下知识目标、技能目标和情感态度价值观目标:1. 知识目标:- 了解通讯录的基本概念、功能及在实际生活中的应用。
- 掌握通讯录的录入、修改、删除、查询等基本操作。
- 了解如何对通讯录进行分类、排序和筛选,以便快速查找和整理信息。
2. 技能目标:- 学会使用电子表格软件(如Microsoft Excel)创建、编辑和管理通讯录。
- 能够运用所学知识,设计并优化个人或团队的通讯录,提高信息处理效率。
- 培养学生的团队协作能力,通过小组讨论和分享,提高问题解决和沟通表达能力。
3. 情感态度价值观目标:- 培养学生珍惜个人信息,尊重他人隐私的观念。
- 增强学生的信息素养,认识到信息技术在生活中的重要性,激发对信息技术的学习兴趣。
- 通过对通讯录的学习和实际操作,培养学生的责任心和细致严谨的工作态度。
课程性质:本课程为实践性较强的信息技术课程,结合学生年级特点和教学要求,注重培养学生的动手操作能力和团队协作能力。
学生特点:考虑到学生所在年级,他们在信息技术方面已具备一定的基础,对新鲜事物充满好奇心,善于合作学习。
教学要求:结合课程目标和学科特点,教师应注重实践操作,引导学生主动探索、积极思考,将所学知识应用于实际生活中,达到学以致用的目的。
在教学过程中,教师需关注学生的学习进度,及时调整教学策略,确保课程目标的实现。
通过本课程的学习,使学生能够熟练掌握通讯录的制作和管理,提高个人信息素养。
二、教学内容根据课程目标,本章节教学内容围绕通讯录的制作和管理展开,确保内容的科学性和系统性。
以下是详细的教学大纲及教材关联内容:1. 通讯录概述- 介绍通讯录的定义、功能及应用场景。
- 教材章节:第一章 信息技术与日常生活。
2. 通讯录的基本操作- 学习通讯录的录入、修改、删除、查询等操作。
- 教材章节:第二章 电子表格软件的基本操作。
二〇〇八~ 二〇〇九学年第二学期信息科学与工程学院课程设计报告书课程名称: C语言课程设计班级:学号:姓名:指导老师:月九年二〇〇九通讯录管理系统一.需求分析设计题目及要求:◆建立通讯录信息,信息至少包含编号、姓名、年龄、电话、通讯地址、电子邮箱等;◆能够提供添加、删除和修改通讯录信息的功能;◆能够提供安不同方式查询的功能;如按姓名或年龄、电话等查询;◆将通讯录保存在文件中;◆能够按表格方式输出通讯录信息。
系统功能需求分析:主要包含一下多种功能:添加:添加通讯录记录显示:显示通讯录记录删除:删除通讯录记录查询:查询通讯录记录修改:修改通讯录记录保存:将信息保存到文件二.概要设计系统功能模块图:添加:可以添加通讯录记录,依次输入编号、姓名、年龄、电话号码、通讯地址、电子邮箱后,会提示是否继续添加。
.显示:可以以表格形式输出所有通讯录里的记录删除:输入欲删除的那个人的名字后,会自动删除他(她)的记录内容查询:可以选择用姓名、电话、地址三种方式查询修改:输入欲修改的那个人的名字后,再依次输入编号、姓名、年龄、电话号码、通讯地址、电子邮箱即可完成修改保存:,输入文件名(带后缀名)后,即可将通讯录信息保存到文件三.详细设计(1).通讯录:typedef struct{char score; /*编号*/char name[10]; /*姓名*/char num[15]; /*号码*/char email[20]; /*邮箱*/char age[8]; /*年龄*/char adds[20]; /*住址*/}Person;void main() /*主函数*/{int n=0;for(;;){switch(menu_select()){case 1:/*添加记录*/ 添加记录到通讯录printf(\ \t\n);n=Input(pe,n);break;case 2:通讯录记录表printf(\\t\t\t \n); */ 显示记录/*Display(pe,n);break;case 3:\n); 从通讯录中删除记录printf(\\tn=Delete_a_record(pe,n); /*删除记录*/printf(\);system(pause);break;case 4:在通讯录中查找记录\n); printf(\\t /*查找记录*/ Query_a_record(pe,n);printf(\);system(pause);break;case 5:\n); printf(\\t 修改通讯录中的记录/*修改数据*/ Change(pe,n); printf(\);system(pause);break;case 6:printf(\\t保存功能\n);/* 保存数据*/ WritetoText(pe,n);printf(\);system(pause);break;case 0:*/ !\n); printf(\\t\t 谢谢使用,再见结束程序/*printf(\\t\t);system(pause);exit(0);}}}(2).工作流程图:①添加:添加通讯录记录.②显示:显示通讯录记录③删除:删除通讯录记录④查询:查询通讯录记录先选择查询方式,以姓名查询方式为例⑤修改:修改通讯录记录四.源程序代码#include<stdio.h>#include<stdlib.h>#include<string.h>typedef struct{char score; /*编号*/ char name[10]; /*姓名*/ char num[15]; /*号码*/ char email[20]; /*邮箱*/char age[8]; /*年龄*/char adds[20]; /*住址*/Person pe[80];int menu_select(){char c;do{system(cls);printf(\\t *****通讯录***** \n); printf(\\t┌───────┐\n); printf(\\t│1. 添加记录│\n); printf(\\t│2. 显示记录│\n); printf(\\t│3. 删除记录│\n); printf(\\t│4. 查询记录│\n); printf(\\t│5. 修改记录│\n); printf(\\t│6. 保存记录│\n); printf(\\t│0. 退出程序│\n); printf(\\t└───────┘\n); printf(\\t请您选择(0-6):);c=getchar();}while(c<'0'||c>'6');return(c-'0');}int Input(Person per[],int n){int i=0;char sign,x[10];while(sign!='n'&&sign!='N'){printf(\编号:);scanf(\%d,&per[n+i].score); printf(\姓名:);scanf(\%s,per[n+i].name);printf(\年龄:);scanf(\%s,per[n+i].age);printf(\电话号码:);scanf(\%s,per[n+i].num);printf(\通讯住址:);scanf(\%s,per[n+i].adds);printf(\电子邮箱:);scanf(\%s,per[n+i].email);gets(x);\t是否继续添加?(Y/N));scanf(\%c,&sign);i++;}return(n+i);}void Display(Person per[],int n){int i;printf(----------------------------------------------------------------------\n);/*格式*/牰湩晴尨编号姓名年龄电话号码通讯地址电子邮箱\n);printf(----------------------------------------------------------------------\n);for(i=1;i<n+1;i++){printf(%-5d%-8s%-6s%-13s%-15s%-15s\n,per[i-1].score,per[i-1].name,per[i-1].age,per[i-1].num,per[i-1].adds,per[i-1].email);if(i>1&&i_x0010_==0){printf(\-----------------------------------\n);printf(\);system(pause);printf(\-----------------------------------\n);}}printf(----------------------------------------------------------------------\n);system(pause);}int Delete_a_record(Person per[],int n){char s[20];int i=0,j;printf(\请输入想删除记录中的名字:);scanf(%s,s);while(strcmp(per[i].name,s)!=0&&i<n) i++;if(i==n){printf(\通讯录中没有此人!\n);return(n);}for(j=i;j<n-1;j++){strcpy(per[j].num,per[j+1].num);strcpy(per[j].name,per[j+1].name);strcpy(per[j].age,per[j+1].age);strcpy(per[j].adds,per[j+1].adds);strcpy(per[j].email,per[j+1].email);per[j].score=per[j+1].score;}printf(\\t\t已经成功删除!\n);return(n-1);}void Query_a_record(Person per[],int n){int m;printf(\\n请选择查询方式:\n);printf(\┌──────┐\n);printf(\│1------姓名│\n);printf(\│2------电话│\n);printf(\│3------地址│\n);printf(\│4------返回│\n);printf(\└──────┘\n);牰湩晴尨请选择:);scanf(%d,&m);while(m!=1&&m!=2&&m!=3&&m!=4){牰湩晴尨输入错误,请重新选择:); scanf(%d,&m);}if(m==1){char s[20];int i=0;printf(\请输入想查询的姓名:);scanf(\%s,s);while(strcmp(per[i].name,s)!=0&&i<n) i++; if(i==n){printf(\通讯录中没有此人!\n);return;}: %d\n,per[i].score); 此人编号printf(\printf(\此人年龄: %s\n,per[i].age);printf(\电话号码: %s\n,per[i].num);printf(\通讯地址: %s\n,per[i].adds);printf(\电子邮箱: %s\n,per[i].email);} ;if(m==2){char s[20];int i=0;printf(\请输入想查询的电话:);scanf(\%s,s);while(strcmp(per[i].num,s)!=0&&i<n) i++;if(i==n){printf(\通讯录中没有此人!\n);return;}printf(\此人编号: %d\n,per[i].score);printf(\此人姓名: %s\n,per[i].name);printf(\此人年龄: %s\n,per[i].age);printf(\通讯地址: %s\n,per[i].adds);printf(\电子邮箱: %s\n,per[i].email);} ;if(m==3){char s[20];int i=0;printf(\请输入想查询的地址:);scanf(\%s,s);while(strcmp(per[i].adds,s)!=0&&i<n) i++;if(i==n){printf(\通讯录中没有此人!\n);return;}printf(\此人编号: %d\n,per[i].score);printf(\此人姓名: %s\n,per[i].name);printf(\此人年龄: %s\n,per[i].age);printf(\电话号码: %s\n,per[i].num);printf(\电子邮箱: %s\n,per[i].email);} ;}void Change(Person per[],int n){char s[20];int i=0;printf(\请输入想修改的记录中的名字:);scanf(%s,s);while(strcmp(per[i].name,s)!=0&&i<n) i++;if(i==n){printf(\通讯录中没有此人!\n);return;}printf(\编号:);scanf(\%d,&per[i].score);printf(\姓名:);scanf(\%s,per[i].name);printf(\年龄:);scanf(\%s,per[i].age);printf(\电话号码:);scanf(\%s,per[i].num);printf(\通讯住址:);scanf(\%s,per[i].adds);printf(\电子邮箱:);scanf(\%s,per[i].email);printf(\修改成功!);}void WritetoText(Person per[],int n){int i=0;定义文件指针*/ /* FILE *fp;/*定义文件名*/ char filename[20];输入文件名/**/ \n); printf(\保存到文件printf(\请输入所保存的文件名:);scanf(\%s,filename);if((fp=fopen(filename,w))==NULL){无法打开文件printf(\\n);system(pause);return;}fprintf(fp,******************************************通讯录******************************************\n);灦楲瑮?灦尬编号姓名年龄电话号码通讯地址电子邮箱\n);fprintf(fp,------------------------------------------------------------------------------------------\n);while(i<n){fprintf(fp,%-3d\t%-6s\t%-3s\t%-13s\t%-20s\t%-20s\n,per[i].score,per[i].name,per[i].age,per[i].num,per [i].adds,per[i].email);i++;}fprintf(fp,------------------------------------------------------------------------------------------\n);fprintf(fp,***************************************共有%d条记录****************************************\n,n);fclose(fp); /*关闭文件*/牰湩晴尨保存成功!\n);}void main() /*主函数*/{int n=0;for(;;){switch(menu_select()){case 1:printf(\\t添加记录到通讯录\n); /*添加记录*/n=Input(pe,n);break;case 2:\t\t\t 通讯录记录表\n); /*显示记录*/ Display(pe,n);break;case 3:printf(\\t从通讯录中删除记录\n);n=Delete_a_record(pe,n); /*删除记录*/printf(\);system(pause);break;case 4:printf(\\t在通讯录中查找记录\n);Query_a_record(pe,n); /*查找记录*/printf(\);system(pause);break;case 5:printf(\\t修改通讯录中的记录\n);/*修改数据*/ Change(pe,n);printf(\);system(pause);break;case 6:\n); printf(\\t保存功能/*保存数据WritetoText(pe,n); */printf(\);system(pause);break;case 0:*/ 结束程序/* 谢谢使用,再见printf(\ \t\t!\n);printf(\\t\t);system(pause);exit(0);}}五.测试数据及其结果分析测试:1.显示的主菜单界面)2).添加界面:3).显示界面:4).删除界面:删除后,通讯录里的显示记录:5).查询界面:以姓名查询方式为例:6).修改界面:修改后,通讯录里的显示记录:7).保存界面:tongxunlu.txt文件截图:问题思考:1.当我在进行删除、查询、修改、保存等功能时,以查询为例,输入名字按回车后,虽然会显示该人的所有记录,但是显示后,它马上自动消失了,还没来得及等我看内容。