《C语言通讯录管理系统》
- 1 -
通讯录管理系统
学生姓名: 学院:计算机与通信工程学院 班级:班 学号:
摘 要 本课程设计主要是一个简单的通讯录管理系统。通过程序中的菜单编号实现对数据的添加、修改、删除等操作。在本课程设计中,系统开发平台为Windows2000,程序设计语言为C语言,程序运行平台为Windws 98/2000/XP。在程序设计中采用了结构体、链表的方法实现对数据的操作。程序通过调试运行,初步实现了设计目标,不过还需要很多的完善。
关键词 程序设计; 通讯录; C语言; 1 引 言
对于日常生活中的人们来说,通讯录管理系统是一个非常重要,并且非常实用的工具。有了通讯录系统,人们就不用再为记不住熟人们的号码等联系方式而烦恼了,增进了人们之间的联系,让人们更加方便与朋友亲人联系了。
1.1课题背景
通讯管理系统是一个很实用的系统,不仅在人们用的手机中扮演着重要的角色,在各大商业与企业的运作中也起着非常大的作用。想当初没有电子通讯录系统,人们要花很多时间去记住联系人的联系方式,而且有时候还会弄错,导致一些不必要的尴尬,有了电子通讯录系统自然记不住的问题迎刃而解了。本系统只是实现了一个简单的通讯管理,通过对数组,结构体,链表,以及各个模块的应用达到一个管理的功能。
1.2课程设计目的 《C语言通讯录管理系统》
- 2 - C语言现在是一个应用比较广泛的语言,通过对程序的设计让我们能更好的学习和了解它的各个方面的应用,对我们今后的学习有很大的帮助。同时,在做程序的过程中锻炼了我们对程序的分析与编写能力,更锻炼了我们的实战能力,为我们以后在自己的专业取得更好的成就做了一个好的铺垫。
1.3课程设计内容
本课程设计是一个通讯录管理系统,可以实现简单的插入、删除、添加等功能。
信息的输入 修改数据 出
通讯录管理系统 删除数据 添加数据 图1-3通讯录管理系统 2 设计思路与方案 《C语言通讯录管理系统》 - 3 - 2.1设计思路
该个人通讯录管理系统是一个对数据进行管理修改的简单系统,首先做出一个主菜单界面供用户选择需要的操作,再用各个模块来实现菜单中各单独功能的实现,例如修改数据、插入数据、添加数据等。最后写一个主函数调用模块和函数实现通讯录菜单中的各功能。 2.2操作流程图
输入界面的相应操作序号 添加通讯录数据 显示新增完成 图2-1操作流程 3 详细实现
《C语言通讯录管理系统》 - 4 - 3.1查看联系人
进入菜单后选择查看联系人序号,再选择查看联系人的类型,即可列出该类型的所有联系人。如图3-1所示。
选择查看联系人的序号 选择查看联系人所属类型 显示所选类型的所有联系人 图3-1查看联系人 实现此功能的代码如下:
void output(struct phone_info *head) { struct phone_info *p1=head,*p2; system(\清屏
if(head==NULL) //如果当前链表头指针为空 {
printf(\当前没有任何联系人信息\\n\\n\system( \return; //返回 }
printf(\电话联系薄(共%d条信息)\\n\\n\for(;;) {
p2=p1->next;
printf(\姓名:%s\\n\printf(\电话:%s\\n\
if(p1->type=='A'||p1->type=='a') printf(\类别:办公类\\n\
else if(p1->type=='B'||p1->type=='b') printf(\类别:个人类\\n\else
printf(\类别:商务类\\n\printf(\邮箱:%s\\n\printf(\
if(p1->next==NULL) //如果当前指针所指向的结构体中next指向空则链 《C语言通讯录管理系统》 - 5 - 表输出完毕 break; //返回 p1=p2; } }
3.2新增联系人
进入菜单后选择添加序号按要求依次输入姓名、电话、类别、电 子邮箱。如图3-2所示。 选择新增联系人序号 按照提示依次输入要求的内容 显示添加联系人成功 图3-2新增联系人 实现此功能的代码如下:
struct phone_info *new_info(struct phone_info *head)//新增 { struct phone_info *p1,*p2,*p; char c; int flag;
system(\清屏 for(;;) {
if(n==15) //判断当前联系人数目是否超过系统限制 {
printf(\存储空间已满,不能再录入新数据!\\n\\n\system( \return head; }
if(n==0) //判断当前联系人数目是否为0 {
《C语言通讯录管理系统》 - 6 -
head=p1=p2=(struct phone_info *)malloc(sizeof(struct phone_info)); //新建结构体 并将结构体指针赋予链表头指针 p1->next=NULL; } else { p1=head;