通讯录管理设计.docx
- 文档编号:10248215
- 上传时间:2023-02-09
- 格式:DOCX
- 页数:30
- 大小:20.36KB
通讯录管理设计.docx
《通讯录管理设计.docx》由会员分享,可在线阅读,更多相关《通讯录管理设计.docx(30页珍藏版)》请在冰豆网上搜索。
通讯录管理设计
通讯录管理系统
需求分析
具有数据的插入、修改、删除、显示和查询功能的电话簿管理程序。
(1) 数据包括:
人名、工作单位、电话号码和E-MAIL地址。
(2) 可对记录中的姓名和电话号码进行修改。
(3) 可增加和删除记录。
(4) 可显示所有的保存记录。
(5) 可按人名或电话号码进行查询。
[提示]
建议采用结构体数组和文件系统实现。
结构体成员包括人名、工作单位、电话号码和E-MAIL地址。
根据题目的要求程序应该采用结构体数组和文件系统实现。
应该有文件的操作功能;在程序中应该包括输入、显示、删除、查询、添加、修改、保存、加载和退出的功能。
详细设计
根据上面的分析,可以将程序系统的设计分为如下几个模块:
插入、显示、删除、查询、修改、保存和退出。
1、 主函数;
主函数一般设计得比较简洁,只提供输入,处理和输出部分的函数调用。
其中各功能模块用菜单方式选择。
【程序】
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");
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、 插入模块
此模块为插入信息模块,插入后再调用保存函数来保存所插入的数据,支持多条信息的插入。
流程图
【程序】
intInsert(Man*pMan,intSize) //插入模块
{
inti,n;
printf("\t\t***********请输入要插入数据的个数.************\n");
printf("\t\t**********************************************\n");
scanf("%d",&n);
for(i=0;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"); } returnSize+n; } 3、 显示模块 程序 voidDisplay(Man*pMan,intSize) //显示所有记录 { inti; printf("\t人名\t 工作单位\t 电话号码\t E-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、 查找模块 本模块分为按姓名查找和按电话查找两个子模块。 4.1按姓名查找模块 【程序】 voidS_asname(Man*pMan,intSize) //查找信息 { inti=0; charname[8]; printf("\t\t***********请输入要查询信息的姓名: ***********\n"); printf("\t\t**********************************************\n"); scanf("%s",name); while(i { pMan++; i++; } if(! strcmp(pMan->Name,name))//找到后输出 { printf("\t\t***************查到的信息为: ***************\n"); printf("\t*************************************************************\n"); printf("\t人名\t 工作单位\t 电话号码\t E-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"); } } 4.2按电话查找模块,此模块与按姓名查找模块相似,流程图略。 程序 voidS_astel(Man*pMan,intSize) //按电话查找模块 { inti=0; chartel[12]; printf("\t\t***********请输入要查询信息的电话: ************\n"); printf("\t\t**********************************************\n"); scanf("%s",tel); while(i { pMan++; i++; } if(! strcmp(pMan->TEL,tel)) //输出找到的信息 { printf("\t\t****************查到的信息为: ****************\n"); printf("\t*******************************************************\n"); printf("\t人名\t 工作单位\t 电话号码\t E-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函数。 其流程图如下: 程序 voidDelete(Man*pMan,intSize)//删除信息 { charname[8],control; inti=0; printf("\t\t***********请输入要删除信息的姓名: ***********\n"); printf("\t\t**********************************************\n"); scanf("%s",name); while(i { pMan++; i++; } if(! strcmp(pMan->Name,name))//找到了,删除信息! 做出判断. { printf("您要删除的信息为: \n"); printf("%s\t\t%s\t%s\t%s\n",pMan->Name,pMan->Depart,pMan->TEL,pMan->Email); printf("是否确认删除? (Y/N)\n"); scanf("%s",&control); switch(control) { case'y': pMan->Name[0]='\0'; pMan->Depart[0]='\0'; pMan->TEL[0]='\0'; pMan->Email[0]='\0'; if(Save(pMan,Size))//将新信息写入文件 { printf("\t\t**************恭喜! 信息删除成功! **************\n");; printf("\t\t**********************************************\n");break; } else { printf("\t\t************操作失败,请稍后再试! *************\n"); printf("\t\t**********************************************\n");break; } case'n': printf("信息未删除! \n");break; default: printf("选择有误! \n");break; } } else { printf("\t\t*********抱歉,没有找到相关信息! *********\n"); printf("\t\t******************************************\n"); } } 6、 修改模块 此模块先调用查找函数查找到所要修改的信息,然后用户根据需要来修改信息。 流程图如下: 程序 voidModify(Man*pMan,intSize) //修改模块 { voidDisplay(); inti=0; charname[8]; chardepart[20]; chartel[12]; charemail[30]; printf("\t\t************输入要修改信息的姓名: ************\n"); printf("\t\t**********************************************\n"); scanf("%s",name); while(i { pMan++; i++; } if(! strcmp(pMan->Name,name))//如果找到,则开始修改 { printf("请输入修改后的姓名: \n"); scanf("%s",name); strcpy(pMan->Name,name); printf("请输入修改后的工作单位: \n"); scanf("%s",depart); strcpy(pMan->Depart,depart); printf("请输入修改后的电话号码: \n"); scanf("%s",tel); strcpy(pMan->TEL,tel); printf("请输入修改后的E-mail地址: \n"); scanf("%s",email); strcpy(pMan->Email,email); if(Save(pMan,Size)) //将修改信息写入文件,并判断是否写入成功 { printf("\t\t**************恭喜! 信息修改成功! **************\n");; printf("\t\t**********************************************\n"); } else { printf("\t\t*************操作失败,请稍后再试! *************\n"); printf("\t\t**********************************************\n"); } } else { printf("\t\t************抱歉,没有找到相关信息! ************\n"); printf("\t\t***********************************
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 通讯录 管理 设计