通讯录管理系统.doc
《通讯录管理系统.doc》由会员分享,可在线阅读,更多相关《通讯录管理系统.doc(25页珍藏版)》请在沃文网上搜索。
1、C语言课程设计论文学生姓名: 学生学号: 所在班级: 任课教师: 通讯录管理系统【设计目的】设计“通讯录管理系统”使其具有数据插入、修改、删除、显示和查询等功能。(1) 数据包括:人名、工作单位、电话号码和E-mail地址。(2) 可对记录中的姓名和电话号码进行修改。(3) 可增加或删除记录。(4) 可显示所有保存的记录。(5) 可按人名或电话号码进行查询。【设计思路】根据要求,电话簿数据以文本文件存放在文件中,故需要提供文件的输入、输出等操作;还需要保存记录以进行修改,删除,查找等操作;另外还应提供键盘式选择菜单实现功能选择。 【总体设计】通讯录管理系统数据输入数据修改删除数据添加查找浏览图
2、1 系统功能模块图 【详细设计】1. 主函数主函数设计要求简洁,只提供部分提示语和函数的调用【程序】 显示一系列功能选项输入n,判断n是否是17 ?根据n的值调用各功能模块函数结束开始n 图2. 主函数流程图Void menu() /*主界面*/ int n, w1; void enter(); void add(); void modify(); void browse(); void deleter(); void search(); do puts(t*菜单*tnn); puts(tttt1.新建联系人); puts(tttt2.添加联系人); puts(tttt3.修改); puts(
3、tttt4.删除); puts(tttt5.浏览); puts(tttt6.查找); puts(tttt7.退出); puts(nnt*通讯录*tn); printf(请选择服务种类(1-7) : bb); scanf(%d,&n); if(n7) w1=1;getchar(); else w1=0; while(w1=1); switch(n) case 1: enter(); break; /*输入模块*/ case 2: add(); break; /*添加模块*/附录:源代码#define N 50#include#includestruct peoplechar name20; ch
4、ar company50; char num15; char mail20;peopN;void printf_face() printf(nt姓名t单位t电话号码t邮箱n); void printf_one(int i) printf(t%st%st%st%sn,peopi.name,pany,peopi.num,peopi.mail); void printf_n(int n) int j; for(j=0;jnn 1).姓名 2).单位 3).电话号码 4).邮箱 5).所有数据 6).取消并返回); printf(请选择?: bb); scanf(%d,&c); if(c6|c6|c1
5、); do switch(c) case 1: printf(name:); scanf(%s,peopi.name); break; case 2: printf(company:); scanf(%s,pany); break; case 3: printf(number:); scanf(%s,peopi.num); break; case 4: printf(e-mail:); scanf(%s,peopi.mail); break; case 5: input(i); break; case 6: menu(); puts(nNow:n); printf_face(); printf
6、_one(i); printf(n确定?nnt1).是 2).不,重新修改 3).返回不保存 bb); scanf(%d,&w1); while(w1=2); return(w1);void input(int i) printf_face(); printf(t); scanf(%st%st%st%s,peopi.name,pany,peopi.num,peopi.mail); void save(int n) FILE *fp; int i; if(fp=fopen(file,wb)=NULL) printf(nCan not open filen); exit(0); for(i=0;i
7、n;i+) if(peopi.name0!=0) if(fwrite(&peopi,sizeof(struct people),1,fp)!=1) printf(file write errorn); fclose(fp);void printf_back() int w; void browse(); void menu(); printf(nnt_.Successful. _nn); printf(What do you want to do?nnt1).浏览所有t2).返回: bb); scanf(%d,&w); if(w=1) browse(); else menu();void ma
8、in() void menu(); menu();void menu() int n, w1; void enter(); void add(); void modify(); void browse(); void deleter(); void search(); do puts(t*菜单* ); puts(tt*1.新建联系人*); puts(tt*2.添加联系人*); puts(tt*3.修 改*); puts(tt*4.删 除*); puts(tt*5.浏 览*); puts(tt*6.查 找*); puts(tt*7.退 出*); puts(nnt*通讯录* ); printf(请
9、选择服务种类(1-7) : bb); scanf(%d,&n); if(n7) w1=1;getchar(); else w1=0; while(w1=1); switch(n) case 1: enter(); break; case 2: add(); break; case 3: modify(); break; case 4: deleter(); break; case 5: browse(); break; case 6: search(); break; case 7: exit(0); void enter() int i,n; printf(How many people(0
10、-%d)?:,N-1); scanf(%d,&n); printf(请输入数据:n); for(i=0;in;i+) printf(n输入第 %d个记录.n,i+1); input(i); if(i!=0) save(n); printf_back();void add() int i,n,k,t; n=load(); printf(How many people do you want to add(0-%d)?:,N-n-1); scanf(%d,&t); k=n+t; for(i=n;ik;i+) printf(n输入第 %d个记录.n,i-n+1); input(i); save(k)
11、; printf_back();void modify() struct people s; int i,n,k,w0=1,w1,w2=0; n=load(); do k=-1; printf_face(); printf_n(n); do printf(nnEnter name that you want to modify!nName:); scanf(%s,s.name); for(i=0;in;i+) if(strcmp(s.name,peopi.name)=0) k=i; s=peopi; if(k=-1) printf(nn没有记录请重新输入!); while(k=-1); pri
12、ntf_face(); printf_one(k); w1=modify_data(k,n); if(w1=1) printf(nt_.Successful _.nn是否继续?nnt1).是 2).保存返回t bb); scanf(%d,&w0); w2=1; else w0=0; if(w2=0) peopk=s; if(w0!=1)&(w2=1) save(n); while(w0=1); menu();void browse() int n; n=load(); printf_face(); printf_n(n); printf(t共有 %d 记录.n,n); printf(nPres
13、s any key to back.); getchar(); menu();void search() int w0,k,i,n,w1,w2; struct people s; n=load(); do printf(请选择查找类别: 1).姓名 2).电话号码 bb); scanf(%d,&w1); if(w12) printf(输入错误!请重新输入!n); w2=1; while(w2=1); if(w1=1) do k=-1; do printf(nnEnter name that tou want to search!nName:); scanf(%s,s.name); for(i=
14、0;in;i+) if(strcmp(s.name,peopi.name)=0) k=i; s=peopi; if(k=-1) printf(nn没有记录请重新输入!); while(k=-1); printf_face(); printf_one(k); printf(nWhat do you want to do?nt1).继续 2).返回菜单 bb); scanf(%d,&w0); while(w0=1); menu(); else do k=-1; do printf(nnEnter number that tou want to search!nNum:); scanf(%s,s.n
15、um); for(i=0;in;i+) if(strcmp(s.num,peopi.num)=0) k=i; s=peopi; if(k=-1) printf(nn没有记录请重新输入!); while(k=-1); printf_face(); printf_one(k); printf(nWhat do you want to do?nt1).继续 2).返回菜单 bb); scanf(%d,&w0); while(w0=1); menu(); void deleter()struct people s; int i,n,k,w0,w1; n=load(); do k=-1; printf_
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
10 积分
下载 | 加入VIP,下载更划算! |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 通讯录 管理 系统
