欢迎来到沃文网! | 帮助中心 分享知识,传播智慧!
沃文网
全部分类
  • 教学课件>
  • 医学资料>
  • 技术资料>
  • 学术论文>
  • 资格考试>
  • 建筑施工>
  • 实用文档>
  • 其他资料>
  • ImageVerifierCode 换一换
    首页 沃文网 > 资源分类 > DOC文档下载
    分享到微信 分享到微博 分享到QQ空间

    通讯录管理系统.doc

    • 资源ID:874436       资源大小:104.73KB        全文页数:25页
    • 资源格式: DOC        下载积分:10积分
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: QQ登录 微博登录
    二维码
    微信扫一扫登录
    下载资源需要10积分
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,下载更划算!
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    通讯录管理系统.doc

    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_

    16、face(); printf_n(n); do printf(nnEnter name that you want to delete!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); printf_face(); printf_one(k); printf(n确定?nt1).是 2).返回 bb); scanf(%d,&w0); if(w0=1) peopk.name0=0; sa

    17、ve(n); else break; printf(nt_.Successful_.n); printf(What do you want to do?nt1).继续 2).返回 bb); scanf(%d,&w1); while(w1=1); menu();【设计体会】通过为期一周的课程设计,我们对C语言这门课程有了更深一步的了解。它是计算机程序设计的重要理论技术基础,在我们信息与计算科学专业的学习中占据着十分重要的地位。同时也使我们知道,要学好这门课程,仅学习书本上的知识是不够的,还要有较强的实践能力。因为我们学习知识就是为了实践。而只有多实践,多编写程序,才能更好的理解与掌握书本上的东西

    18、。运用C语言中的算法思想作数据结构,结合C语言基本知识,编写一个通讯录管理系统。通过完成本课题,进一步熟悉C语言的基本知识,并掌握数据结构的一些基本算法思想,掌握C语言的文件操作(包括从磁盘读入和向磁盘写入内容),进一步熟悉指针的用法,数组的建立运用和函数的调用等。【参考文献】朱若愚.数据结构M. 北京: 电子工业出版社, 2006.1:41-65晋良颍.数据结构M. 北京:人民邮电出版社, 2007.05: 21-45刘大有.数据结构M. 北京: 高等教育出版社, 2006.3: 30-58赵文静. 数据结构与算法M. 北京: 科学出版社, 2007.8: 41-64徐孝凯.数据结构简明教程

    19、.M. 北京: 清华大学出版社, 2006.04: 102-115#include#include#include#define header1 |-电话簿-|n#define header2 | 姓名 | 手机号码 | 家庭电话 | 通信地址 |n#define header3 |-|-|-|-|n#define end |-结束-|ntypedef struct _ContactPersonchar CPName20;double Numer1;double Numer2;char add100;CPerson;void menu();int duqu(int *len);int tian

    20、jia(int *k,int *len);int chaxun(int *len);int xiugai(int *len);int shanchu(int *len);int input(CPerson *p);int output(int *len);int search(CPerson p,int *j,CPerson c3,int *len);int sname(CPerson p,int *len);void xname(CPerson q100,int i);void xnumber(CPerson q100,int i);void xadd(CPerson q100,int i)

    21、;main()static int len=0;int i,j=0,k=0;while(j=0)menu(); do printf(请选择你需要的功能:n); scanf(%d,&i); while(i5); switch(i) case 1:j=tianjia(&k,&len);break; case 2:j=duqu(&len);break; case 3:j=chaxun(&len);break; case 4:j=xiugai(&len);break; case 5:j=shanchu(&len);break; default:printf(t|-欢迎下次使用电话薄管理系统!-t|n)

    22、;j=1;break; return 0;void menu()printf(nnn);printf(tt|* * 欢迎进入电话薄管理系统! * *|n);printf(tt|*menu*|n);printf(tt| |n);printf(tt| 1 添加 2 读取 |n);printf(tt| |n);printf(tt| 3 查找 4 修改 |n);printf(tt| |n);printf(tt| 5 删除 0 退出 |n);printf(tt| |n);printf(tt|*|n);int tianjia(int *k,int *len)CPerson p100;int i,j;FIL

    23、E *fp;printf(ntt|* 欢迎进入添加联系人界面! *|nn);printf(请输入添加的个数:n);scanf(%d,&j);k=&j;(*len)+=j;if(fp=fopen(e:/file3,a+)=NULL)printf(error!n);return -1;for(i=0;ij;i+)printf(姓名:);scanf(%s,&pi.cpName);printf(手机号码:);scanf(%1f,&pi.number1);printf(家庭电话:);scanf(%1f,&pi.number2);printf(通信地址:);scanf(%s,&pi.add);for(i=

    24、0;ij;i+)fprintf(fp,n%s%1f%1f%s,pi.cpName,pi.number1,pi.number2,pi.add);fclose(fp);output(len);return 0;int output(int *len)CPerson p100;int i;FILE *fp;if(fp=fopen(e:/file3,r)=NULL)printf(error!n);return -1;printf(%s%S%s,header1,header2,header3);for(i=0;i*len;i+)fscanf(fp,%s%1f%1f%s,pi.cpName,pi.numb

    25、er1,pi.number2,pi.add);printf(| %s | %1f | %1f | %s |n,pi.cpName,pi.number1,pi.number2,pi.add);printf(%s,end);printf(n);return 0;int chaxun(int *len)int i;CPerson aa;printf(ntt|* 欢迎进入查询联系人界面! *|nn); printf(请输入姓名:n);scanf%s,&aa.cpName);sname(aa,len);printf(欢迎下次使用电话簿管理系统!n);return 0;int sname(CPerson

    26、p,int *len)CPerson c100;int i,flag;flag=search(p,&i,c,len);if (flag=1)printf(%s%S%s,header1,header2,header3);printf(| %s | %1f | %1f | %s |n,pi.cpName,pi.number1,pi.number2,pi.add);printf(%s,end);printf(n);elseprintf(Not Foundn);return 0;int xiugai(int *len)CPerson p100,q100,a;int i,j,b;FILE *fp;pri

    27、ntf(ntt|* 欢迎进入修改联系人界面! *|nn);printf(请输入修改人姓名:n);scanf(%s,a.cpName);if(fp=fopen(e:/file3,r+)=NULL)printf(error!n);return -1;for(i=0;i*len;i+)fscanf(fp,%s%1f%1f%s,pi.cpName,pi.number1,pi.number2,pi.add);for(i=0;i*len;i+)strcpy(qi.cpName,pi.cpName);strcpy(qi.add,pi.add);qi.number1=pi.number1;qi.number2

    28、=pi.number2;for(i=0;i3|b1);printf(修改的联系人重新保存!n);sput(len,q);elseprintf(t|*通讯录中没有该人的信息!*|n);fclose(fp);output(len);return 0;int sput(int *len,CPerson q100)int i;FILE *fp;if(fp=fopen(e:/file3,w)=NULL)printf(error!n);return -1;for(i=0;i*len;i+)fprintf(fp,%s%1f%1f%s,qi.cpName,qi.number1,qi.number2,qi.ad

    29、d);fclose(fp);return 0;void xname(CPerson q100,int i)printf(姓名重置:);scanf(%s,qi.cpName);void xnumber1(CPerson q100,int i)printf(手机号码重置:);scanf(%1f,&qi.number1);void xnumber2(CPerson q100,int i)printf(家庭电话重置:);scanf(%1f,&qi.number2);void xadd(CPerson q100,int i)printf(通信地址重置:);scanf(%s,qi.add);#includ

    30、e#include#include#define header1 |-电话簿-|n#define header2 | 姓名 | 手机号码 | 家庭电话 | 通信地址 |n#define header3 |-|-|-|-|n#define end |-结束-|nstruct ContactPerson_typechar cpName20;char number120;char number220;char add100;typedef struct ContactPerson_type CPerson;void menu();int duqu(int *len);int tianjia(int

    31、*k,int *len);int chaxun(int *len);int xiugai(int *len);int shanchu(int *len);int input(CPerson *p);int output(int *len);int search(CPerson p,int *j,CPerson c3,int *len);int sname(CPerson p,int *len);int snumber(CPerson p,int *len);int sput(int *len,CPerson q100);void xname(CPerson q100,int i);void xnumber(CPerson q100,int i);void xadd(CPerson q100,int i);void xname(CPerson q100,int i)printf(姓名重置:);scanf(%s,qi.cpName);void xnumber1(CPerson q100,int i


    注意事项

    本文(通讯录管理系统.doc)为本站会员(精***)主动上传,沃文网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知沃文网(点击联系客服),我们立即给予删除!




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服点击这里,给沃文网发消息,QQ:2622162128 - 联系我们

    版权声明:以上文章中所选用的图片及文字来源于网络以及用户投稿,由于未联系到知识产权人或未发现有关知识产权的登记,如有知识产权人并不愿意我们使用,如有侵权请立即联系:2622162128@qq.com ,我们立即下架或删除。

    Copyright© 2022-2024 www.wodocx.com ,All Rights Reserved |陕ICP备19002583号-1

    陕公网安备 61072602000132号     违法和不良信息举报:0916-4228922