C语言课程设计报告—手机通讯录管理系统
通讯录管理系统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. 简介通讯录管理系统是一款基于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语言课程设计课程设计题目:手机通讯录管理程序院(系):计算机学院专业:计算机科学与技术班级:学号:姓名:指导教师:伟东完成日期:2012年03月15日目录第1章概要设计 (1)1.1题目的容与要求 (1)1.2总体结构 (1)第2章详细设计 (2)2.1主模块 (2)2.2添加模块 (3)2.3显示模块 (5)2.4删除模块 (6)2.5修改模块 (8)2.6查询模块 (10)第3章调试分析 (14)第4章使用说明 (15)参考文献 (24)附录(程序清单) (25)第1章概要设计1.1题目的容与要求容:设计一个用文本文件的形式实现手机通讯录的程序,实现一个个人通讯信息的管理维护和查询。
要求:1)建立通讯录信息文件,对通讯录信息进行增、删、改、查询(可按多种方式,如、、分组等)。
2)用户界面友好,功能明确,操作方便。
3)操作结束后,需要把操作后的文件容保存到文本文件中。
1.2总体结构本程序主要分为六个模块(功能模块图见图1.1):主模块,添加模块,显示模块,删除模块,修改模块,查询模块。
主模块:控制整个程序的运行,控制菜单操作,通过主函数模块分别调用各个模块,实现各项功能。
添加模块:主要实现程序最初运行时手机通讯录的录入以及其后的运行中手机通讯录的追加功能。
显示模块:显示文本文件中的手机通讯录信息容。
删除模块:对指定的手机通讯录信息进行删除。
修改模块:对指定的手机通讯录信息进行修改。
查询模块:对指定的手机通讯录信息按多种方式(如、、分组等)进行查询。
图1.1 功能模块图第2章详细设计2.1主模块控制整个程序的运行,控制主菜单操作,通过主函数模块分别调用各个模块,实现各项功能。
显示主菜单,选择要进行的操作(添加记录、显示记录、删除记录、修改记录、查询记录、退出程序),根据选择,调用相应的函数,进行相应的操作。
流程如图2.1所示。
图2.1 主模块流程图显示主菜单,选择要进行的操作(添加记录、显示记录、删除记录、修改记录、查询记录、退出程序)。
c语言课程设计报告---通讯录管理系统

一、实习题目通讯录管理系统二、需求分析问题描述:本程序属于非数值计算型算法设计,学生需要设计出图书馆模拟系统所需要的基本功能,并设计简单的界面(无需图形化)。
实现功能:1、通过提示菜单选择可以进行的操作2、将图书的信息存入文件中,并命名为BookInfo.txt3、将图书借阅情况信息存入文件中,并命名为SendInfo.txt4、在本系统中可以进行管理系统包含的基本操作,其中包括:a)查看所有图书的信息;b)输入一本图书的图书编号,从当前图书中进行查找,如果找到则显示该图书的相关信息,如果没有找到则给出提示信息;c)添加一本图书的基本信息,通过输入图书编号,首先查找是否存在该图书编号的图书,如果存在则提示重新输入,否则将该图书按照顺序插入到相应位置;d)删除一本图书的基本信息,通过输入图书编号,首先查找是否存在该图书编号的图书,如果存在则将该图书删除,否则给出提示信息,提示该图书不存在;e)借阅一本图书,需要给出学号和图书编号,如果图书编号不存在则重新输入,直到输入正确为止,并将学号和相应的图书编号存入SendInfo.txt文件中。
5、图书基本信息包括图书编号、书名、作者、出版社和价钱这些简单信息。
6、图书信息文件中每一行存放一本图书的信息。
7、借阅信息文件中每一行存放一本书的借阅情况。
知识点:本程序主要考察对自定义函数的熟悉程度,本程序中主要使用到的是数组的相关操作,包括数组的输入、输出、查找、插入、删除等操作,需要对数组有比较深入的掌握。
说明:(1)当程序执行的时候所读取的图书信息文件必须存在,否则可能会出现错误。
(2)图书信息文件中存放图书信息的时候是按照行来存放的,即一行一本书。
(3)借阅信息文件中存放学生借阅情况是按照行来存放的,即一行存放一个学号和一个图书编号。
(4)程序执行的基本过程为:a)在所有操作之前,也就是加载操作菜单之前,先从文件中读取所有图书的信息,并存入一个数组中,此时数组可以定义为包含100个元素;b)然后根据菜单所进行的所有操作都是对当前数组进行操作,此时也就是对数组的查找、定位、添加、修改、删除操作;c)当退出系统的时候再将当前数组中的所有元素按照一本图书一行的方式写回图书信息文件中,此时注意选择覆盖方式,这样就可以将原来的所有数据覆盖,只保留最新的数据;当按行读取图书信息文件的时候,有可能最后一行只有一个回车,这时候实际上所读取的数据为空字符串,需要对此作判断,如果是空字符串,则说明已经没有人员,就必须将当前读入的空字符串写入数组中。
c语言通讯录管理系统课程设计报告

