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

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语言的基本数据类型、运算符、控制结构。
–学习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语言程序设计通讯录管理系统

scanf("%s", search_name); /*获得名字到指针型字符串变量*/ for(j=1;j<=i;j++) { if(strcmp(search_name,records[j].name)==0) /*比较字符串,即 查看是否与记录中名字 相同*/ { Data_Show(j); printf("\n"); /*搜索成功,打印记录结束循环*/ break; } } if(j>i) /*搜索失败*/ printf("\n\tNo Record "); /*显示无此记录*/ break; case '5': printf("\n\tInsert No:"); /*录入插入位置*/ scanf("%d",&k); for(j=k+1;j<i;j++) /*将插入位置后的元素顺序后移,即将其复 制到后一位置,循环操作*/ { strcpy(records[j].name,records[j-1].name); records[j].sex=records[j-1].sex; records[j].birth.year=records[j-1].birth.year; records[j].birth.month=records[j-1].birth.month; records[j].birth.day=records[j-1].birth.day; strcpy(records[j].addr.post_num,records[j-1].addr.post_num); strcpy(records[j].addr.addr,records[j-1].addr.addr); strcpy(records[j].telephone,records[j-1].telephone); } Data_Input(k); /*声明增加数据函数*/ i++;/*将记录数目加一*/ break; case '6': Data_Save(); printf("\n"); /*声明保存函数*/ exit(0); break; /*保存后退出*/ case '7': printf("\n\tsave or not?:(y/n)"); ch=getch(); /*获得输入字符*/
c语言课程设计学生通讯录管理系统

