《C语言课程设计.doc》由会员分享,可在线阅读,更多相关《C语言课程设计.doc(9页珍藏版)》请在金锄头文库上搜索。
1、.C语言课程设计:通讯录管理系统目录 一、 需求分析2二、 概要设计2三、 详细设计3四、 上机操作14五、 实习心得19六、 源程序 20一、需求分析 具有数据的插入、修改、删除、显示和查询功能的电话簿管理程序。(1) 数据包括:人名、工作单位、电话号码和E-MAIL地址。(2) 可对记录中的姓名和电话号码进行修改。(3) 可增加和删除记录。(4) 可显示所有的保存记录。(5) 可按人名或电话号码进行查询。提示 建议采用结构体数组和文件系统实现。结构体成员包括人名、工作单位、电话号码和E-MAIL地址。根据题目的要求程序应该采用结构体数组和文件系统实现。应该有文件的操作功能;在程序中应该包括
2、输入、显示、删除、查询、添加、修改、保存、加载和退出的功能。二、概要设计根据上面的分析,可以将程序系统的设计分为如下几个模块:插入、显示、删除、查询、修改、保存和退出。 通讯录管理系统插入显示删除查询保存修改退出三、详细设计1、 主函数;主函数一般设计得比较简洁,只提供输入,处理和输出部分的函数调用。其中各功能模块用菜单方式选择。 流程图输入n,判断是否是06开始显示一系列功能选项N根据n的值调用各功能模块函数结束Y【程序】int main() /主函数Man man500,*pman=man;char control;int size;printf(tt*n); /窗口初始化 printf(
3、tt* 欢迎使用通讯录管理系统! *n); printf(tt*-*n); printf(tt* 请按回车键继续! *n); printf(tt*n); scanf(%c,&control);if(control)size=Scan(pman); /判断文件是否存在printf(ttt请输入相应操作数操作n);for(;) /菜单生成printf(tt*n); printf(tt* 1-插入信息 *n); printf(tt* 2-按姓名查找 *n); printf(tt* 3-按电话查找 *n); printf(tt* 4-删除信息 *n); printf(tt* 5-显示信息 *n); p
4、rintf(tt* 6-修改信息 *n); printf(tt* 0-退出系统 *n); printf(tt*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; /显示所有
5、信息 case 6: Modify(pman,size);break; /修改信息 case 0: printf(*谢谢使用!再见!*n); /退出系统return 0;default: printf(*输入数字有误,请重新输入*n);break;return 0;2、 插入模块 此模块为插入信息模块,插入后再调用保存函数来保存所插入的数据,支持多条信息的插入。 流程图 开始输入要插入的记录个数ni从0到n-1调用Insert函数i!=0吗?返回主菜单保存调用Save函数结束NYY【程序】int Insert(Man * pMan,int Size) /插入模块int i,n;printf(t
6、t*请输入要插入数据的个数.*n); printf(tt*n);scanf(%d,&n);for(i=0;in;i+) /从键盘输入数据再写入文件 printf(您将要录入第%d条记录(共有%d条)n,i+1,n);printf(请输入姓名:n);scanf(%s,&pManSize+i.Name);printf(请输入工作单位:n);scanf(%s,&pManSize+i.Depart);printf(请输入电话号码:n); scanf(%s,&pManSize+i.TEL); printf(请输入Email地址:n); scanf(%s,&pManSize+i.Email);if(Sav
7、e(pMan,Size+n)printf(tt* 恭喜!数据插入成功! *n);elseprintf(tt* 操作失败,请稍后再试 !*n);return Size+n;3、 显示模块此模块为显示所有记录,流程图如下:选择显示功能显示所有记录自动返回主菜单【程序】void Display(Man * pMan,int Size) /显示所有记录int i;printf(t人名t 工作单位t 电话号码t E-mail地址n);printf(t*n);for(i=0;iName,pMan-Depart,pMan-TEL,pMan-Email); printf(t-n);4、 查找模块本模块分为按姓
8、名查找和按电话查找两个子模块。4.1按姓名查找模块,流程图如下:是否找到此姓名输入姓名开始提示没有找到显示找到的记录结束,返回主菜单NY【程序】void S_asname(Man * pMan,int Size) /查找信息int i=0;char name8;printf(tt*请输入要查询信息的姓名:*n); printf(tt*n);scanf(%s,name);while(iName,name)/查找pMan+; i+;if(!strcmp(pMan-Name,name)/找到后输出printf(tt*查到的信息为: *n); printf(t*n); printf(t人名t 工作单位t 电话号码t E-mail地址n); printf(t*n); printf(t%stt%s