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. 系统概述本文档描述了一个基于C语言的学生通讯录管理系统的设计。
该系统旨在提供一个简单而有效的方式来管理学校中学生的联系信息。
2. 功能需求学生通讯录管理系统需要满足以下功能需求:•添加学生信息:包括学生姓名、学号、年级、班级、电话号码等。
•删除学生信息:根据学号或姓名删除指定学生的信息。
•修改学生信息:根据学号或姓名修改指定学生的信息。
•查询学生信息:根据学号或姓名查询指定学生的信息。
•显示所有学生信息:展示学生通讯录中所有学生的信息。
3. 系统设计3.1 数据结构系统使用以下数据结构来表示学生通讯录:struct Student {char name[50];int studentID;int grade;int class;char phoneNumber[20];};struct StudentDirectory {struct Student students[100];int count;};学生通讯录使用一个结构体数组来存储学生信息,每个学生信息包含姓名、学号、年级、班级和电话号码。
StudentDirectory结构体用于存储整个学生通讯录,count表示当前学生通讯录中的学生数量。
3.2 模块设计系统的实现可以分为以下几个模块:•输入输出模块:负责从用户获取输入以及将结果输出给用户。
•添加学生信息模块:负责向学生通讯录中添加新的学生信息。
•删除学生信息模块:负责从学生通讯录中删除指定学生的信息。
•修改学生信息模块:负责修改学生通讯录中指定学生的信息。
•查询学生信息模块:负责查询学生通讯录中指定学生的信息。
•显示学生信息模块:负责展示学生通讯录中所有学生的信息。
3.3 系统流程下图展示了学生通讯录管理系统的基本流程:flowchart LRA[开始]B[用户输入选项]C{选项是添加学生信息?}D[执行添加学生信息模块]E{选项是删除学生信息?}F[执行删除学生信息模块]G{选项是修改学生信息?}H[执行修改学生信息模块]I{选项是查询学生信息?}J[执行查询学生信息模块]K{选项是显示所有学生信息?}L[执行显示学生信息模块]M[结束]A --> BB -- Yes --> CB -- No --> EC -- Yes --> DC -- No --> ED --> ME -- Yes --> FE -- No --> GF --> MG -- Yes --> HG -- No --> IH --> MI -- Yes --> JI -- No --> KJ --> MK -- Yes --> LK -- No --> ML --> M4. 系统实现系统的具体实现可以参考下面的示例代码:```c #include <stdio.h>struct Student { char name[50]; int studentID; int grade; int class; char phoneNumber[20]; };struct StudentDirectory { struct Student students[100]; int count; };void addStudent(struct StudentDirectory* directory) { // 从用户获取学生信息并添加到学生通讯录中 }void deleteStudent(struct StudentDirectory* directory) { // 从用户获取学生信息并从学生通讯录中删除 }void modifyStudent(struct StudentDirectory* directory) { // 从用户获取学生信息并修改学生通讯录中指定学生的信息 }void queryStudent(struct StudentDirectory* directory) { // 从用户获取学生信息并查询学生通讯录中指定学生的信息 }void showAllStudents(struct StudentDirectory* directory) { // 显示学生通讯录中所有学生的信息 }int main() { struct StudentDirectory directory; directory.count = 0;int option;while (1) {printf(\。
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语言编程简介学生通讯录管理系统是一个帮助学生管理通讯录信息的应用程序。
通过该系统,学生可以添加、删除、查询和修改通讯录中的联系人信息,从而更好地组织和管理自己的通讯录信息。
功能需求1. 添加联系人学生可以通过输入联系人的姓名、电话号码、邮箱等信息,将联系人添加到通讯录中。
2. 删除联系人学生可以根据联系人的姓名或电话号码,从通讯录中删除指定的联系人信息。
3. 查询联系人学生可以通过姓名或电话号码查询通讯录中的联系人信息,并将查询结果显示出来。
4. 修改联系人学生可以修改通讯录中指定联系人的信息,如电话号码、邮箱等。
技术实现通讯录管理系统将使用C语言进行编程实现。
以下是系统的基本设计思路:1. 数据结构设计通讯录信息可以用结构体来表示,包含联系人的姓名、电话号码、邮箱等字段。
struct Contact {char name[50];char phone[20];char email[50];};2. 功能模块划分•添加联系人模块:用于添加新的联系人信息。
•删除联系人模块:用于删除指定联系人信息。
•查询联系人模块:用于根据姓名或电话号码查询联系人信息。
•修改联系人模块:用于修改指定联系人的信息。
3. 用户界面设计系统将使用控制台界面,通过菜单来实现各个功能模块的调用。
开发步骤1. 定义数据结构首先定义联系人结构体,包含姓名、电话号码、邮箱等字段。
2. 实现功能模块分别实现添加联系人、删除联系人、查询联系人、修改联系人等功能模块的具体代码。
3. 编写主程序编写主程序,通过调用功能模块来实现整体通讯录管理系统的运行。
总结学生通讯录管理系统C语言编程是一个实用的项目,通过这个项目,学生可以熟练掌握C语言编程的基本知识,并且实践项目开发的流程。
通过不断调试和完善,学生可以提升自己的编程能力和项目实现能力。
希望学生能够在这个项目中学到更多的知识,提升自己的编程技能。
c课程设计通讯录管理系统

c 课程设计 通讯录管理系统一、课程目标知识目标:1. 让学生掌握通讯录管理系统的基础知识,包括系统结构、功能模块和数据存储方式。
2. 了解并运用编程语言(如Python)实现通讯录的增、删、改、查功能。
3. 学会运用算法和数据处理技巧优化通讯录管理系统的性能。
技能目标:1. 培养学生运用所学知识独立设计和编写通讯录管理系统的能力。
2. 提高学生的问题解决能力,能够针对实际需求调整和优化系统功能。
3. 培养学生的团队协作能力,学会在项目中进行有效沟通和分工。
情感态度价值观目标:1. 培养学生对信息技术课程的兴趣,激发学习热情。
2. 增强学生的自信心,让他们在完成项目的过程中感受到成就感。
3. 培养学生的责任心,使他们认识到技术对社会发展的积极作用,并关注信息安全问题。
课程性质:本课程为信息技术课程,旨在让学生通过实践操作,掌握通讯录管理系统的设计与实现方法。
学生特点:六年级学生已具备一定的计算机操作基础和编程能力,对新鲜事物充满好奇,喜欢挑战。
教学要求:结合学生特点,注重实践操作,鼓励学生独立思考和团队协作,提高解决问题的能力。
将课程目标分解为具体的学习成果,以便在教学过程中进行有效指导和评估。
二、教学内容1. 系统分析与设计:- 理解通讯录管理系统的需求分析,明确系统功能。
- 学习UML类图、用例图等工具进行系统设计。
2. 数据存储结构:- 掌握使用数组、链表等数据结构存储通讯录信息。
- 分析不同存储结构的优缺点,选择合适的数据结构。
3. 编程语言实现:- 运用Python等编程语言编写系统功能代码。
- 掌握面向对象编程思想,实现类和对象的设计。
4. 功能模块实现:- 实现通讯录的增、删、改、查功能。
- 学习使用异常处理、文件操作等技术解决实际问题。
5. 系统优化:- 分析算法性能,优化查询速度。
- 掌握排序、查找等算法在通讯录管理系统中的应用。
6. 项目实战与团队协作:- 按照教学大纲,分阶段完成通讯录管理系统的开发。
C语言课程设计--学生通讯录管理系统设计

一、题目内容的描述学生通讯录管理系统设计设计一个学生通信录,学生通迅录数据信息构成内容可自行设计(如:姓名、家庭地址、邮政编码、电话号码等等),通信录数据类型定义为结构体类型。
由键盘输入数据(最好要考虑输入数据输入的格式及输入数据的有效性),然后进行以下的功能实现。
程序要求主函数是一个功能选择菜单,其它各功能都用各自的函数实现。
功能要求如下:1、能建立、修改和增删学生通讯录2、能够按多种方式进行查询,例如按姓名、按电话号码等。
3、通讯录的数据保存在文件中,运行程序时将通讯录数据从文件读取到内存中。
对通讯录进行增加、删除、修改学生数据后,提供功能菜单,可以将内存中修改过的通讯录重新保存至文件。
二、应用程序功能的详细说明1、应用程序实现了可视化的系统操作界面。
2、对学生通讯录形成了系统化的管理,操作简便明了。
3、程序具有系统帮助,添加、显示、查询、刷新、删除、排序、保存、修改、读取学生通讯录的功能。
各项功能均可按照文字提示操作,浅显易懂。
4、系统的各个功能模块都用函数的形式来实现(readfile()、seek()、modify()、sort()、insert()、del()、save()、menu())方便查看。
5.可以将信息保存在文件("student.txt")中,亦可将信息从文件中读取出来,灵活方便。
三、主要模块的算法描述模块一:头文件,变量定义,函数的声明对系统所使用的变量进行定义,对函数进行声明。
模块二:录入学生信息声明函数void readfile(),说明一个文件指针FILE *fp打开文件"student.txt"。
模块三:学生信息的查找声明void seek()为查找函数,通过switch(item)设定用学号查找,用姓名查找两个分支。
模块四:学生信息的修改声明void modify()为学生信息修改函数,通过switch(item)设定所要修改的项目。
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)。
五、教学评估本课程的教学评估将综合考虑学生的平时表现、作业、考试等方面,以全面、客观、公正地评价学生的学习成果。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
c语言课程设计学生通讯录管理系统Company Document number:WTUT-WT88Y-W8BBGB-BWYTT-19998题目:学生通讯录管理系统任务说明:主要利用c语言的文件操作能力设计开发一个小型的通讯录管理系统,至少具有如下功能:①记录通讯录内的人员的学号、姓名、地址、电话号码。
②显示所有人员的信息。
③通过输入姓名查找人员信息。
④通过输入姓名查找到要删除的人员信息,然后可以进行删除。
⑤通过输入姓名查找到要修改的人员信息,然后可以进行修改。
⑥添加人员信息。
系统功能描述:本程序的功能是为用户提供简单的通讯录进行管理,通过该程序存储联系人信息,提供关键字(只能是英文关键字进行查找)查找功能,可以对数据进行修改、删除、添加等操作。
各按钮的功能如下:查找记录:以姓名为关键字,查找并显示该记录。
若查找不到,则显示“好象没有”;添加记录:将当前记录按姓名序加入通讯录,然后显示第一条记录;修改记录:修改当前记录,显示当前记录。
姓名为关键字,不允许修改;删除记录:删除当前记录,然后显示第一条记录;第一条记录:将当前记录指针移动至首节点,若已为首节点,则不移动;前一条记录:将当前记录指针向前移动一个节点,若已为首节点,则不移动;后一条记录:将当前记录指针向后移动一个节点,若已为尾节点,则不移动;最后一条记录:将当前记录指针移动至尾节点,若已为尾节点,则不移动;加载:从文件中掉入已保存的通讯录数据;保存:保存通讯录数据;退出:退出系统;设计思路:根据要求,电话录数据以文本文件存放在文件中,故需要提供文件的输入、输出等操作;还需要保存记录以进行修改,删除,查找等操作;另外还应提供键盘式选择菜单实现功能选择。
图1 系统功能模块图软件中使用的结构体和结构体数组,如:struct callmember{char name[20];char address[20];char code[20];char callnumber[20];};对用户的信息进行保存,他们都以二进制的形式读写。
其中:char name[20];char address[20];char code[20];char callnumber[20]分别对姓名、地址、邮编、电话号码进行储存在子函数中还使用了结构体数组:struct callmember one[100];还使用了exit()、 fclose()等库函数。
还运用了头文件:#include ""#include" "#include <>#include<>其中还使用大量的子函数,例如:void output();void del();void found();void modify() ;void insert();部分子函数的详细代码:void output(){int b=0,i=0;int j;struct callmember one[100];FILE *fp;if((fp=fopen("e:\\通讯录.txt","r"))==NULL){printf("无法从已有通讯录输入!\n可能是因为原通讯录不存在或为空!\n建议你检查你的通讯录文挡!\n");exit(1);}while(fscanf(fp,"%s%s%s%s",one[i].name,one[i].addr ess,one[i].code,one[i].callnumber)!=EOF)i++;j=i;for(i=0;i<j;i++){printf("%s %s %s %s\n",one[i].name,one[i].address,one[i].code,one[i].callnum ber);}fclose(fp);}void insert(){FILE *fp;struct callmember *p;if((fp=fopen("e:\\通讯录.txt","a+"))==NULL) {printf("操作失败.");exit(1);}p=(struct callmember *)malloc(sizeof(struct callmember));printf("************************\n");printf(" 姓名:");scanf("%s",p->name);printf(" 地址:");scanf("%s",p->address);printf(" 邮编:");scanf("%s",p->code);printf(" 电话:");scanf("%s",p->callnumber);printf("************************\n");fprintf(fp,"%s %s %s %s",p->name,p->address,p->code,p->callnumber);fclose(fp);free(p);}通过对这些资源的合理利用使系统初步实现了通讯录管理系统的基本功能。
程序流程图:。
");1可以显示全部的人员的信息。
可在3 .3参看流程图。
3删除模块删除功能界面4查找模块进入查找记录界面5修改模块进入修改界面6添加模块进入添加界面可以根据要求添加用户想添加的人员信息。
7.退出进入退出界面:当出现没有查找人员信息时会自动返回主选单总结1本程序的局限性及改进方法:本程序中包含的信息不够全面,比如年龄,性别,通讯地址,电子邮箱等,都没有包含。
改进方法就是在设计程序时把这些内容都加进去,电子邮箱还可以建立链接。
2运用本程序还可以编写比如对学生信息的管理系统,商店、超市里面对商品的管理,仓库里面对货物的查询等等。
3在课程设计过程中遇到的问题,解决的办法1、从文本中写入数据时可能指针指错位置,导致不能正常进行。
解决的办法是对指针进行必要跟踪,把该函数写入独立的cpp文件中,单个进行检查。
2、从文本文件中载入数据时,当记录数为1的时,出现内存不能读的情况,当记录数为0时,当前记录数和总记录数以及用户信息显示的情况比较特殊,解决的办法是分三种情况,写段程序分别进行处理。
4心得体会与收获:通过这次课程设计,我对很多的函数有了新的认识,我对C语言有了更深刻的了解,增强了程序的编写能力,巩固了专业知识,写软件的过程中我又学到啦曾经自己不知道的函数或是自己不会的函数的用法。
特别是文件的开启和关闭,读与写。
这次课程设计课总的来说让我受益匪浅。
虽然在调试程序遇到了很多的困难,但是都一一去把它解决了。
从中也让我知道了要学好这门,仅学习书本上的知识是不够的,还要有较强的实践能力。
因为我们学习知识就是为了实践。
而只有多实践,多编写程序,才能更好的理解与掌握书本上的东西。
程序清单:#include<> /*标准输入输出函数库*/#include<>struct student{char name[8];char tel[15];char addr[50];};char filename[20];FILE *fp;void creat();void output();void search();void append();void modify();void remove();main(){int m;creat();while(1){printf("\n\n添加,请按1"); printf("\n查找,请按2");printf("\n修改,请按3");printf("\n删除,请按4");printf("\n输出,请按5");printf("\n退出,请按0\n"); scanf("%d",&m);if(m>=0&&m<=5){switch(m){case 1: append();break;case 2: search();break;case 3: modify();break;case 4: remove();break;case 5: output();break;case 0: break;}printf("\n\n操作完毕,请再次选择!"); }elseprintf("\n\n选择错误,请再次选择!"); }}void creat(){struct student one;long s1;printf("\n请输入通讯录名:");scanf("%s",filename);if((fp=fopen(filename,"w"))==NULL){printf("\n不能建立通讯录!");exit();}fprintf(fp,"%-10s%-20s%-50s\n","姓名","电话号码","住址");printf("\n请输入姓名、电话号码及住址(以0结束)\n");scanf("%s",;while(strcmp,"0")){scanf("%s%s",,;fprintf(fp,"%-10s%-20s%-50s\n",,,;scanf("%s",;}fclose(fp);}void output(){struct student one;if((fp=fopen(filename,"r"))==NULL) {printf("\n不能打开通讯录!");exit();}printf("\n\n%20s\n","通讯录"); while(!feof(fp)){fscanf(fp,"%s%s%s\n",,,;printf("%-10s%-20s%-50s",,,;}fclose(fp);}void append(){struct student one;if((fp=fopen(filename,"a"))==NULL)printf("\n不能打开通讯录!");exit();}printf("\n请输入添加的姓名、电话号码及住址\n"); scanf("%s%s%s",,,;fprintf(fp,"%-10s%-20s%-50s\n",,,;fclose(fp);}void search(){int k=0;char namekey[8];struct student one;printf("\n请输入姓名:");scanf("%s",namekey);if((fp=fopen(filename,"rb"))==NULL){printf("\n不能打开通讯录!");}while(!feof(fp)){fscanf(fp,"%s%s%s\n",,,;if(!strcmp(namekey,){printf("\n\n已查到,记录为:");printf("\n%-10s%-18s%-50s",,,;k=1;}}if(!k)printf("\n\n对不起,通讯录中没有此人的记录。