c语言通讯录管理系统课程设计报告报告标题:C语言通讯录管理系统课程设计报告1. 引言本报告旨在介绍并分析本次课程设计所涉及到的C语言通讯录管理系统的设计与实现过程。
2. 设计目标•开发一个功能完善的通讯录管理系统•实现基本的通讯录管理功能,包括添加、删除、查询、修改联系人信息等•提供良好的用户交互界面,方便用户使用该系统•提高系统的效率和稳定性,确保数据的安全性3. 系统设计概述本通讯录管理系统基于C语言开发,主要包括以下几个模块: - 用户管理模块:实现用户注册、登录、退出等功能 - 联系人管理模块:实现联系人的增删改查等功能 - 数据存储模块:使用文件系统进行数据的读写操作数据结构设计本系统使用了以下数据结构: - 用户结构体:包含用户名、密码等信息 - 联系人结构体:包含姓名、电话号码、地址等信息功能模块设计•用户管理模块:提供用户注册、登录、退出等功能•联系人管理模块:提供联系人的添加、删除、查询、修改等功能•数据存储模块:实现数据的读取与保存功能4. 实现细节用户管理模块•注册功能:获取用户输入的用户名和密码,存储到用户数据文件中•登录功能:根据用户输入的用户名和密码,从用户数据文件中验证登录信息•退出功能:退出当前用户,返回系统主界面联系人管理模块•添加联系人功能:获取用户输入的联系人信息,存储到联系人数据文件中•删除联系人功能:根据用户输入的联系人姓名,从联系人数据文件中删除对应的联系人信息•查询联系人功能:根据用户输入的关键词,从联系人数据文件中查找匹配的联系人信息•修改联系人功能:根据用户输入的联系人姓名,从联系人数据文件中修改对应的联系人信息数据存储模块•读取数据功能:从文件中读取用户和联系人的数据•保存数据功能:将用户和联系人的数据保存到文件中5. 测试与优化本系统在开发过程中进行了多次测试和优化,确保系统的稳定性和功能完善性。
通过模拟用户的操作,检测系统的响应速度、功能是否正常等,并对系统进行了性能调优和bug修复。
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语言课程设计通讯录管理系统课程设计报告一、教学目标本课程旨在通过学习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)。
C程序课程设计报告--手机通讯录管理系统**:**学院:珠宝学院学号:649班级:141082一课程设计目的和内容概述1.目的:加深对《C语言》课程所学知识的理解,进一步巩固C语言编程方法。
学会编制结构清晰、风格良好、数据结构适当的C语言程序,从而具备解决综合性实际问题的能力,加强动手能力。
2.内容:设计一个简易的手机通讯录管理系统。
该题目要求在熟练掌握C语言的基本知识:数据类型(整形、实型、字符型、指针、数组、结构等);运算类型(算术运算、逻辑运算、自增自减运算、赋值运算等);程序结构(顺序结构、判断选择结构、循环结构);大程序的功能分解方法(即函数的使用)等。
进一步掌握各种函数的应用,包括时间函数、、绘图函数,以及文件的读写操作等。
其中结构体,函数的调用,算法的设计是尤为重要的。
二题目手机通讯录管理系统。
[问题描述]该系统模拟手机通讯录管理系统,实现对手机中的通讯录进行管理[基本要求]要能提供以下几种功能:(1)查看功能:选择此功能时,列出下列三类选择:A:办公类B:个人类C:商务类(2)当选中某类时,显示出此类所有数据中的姓名和电话号码(3)添加数据功能:能录入新数据,每个结点包括:姓名,电话号码,分类(可能选项有:w为办公类p为个人类b为商务类),电子邮件。
例如:杨春商务类当录入重复的姓名和电话号码时,则提示数据录入重复并取消录入;当通讯录中超过15条信息时,存储空间已满,不能再录入新数据;录入的新数据能按递增的顺序自动进行条目编号。
(4)修改功能:选中某个人的姓名时,可对此人的相应数据进行修改。
(5)删除功能:选中某个人的姓名时,可对此人的相应数据进行删除,并自动调整后续条目的编号。
三程序设计1.总体设计首先,因为每个个体有多种信息,所以要建立结构体来储存和整合各个信息。
然后利用模块来分别实现程序的各个功能。
各个模块用函数来实现。
在通过通过主函数来判断输入字母,从而调动函数,实现所需功能。
最后将输入的文件保存在文件里,以便重复使用。
2.详细设计根据功能需要建立显示,添加,查看,删除,修改,保存五个模块。
在模块中通过调用各个函数来实现功能。
详细设计如下:(1)构建结构体,写入文件FILE *fp;int i;struct address{ char a[40]; um);printf("\n\t姓名-Name:%-20s",friends[j].name);printf("\n\t性别-kind:%s",friends[j].kind);printf("\n\t联系电话-Telephone:%-13ld",friends[j].telephone);printf("\n\temail-address:%-40s",friends[j].;}void Append(int j){system("cls");friends[j].num=j;printf("\n\t\t\t序号-Number : %d",j);printf("\n\t\t\t姓名-Name : ");scanf("%s",friends[j].name);printf("\t\t\t类别-kind : ");scanf("%s",&friends[j].kind);printf("\t\t\t联系电话-telephone : ");scanf("%ld",&friends[j].telephone);while(friends[j].telephone<0||friends[j].telephone>){printf("电话号码不合法!请重新输入: ");scanf("%ld",&friends[j].telephone);}printf("\t\t\temail-Address : ");scanf("%s",friends[j].;getchar();}void Delete(){int k;int j;system("cls");printf("\n\tDelete 序号-Number : ");scanf("%d",&k);if(k<=i){for(j=k;j<i+1;j++) /*插入位置后的元素顺序后移*/{strcpy(friends[j].name,friends[j+1].name); /*交换元素内容*/strcpy(friends[j].kind,friends[j+1].kind);friends[j].telephone=friends[j+1].telephone;strcpy(friends[j].,friends[j+1].;}i--;}else{printf("输入的序号太大!");}}void Modify(int j){system("cls");Append(j);}void Save(){int i,j;system("cls");printf("\n\n\t\t请耐心等待,信息正在保存!\n");printf("\n\n\n\n\t\t\tSaving");for(i=0;i<20;i++){Sleep(300);printf(".");}printf("\n\n信息已经保存成功!\n");fp=fopen("","w");for(j=1;j<=i;j++){fwrite(&friends[j],sizeof(struct ffriend),1,fp);}fclose(fp);}(3)主函数调用各个模块用switch语句判断输入者要使用的功能,然后调用函数,模块实现功能。
程序如下:void main(){int j;char a;char x;char grade;char searchkind[20];char searchname[20];i--;system("cls");do{printf("\n\n\t\t\t=========================================\n");printf("\t\t\t\t手机通讯录\n");printf("\t\t\t\t功能选择\n"); 看*\n");printf("\t\t\t B.增添*\n");printf("\t\t\t C.删除*\n");printf("\t\t\t D.查询*\n");printf("\t\t\t E.修改*\n");printf("\t\t\t F.保存*\n");printf("\t\t\t=========================================\n");printf("\t\t\n请选择(Choice)\n\n\t\t注:输入a~h或A~H的字母:");scanf("%c",&grade);switch(grade) 人类b.商务类w.办公类");scanf("%s",searchkind);for(j=0;j<=i;j++){if(strcmp(searchkind,friends[j].kind)==0){Show(j);}}getchar();break;case 'e':case 'E':printf("\n\t请输入要修改记录的相关姓名:");gets(searchname);scanf("%s",searchname);for(j=0;j<=i;j++){if(strcmp(searchname,friends[j].name)==0){Modify(j);}}if(i<1){ printf("\n 没有您所要修改的记录-No records");printf("\n 请按回车键继续!");getchar();getchar();}printf("\n\t\t\t\t\t\t\t此次操作结束");printf("\n\t------------------------------------------------------------\t\t\n");break;case 'f':case 'F':system("cls");Save();getchar();printf("\n\t\t\t\t\t\t\t此次操作结束");printf("\n\t------------------------------------------------------------\t\t\n");break;default:printf("\n\t输入有误,请输入正确的序列号!");printf("\n请按回车键继续!");getchar();printf("\n\t\t\t\t\t\t\t此次操作结束");printf("\n\t------------------------------------------------------------\t\t\n");}}while(1);}上述三部分实现整个程序的功能。
四程序源代码#include <>#include <>#include <>#include <>#include <>#include <>#include <>void Menu();FILE *fp;int i;struct address{ char a[40];};struct ffriend{ int num;char name[20];char kind[20];long telephone;struct address address;}friends[50];void Load(){int j;long k;fp=fopen("","a+");if(fp!=NULL){for(i=1;i<50;i++){j=fgetc(fp);if(j==EOF)return;k=i-1;fseek(fp,k*sizeof(struct ffriend),SEEK_SET);fread(&friends[i],sizeof(struct ffriend),1,fp);}}else{fp=fopen("","w");i=1;}system("cls");}void Show(int j){system("cls");printf("\n\n\t编号-Nnumber: %3d",friends[j].num);printf("\n\t姓名-Name:%-20s",friends[j].name);printf("\n\t性别-kind:%s",friends[j].kind);printf("\n\t联系电话-Telephone:%-13ld",friends[j].telephone);printf("\n\temail-address:%-40s",friends[j].;}void Append(int j){system("cls");friends[j].num=j;printf("\n\t\t\t序号-Number : %d",j);printf("\n\t\t\t姓名-Name : ");scanf("%s",friends[j].name);printf("\t\t\t类别-kind : ");scanf("%s",&friends[j].kind);printf("\t\t\t联系电话-telephone : ");scanf("%ld",&friends[j].telephone);while(friends[j].telephone<0||friends[j].telephone>) {printf("电话号码不合法!请重新输入: ");scanf("%ld",&friends[j].telephone);}printf("\t\t\temail-Address : ");scanf("%s",friends[j].;getchar();}void Delete(){int k;int j;system("cls");printf("\n\tDelete 序号-Number : ");scanf("%d",&k);if(k<=i){for(j=k;j<i+1;j++){strcpy(friends[j].name,friends[j+1].name);strcpy(friends[j].kind,friends[j+1].kind);friends[j].telephone=friends[j+1].telephone;strcpy(friends[j].,friends[j+1].;}i--;}else{printf("输入的序号太大!");}}void Modify(int j){system("cls");Append(j);}void Save(){int i,j;system("cls");printf("\n\n\t\t请耐心等待,信息正在保存!\n");printf("\n\n\n\n\t\t\tSaving");for(i=0;i<20;i++){Sleep(300);printf(".");}printf("\n\n信息已经保存成功!\n");fp=fopen("","w");for(j=1;j<=i;j++){fwrite(&friends[j],sizeof(struct ffriend),1,fp);}fclose(fp);}void main(){int j;char a;char x;char grade;char searchkind[20];char searchname[20];i--;system("cls");do{printf("\n\n\t\t\t=========================================\n");printf("\t\t\t\t手机通讯录\n");printf("\t\t\t\t功能选择\n");printf("\t\t\t=========================================\n");printf("\t\t\t A.查看*\n");printf("\t\t\t B.增添*\n");printf("\t\t\t C.删除*\n");printf("\t\t\t D.查询*\n");printf("\t\t\t E.修改*\n");printf("\t\t\t F.保存*\n");printf("\t\t\t=========================================\n");printf("\t\t\n请选择(Choice)\n\n\t\t注:输入a~h或A~H的字母:");scanf("%c",&grade);switch(grade){case 'a':case 'A': j=0;while(getchar()!=0x1b&&j<=i){Show(j++);printf("\n\n请按回车键继续!");}while(getchar()==0x1b||j>i){printf("\n\t空文档,无任何记录-Empty Note\n");printf("\n\n请按回车键继续!");getchar();break;}printf("\n\t\t\t\t\t\t\t此次操作结束");printf("\n\t------------------------------------------------------------\t\t\n");break;case 'b':case 'B':while(i<=50){i++;Append(i);printf("\t是否继续增加(y/n)");a=getchar();if(a=='n')break;}if(i==51)printf("\n\t文档已满,无法增加记录-note full");printf("\n\t\t\t\t\t\t\t此次操作结束");printf("\n\t------------------------------------------------------------\t\t\n");getchar();break;case 'c':case 'C':Delete();if(i<1)printf("\n没有记录-No records\n");printf("\n\n请按回车键继续!");getchar();getchar();printf("\n\t\t\t\t\t\t\t此次操作结束");printf("\n\t------------------------------------------------------------\t\t\n");break;case 'd':case 'D':system("cls");printf("\n\t请输入要查询记录的相关类别: p.个人类 b.商务类w.办公类"); ind)==0){Show(j);}}getchar();break;case 'e':case 'E':printf("\n\t请输入要修改记录的相关姓名:");gets(searchname);scanf("%s",searchname);for(j=0;j<=i;j++){if(strcmp(searchname,friends[j].name)==0){Modify(j);}}if(i<1){ printf("\n 没有您所要修改的记录-No records");printf("\n 请按回车键继续!");getchar();getchar();}printf("\n\t\t\t\t\t\t\t此次操作结束");printf("\n\t------------------------------------------------------------\t\t\n");break;case 'f':case 'F':system("cls");Save();getchar();printf("\n\t\t\t\t\t\t\t此次操作结束");printf("\n\t------------------------------------------------------------\t\t\n");break;default:printf("\n\t输入有误,请输入正确的序列号!");printf("\n请按回车键继续!");getchar();printf("\n\t\t\t\t\t\t\t此次操作结束");printf("\n\t------------------------------------------------------------\t\t\n");}}while(1);}五流程图六运行截图1 主界面:2 按顺序添加数据:3 按顺序查看:4 查询,输入要查询的类别:显示该种类的所有信息5 删除(按序号):6 修改,输入要修改的的人名:输入新的数据7 保存:七个人心得与总结这次课程设计是大学以来的第一次课程设计。