基于c语言的通讯录管理系统设计与实现 Document number【AA80KGB-AA98YT-AAT8CB-2A6UT-A18GG】《高级语言程序设计》——基于c语言的通讯录管理系统的设计与实现姓名:王炳旭学号: 1216F0610119指导老师:孟芸系别:信息工程系专业班级:计科F1201班《高级语言程序设计》课程设计任务书设计内容及要求:1.设计内容输入功能:记录信息并保存文件中。
显示功能:输出文件中所有信息。
查找功能:查询所需通讯信息。
删除功能:删除无用信息。
2.设计要求建立通讯录信息,信息包含姓名、性别、班级、电话,保存在文件中;能够输出文件中所有通讯录信息。
能够提供按姓名、班级或性别查询信息;能够提供按姓名删除通讯录信息的功能;时间安排:九月:选择自己所要设计的程序,查阅书籍、网上查询,收集所需资料解决疑惑。
十月:开始编写程序,不断分析。
十一月:代码实现,程序能够运行。
十二月:写报告,完成课程设计。
《高级语言程序设计》课程设计教师评阅成绩表《高级语言程序设计》课程设计承诺书目录1.引言----------------------------------------------------------------------- 21.1设计内容------------------------------------------------------------- 21.2设计任务及具体要求--------------------------------------------------- 21.3系统环境------------------------------------------------------------- 32.总体设计------------------------------------------------------------------- 32.1系统功能简介--------------------------------------------------------- 32.2总体程序框图--------------------------------------------------------- 32.3各个模块之间的主要关系----------------------------------------------- 43.详细设计------------------------------------------------------------------- 43.1各个模块的程序流程图及运行界面--------------------------------------- 43.2关键代码分析说明----------------------------------------------------- 83.3程序使用说明--------------------------------------------------------- 94.总结----------------------------------------------------------------------- 9致谢------------------------------------------------------------------------- 9参考文献--------------------------------------------------------------------- 9附录------------------------------------------------------------------------ 101.引言当今时代,计算机已经成为人们生活中不可或缺的一部分,它打破了地域时间限制,改变了人们的工作和生活方式。
通讯录系统能方便用户的需求,满足用户迅速、准确的查找修改或者删除联系人信息,把各个联系人信息以文档保存。
本文介绍了简易通讯录管理系统在VC++6.0环境下的实现过程:系统的分析,功能模块的设计,系统的流程图及运行界面。
此系统的主要管理的信息由:联系人的姓名、班级、性别、电话号码,加深对c++语言程序设计的理解,提高算法设计的能力,锻炼编程的能力。
用c++语言编程一个通讯录管理系统软件,要求能实现通讯录管理系统中的增加信息,删除信息,显示通讯里的所有信息,按名字查询信息,保存通讯录,退出系统。
1.1设计内容通讯录管理系统设计内容:输入功能:记录信息并保存文件中。
显示功能:输出文件中所有信息。
查找功能:查询所需通讯信息。
删除功能:删除无用信息。
1.2设计任务及具体要求1.设计任务:自学C语言中相关知识,设计出通讯录管理系统。
2.设计要求:建立通讯录信息,信息包含姓名、性别、班级、电话,保存在文件中;能够输出文件中所有通讯录信息。
能够提供按姓名、班级或性别查询信息;能够提供按姓名删除通讯录信息的功能;时间安排:九月:选择自己所要设计的程序,查阅书籍、网上查询,收集所需资料解决疑惑。
十月:开始编写程序,不断分析。
十一月:代码实现,程序能够运行。
十二月:写报告,完成课程设计。
1.3系统环境VC++6.02.总体设计2.1系统功能简介该通讯录管理系统分为以下四个功能:1.输入功能:可以添加通讯录记录,选择添加人数,依次输入姓名、班级、性别、电话号码后,提示信息保存成功,按任意键会返回主菜单。
2.显示功能:可以输出所有通讯录里的记录。
3.查找功能:可以选择姓名、班级、性别三种方式查询信息。
所输入信息不存在时,提示该信息不存在,返回主菜单。
4.删除功能:在显示的所有通讯录信息里,输入要删除通讯录信息的姓名,即删除成功。
5.退出:结束运行,退出程序。
2.2总体程序框图该通讯录系统共有四个功能模块。
打开程序之后,先进入主菜单,根据需求选择功能,分别有输入、显示、查找、删除。
输入功能可以添加通讯录记录,选择添加人数,依次输入姓名、班级、性别、电话号码。
显示功能可以输出所有通讯录里的记录。
查找功能可以选择姓名、班级、性别三种方式查询信息。
删除功能可以删除无用的信息。
图2-1 总流程图2.3各个模块之间的主要关系该系统用下面四个功能模块编写,每个模块执行不同的功能,体现了模块化设计的思想。
下面四个模块都是利用C语言文件,向文件中追加数据、读取、查询数据和删除数据。
输入:用fopen()建立一个文本文件,然后用fwrite()向其中输入数据,再用fclose()函数关闭并保存文件。
显示:通过循环依次输出文件中的数据,即输出所有通讯录里的信息。
查找:为了满足用户的实际需求,设计了三种查询方式,可以用姓名、性别、班级三种方式查找通讯录记录。
这里用到strcmp()函数,通过比较字符串是否相同来判别是否找到相关信息,找到后,就把文件中的数据赋给对应的变量,再把变量所带的值输出到屏幕上。
删除:输入你要删除的人的姓名后,系统会自动删除文件中的记录。
3.详细设计3.1各个模块的程序流程图及运行界面1.输入模块在主菜单选择1,进入输入界面,按显示输入记录人数和信息,信息有姓名、班级、性别、电话号码,数据可以自动从内存保存到文件中。
如图 3.1-2。
显示信息保存成功后,输入任意键返回主菜单。
图3-1 输入流程图图3-2 输入运行界面2.显示模块用户进入显示功能,显示功能利用循环显示文件中所有信息,所有信息显示成功后,会提示所有信息显示成功,若文件中没有信息,显示信息不存在,输入任意键可以返回主菜单。
如图3-3。
图3-3 显示流程图图3.1-4 显示运行界面3.查找模块进入查找界面,选择要查找信息的方式,有姓名、班级、姓名。
输入条件,用strcmp()函数通过比较字符串是否相同来判别是否找到相关信息,找到则显示此所有信息,未找到显示“该信息不存在”。
如下图3-5。
输入任意键可以返回主菜单。
图3-5 查找流程图根据班级查找信息:图3-6根据性别查找信息:图3-7根据姓名查找信息:图3-84.删除模块在主菜单选择4,进入删除功能,根据自动显示的文件中的所有信息,输入要删除信息的姓名,就可以在文件中永久删除此信息,若删除成功显示删除信息成功。
如下图3-9。
图3-9 删除流程图图3-10 删除运行界面3.2关键代码分析说明1.结构体的创建:结构体(structure)是一个或多个相同数据类型或不同数据类型的变量集合在一个名字下的用户自定义说明。
为了增强程序的可读性,使程序更简洁,c程序员经常用typedef为结构体类型定义一个更简单、直观、有意义和可读性更好的别名。
typedef struct address{char name[20];/* 姓名 */char clas[20];/*班级 */char sex[10];/* 性别 */char tel[20]; /* 电话号码 */}ADDRESS;/*结构体*/ADDRESS adr[N],temp[N];起初我创建结构体是typedef struct address{}ADDRESS adr[N];这是错误的,没有真正明白结构体的知识。
通过我上网查询,除了上边的一种方法,还可以struct address{};typedef struct address ADDRESS;ADDRESS adr[N];typedef是把结构名重命,换成一个简单的。
2.文件打开文件if((fp=fopen("f:\\通讯录.txt","r"))==NULL){printf("打开文件失败!请按任意键返回主菜单!\n");scanf("%s",&q);system("cls");main();}读取文件while(!feof(fp)){fread(&temp[m],sizeof(ADDRESS),1,fp);m++;}关闭文件fclose(fp);这是一个重要的知识点,也是我最弱的一点,我通过询问我的指导老师学会并掌握。
我们要把信息从内存保存到文件中,再从文件中把信息读取到内存,只有在内存中才可以修改信息。
fp=fopen("f:\\通讯录.txt","a");文件名字和文件地点可以自己设置。
a是添加的意思,不清除文件中本有的信息,w则是重写文件中的信息。
3.3程序使用说明随着网络与信息技术的发展,人们的联系人越来越多,需要联系的人逐渐增多,需要记录的信息也逐渐增多。
以前是将这些信息手写到通讯录中,这很容易造成信息的丢失,而且查找起来很不方便。