c语言课程设计通讯录管理系统
通讯录管理系统课程设计c语言

通讯录管理系统课程设计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语言来实现一个基本的通讯录管理系统,旨在帮助学生掌握C语言编程的基本知识和技能。
二、设计目的
1.帮助学生熟悉C语言的基本语法和编程逻辑;
2.提高学生对数据结构的理解和运用能力;
3.培养学生的编程能力和软件开发思维;
4.提高学生的团队合作和项目管理能力。
三、设计内容
本课程设计将围绕以下几个方面展开:
1.用户界面设计:设计一个简洁直观的用户界面,包括菜单选项、输
入输出界面等;
2.数据结构设计:设计通讯录数据结构,包括联系人姓名、电话号码
等信息的存储方式;
3.功能实现:实现通讯录管理系统的基本功能,包括添加联系人、删
除联系人、查找联系人等操作;
4.文件操作:实现通讯录数据的读写操作,将联系人信息保存到文件
中,以便下次运行时读取;
5.错误处理:处理用户输入错误等异常情况,保证程序的稳定性和可
靠性。
四、预期效果
通过本课程设计,学生将能够掌握以下技能:
1.掌握C语言基本语法和编程逻辑;
2.熟悉数据结构的设计和运用;
3.提高编程能力和软件开发思维;
4.培养团队合作和项目管理能力。
五、总结
通过设计一个通讯录管理系统的C语言课程项目,学生将在实践中加深对C语言的理解和应用,提高编程技能和解决问题的能力。
希望本课程设计能够为学生的编程学习提供一定的帮助和指导。
以上为《通讯录管理系统C语言课程设计报告》的简要介绋,希望能够为课程设计的顺利进行提供一定的参考和指引。
通讯录管理系统c语言课程设计报告顺序储存

通讯录管理系统C语言课程设计报告一、引言通讯录管理系统是一种能够对联系人信息进行存储、增删改查等管理操作的系统。
在本课程设计中,我设计并实现了一个基于C语言实现的通讯录管理系统,采用顺序储存的数据结构。
本报告将介绍通讯录管理系统的设计思路、功能特点以及实现过程。
二、需求分析通讯录管理系统主要包括以下功能:1.添加联系人信息2.删除联系人信息3.修改联系人信息4.查询联系人信息5.显示所有联系人信息在设计系统时,需要考虑如何高效地实现上述功能,并保证数据的准确性和一致性。
三、设计思路为了实现通讯录管理系统,我采用了顺序储存的方式存储联系人信息。
具体而言,我使用结构体数组来存储联系人的姓名、电话号码等信息,通过数组下标来实现对联系人信息的操作。
四、功能实现1. 添加联系人信息用户通过输入联系人的姓名、电话号码等信息,将新的联系人信息添加到通讯录中。
系统会提示用户输入相关信息,并将信息加入到结构体数组中。
2. 删除联系人信息用户可以根据联系人的姓名或电话号码来删除指定的联系人信息。
系统会遍历结构体数组,找到相应的联系人信息并删除。
3. 修改联系人信息用户可以选择需要修改的联系人信息,然后输入新的信息进行修改。
系统会在结构体数组中找到对应的联系人信息,并进行更新操作。
4. 查询联系人信息用户可以通过姓名或电话号码查询指定联系人的信息。
系统会输出符合条件的联系人信息。
5. 显示所有联系人信息系统会将通讯录中所有联系人的信息依次显示出来,方便用户查看。
五、总结通过本次课程设计,我深入理解了C语言的数据结构和实现原理,同时锻炼了对问题的分析与解决能力。
通讯录管理系统是一个简单且实用的应用,通过本次设计,我对通讯录系统的设计与实现有了更深入的认识,也提高了编程的能力。
六、参考文献暂无以上是对通讯录管理系统C语言课程设计报告的简要介绍,希望能够对您有所帮助。
c语言通讯录管理系统课程设计

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语言课程设计通讯录管理系统