C语言课程设计 - 学生通讯录管理系统1. 引言学生通讯录管理系统,简称STMS(Student Telephone Management System),是一款基于 C 语言开发的学生通讯信息管理系统。
该系统旨在帮助学校或其他机构方便地管理学生通讯录信息,包括学生的基本信息、联系方式等。
本文档将介绍该系统的设计要求、功能模块、数据结构、算法以及使用方法。
2. 设计要求学生通讯录管理系统应满足以下设计要求:•能够实现学生信息的添加、删除、修改和查询等基本操作;•提供用户友好的界面,方便用户进行操作;•数据存储应使用文件方式进行,确保数据可以持久保存;•提供合理的错误处理机制,提示用户操作引起的错误并给予相应的错误提示。
3. 功能模块学生通讯录管理系统包含以下功能模块:3.1 用户管理模块该模块用于管理系统注册的用户信息,包括用户的登录名、密码等。
•用户登录:用户输入用户名和密码,系统验证登录信息并提供相应权限;•用户注册:新用户可以通过该功能注册账号,并设置登录密码;•用户权限管理:系统根据用户不同的角色分配相应的权限。
3.2 学生信息管理模块该模块用于管理学生的基本信息和通讯录信息。
•添加学生信息:用户可以添加学生的基本信息和联系方式;•删除学生信息:用户可以根据学生的ID删除特定学生的信息;•修改学生信息:用户可以修改指定学生的信息;•查询学生信息:用户可以根据学生的姓名或其他关键词进行学生信息的查询。
3.3 通讯录管理模块该模块用于管理学生的通讯录信息,包括通讯录的名称、联系方式等。
•添加通讯录:用户可以添加新的通讯录,并指定通讯录的名称;•删除通讯录:用户可以根据通讯录的名称删除指定的通讯录;•修改通讯录:用户可以修改已存在的通讯录的名称;•查询通讯录:用户可以根据通讯录的名称查询对应的联系方式。
4. 数据结构学生通讯录管理系统采用以下数据结构:4.1 学生结构体typedef struct {int id; // 学生IDchar name[20]; // 学生姓名char gender; // 学生性别char phone[11]; // 学生电话号码char email[50]; // 学生电子邮箱} Student;4.2 通讯录结构体typedef struct {char name[50]; // 通讯录名称char phone[11]; // 通讯录联系方式} Directory;5. 算法学生通讯录管理系统采用以下算法实现部分功能:5.1 添加学生信息```c void addStudent() { Student student; // 用户输入学生信息 printf(。
c语言通讯录管理系统课程设计

c语言通讯录管理系统课程设计一、教学目标本课程旨在让学生掌握C语言编程基础,通过编写通讯录管理系统,培养学生的实际编程能力和问题解决能力。
具体目标如下:1.知识目标:学生能理解C语言的基本语法、数据类型、运算符、控制结构等,并掌握结构体、文件操作等高级概念。
2.技能目标:学生能运用C语言实现功能齐全的通讯录管理系统,包括但不限于添加、删除、查找、修改联系人信息等功能。
3.情感态度价值观目标:通过课程学习,学生能培养编程思维,增强对计算机科学的兴趣,理解技术对现代社会的重要性。
二、教学内容教学内容围绕C语言通讯录管理系统的设计与实现展开,具体包括:1.C语言基础知识:数据类型、变量、运算符、控制结构。
2.高级数据结构:结构体、指针、数组。
3.文件操作:文件的打开、读写、关闭。
4.通讯录管理系统设计:需求分析、系统设计、功能实现。
三、教学方法结合C语言的特点和学生实际情况,采用以下教学方法:1.讲授法:系统讲解C语言基础知识和编程技巧。
2.案例分析法:分析已有的通讯录管理系统案例,引导学生理解系统设计过程。
3.实验法:学生在实验室环境里动手编写代码,实践所学知识。
四、教学资源为确保教学质量,准备以下教学资源:1.教材:《C程序设计语言》(K&R)、《C Primer Plus》。
2.参考书:《C语言深度剖析》、《C语言编程实践》。
3.多媒体资料:教学PPT、在线编程教程、视频讲解。
4.实验设备:计算机、网络环境、编程环境(如Code::Blocks、Visual Studio)。
五、教学评估本课程采用多元化的评估方式,全面客观地评价学生的学习成果:1.平时表现:通过课堂参与、提问、小组讨论等评估学生的积极性与专注度。
2.作业:布置编程作业,评估学生的编程能力和对知识的理解应用。
3.实验:评估学生在实验室的编程实践表现,检查代码质量与创新性。
4.期中期末考试:设置包含选择题、填空题、编程题的试卷,全面测试学生的知识掌握和应用能力。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
广西科技大学鹿山学院课程设计报告课程名称: c语言程序设计课题名称:通讯录管理系统设计指导教师:倪志平班级:物联网152姓名:吴肖军学号: 20153076成绩评定:指导教师签字:二〇一六年七月六日目录1 需求分析 (3)2 总体分析与设计 (3)2.1总体设计方案 (3)2.2功能描述 (4)2.2.1 新增联系人模块 (4)2.2.2 保存联系人模块 (4)2.2.3 查询联系人模块 (4)2.2.4 显示联系人模块 (4)2.2.5 修改联系人模块 (4)2.2.6 删除联系人模块 (4)2.2.7 读取联系人模块 (5)2.2.8 退出系统模块 (4)2.3系统流程图 (5)3 系统实现 (6)4功能测试 (11)4.1.1 新增联系人 (11)4.1.2 查询联系人 (13)4.1.3 显示联系人 (14)4.1.4 修改联系人 (15)4.1.5 删除联系人 (16)4.1.6 退出系统 (17)总结 (18)参考文献 (18)课程设计目的1 需求分析通讯录档案信息采用文件存储,因而要提供文件的输入输出操作;根据联系人信息的变动情况,添加删除记录,因而要提供文件的添加删除操作;根据编号进项查询,所以要提供文件的查找操作;高级编辑功能,就是提供文件的修改操作;显示功能就是显示出通讯录中所有联系人的功能;另外还要提供键盘式选择菜单以实现功能选择。
2 总体分析与设计1.总体设计总体设计目标:使用者可以利用本系统对通讯录的各项管理进行操作,根据用户要求自动进行新增联系人,保存联系人,删除联系人,查找所要的联系人,修改所要的联系人,最后将他们清楚地显示在屏幕中。
结合上述分析,该系统应包括一下模块:新增联系人,保存联系人,查询联系人,修改联系人,显示联系人,删除联系人,退出系统。
结构图如下。
2.1 总体设计方案2.2 功能描述根据以上需求分析,通讯录管理系统划分为七个功能模块,分别是新增联系人模块,保存联系人模块,查找联系人模块,修改联系人模块,显示联系人模块,删除联系人模块,读取联系人模块。
其中各功能模块的具体说明如下。
2.2.1 新增联系人模块增加联系人模块:该模块的功能是增加新的联系人信息。
信息包括联系人,联系人所在单位,联系人等。
然后从键盘输入并逐条写入到的文件中。
增加成功后提示增加联系人信息成功!2.2.2 保存联系人模块保存联系人模块:该模块会保存所新增联系人,修改联系人等信息到指定文件夹中。
2.2.3 查找联系人模块查找人事信息模块:该模块的功能是,查找文件中的联系人信息记录,从键盘输入联系人编号,输入时会判断该联系人编号是否存在,若不存在,则重新输入。
若存在,则将该人事信息输出到窗口。
2.2.4 修改联系人模块修改人事信息模块:该模块的功能是由用户输入所需修改的联系人信息编号。
然后对联系人信息(和等)进行修改,最后保存修改后的结果。
2.2.5 显示联系人模块该模块将文件里的容输出到电脑屏幕。
用户可以通过该功能看到文件当中的所有联系人的信息。
2.2.6 删除联系人模块删除人事信息模块:该模块首先由用户输入要删除的联系人的编号,根据编号删除所需的联系人信息,删除后提示联系人删除成功。
删除的方法是将文件中的数据读入存,赋给相应的结构体,并将结构体数组中将删除的后面的数据赋给前一个结构体,然后将相应数据写入文件并保存。
2.2.7 读取联系人模块该模块将保存到文件中的联系人读取到存中以供程序操作。
2.2.8 退出系统模块若在系统最初运行时,选择退出系统,则系统退出运行。
3 系统实现程序源码#include <stdio.h>#include <string.h>#include <stdlib.h>#include<conio.h>struct BOOKS{int id;char tell[12],phone[12],name[31],add[20],email[30],qq[20];}books[100],*p;void page_title(char *menu_item){printf("\t\t********************************************\n",menu_item);printf("\t\t* 欢迎使用通讯录管理系统 *\n",menu_item);printf("\t\t* *\n",menu_item);printf("\t\t* 系统设计人:吴肖军 *\n",menu_item);printf("\t\t* *\n",menu_item);printf("\t\t********************************************\n\n- %s -\n\n",menu_item); }void return_confirm(void){ printf("\n按任意键返回……\n");getchar();}void books_add(void) //输入模块{ int n;system("cls");//清屏page_title("新增联系人");for(n=0;n<100;n++)if(books[n].id==0) break;printf("序号:");scanf("%d",&books[n].id);printf(":");scanf("%s",&books[n].name);printf("单位:");scanf("%s",&books[n].add);printf("固定:");scanf("%s",&books[n].tell);printf("移动:");scanf("%s",&books[n].phone);printf(":");scanf("%s",&books[n].email);printf("QQ:");scanf("%s",&books[n].qq);return_confirm();}int books_search(void)//查找模块{ int n,i=-1;char nam[30];system("cls");printf("请输入联系人:");scanf("%s",&nam);for(n=0;n<100;n++){ if((strcmp(books[n].name,nam)==0)){ printf("序号:%d\t",books[n].id);printf("联系人:%s\t",books[n].name);printf("单位:%s\t",books[n].add);printf("固定:%s\t",books[n].tell); printf("移动:%s\t",books[n].phone); printf(":%s\t",books[n].email);printf("QQ:%s\n",books[n].qq);i=n; }}if(i==-1)printf("\n没有找到相关记录.\n");getchar();return i;}int books_change(void)//修改模块{int n,i;system("cls");page_title("修改联系人信息");printf("请输入要修改的联系人编号:"); scanf("%d",&i);for(n=0;n<100;n++){ if(books[n].id==i){printf("修改联系人:");scanf("%s",books[n].name);printf("修改单位:");scanf("%s",books[n].add);printf("修改固定:");scanf("%s",books[n].tell);printf("修改移动:");scanf("%s",books[n].phone);printf("修改:");scanf("%s",books[n].email);printf("修改QQ:");scanf("%s",books[n].qq);printf("修改联系人信息成功.\n");return n;}}printf("\n没有找到相关记录.\n");getchar();return -1;}int books_show(void)//显示模块{int n,i=1;system("cls");for(n=0;n<100;n++){if(strlen(books[n].name)!=0){printf("序号:%d\t",books[n].id);printf("联系人:%s\t",books[n].name);printf("单位:%s\t",books[n].add);printf("固定:%s\t",books[n].tell); printf("移动:%s\t",books[n].phone); printf(":%s\t",books[n].email);printf("QQ:%s\n",books[n].qq);i=0;}}if(i==1)printf("\n没有找到相关记录.\n");getchar();return -1;}int books_del(void)//删除模块{int n,num,i;system("cls");page_title("删除联系人");printf("请输入所要删除的联系人的编号:\n");scanf("%d",&num);for(n=0;n<100;n++){if(books[n].id==num){for(i=n;i<100;i++){ books[i].id=books[i+1].id;strcpy(books[i].name,books[i+1].name);strcpy(books[i].email,books[i+1].email);}printf("该联系人已删除.\n");return n;}}printf("没有找到相关记录\n");getchar();return -1;}void books_save()//保存模块{system("cls");FILE *fp;int i;p=books;if((fp=fopen("d:\\tt.txt","wb+"))==NULL){printf("Cannot open file,strike any key exit!");getchar();exit(1);}fwrite(p,sizeof(struct BOOKS),2,fp);p=books;for(i=0;i<2;i++,p++)printf("%5d\t%s\t%s\t%s\t%s\t%s\t%s\t\n",p->id,p->name,p->add,p->tell,p->phone,p->email,p-> qq);fclose(fp);getchar();}void books_read(){system("cls");FILE *fp;int i;p=books;if((fp=fopen("d:\\tt.txt","rb+"))==NULL){printf("Cannot open file,strike any key exit!");getchar();exit(1);}fread(p,sizeof(struct BOOKS),2,fp);p=books;for(i=0;i<2;i++,p++)printf("%5d\t%s\t%s\t%s\t%s\t%s\t%s\t\n",p->id,p->name,p->add,p->tell,p->phone,p->email,p-> qq);fclose(fp);getchar();}void main(void){menu:page_title("操作选单");printf("请用数字键选择操作\n\n");printf("\t\t\t1 新增联系人\t\t\t2 保存联系人\n");printf("\t\t\t3 查询联系人\t\t\t4 修改联系人\n");printf("\t\t\t5 显示联系人\t\t\t6 删除联系人\n");printf("\t\t\t7 输出数据 \t\t\t8 退出系统 \n");printf("请按数字键:\n");switch(getchar()){case '1' : books_add(); break;case '2' : books_save(); break;case '3' : books_search(); break;case '4' : books_change(); break;case '5' : books_show(); break;case '6' : books_del(); break;case '7' : books_read(); break;case '8' :/*退出系统*/{system("cls");printf("\n");printf("\t*===============================================================*\n");printf("\t* *\n");printf("\t* 使用 *\n");printf("\t* *\n");printf("\t* *\n");printf("\t* 如有疑问,请联系管理员 *\n");printf("\t*===============================================================*\n");printf("\t* *\n");printf("\t* 广西科技大学鹿山学院 *\n");printf("\t* 物联网 1 5 2 吴肖军 *\n");printf("\t*===============================================================*\n");printf("\n");}exit(0);break;}goto menu;}4 功能测试4.1选择新增联系人,查找联系人,显示联系人,修改联系人,删除联系人,五个功能进行测试。