通讯录管理系统-C语言课程设计

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

C语言课程设计:通讯录管理系统C语言课程设计-1-目录一、需求分析………………………………………………………2二、概要设计………………………………………………………2三、详细设计………………………………………………………3四、上机操作………………………………………………………14五、实习心得………………………………………………………19六、源程序………………………………………………………20C语言课程设计-2-一、需求分析具有数据的插入、修改、删除、显示和查询功能的电话簿管理程序。(1)数据包括:人名、工作单位、电话号码和E-MAIL地址。(2)可对记录中的姓名和电话号码进行修改。(3)可增加和删除记录。(4)可显示所有的保存记录。(5)可按人名或电话号码进行查询。[提示]建议采用结构体数组和文件系统实现。结构体成员包括人名、工作单位、电话号码和E-MAIL地址。根据题目的要求程序应该采用结构体数组和文件系统实现。应该有文件的操作功能;在程序中应该包括输入、显示、删除、查询、添加、修改、保存、加载和退出的功能。二、概要设计根据上面的分析,可以将程序系统的设计分为如下几个模块:插入、显示、删除、查询、修改、保存和退出。通讯录管理系统插入显示删除查询保存修改退出C语言课程设计-3-三、详细设计1、主函数;主函数一般设计得比较简洁,只提供输入,处理和输出部分的函数调用。其中各功能模块用菜单方式选择。流程图NY【程序】intmain()//主函数{Manman[500],*pman=man;;charcontrol;intsize;printf(\t\t**********************************************\n);//窗口初始化printf(\t\t**********欢迎使用通讯录管理系统!***********\n);printf(\t\t*--------------------------------------------*\n);printf(\t\t*请按回车键继续!*\n);printf(\t\t**********************************************\n);开始显示一系列功能选项输入n,判断是否是0~6根据n的值调用各功能模块函数结束C语言课程设计-4-scanf(%c,&control);if(control){size=Scan(pman);//判断文件是否存在printf(\t\t\t请输入相应操作数操作\n);for(;;)//菜单生成{printf(\t\t**********************************************\n);printf(\t\t*1--插入信息*\n);printf(\t\t*2--按姓名查找*\n);printf(\t\t*3--按电话查找*\n);printf(\t\t*4--删除信息*\n);printf(\t\t*5--显示信息*\n);printf(\t\t*6--修改信息*\n);printf(\t\t*0--退出系统*\n);printf(\t\t**********************************************\n);scanf(%s,&control);switch(control){case'1':size=Insert(pman,size);break;//插入新的通讯录case'2':S_asname(pman,size);break;//按姓名查找case'3':S_astel(pman,size);break;//按电话查找case'4':Delete(pman,size);break;//删除信息case'5':Display(pman,size);break;//显示所有信息case'6':Modify(pman,size);break;//修改信息case'0':printf(**************谢谢使用!再见!**************\n);//退出系统return0;default:printf(**********输入数字有误,请重新输入**********\n);break;}}}return0;}2、插入模块此模块为插入信息模块,插入后再调用保存函数来保存所插入的数据,支持多条信息的插入。流程图C语言课程设计-5-【程序】intInsert(Man*pMan,intSize)//插入模块{inti,n;printf(\t\t***********请输入要插入数据的个数.************\n);printf(\t\t**********************************************\n);scanf(%d,&n);for(i=0;in;i++)//从键盘输入数据再写入文件{printf(您将要录入第%d条记录(共有%d条)\n,i+1,n);printf(请输入姓名:\n);scanf(%s,&pMan[Size+i].Name);printf(请输入工作单位:\n);scanf(%s,&pMan[Size+i].Depart);printf(请输入电话号码:\n);scanf(%s,&pMan[Size+i].TEL);printf(请输入Email地址:\n);scanf(%s,&pMan[Size+i].Email);}if(Save(pMan,Size+n)){printf(\t\t***********恭喜!数据插入成功!***********\n);}else{printf(\t\t***********操作失败,请稍后再试!***********\n);开始输入要插入的记录个数ni从0到n-1调用Insert函数i!=0吗?返回主菜单保存调用Save函数结束NYYC语言课程设计-6-}returnSize+n;}3、显示模块此模块为显示所有记录,流程图如下:【程序】voidDisplay(Man*pMan,intSize)//显示所有记录{inti;printf(\t人名\t工作单位\t电话号码\tE-mail地址\n);printf(\t************************************************************\n);for(i=0;i=Size;i++,pMan++)//依次输出文件中的信息{printf(\t%s\t\t%s\t%s\t%s\n,pMan-Name,pMan-Depart,pMan-TEL,pMan-Email);printf(\t-----------------------------------------------------------\n);}}4、查找模块选择显示功能显示所有记录自动返回主菜单C语言课程设计-7-本模块分为按姓名查找和按电话查找两个子模块。4.1按姓名查找模块,流程图如下:【程序】voidS_asname(Man*pMan,intSize)//查找信息{inti=0;charname[8];printf(\t\t***********请输入要查询信息的姓名:***********\n);printf(\t\t**********************************************\n);scanf(%s,name);while(iSize&&strcmp(pMan-Name,name))//查找{pMan++;i++;}if(!strcmp(pMan-Name,name))//找到后输出{printf(\t\t***************查到的信息为:***************\n);printf(\t*************************************************************\n);printf(\t人名\t工作单位\t电话号码\tE-mail地址\n);printf(\t*************************************************************\n);printf(\t%s\t\t%s\t%s\t%s\n,pMan-Name,pMan-Depart,pMan-TEL,pMan-Email);printf(\t*************************************************************\n);}提示没有找到显示找到的记录结束,返回主菜单NY开始输入姓名是否找到此姓名C语言课程设计-8-else{printf(\t\t***********抱歉,没有找到相关数据************\n);printf(\t\t**********************************************\n);}}4.2按电话查找模块,此模块与按姓名查找模块相似,流程图略。【程序】voidS_astel(Man*pMan,intSize)//按电话查找模块{inti=0;chartel[12];printf(\t\t***********请输入要查询信息的电话:************\n);printf(\t\t**********************************************\n);scanf(%s,tel);while(iSize&&strcmp(pMan-TEL,tel))//查找信息{pMan++;i++;}if(!strcmp(pMan-TEL,tel))//输出找到的信息{printf(\t\t****************查到的信息为:****************\n);printf(\t*******************************************************\n);printf(\t人名\t工作单位\t电话号码\tE-mail地址\n);printf(\t*******************************************************\n);printf(\t%s\t\t%s\t%s\t%s\n,pMan-Name,pMan-Depart,pMan-TEL,pMan-Email);printf(\t*******************************************************\n);}else{printf(\t\t************抱歉,没有找到相关数据************\n);printf(\t\t**********************************************\n);}}5、删除模块此模块先利用查找模块找到所要删除的信息,然后根据用户的选择来确定是否删除信息,此种调用到Save函数。其流程图如下:C语言课程设计-9-【程序】voidDelete(Man*pMan,intSize)//删除信息{charname[8],control;inti=0;printf(\t\t***********请输入要删除信息的姓名:***********\n);printf(\t\t**********************************************\n);scanf(%s,name);while(iSize&&strcmp(pMan-Name,name))//同查找,找到后跳出{pMan++;i++;}if(!strcmp(pMan-Name,name))//找到了,删除信息!做出判断.{printf(您要删除的信息为:\n);printf(%s\t\t%s\t%s\t%s\n,pMan-Name,pMan-Depart,pMan-

1 / 28
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功