c语言课程设计 通讯录管理系统一、课程目标知识目标:1. 理解C语言中结构体的概念和使用方法,掌握利用结构体创建复杂数据结构的能力;2. 学会使用数组存储结构体数据,实现对通讯录信息的有效管理;3. 掌握基本的文件操作,能够实现通讯录数据的存储和读取。
技能目标:1. 能够运用结构体和数组设计并实现一个简单的通讯录管理系统;2. 掌握在C语言中进行简单的输入输出操作,实现用户界面的友好交互;3. 学会使用调试工具进行程序调试,提高解决问题的能力。
情感态度价值观目标:1. 培养学生对编程的兴趣,激发其主动探索和创新的欲望;2. 培养学生的团队协作意识,学会在项目开发中与他人合作;3. 引导学生关注信息技术在生活中的应用,认识到编程对解决实际问题的重要性。
课程性质:本课程为实践性较强的课程,要求学生在掌握C语言基础知识的基础上,运用所学知识设计并实现一个通讯录管理系统。
学生特点:学生具备一定的C语言基础,对编程有一定的兴趣,但可能缺乏实际项目经验。
教学要求:通过本课程的学习,使学生能够将所学知识应用于实际项目中,提高其编程能力和解决实际问题的能力。
将课程目标分解为具体的学习成果,以便在教学过程中进行有效指导和评估。
二、教学内容1. 结构体和结构体数组的概念及应用- 课本章节:第五章 结构体与共用体- 内容:结构体的定义、结构体成员的访问、结构体数组的创建与使用。
2. 文件操作基础- 课本章节:第六章 文件- 内容:文件的打开与关闭、文件的读写操作、文件的定位。
3. 通讯录管理系统设计- 内容:系统需求分析、功能模块划分、系统设计、实现与测试。
4. 用户界面设计- 内容:菜单设计、命令行用户输入输出、简单的人机交互流程。
5. 项目实践与团队协作- 内容:项目分组、任务分配、代码共享与协作、项目评审。
教学进度安排:第一周:复习结构体和结构体数组相关知识,讲解通讯录管理系统需求。
第二周:学习文件操作基础,设计通讯录数据存储与读取功能。
c语言课程设计通讯录管理系统

