个人通讯录管理(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 通讯录课程设计一、教学目标本课程旨在让学生掌握通讯录的基本知识和技能,能够使用常见的通讯录软件进行个人信息管理。
通过本课程的学习,学生将能够:1.理解通讯录的基本概念和结构;2.熟练使用通讯录软件进行联系人信息的添加、删除、修改和查询;3.掌握通讯录软件的高级功能,如分组、设置提醒等;4.培养学生的信息管理和能力,提高日常生活和工作中的通讯效率。
二、教学内容本课程的教学内容主要包括以下几个部分:1.通讯录的基本概念和结构:介绍通讯录的定义、分类和常见的通讯录软件;2.通讯录软件的基本操作:讲解如何使用通讯录软件进行联系人信息的添加、删除、修改和查询;3.通讯录软件的高级功能:介绍如何使用通讯录软件进行分组、设置提醒等高级功能;4.实际操作练习:安排一定的实践时间,让学生实际操作,巩固所学知识。
三、教学方法为了提高教学效果,本课程将采用多种教学方法相结合的方式进行教学:1.讲授法:讲解通讯录的基本概念、结构和软件操作方法;2.案例分析法:通过分析实际案例,让学生学会如何使用通讯录软件解决实际问题;3.讨论法:学生进行小组讨论,分享使用通讯录软件的心得和技巧;4.实验法:安排实际操作练习,让学生动手实践,提高操作能力。
四、教学资源为了支持教学内容和教学方法的实施,我们将准备以下教学资源:1.教材:选用权威、实用的通讯录教材,为学生提供系统的理论知识;2.参考书:提供相关的参考书籍,丰富学生的知识视野;3.多媒体资料:制作课件、视频等多媒体资料,增强课堂教学的趣味性和生动性;4.实验设备:准备电脑、通讯录软件等实验设备,确保学生能够进行实际操作练习。
五、教学评估本课程的评估方式将包括以下几个方面:1.平时表现:评估学生在课堂上的参与程度、提问回答等情况,占比20%;2.作业:评估学生完成作业的质量和速度,占比30%;3.考试:安排一次期末考试,评估学生对课程知识的掌握程度,占比50%。
六、教学安排本课程的教学安排如下:1.教学进度:按照教材的章节顺序进行教学,确保每个章节都有足够的教学时间;2.教学时间:每周安排两节课,每节课45分钟,共16周;3.教学地点:教室。
c语言课程设计通讯录

c语言课程设计 通讯录一、课程目标知识目标:1. 理解并掌握C语言结构体和数组的使用,能够运用其创建和操作通讯录。
2. 学习并掌握C语言中的文件操作,实现通讯录数据的保存和读取功能。
3. 掌握C语言中的函数定义和应用,实现通讯录各项功能模块的划分和调用。
技能目标:1. 能够编写C程序,实现通讯录的增加、删除、修改和查询功能。
2. 能够运用所学知识,设计出界面友好、操作简便的通讯录管理系统。
3. 能够对程序进行调试和优化,提高代码的可读性和执行效率。
情感态度价值观目标:1. 培养学生主动探索、积极实践的学习态度,增强其解决实际问题的能力。
2. 培养学生的团队协作精神,学会与他人共同分析问题、解决问题。
3. 通过本课程的学习,使学生认识到编程在生活中的应用价值,激发其对计算机科学的兴趣。
分析课程性质、学生特点和教学要求:本课程为C语言课程设计,旨在巩固和拓展学生所学知识,提高其编程能力。
学生已具备一定的C语言基础,能够独立完成简单的程序编写。
课程要求学生通过动手实践,掌握结构体、数组、文件操作等知识,并能够将其应用于实际项目中。
课程目标明确,分解为具体学习成果,便于教学设计和评估。
在教学过程中,注重培养学生的实际操作能力和团队协作能力,提高其综合素质。
二、教学内容根据课程目标,教学内容主要包括以下几部分:1. C语言基础知识回顾:结构体、数组、函数、文件操作等。
- 结构体:定义、声明、初始化、结构体数组。
- 数组:一维数组、二维数组、字符串与字符数组。
- 函数:函数定义、声明、调用、参数传递。
- 文件操作:文件打开、关闭、读写、定位。
2. 通讯录管理系统功能模块设计:- 系统架构设计:功能模块划分、模块间关系。
- 功能实现:增加、删除、修改、查询、排序等。
3. 编程实践与调试:- 编写代码实现通讯录管理系统各项功能。
- 调试程序,优化代码,提高执行效率。
4. 团队协作与项目展示:- 分组进行项目开发,培养学生团队协作能力。
c语言课程设计通讯录管理系统

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

摘要通讯录[address book] 记录通讯地址的书本,通讯录涵盖了多项内容:可以储存一个人的姓名、手机号码、家庭住址、QQ等,以方便联系。
通过学习我设计一个个人通讯录管理,这个系统可以方便人们的查找个人信息,他具有快速查找的功能,主要是通过按姓名查找、按手机号码查找、按地址查询等。
这个通讯录可以修改已存所有人的任何信息,也可以删除里面你不想储存人的信息,当你在运行删除的时候,系统会再次提醒你是否删除,一旦删除将会永远删除。
关键字:通讯录查找删除重庆科技学院课程设计任务书设计题目:个人通讯录管理系统杨治明 2012年1月1日目录摘要 (1)课程设计责任书 (2)软件需求分析说明书 (4)第一章系统分析与设计 (5)第二章软件的实现 (6)2.1 软件界面设计 (6)2.2 软件的数据(结构)设计 (6)2.3 软件的算法设计 (6)第三章软件测试 (7)第四章软件使用说明书 (8)致谢 (9)参考文献 (10)软件需求分析说明书个人通讯录管理是个可以储存、修改、查看、查找、删除的功能。
在这个程序中可以储存一个人的姓名、家庭住址、手机号码、QQ号等信息,可以同时查看所有已存的信息,如果已存的数量过多,你可以选择快速查找,快速查找方式有:按姓名查找、按家庭住址查找、按手机号码查找、按QQ号查找。
如果要删除信息,只要输入你要删除信息的编号就可以删除,在删除过程中,系统会再次提醒你是否确认删除,以免后悔。
如果确定删除将会永远删除。
这个程序也可以修改,输入想修改的编号,就可以修改了。
如果你输入的编号不存在,系统将会提示你是否查看所有已存的数据。
第五章系统分析与设计2.1 软件界面设计图2.1 通讯录管理的主界面根据主界面的提示选择你想要执行的任务项钱的字母图2.2 添加联系人在添加联系人中尼可以输入姓名、地址、电话号码、QQ号,输入好之后你可以继续完成其他选项。
图2.3 浏览信息按b 屏幕上将显示已储存的个人信息,按a 将继续为你服务。
c课程设计个人通讯录

c 课程设计个人通讯录一、教学目标本课程的目标是让学生掌握个人通讯录的基本设计和使用方法,通过学习,学生应能够理解个人通讯录的结构和功能,并能够运用所学的知识设计和使用个人通讯录。
具体的学习目标包括:知识目标:学生应了解个人通讯录的基本概念和结构,理解个人通讯录的功能和使用方法。
技能目标:学生应能够运用所学的知识设计和使用个人通讯录,能够进行基本的通讯录管理操作。
情感态度价值观目标:通过学习和使用个人通讯录,学生应能够提高对个人信息管理的重视,培养良好的个人信息管理习惯。
二、教学内容本课程的教学内容主要包括个人通讯录的基本概念和结构,个人通讯录的功能和使用方法,以及个人通讯录的管理和维护。
具体的教学内容安排如下:1.个人通讯录的基本概念和结构:介绍个人通讯录的定义,解释个人通讯录的基本组成部分,如姓名、电话号码、电子邮件地址等。
2.个人通讯录的功能和使用方法:介绍个人通讯录的功能,如添加、删除、查找联系人信息等,演示个人通讯录的使用方法。
3.个人通讯录的管理和维护:介绍个人通讯录的管理和维护方法,如定期更新联系人信息,整理联系人列表等。
三、教学方法为了激发学生的学习兴趣和主动性,本课程将采用多种教学方法,包括讲授法、讨论法、案例分析法等。
1.讲授法:通过讲解个人通讯录的基本概念和结构,个人通讯录的功能和使用方法,以及个人通讯录的管理和维护,使学生掌握个人通讯录的基本知识和技能。
2.讨论法:通过学生进行小组讨论,鼓励学生分享自己的经验和看法,促进学生之间的交流和合作,提高学生的理解和应用能力。
3.案例分析法:通过分析实际案例,使学生更好地理解和掌握个人通讯录的应用,培养学生的实际操作能力。
四、教学资源为了支持教学内容和教学方法的实施,丰富学生的学习体验,将选择和准备适当的教学资源,包括教材、参考书、多媒体资料、实验设备等。
1.教材:选择合适的教材,如《个人通讯录设计与使用》等,为学生提供全面系统的学习资料。
c语言课程设计通讯录

c语言课程设计通讯录一、课程目标知识目标:1. 理解并掌握C语言中的结构体概念,能够运用结构体创建复杂数据类型;2. 学会使用数组存储结构体数据,实现结构体数组的操作;3. 掌握文件操作的基本方法,实现对通讯录数据的读写和存储。
技能目标:1. 能够编写C程序,设计并实现一个基本的通讯录管理系统;2. 能够运用选择、循环等基本控制结构实现对通讯录的有效管理;3. 能够对程序进行调试和优化,提高代码的执行效率。
情感态度价值观目标:1. 培养学生的编程兴趣,激发他们主动探索问题的积极性;2. 培养学生团队协作意识,提高沟通与协作能力;3. 引导学生认识到编程在生活中的实际应用,增强学以致用的意识。
课程性质分析:本课程为C语言课程设计,旨在通过设计一个通讯录管理系统,让学生将所学C语言知识应用于实际项目中,提高编程实践能力。
学生特点分析:学生已具备基本的C语言知识,熟悉语法和基本控制结构,但可能缺乏实际项目经验,对复杂数据类型和文件操作尚需加强。
教学要求:1. 注重理论与实践相结合,引导学生通过实际操作掌握知识;2. 鼓励学生相互讨论、协作,培养解决问题和团队协作能力;3. 强化代码规范,提高代码质量和可读性。
二、教学内容1. 结构体和结构体数组:- 介绍结构体的定义和使用;- 通过通讯录管理系统的需求,设计联系人结构体;- 引导学生运用结构体数组存储和管理联系人信息。
2. 文件操作:- 讲解文件的基本概念和文件操作函数;- 结合通讯录管理系统,实现数据的读写和存储。
3. 通讯录功能实现:- 添加联系人:实现输入、存储联系人信息的功能;- 删除联系人:实现根据条件删除指定联系人的功能;- 查找联系人:实现根据关键字查找联系人的功能;- 显示所有联系人:实现显示通讯录中所有联系人的功能。
4. 程序调试与优化:- 分析程序可能出现的错误和异常;- 引导学生掌握调试方法,优化代码执行效率。
教材章节关联:本教学内容与教材中关于结构体、数组、文件操作等章节密切相关。
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. 根据用户的选择,进入对应的功能模块四、系统流程图下图展示了通讯录管理系统的整体流程:主菜单 -> 用户选择功能模块 -> 执行对应模块功能五、代码实现以下为通讯录管理系统的部分核心代码实现,完整代码可参考附录部分。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
安徽工业大学《C语言课程设计》实习综合报告课题名称:个人通讯录管理系统实习成员:王刚学号: *********专业班级: 网络工程103班指导教师: 郑啸老师目录一.问题描述 (2)二. 各功能流程图与设计思路 (3)2.1显示模块 (3)2.2查找模块……………………………………………4..2.3添加模块 (6)2.4删除模块 (8)2.5修改模块 (9)三、文件的读取与保存 (11)四、程序源代码 (12)五、调试与运行结果 (18)六、计算机学院课程设计评定意见 (24)一.问题描述设计通讯录包含以下功能:(1)通讯录的每一条信息包括姓名、单位、固定电话、移动手机、分类(如同事、朋友、同学、家人等)、EMAIL、QQ 等。
(2)输入功能:可以一次完成若干条信息的输入。
(3)显示功能:完成全部通讯录信息的显示。
(4)查找功能:可以按姓名等多种方式查找通讯信息。
(5)增加、删除、修改功能:完成通讯录信息的多种更新。
二.各功能流程图与设计思路Menu菜单:运用switch()进行操作:case'1': 显示功能,list()函数说明:利用for循环,逐个输出已保存的内容代码如下://*****************显示通讯录中的内容*************void list(){ printf("编号姓名电话 \t手机 \t工作单位\tEMAIL \t\tQQ\n");for(i=0;i<m;i++){ if(rec[i].name[0]){ printf("%d、%-8s%-10s%-12s%-18s%-18s%-12s\n",rec[i].num,rec[i].name, rec[i].tel,rec[i].celtel,rec[i].dw,rec[i].email,rec[i].qq);}}printf("\t\t\t----------------END--------------\n");}case'2': 查找功能,search()函数说明:先用switch让操作者选择是按姓名查找还是按编号查找,然后再按操作者的输入,逐个判断是否有操作者要查的联系人信息,若有则输出此人信息,若没有则输出“通讯录中没有您要查找的联系人”代码如下://*****************查找联系人的信息********************void search(){ char xm[10];char ch;int d;printf("→1.按姓名查找\n");printf("→2.按编号查找\n");printf("请选择...\n");ch=getchar();getchar();switch(ch){case'1':printf("输入查找的姓名\n");gets(xm);for(i=0;i<m;i++){ if(strcmp(xm,rec[i].name)==0){ printf("\t\t\t☆☆☆☆☆这是您需要查找的联系人的信息☆☆☆☆☆\n\n");printf("编号姓名电话 \t手机 \t工作单位\tEMAIL \t\tQQ\n");printf("%d、%-8s%-10s%-12s%-18s%-18s%-12s\n",rec[i].num,rec[i].name, rec[i].tel,rec[i].celtel,rec[i].dw,rec[i].email,rec[i].qq);break;}}if(i==m)printf("\t\t\t☆☆☆☆☆通讯录中没有您要查找的联系人☆☆☆☆☆\n");break;case'2':printf("输入查找的编号\n");scanf("%d",&d);for(i=0;i<m;i++){if(d==rec[i].num){ printf("\t\t☆☆☆☆☆这是您需要查找的联系人的信息☆☆☆☆\n\n");printf("编号姓名电话 \t手机 \t工作单位\tEMAIL \t\tQQ\n");printf("%d、%-8s%-10s%-12s%-18s%-18s%-12s\n",rec[i].num,rec[i].name, rec[i].tel,rec[i].celtel,rec[i].dw,rec[i].email,rec[i].qq);break;}}if(i==m)printf("\t\t\t☆☆☆☆☆通讯录中没有您要查找的联系人☆☆☆☆☆\n");break;default:printf("输入错误!!");}getchar();}case'3': 增加功能,app()函数说明:按照屏幕的提示,依次输入要添加联系人的各项信息,并保存到结构体当中,输入完成后,提示是否继续添加,若是,则进入循环,若否,则结束。
代码如下://*******************添加联系人*******************void app(){ char an;puts("当前通讯录中的内容\n");list();do{ rec[m].num=m+1;printf("请按照提示输入新添加记录的各项信息\n");printf("姓名:");gets(rec[m].name);printf("\n电话:");gets(rec[m].tel);printf("\n手机:");gets(rec[m].celtel);printf("\n工作单位:");gets(rec[m].dw);printf("\nEMAIL:");gets(rec[m].email);printf("\nQQ:");gets(rec[m].qq);puts("\n这是新添加联系人的信息!\n");printf("编号姓名电话 \t手机 \t工作单位\tEMAIL \t\tQQ\n");printf("%d、%-8s%-10s%-12s%-18s%-18s%-12s\n",rec[m].num,rec[m].name, rec[m].tel,rec[m].celtel,rec[m].dw,rec[m].email,rec[m].qq);m++;puts("\t\t\t☆☆☆☆☆新纪录输入完成!☆☆☆☆☆\n");puts("☆继续添加吗?(y/n)");an=getchar();getchar();}while(an=='y');}case'4': 删除功能,dele()函数;说明:输入要删除的编号,判断是否存在,若不存在就要重新输入,若存在,则利用循环进行删除操作,从要删除的编号开始,逐个由后一项往前一项覆盖。
代码如下://*****************删除联系人的记录********************void dele(){ int a;int n=0;list();do{ n++;if(n>1){printf("没有此记录,请重新输入...\n");}printf("删除几号记录?\n");scanf("%d",&a);}while(a>m&&a>0||a<0);if(a!=m+1){ for(i=a;i<m;i++){ rec[i-1]=rec[i];rec[i-1].num=i;}m--;list();printf("\t\t\t☆☆☆☆☆完成删除!☆☆☆☆☆\n");}getchar();}case'5': 修改功能,correct()函数;说明:输入修改的编号,判断是否存在,若存在则输出此人初始信息,再按提示输入修改后的新信息,若不存在,则结束操作。
代码如下://*******************修改联系人的信息*****************void correct(){char xm[10];bool k=1;list();printf("输入要修改联系人的姓名:");gets(xm);for(i=0;i<m;i++){ if(strcmp(xm,rec[i].name)==0){ k=0;printf("\n这是您要修改联系人的初始信息\n\n");printf("编号姓名电话 \t手机 \t工作单位\tEMAIL \t\tQQ\n");printf("%d、%-8s%-10s%-12s%-18s%-18s%-12s\n",rec[i].num,rec[i].name, rec[i].tel,rec[i].celtel,rec[i].dw,rec[i].email,rec[i].qq);printf("请输入修改后的电话号码:");gets(rec[i].tel);printf("\n请输入修改后的手机:");gets(rec[i].celtel);printf("\n请输入修改后的工作单位:");gets(rec[i].dw);printf("\n请输入修改后的EMAIL:");gets(rec[i].email);printf("\n请输入修改后的QQ:");gets(rec[i].qq);list();printf("\t\t\t☆☆☆☆☆修改完成!☆☆☆☆☆\n");break; }}if(k)printf("输入有误,通讯录中没有此联系人信息\n");}三.文件的读取与保存读取://***************从文件读记录到通讯录中***************** void load(){ FILE *fp;if((fp=fopen("tongxunlu.txt","rb"))==NULL){printf("Can't open file\n");exit(0);}for(i=0;i<SIZE;i++){ if(fread(&rec[i],sizeof(struct record),1,fp)!=1){if(feof(fp))break;printf("File read error!\n");}rec[i].num =i+1;m++;}list();printf("\t\t\t☆☆☆☆☆读取成功!☆☆☆☆☆\n");fclose(fp);}保存://******************保存通讯录内容到文件中************* void save(){ FILE *fp;if((fp=fopen("tongxunlu.txt","wb"))==NULL){printf("Can't open file");exit(0);}list();for(i=0;i<m;i++)if(fwrite(&rec[i],sizeof(struct record),1,fp)!=1)printf("File wrete error!\n");fclose(fp);printf("\t\t\t☆☆☆☆☆保存成功!☆☆☆☆☆\n"); }四.程序源代码#include<stdio.h>#include<stdlib.h>#include<string.h>#define SIZE 100int i,m=0; //m为当前通讯录中的记录数char menu(); //选单void list(); //显示void search(); //查找void app(); //增加void dele(); //删除void correct(); //修改void save(); //保存void load(); //读入struct record //结构体包含的联系人信息{ int num; //在通讯录中的编号char name[10]; //联系人姓名char tel[12]; //联系人电话号码char celtel[12]; //联系人手机号码char dw[20]; //联系人工作单位char email[20]; //联系人邮箱char qq[12]; //联系人QQ}rec[SIZE];void main(){ char choice;char an;while(1){ choice=menu();switch(choice){case'1':printf("显示通讯录中的内容\n");list();break;case'2':printf("查找联系人\n");search();break;case'3':printf("增加联系人记录\n");app();break;case'4':printf("删除记录\n");dele();break;case'5':printf("修改联系人信息\n");correct();break;case'6':printf("保存通讯录到TXT文件\n");save();break;case'7':printf("从TXT文件中读取记录\n");load();break;case'8':printf("即将退出通讯录管理系统...\n");printf("是否保存刚才进行的操作y/n?\n");an=getchar();if(an=='y'){save();}printf("(按任意键退出)");break;default:printf("输入错误!!");}if(choice=='8')break;printf("\n按任意键返回....\n");getchar();}}//*********************菜单**********************char menu(){ char c;printf("------------☆欢迎使用☆------------\n\n");printf("*************简易通讯录*************\n");printf(" ☆1.显示通讯录\n");printf(" ☆2.查找联系人\n");printf(" ☆3.增加联系人\n");printf(" ☆4.删除联系人\n");printf(" ☆5.修改通讯录\n");printf(" ☆6.保存到文件\n");printf(" ☆7.从文件读取\n");printf(" ☆8.退出此系统\n");printf("************************************\n");printf(" \n请选择………\n\n");c=getchar();getchar();return c;}//*****************显示通讯录中的内容*************void list(){ printf("编号姓名电话 \t手机 \t工作单位\tEMAIL \t\tQQ\n");for(i=0;i<m;i++){ if(rec[i].name[0]){ printf("%d、%-8s%-10s%-12s%-18s%-18s%-12s\n",rec[i].num,rec[i].name, rec[i].tel,rec[i].celtel,rec[i].dw,rec[i].email,rec[i].qq);}}printf("\t\t\t----------------END--------------\n");}//*******************添加联系人*******************void app(){ char an;puts("当前通讯录中的内容\n");list();do{ rec[m].num=m+1;printf("请按照提示输入新添加记录的各项信息\n");printf("姓名:");gets(rec[m].name);printf("\n电话:");gets(rec[m].tel);printf("\n手机:");gets(rec[m].celtel);printf("\n工作单位:");gets(rec[m].dw);printf("\nEMAIL:");gets(rec[m].email);printf("\nQQ:");gets(rec[m].qq);puts("\n这是新添加联系人的信息!\n");printf("编号姓名电话 \t手机 \t工作单位\tEMAIL \t\tQQ\n");printf("%d、%-8s%-10s%-12s%-18s%-18s%-12s\n",rec[m].num,rec[m].name, rec[m].tel,rec[m].celtel,rec[m].dw,rec[m].email,rec[m].qq);m++;puts("\t\t\t☆☆☆☆☆新纪录输入完成!☆☆☆☆☆\n");puts("☆继续添加吗?(y/n)");an=getchar();getchar();}while(an=='y');}//*****************查找联系人的信息********************void search(){ char xm[10];char ch;int d;printf("→1.按姓名查找\n");printf("→2.按编号查找\n");printf("请选择...\n");ch=getchar();getchar();switch(ch){case'1':printf("输入查找的姓名\n");gets(xm);for(i=0;i<m;i++){ if(strcmp(xm,rec[i].name)==0){ printf("\t\t\t☆☆☆☆☆这是您需要查找的联系人的信息☆☆☆☆☆\n\n");printf("编号姓名电话 \t手机 \t工作单位\tEMAIL \t\tQQ\n");printf("%d、%-8s%-10s%-12s%-18s%-18s%-12s\n",rec[i].num,rec[i].name, rec[i].tel,rec[i].celtel,rec[i].dw,rec[i].email,rec[i].qq);break;}}if(i==m)printf("\t\t\t☆☆☆☆☆通讯录中没有您要查找的联系人☆☆☆☆☆\n");break;case'2':printf("输入查找的编号\n");scanf("%d",&d);for(i=0;i<m;i++){if(d==rec[i].num){ printf("\t\t☆☆☆☆☆这是您需要查找的联系人的信息☆☆☆☆\n\n");printf("编号姓名电话 \t手机 \t工作单位\tEMAIL \t\tQQ\n");printf("%d、%-8s%-10s%-12s%-18s%-18s%-12s\n",rec[i].num,rec[i].name, rec[i].tel,rec[i].celtel,rec[i].dw,rec[i].email,rec[i].qq);break;}}if(i==m)printf("\t\t\t☆☆☆☆☆通讯录中没有您要查找的联系人☆☆☆☆☆\n");break;default:printf("输入错误!!");}getchar();}//*****************删除联系人的记录********************void dele(){ int a;int n=0;list();do{ n++;if(n>1){printf("没有此记录,请重新输入...\n");}printf("删除几号记录?\n");scanf("%d",&a);}while(a>m&&a>0||a<0);if(a!=m+1){ for(i=a;i<m;i++){ rec[i-1]=rec[i];rec[i-1].num=i;}m--;list();printf("\t\t\t☆☆☆☆☆完成删除!☆☆☆☆☆\n");}getchar();}//*******************修改联系人的信息*****************void correct(){char xm[10];bool k=1;list();printf("输入要修改联系人的姓名:");gets(xm);for(i=0;i<m;i++){ if(strcmp(xm,rec[i].name)==0){ k=0;printf("\n这是您要修改联系人的初始信息\n\n");printf("编号姓名电话 \t手机 \t工作单位\tEMAIL \t\tQQ\n");printf("%d、%-8s%-10s%-12s%-18s%-18s%-12s\n",rec[i].num,rec[i].name, rec[i].tel,rec[i].celtel,rec[i].dw,rec[i].email,rec[i].qq);printf("请输入修改后的电话号码:");gets(rec[i].tel);printf("\n请输入修改后的手机:");gets(rec[i].celtel);printf("\n请输入修改后的工作单位:");gets(rec[i].dw);printf("\n请输入修改后的EMAIL:");gets(rec[i].email);printf("\n请输入修改后的QQ:");gets(rec[i].qq);list();printf("\t\t\t☆☆☆☆☆修改完成!☆☆☆☆☆\n");break; }}if(k)printf("输入有误,通讯录中没有此联系人信息\n");}//******************保存通讯录内容到文件中*************void save(){ FILE *fp;if((fp=fopen("tongxunlu.txt","wb"))==NULL){printf("Can't open file");exit(0);}list();for(i=0;i<m;i++)if(fwrite(&rec[i],sizeof(struct record),1,fp)!=1)printf("File wrete error!\n");fclose(fp);printf("\t\t\t☆☆☆☆☆保存成功!☆☆☆☆☆\n");}//***************从文件读记录到通讯录中***************** void load(){ FILE *fp;if((fp=fopen("tongxunlu.txt","rb"))==NULL){printf("Can't open file\n");exit(0);}for(i=0;i<SIZE;i++){ if(fread(&rec[i],sizeof(struct record),1,fp)!=1){if(feof(fp))break;printf("File read error!\n");}rec[i].num =i+1;m++;}list();printf("\t\t\t☆☆☆☆☆读取成功!☆☆☆☆☆\n");fclose(fp);}五.调试与运行结果运行环境:vc++6.01.运行程序,进入系统菜单六.计算机学院课程设计评定意见。