




已阅读5页,还剩13页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1.需求分析根据题目要求,通讯录保存在文件中,要提供文件的输入和输出功能;还有就是要提供通讯录添加(个人信息包括姓名、学号、年龄、住址、电子邮件等)、删除、显示、修改等基本功能。2.概要设计系统总体设计是信息的输入、信息的编辑和退出。系统功能模块如下:1. 添加通讯录;2. 输出通讯录;3. 查找通讯录;4. 修改通讯录;5. 删除通讯录;6. 退出通讯录;3.详细设计1.通讯录里无信息,所以要添加信息。用键盘逐个输入通讯录里联系人的信息。YN开始新建联系人是否继续添加联系人?结束2.输出通讯录用于让使用者观看通讯录里所有的信息。开始输出所有联系人信息结束3.查找通讯录是让使用者可以通过电话或姓名来查找通讯录里的联系人。开始按姓名查找按号码查找结束4.修改通讯录是让使用者通过姓名查找到通讯录里的联系人,然后 其作出修改。开始输入姓名查找联系人选择要修改的信息是否继续修改其它联系人结束YN5.删除通讯录是用来按照联系人的姓名或电话来单独删除通讯录中一些不想要的联系人。还可以集体删除通讯录中的联系人。开始删除单人按姓名删除按电话删除删除集体结束6.退出通讯录系统。4.主要源程序代码#include #include #include #include struct record char name20;char age20; char phone20; char adress40; char number30;char e_mail20; contact500; int NO=0;FILE *fp; void mainmenu(); void newrecord();void browsemenu();void searchmenu(); void searchname(); void searchphone();void modifymenu(); void deletemenu();void deleteall(); void deletesingle();void deletename();void deletephone();int loadfile(); void savefile(); void main() printf(ntt :)欢迎使用通讯录管理系统beta);printf(ntt文件导入中请稍后nnnnn); system(cls);loadfile();while (1) mainmenu(); void mainmenu() char choice; system(cls); printf(ntt* 主菜单 *); printf(ntt* 1-新建菜单 *); printf(ntt* 2-浏览菜单 *);printf(ntt* 3-查找菜单 *); printf(ntt* 4-修改菜单 *);printf(ntt* 5-删除菜单 *); printf(ntt* 6-退 出 *); printf(ntt*); printf(ntt请选择:); choice=getch(); switch (choice) case 1:newrecord();break; case 2:browsemenu();break; case 3:searchmenu();break; case 4:modifymenu();break; case 5:deletemenu();break;case 6:exit(0);default:mainmenu(); void newrecord() printf(ntt* 请输入联系人信息 *n); printf(ntt输入姓名:); scanf(%s,&contactNO.name);printf(ntt输入年龄:); scanf(%s,&contactNO.age); printf(ntt输入电话号码:); scanf(%s,&contactNO.phone);printf(ntt输入家庭住址:); scanf(%s,&contactNO.adress);printf(ntt输入学号:); scanf(%s,&contactNO.number);printf(ntt输入电子邮件:); scanf(%s,&contactNO.e_mail);NO+;savefile(); printf(ntt是否继续添加?(y/n):); if (getch()=y) newrecord();return; void browsemenu() int i; system(cls); if(NO!=0) printf(ntt* 以下为通讯录所有信息*); for (i=0;iNO;i+) printf(ntt姓 名: %s,);printf(ntt年 龄: %s,contacti.age); printf(ntt联系电话: %s,contacti.phone); printf(ntt家庭住址: %s,contacti.adress); printf(ntt 学 号: %s,contacti.number);printf(ntt电子邮件: %s,contacti.e_mail); printf(tt); if (i+1NO) printf(ntt_); system(pause); printf(ntt*); else printf(ntt通讯录中无任何纪录); printf(ntt按任意键返回主菜单:); getch(); return; void searchmenu() char choice; system(cls); printf(ntt* 查找菜单 *); printf(ntt* 1-按姓名查找 *); printf(ntt* 2-按电话查找 *); printf(ntt* 3-返回主菜单 *); printf(ntt*); printf(ntt请选择:); choice=getch(); switch (choice) case 1:searchname();break; case 2:searchphone();break; case 3:mainmenu();break; void searchname() int mark=0; int i; int a=0;char name20; printf(ntt* 按姓名查找 *); printf(ntt请输入姓名:); scanf(%s,name); for(i=a;iNO;i+) if (strcmp(,name)=0) printf(ntt* 以下是您查找的联系人信息 *); printf(ntt姓 名: %s,);printf(ntt年 龄: %s,contacti.age); printf(ntt联系电话: %s,contacti.phone);printf(ntt家庭住址: %s,contacti.adress); printf(ntt 学 号: %s,contacti.number);printf(ntt电子邮件: %s,contacti.e_mail); printf(ntt*);printf(ntt按任意键返回主菜单:); mark+; getch(); return; return;if(mark=0) printf(ntt没有该姓名的联系人纪录); printf(ntt按任意键返回主菜单); getch(); return; void searchphone() int mark=0; int i; int a=0; char phone10; printf(ntt* 按电话查找 *); printf(ntt请输入电话:); scanf(%s,phone); for(i=0;iNO;i+) if (strcmp(contacti.phone,phone)=0) printf(ntt* 以下是您查找的联系人信息 *); printf(ntt姓 名: %s,);printf(ntt年 龄: %s,contacti.age); printf(ntt联系电话: %s,contacti.phone); printf(ntt家庭住址: %s,contacti.adress); printf(ntt 学 号:%s,contacti.number);printf(ntt电子邮件: %s,contacti.e_mail); printf(ntt*); printf(ntt按任意键返回主菜单:); mark+; getch(); return; if (mark=0) printf(ntt没有该联系人信息); printf(ntt按任意键返回主菜单); getch(); return; void modifymenu() int mark=0; int i,k; int a=0;int t=0;char choice;char name20;struct record modify;system(cls);printf(ntt请输入您要修改的姓名:); scanf(%s,name); for(i=a;iNO;i+) if (strcmp(,name)=0) k=i;mark=1;modify=contacti;printf(ntt* 以下是您将修改的联系人信息 *); printf(ntt姓 名: %s,);printf(ntt年 龄: %s,contacti.age); printf(ntt联系电话: %s,contacti.phone);printf(ntt家庭住址: %s,contacti.adress); printf(ntt 学 号: %s,contacti.number);printf(ntt电子邮件: %s,contacti.e_mail); printf(ntt是否继续?y/n);if(getch()=n) modifymenu(); else printf(ntt选择您要修改的选项:); printf(nttt(1).姓 名);printf(nttt(2).年 龄); printf(nttt(3).联系电话); printf(nttt(4).家庭住址); printf(nttt(5). 学 号);printf(nttt(6).电子邮件); printf(nttt(7).返 回); printf(ntt请选择: ); choice=getch(); switch(choice) case 1: printf(姓 名:); scanf(%s,); break;case 2: printf(年 龄:); scanf(%s,contacti.age); break; case 3: printf(联系电话:); scanf(%s,contacti.phone); break; case 4: printf(家庭住址:); scanf(%s,contacti.adress); break;case 5: printf( 学 号:); scanf(%s,contacti.number); break;case 6: printf(电子邮件:); scanf(%s,contacti.e_mail); break; case 7: mainmenu(); break; default: modifymenu(); printf(ntt您的修改结果为:);printf(ntt姓 名: %s,);printf(ntt年 龄: %s,contacti.age); printf(ntt联系电话: %s,contacti.phone); printf(ntt家庭住址: %s,contacti.adress); printf(ntt 学号: %s,contacti.number);printf(ntt电子邮件: %s,contacti.e_mail); printf(ntt确认修改?y/n);if(getch()=n)contacti=modify; printf(ntt修改未保存!);else printf(ntt修改成功!);savefile();mark=0; printf(ntt是否继续修改?(y/n); if (getch()=y) modifymenu(); if (mark=0) printf(ntt没有该联系人的纪录); printf(ntt是否继续修改?(y/n); if (getch()=y) modifymenu(); return;void deletemenu() char choice; if(NO=0) printf(ntt对不起,文件中无任何纪录); printf(ntt按任意键返回主菜单); getch(); return; system(cls); printf(ntt* 删除菜单 *); printf(ntt* 1-删除所有 *); printf(ntt* 2-删除单个 *); printf(ntt* 3-返回主菜单 *); printf(ntt*); printf(ntt请选择:); choice=getch(); switch(choice) case 1:deleteall();break; case 2:deletesingle();break; case 3:mainmenu();break; default:mainmenu(); void deleteall() printf(ntt确认删除?(y/n); if (getch()=y) if (fp=fopen(contact,w)=0) printf(ntt不能打开文件,删除失败); loadfile(); NO=0; printf(ntt纪录已删除,按任意键返回主菜单); getch(); fclose(fp);return; else return; void deletesingle() char choice; printf(nttt1-按姓名删除); printf(nttt2-按号码删除);printf(nttt3-返回删除菜单);printf(ntt请选择:); choice=getch(); switch (choice) case 1:deletename();break; case 2:deletephone();break; case 3:deletemenu();break; void deletename() int i,j; int mark=0; char name20; printf(ntt请输入要删除联系人姓名:); scanf(%s,name); if(NO=0) printf(ntt对不起,文件中无任何纪录); printf(ntt按任意键返回主菜单); getch(); return; for (i=0;iNO;i+) if (strcmp(,name)=0) printf(ntt以下是您要删除的联系人纪录:); printf(ntt姓 名: %s,);printf(ntt年 龄: %s,contacti.age); printf(ntt联系电话: %s,contacti.phone); printf(ntt家庭住址: %s,contacti.adress); printf(ntt 学号: %s,contacti.number);printf(ntt电子邮件: %s,contacti.e_mail); printf(ntt是否删除?(y/n); if (getch()=y) for (j=i;jNO-1;j+) contactj=contactj+1; NO-; mark+; printf(ntt删除成功); savefile();printf(ntt是否继续删除?(y/n); if (getch()=y) deletename(); return; else return; continue; if (mark=0) printf(ntt没有该联系人的纪录); printf(ntt是否继续删除?(y/n); if (getch()=y) deletename(); return; void deletephone() int i,j; int mark=0; char phone20; printf(ntt请输入要删除联系电话:); scanf(%s,phone); if(NO=0) printf(ntt对不起,文件中无任何纪录); printf(ntt按任意键返回主菜单); getch(); return; for (i=0;iNO;i+) if (strcmp(contacti.phone,phone)=0) printf(ntt以下是您要删除的联系人纪录:); printf(ntt姓 名: %s,);printf(ntt年 龄: %s,contacti.age); printf(ntt联系电话: %s,contacti.phone); printf(ntt家庭住址: %s,contacti.adress); printf(ntt 学号: %s,contacti.number);printf(ntt电子邮件: %s,contacti.e_mail); printf(ntt是否删除?(y/n); if (getch()=y) for (j=i;j0) rewind(fp); for (NO=0;!feof(fp) & fread(&contactNO,sizeof(struct record),1,fp);NO+)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 退股退款合同范本
- 虾仁采购合同范本
- 机柜喷涂合同范本
- led器材租赁合同范本
- 出售玉米的合同范本
- 会所桌椅回收合同范本
- 房屋租免责合同范本
- 收购打井设备合同范本
- 定量点胶机采购合同范本
- 消防灭火救援课件
- 《螺纹的种类和应用》课件
- 医学一等奖《白血病》课件
- 高空作业车专项应急预案
- 发现普洱茶的第一个医学实验报告
- 全自动血液细胞分析仪参数
- (完整版)过去完成时ppt
- 1输变电工程施工质量验收统一表式(线路工程)
- 养老护理员(技师、高级技师)知识考试复习题库(含答案)
- 学校安全“日管控、周排查、月总结”工作制度
- 机械原理课程设计15吨压片机设计
- 2023年五四青年节演讲比赛PPT担负青年使命弘扬五四精神PPT课件(带内容)
评论
0/150
提交评论