c语言课程设计通讯录管理系统一、教学目标本课程旨在通过学习C语言,使学生掌握通讯录管理系统的基本概念、原理和方法,培养学生运用C语言进行程序设计的能力。
具体目标如下:1.理解C语言的基本语法和数据结构。
2.掌握函数的定义和调用方法。
3.了解通讯录管理系统的基本需求和设计思路。
4.能够使用C语言编写简单的程序。
5.能够独立完成通讯录管理系统的功能模块设计。
6.具备调试和优化程序的能力。
情感态度价值观目标:1.培养学生的团队合作意识和沟通能力。
2.培养学生的创新思维和解决问题的能力。
3.培养学生对编程事业的热爱和敬业精神。
二、教学内容本课程的教学内容主要包括C语言基础知识、通讯录管理系统的设计和实现。
具体安排如下:1.C语言基础知识:–数据类型和变量–运算符和表达式–数组和字符串2.通讯录管理系统的设计和实现:–系统需求分析–功能模块划分–程序编写和调试三、教学方法本课程采用讲授法、案例分析法、实验法等多种教学方法,以激发学生的学习兴趣和主动性。
1.讲授法:通过讲解C语言的基本语法和概念,使学生掌握基础知识。
2.案例分析法:分析实际案例,让学生了解通讯录管理系统的设计过程和思路。
3.实验法:让学生动手编写程序,培养实际操作能力和解决问题的能力。
四、教学资源本课程的教学资源包括教材、多媒体资料和实验设备。
1.教材:选用权威、实用的C语言教材,为学生提供系统的学习资料。
2.多媒体资料:制作课件、教学视频等,丰富教学手段,提高教学质量。
3.实验设备:提供计算机、编程环境等,让学生进行实际操作,锻炼编程能力。
五、教学评估本课程的评估方式包括平时表现、作业、考试等,以全面、客观、公正地评价学生的学习成果。
1.平时表现:通过课堂参与、讨论、提问等环节,评估学生的学习态度和积极性。
2.作业:布置适量作业,评估学生的理解和应用能力。
3.考试:进行期中和期末考试,评估学生的知识掌握和编程能力。
六、教学安排本课程的教学安排如下:1.教学进度:按照教材和教学大纲,合理安排每个章节的教学内容。
c语言通讯录管理系统课程设计报告
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 通讯录管理系统课程设计一、课程目标本课程为“通讯录管理系统课程设计”,针对初中年级信息技术学科,旨在通过实践操作,使学生能够:知识目标:1. 理解通讯录管理系统的基本功能与需求;2. 掌握使用编程语言(如Python)实现简单数据结构,如列表、字典;3. 学会使用文件操作保存和读取通讯录信息。
技能目标:1. 能够运用所学知识设计并实现一个基本的通讯录管理系统;2. 掌握基本的程序调试技巧,提高解决问题的能力;3. 学会对程序进行优化,提高代码的可读性和可维护性。
情感态度价值观目标:1. 培养学生的团队协作精神,提高沟通与表达能力;2. 激发学生对编程的兴趣,鼓励创新思维和动手实践能力;3. 增强学生对信息技术的认识,培养其信息安全意识。
课程性质:本课程为实践性课程,注重培养学生的动手能力和实际操作技能。
学生特点:初中年级学生具有一定的信息技术基础,对新事物充满好奇,但编程经验有限。
教学要求:结合学生特点,以实际操作为主,注重引导和激发学生的学习兴趣,培养其解决问题的能力。
通过课程学习,使学生能够将所学知识运用到实际项目中,提高其信息技术素养。
教学过程中,将课程目标分解为具体的学习成果,以便进行教学设计和评估。
二、教学内容本章节教学内容依据课程目标,紧密结合教材,确保科学性和系统性。
具体安排如下:1. 理论知识学习:- 简介通讯录管理系统的作用和功能;- 数据结构基本概念:列表、字典的使用;- 文件操作:读写文件,保存和加载通讯录信息。
2. 实践操作:- 设计通讯录管理系统需求分析;- 编程实现通讯录管理系统功能模块:添加、删除、查询、修改联系人信息;- 调试与优化程序,提高系统稳定性。
3. 教学大纲:- 第一周:通讯录管理系统概述,学习数据结构基本概念;- 第二周:文件操作,编写通讯录管理系统的基础代码;- 第三周:完善通讯录管理系统,增加功能模块;- 第四周:调试与优化程序,进行项目展示与评价。
c语言课程设计通讯录管理系统课程设计报告
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.通讯录管理系统的基本概念:介绍通讯录管理系统的作用、特点和应用场景。
2.系统设计方法:讲解系统设计的基本流程,包括需求分析、系统设计、编码实现和测试等环节。
3.编程语言实践:通过具体案例,使学生掌握使用编程语言实现通讯录管理系统的方法。
4.团队协作与创新:培养学生在团队协作中解决问题的能力,激发学生的创新精神和团队合作意识。
三、教学方法为了提高教学效果,本课程将采用多种教学方法相结合的方式进行教学:1.讲授法:讲解通讯录管理系统的基本概念和设计方法。
2.案例分析法:分析实际案例,使学生更好地理解通讯录管理系统的设计和实现过程。
3.实验法:让学生动手实践,实际操作通讯录管理系统的设计和编程。
4.小组讨论法:鼓励学生进行团队协作,共同解决问题,培养学生的团队合作能力。
四、教学资源为了保证教学效果,我们将提供丰富多样的教学资源:1.教材:选用权威、实用的教材,为学生提供系统、全面的学习资料。
2.参考书:提供相关的参考书籍,丰富学生的知识体系。
3.多媒体资料:制作精美的PPT,生动形象地展示课程内容。
4.实验设备:提供充足的实验设备,确保每个学生都能动手实践。
5.在线资源:推荐相关的在线课程和论坛,方便学生随时随地学习、交流。
五、教学评估为了全面、公正地评估学生的学习成果,本课程将采用多种评估方式相结合的方法:1.平时表现:通过课堂参与、提问、讨论等方式,评估学生的学习态度和积极性。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
通讯录管理系统1.0源代码作者: ggice通讯录管理系统源代码/*软件名称: 通讯录管理系统软件地址:作者: ggice版本: 1.0版权许可: GNU General Public License version 3.0版权许可地址: /licenses/gpl-3.0.html */#include <stdio.h>#include <stdlib.h> //包含最常用的系统函数#include <string.h> //关于字符数组的函数定义的头文件#include <conio.h> //控制台输入输出//定义结构体struct tongxunlu{char id[15];char name[20];char phone[20];char adress[40];char mail[30];} txl[100]; //默认100个数据int n=0;//记录数据联系人数量FILE *fp;//程序用到的所有函数void menu();void addnew();void readfile();void writefile();void modify();void modifyid();void modifyname();void modifyphone();void search();void searchid();void searchname();void searchphone();void deletecd();void deleteall();void deleteone();void deleteid();void deletename();void deletrphone();void showall();void listmenu();void listid();void listname();//程序主函数模块六void main(){system("color 5A");//cmd颜色readfile();while(1){menu();}}//读取文件函数部分开始模块七void readfile(){if((fp=fopen("c:\\txl.txt","rb"))==NULL){printf("\n\t\t通讯录文件不存在");if ((fp=fopen("txl.txt","wb"))==NULL){printf("\n\t\t建立失败");exit(0);}else{printf("\n\t-----------------欢迎使用通讯录管理系统------------------");printf("\n\t 通讯录文件已建立");printf("\n\t 按任意键进入主菜单");printf("\n\t---------------------------------------------------------");getch();return;}exit(0);}fseek(fp,0,2); /*文件位置指针移动到文件末尾*/if (ftell(fp)>0) /*文件不为空*/{rewind(fp); /*文件位置指针移动到文件开始位置*/for (n=0;!feof(fp) && fread(&txl[n],sizeof(struct tongxunlu),1,fp);n++);printf("\n\t-----------------欢迎使用通讯录管理系统------------------");printf("\n\t 文件导入成功");printf("\n\t 按任意键返回主菜单");printf("\n\t---------------------------------------------------------");getch();return;}printf("\n\t-----------------欢迎使用通讯录管理系统------------------");printf("\n\t 文件导入成功");printf("\n\t 通讯录文件中无任何纪录");printf("\n\t 按任意键返回主菜单");printf("\n\t---------------------------------------------------------");getch();return;}//读取文件函数结束//文件主菜单函数开始模块六void menu(){char choic;system("cls");printf("\n\t\t----------^.^ 欢迎您使用通讯录管理系统^.^---------------");printf("\n\t\t| 通讯录管理系统1.0 |");printf("\n\t\t| 1-添加联系人2-查询联系人|");printf("\n\t\t| 3-删除联系人4-修改联系人5 -联系人排序|");printf("\n\t\t| 6-保存退出7-不保存退出|");printf("\n\t\t-----------------------------------------------------");printf("\n\t\t请选择:");choic=getch();switch (choic){case '1':addnew();break;case '2':search();break;case '3':deletecd();break;case '4':modify();break;case '5':listmenu();break;case '6':writefile();break;case '7':exit(0);default:menu();}}//文件主菜单函数结束//添加新联系人函数开始模块一void addnew(){printf("\n\t\t------------------请输入学生信息--------------------\n");printf("\n\t\t输入学号:");scanf("%s",txl[n].id);printf("\n\t\t输入姓名:");scanf("%s",txl[n].name);printf("\n\t\t输入电话号码:");scanf("%s",txl[n].phone);printf("\n\t\t输入地址:");scanf("%s",txl[n].adress);printf("\n\t\t输入mail:");scanf("%s",txl[n].mail);n++;printf("\n\t\t是否继续添加?(Y/N):");if (getch()=='y')addnew();return;}//添加新联系人结束//写入文件函数开始模块七void writefile(){int i;if ((fp=fopen("c:\\txl.txt","wb"))==NULL){printf("\n\t\t文件打开失败");}for (i=0;i<n;i++){if (fwrite(&txl[i],sizeof(struct tongxunlu),1,fp)!=1){printf("\n\t\t写入文件错误!\n");}}fclose(fp);printf("\n\t------------------------------------------------------");printf("\n\t\t通讯录文件已保存");printf("\n\t\t按任意键退出程序\n\t\t");exit(0);printf("\n\t------------------------------------------------------");}//写入文件函数结束///查询联系人函数开始模块四----------------------------------------------------void search(){char choic;system("cls");printf("\n\t\t---------- ------查询联系人-------------------");printf("\n\t\t| 1-显示所有2-按学号查询|");printf("\n\t\t| 3-按姓名查询4-按电话查询|");printf("\n\t\t| 5-返回主菜单|");printf("\n\t\t--------------------------------------------------");printf("\n\t\t请选择:");choic=getch();switch (choic){case '1':showall();break;case '2':searchid();break;case '3':searchname();break;case '4':searchphone();break;case '5':menu();break;}}void showall()//显示所有联系人函数{int i;system("cls");//清楚屏幕if(n!=0){printf("\n\t\t----------欢迎您查询通讯录所有联系人信息-------------");for (i=0;i<n;i++){printf("\n\t\t学号:%s",txl[i].id);printf("\n\t\t姓名:%s",txl[i].name);printf("\n\t\t电话:%s",txl[i].phone);printf("\n\t\t地址:%s",txl[i].adress);printf("\n\t\tmail:%s",txl[i].mail);printf("\n\t\t--------------------------------------------------");if (i+1<n){printf("\n\t\t-----------------------");system("pause");//返回错误信息}}printf("\n\t\t---------------------------------------------");}elseprintf("\n\t\t通讯录中无任何纪录");printf("\n\t\t按任意键返回主菜单:");getch();return;}//按手机号码查询函数void searchphone(){int mark=0;int i;char phone[10];printf("\n\t\t------------------- 按电话查找-------------------------");printf("\n\t\t请输入手机号码:");scanf("%s",phone);for(i=0;i<n;i++){if (strcmp(txl[i].phone,phone)==0)//对比查找函数{printf("\n\t\t------------ 以下是您查找的学生信息------------");printf("\n\t\t学号:%s",txl[i].id);printf("\n\t\t姓名:%s",txl[i].name);printf("\n\t\t电话:%s",txl[i].phone);printf("\n\t\t地址:%s",txl[i].adress);printf("\n\t\tmail:%s",txl[i].mail);printf("\n\t\t------------------------------------------------");printf("\n\t\t按任意键返回主菜单:");mark++;getch();return;}}if (mark==0){printf("\n\t\t没有找到学生的信息");printf("\n\t\t按任意键返回主菜单");getch();return;}}void searchname()//按姓名查询{int mark=0;int i;char name[20];printf("\n\t\t----------------按姓名查找--------------------");printf("\n\t\t请输入姓名:");scanf("%s",name);for(i=0;i<n;i++){if (strcmp(txl[i].name,name)==0){printf("\n\t\t------------ 以下是您查找的学生信息---------------");printf("\n\t\t学号:%s",txl[i].id);printf("\n\t\t姓名:%s",txl[i].name);printf("\n\t\t电话:%s",txl[i].phone);printf("\n\t\t地址:%s",txl[i].adress);printf("\n\t\tmail:%s",txl[i].mail);printf("\n\t\t---------------------------------------------------");mark++;getch();return;}}if (mark==0){printf("\n\t\t没有找到学生的信息");printf("\n\t\t按任意键返回主菜单");getch();return;}}void searchid()//按学号查询{int mark=0;int i;int a=0;char id[10];printf("\n\t\t----------------- 按学号查找-------------------\n");printf("\n\t\t请输入学号:");scanf("%s",id);for(i=0;i<n;i++){if (strcmp(txl[i].id,id)==0){printf("\n\t\t---------------以下是您查找的学生信息-------------");printf("\n\t\t学号:%s",txl[i].id);printf("\n\t\t姓名:%s",txl[i].name);printf("\n\t\t电话:%s",txl[i].phone);printf("\n\t\t地址:%s",txl[i].adress);printf("\n\t\tmail:%s",txl[i].mail);printf("\n\t\t----------------------------------------------------");printf("\n\t\t按任意键返回主菜单:");mark++;getch();return;}}if (mark==0){printf("\n\t\t没有改学生的信息");printf("\n\t\t按任意键返回主菜单");getch();return;}}////查询联系人函数结束-----------------------------------------------------////删除联系人函数部分开始-------------------------------------------------void deletecd(){char choic;if(n==0){printf("\n\t\t对不起,文件中无任何纪录");printf("\n\t\t按任意键返回主菜单");getch();return;}system("cls");printf("\n\t\t----------------- 删除菜单----------------------");printf("\n\t\t| 1-删除所有2-删除单个|");printf("\n\t\t| 3-返回主菜单|");printf("\n\t\t--------------------------------------------------");printf("\n\t\t请选择:");choic=getch();switch (choic){case '1':deleteall();break;case '2':deleteone();break;case '3':menu();break;default:menu();break;}}void deleteall()//删除所有联系人{printf("\n\t\t确认删除?(y/n)");if (getch()=='y'){fclose(fp);if ((fp=fopen("txl.txt","wb"))==NULL){printf("\n\t\t不能打开文件,删除失败");readfile();}n=0;printf("\n\t\t纪录已删除,按任意键返回主菜单");getch();return;}elsereturn;}void deletename()//按姓名删除联系人{int a=0;int j;int deletemark=0;int i;char name[20];printf("\n\t\t请输入要删除学生姓名:");scanf("%s",name);for (i=a;i<n;i++){if (strcmp(txl[i].name,name) == 0) //对比字符串查找到要删除的联系人{printf("\n\t\t以下是您要删除的学生纪录:");printf("\n\t\t--------------------------------");printf("\n\t\t学号:%s",txl[i].id);printf("\n\t\t姓名:%s",txl[i].name);printf("\n\t\t电话:%s",txl[i].phone);printf("\n\t\t地址:%s",txl[i].adress);printf("\n\t\tmail:%s",txl[i].mail);printf("\n\t\t--------------------------------");printf("\n\t\t是否删除?(y/n)");if (getch()=='y') // 实现删除功能{for (j=i;j<n-1;j++)txl[j]=txl[j+1];n--;deletemark++;printf("\n\t\t删除成功");printf("\n\t\t是否继续删除?(y/n)");if (getch()=='y')deletename();return;}elsereturn;}continue;}if (deletemark==0){printf("\n\t\t没有该同学的纪录");printf("\n\t\t是否继续删除?(y/n)");if (getch()=='y')deletename();return;}}void deleteid()//按学号删除联系人{int i,j;int deletemark=0;char id[20];printf("\n\t\t请输入要删除学生学号:");scanf("%s",id);if(n==0){printf("\n\t\t对不起,文件中无任何纪录");printf("\n\t\t按任意键返回主菜单");getch();return;}for (i=0;i<n;i++){if (strcmp(txl[i].id,id)==0){printf("\n\t\t以下是您要删除的学生纪录:");printf("\n\t\t学号:%s",txl[i].id);printf("\n\t\t姓名:%s",txl[i].name);printf("\n\t\t电话:%s",txl[i].phone);printf("\n\t\t地址:%s",txl[i].adress);printf("\n\t\tmail:%s",txl[i].mail);printf("\n\t\t是否删除?(y/n)");if (getch()=='y'){for (j=i;j<n-1;j++) //递推替换实现删除txl[j]=txl[j+1];n--;deletemark++; //记录删除次数printf("\n\t\t删除成功");printf("\n\t\t是否继续删除?(y/n)");if (getch()=='y')deleteid();return;}elsereturn;}continue;}if (deletemark==0){printf("\n\t\t没有该同学的纪录");printf("\n\t\t是否继续删除?(y/n)");if (getch()=='y')deleteid();return;}}void deletephone()//按电话号码删除联系人{int i,j;int deletemark=0;char phone[20];printf("\n\t\t请输入要删除学生电话号码:");scanf("%s",phone);if(n==0){printf("\n\t\t对不起,文件中无任何纪录");printf("\n\t\t按任意键返回主菜单");getch();return;}for (i=0;i<n;i++){if (strcmp(txl[i].phone,phone)==0){printf("\n\t\t以下是您要删除的学生纪录:");printf("\n\t\t学号:%s",txl[i].id);printf("\n\t\t姓名:%s",txl[i].name);printf("\n\t\t电话:%s",txl[i].phone);printf("\n\t\t地址:%s",txl[i].adress);printf("\n\t\tmail:%s",txl[i].mail);printf("\n\t\t是否删除?(y/n)");if (getch()=='y'){for (j=i;j<n-1;j++) //递推替换实现删除txl[j]=txl[j+1];n--;deletemark++; //记录删除次数printf("\n\t\t删除成功");printf("\n\t\t是否继续删除?(y/n)");if (getch()=='y')deletephone();return;}elsereturn;}continue;}if (deletemark==0){printf("\n\t\t没有该同学的纪录");printf("\n\t\t是否继续删除?(y/n)");if (getch()=='y')deleteid();return;}}void deleteone()//删除单个联系人{char choic;printf("\n\t----------------------------------------------------------");printf("\n\t\t1-按学号删除2-按姓名删除3-按电话删除");printf("\n\t\t请选择:");printf("\n\t----------------------------------------------------------");choic=getch();switch (choic){case '1':deleteid();break;case '2':deletename();break;case '3':deletephone();break;}}///删除函数部分结束-------------------------------------------------------- ///排序分函数开始----------------------------------------------------void listname()//按姓名排序{int i,j;struct tongxunlu tmp;for (i=1;i<n;i++){if(strcmp(txl[i].name,txl[i-1].name)<0){tmp=txl[i];j=i-1;do{txl[j+1]=txl[j];j--;}while ((strcmp(,txl[j].name)<0&&j>=0));txl[j+1]=tmp;}}printf("\n\t\t排序成功,是否显示?(y/n)");if (getch()=='y')showall();return;}void listid()//按学号排序{int i,j;struct tongxunlu tmp;for (i=1;i<n;i++){if(strcmp(txl[i].id,txl[i-1].id)<0){tmp=txl[i];j=i-1;do{txl[j+1]=txl[j];j--;}while ((strcmp(tmp.id,txl[j].id)<0)&&j>=0);txl[j+1]=tmp;}}printf("\n\t\t排序成功,是否显示?(y/n)");if (getch()=='y')showall();return;}void listmenu()//排序的主菜单{char choic;if(n==0){printf("\n\t\t对不起,文件中无任何纪录");printf("\n\t\t按任意键返回主菜单");getch();return;}system("cls");printf("\n\t\t----------------- 排序菜单---------------------");printf("\n\t\t| 1-按学号排序2-按姓名排序|");printf("\n\t\t| 3-返回主菜单|");printf("\n\t\t------------------------------------------------");printf("\n\t\t请选择:");choic=getch();switch(choic){case '1':listid();break;case '2':listname();break;case '3':menu();break;default:menu();break;}}//输出函数结束--------------------------------------------------------///修改联系人函数开始--------------------------------------------------void modify(){char choic;if(n==0){printf("\n\t\t对不起,文件中无任何纪录");printf("\n\t\t按任意键返回主菜单");getch();return;}system("cls");printf("\n\t\t-----------------修改联系人菜单-----------------------");printf("\n\t\t| 1-按学号修改2-按姓名修改|");printf("\n\t\t| 3-按电话修改4-按返回主菜单|");printf("\n\t\t------------------------------------------------------");choic=getch();switch(choic){case '1':modifyid();break;case '2':modifyname();break;case '3':modifyphone();break;default:menu();break;}}void modifyid(){char choic;int j;int i;char id[15];printf("\n\t\t请输入修改联系人的学号:");scanf("%s",id);if(n==0){printf("\n\t\t文件中无任何联系人");printf("\n\t\t按任意键返回主菜单");getch();return;}for(i=0;i<n;i++){if(strcmp(txl[i].id,id)==0){printf("\n\t\t以下是您要修改的联系人信息");printf("\n\t\t学号: %s",txl[i].id);printf("\n\t\t姓名: %s",txl[i].name);printf("\n\t\t电话: %s",txl[i].phone);printf("\n\t\t地址: %s",txl[i].adress);printf("\n\t\tmail:%s",txl[i].mail);printf("\n\t\t是否修改(y/n)");if(getch()=='y'){printf("\n\t------------请选择修改信息---------------");printf("\n\t 1-修改学号2-修改姓名");printf("\n\t 3-修改电话4-修改地址");printf("\n\t 5-修改mail ");printf("\n\t-----------------------------------------");printf("\n\t请选择:");scanf("%s",choic);switch(choic){case '1':printf("\n\t请输入新学号:");scanf("%s",txl[i].id);break;case '2':printf("\n\t请输入新姓名:");scanf("%s",txl[i].name);break;case'3':printf("\n\t请输入新电话:%s");scanf("%s",txl[i].phone);break;case'4':printf("\n\t请输入新地址: ");scanf("%s",txl[i].adress);break;case'5':printf("\n\t请输入新邮箱:");scanf("%s",txl[i].mail);break;}}}}printf("\n\t是否继续修改?(Y/N):");if(getch()=='y')modifyid();return;}void modifyname(){char choic;int j;int i;char name[20];printf("\n\t\t请输入修改要联系人的姓名:");scanf("%s",name);if(n==0){printf("\n\t\t文件中无任何联系人");printf("\n\t\t按任意键返回主菜单");getch();return;}for(i=0;i<n;i++){if(strcmp(txl[i].name,name)==0){printf("\n\t\t以下是您要修改的联系人信息");printf("\n\t\t学号: %s",txl[i].id);printf("\n\t\t姓名: %s",txl[i].name);printf("\n\t\t电话: %s",txl[i].phone);printf("\n\t\t地址: %s",txl[i].adress);printf("\n\t\tmail:%s",txl[i].mail);printf("\n\t\t是否修改(y/n)");if(getch()=='y'){printf("\n\t------------请选择修改信息---------------");printf("\n\t 1-修改学号2-修改姓名");printf("\n\t 3-修改电话4-修改地址");printf("\n\t 5-修改mail ");printf("\n\t-----------------------------------------");printf("\n\t请选择:");scanf("%s",choic);switch(choic){case '1':printf("\n\t请输入新学号:");scanf("%s",txl[i].id);break;case '2':printf("\n\t请输入新姓名:");scanf("%s",txl[i].name);break;case'3':printf("\n\t请输入新电话:%s");scanf("%s",txl[i].phone);break;case'4':printf("\n\t请输入新地址: ");scanf("%s",txl[i].adress);break;case'5':printf("\n\t请输入新邮箱:");scanf("%s",txl[i].mail);break;}}}}printf("\n\t是否继续修改?(Y/N):");if(getch()=='y')modifyname();return;}void modifyphone(){char choic;int j;int i;char phone[15];printf("\n\t\t请输入修改联系人的学号:");scanf("%s",phone);if(n==0){printf("\n\t\t文件中无任何联系人");printf("\n\t\t按任意键返回主菜单");getch();return;}for(i=0;i<n;i++){if(strcmp(txl[i].phone,phone)==0){printf("\n\t\t以下是您要修改的联系人信息");printf("\n\t\t学号: %s",txl[i].id);printf("\n\t\t姓名: %s",txl[i].name);printf("\n\t\t电话: %s",txl[i].phone);printf("\n\t\t地址: %s",txl[i].adress);printf("\n\t\tmail:%s",txl[i].mail);printf("\n\t\t是否修改(y/n)");if(getch()=='y'){printf("\n\t------------请选择修改信息---------------");printf("\n\t 1-修改学号2-修改姓名");printf("\n\t 3-修改电话4-修改地址");printf("\n\t 5-修改mail ");printf("\n\t-----------------------------------------");printf("\n\t请选择:");scanf("%s",choic);switch(choic){case '1':printf("\n\t请输入新学号:");scanf("%s",txl[i].id);break;case '2':printf("\n\t请输入新姓名:");scanf("%s",txl[i].name);break;case'3':printf("\n\t请输入新电话:%s");scanf("%s",txl[i].phone);break;case'4':printf("\n\t请输入新地址: ");scanf("%s",txl[i].adress);break;case'5':printf("\n\t请输入新邮箱:");scanf("%s",txl[i].mail);break;}}}}printf("\n\t是否继续修改?(Y/N):");if(getch()=='y')modifyphone();return;}///修改联系人函数结束-------------------------------------------------------。