欢迎来到三一文库! | 帮助中心 三一文库31doc.com 一个上传文档投稿赚钱的网站
三一文库
全部分类
  • 研究报告>
  • 工作总结>
  • 合同范本>
  • 心得体会>
  • 工作报告>
  • 党团相关>
  • 幼儿/小学教育>
  • 高等教育>
  • 经济/贸易/财会>
  • 建筑/环境>
  • 金融/证券>
  • 医学/心理学>
  • ImageVerifierCode 换一换
    首页 三一文库 > 资源分类 > DOC文档下载  

    通讯录管理系统课程设计(含C语言程序).doc

    • 资源ID:10088242       资源大小:590.50KB        全文页数:21页
    • 资源格式: DOC        下载积分:6
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录   微博登录  
    二维码
    微信扫一扫登录
    下载资源需要6
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

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

    通讯录管理系统课程设计(含C语言程序).doc

    计算机与通信学院课程设计报告书课程名称: C语言课程设计 班 级: 学 号: 姓 名: 指导老师: 二九 年 九 月通讯录管理系统一 需求分析设计题目及要求: 建立通讯录信息,信息至少包含编号、姓名、年龄、电话、通讯地址、电子邮箱等; 能够提供添加、删除和修改通讯录信息的功能; 能够提供安不同方式查询的功能;如按姓名或年龄、电话等查询; 将通讯录保存在文件中; 能够按表格方式输出通讯录信息。系统功能需求分析:主要包含一下多种功能:添加:添加通讯录记录显示:显示通讯录记录删除:删除通讯录记录查询:查询通讯录记录修改:修改通讯录记录保存:将信息保存到文件二 概要设计系统功能模块图:添加:可以添加通讯录记录,依次输入编号、姓名、年龄、电话号码、通讯地址、电子邮箱后,会提示是否继续添加。显示:可以以表格形式输出所有通讯录里的记录删除:输入欲删除的那个人的名字后,会自动删除他(她)的记录内容查询:可以选择用姓名、电话、地址三种方式查询修改:输入欲修改的那个人的名字后,再依次输入编号、姓名、年龄、电话号码、通讯地址、电子邮箱即可完成修改保存:,输入文件名(带后缀名)后,即可将通讯录信息保存到文件三 详细设计(1).通讯录:typedef struct char score; /*编号*/char name10; /*姓名*/ char num15; /*号码*/ char email20;/*邮箱*/char age8;/*年龄*/char adds20;/*住址*/Person;void main() /*主函数*/ int n=0; for(;) switch(menu_select() case 1: printf("nt添加记录到通讯录n"); /*添加记录*/ n=Input(pe,n); break; case 2: printf("nttt 通讯录记录表n"); /*显示记录*/ Display(pe,n); break;case 3: printf("nt从通讯录中删除记录n"); n=Delete_a_record(pe,n); /*删除记录*/ printf("t"); system("pause"); break; case 4: printf("nt在通讯录中查找记录n"); Query_a_record(pe,n); /*查找记录*/ printf("t"); system("pause"); break;case 5: printf("nt修改通讯录中的记录n"); Change(pe,n); /*修改数据*/ printf("t"); system("pause"); break; case 6: printf("nt保存功能n"); WritetoText(pe,n); /*保存数据*/ printf("t"); system("pause"); break; case 0: printf("ntt谢谢使用,再见!n"); /*结束程序*/ printf("ntt"); system("pause"); exit(0); (2).工作流程图:添加:添加通讯录记录显示:显示通讯录记录删除:删除通讯录记录查询:查询通讯录记录先选择查询方式,以姓名查询方式为例 修改:修改通讯录记录四 源程序代码#include<stdio.h> #include<stdlib.h>#include<string.h> typedef struct char score; /*编号*/char name10; /*姓名*/ char num15; /*号码*/ char email20;/*邮箱*/char age8;/*年龄*/char adds20;/*住址*/Person; Person pe80; int menu_select() char c; do system("cls"); printf("tt *通讯录* n"); printf("ttn"); printf("tt 1. 添加记录 n"); printf("tt 2. 显示记录 n"); printf("tt 3. 删除记录 n"); printf("tt 4. 查询记录 n"); printf("tt 5. 修改记录 n"); printf("tt 6. 保存记录 n");printf("tt 0. 退出程序 n"); printf("ttn"); printf("tt请您选择(0-6):"); c=getchar(); while(c<0|c>6); return(c-0); int Input(Person per,int n) int i=0; char sign,x10; while(sign!=n&&sign!=N) printf("t编号:"); scanf("t%d",&pern+i.score); printf("t姓名:"); scanf("t%s",pern+i.name); printf("t年龄:"); scanf("t%s",pern+i.age);printf("t电话号码:"); scanf("t%s",pern+i.num); printf("t通讯住址:"); scanf("t%s",pern+i.adds);printf("t电子邮箱:");scanf("t%s",pern+i.email);gets(x); printf("nt是否继续添加?(Y/N)"); scanf("t%c",&sign); i+; return(n+i); void Display(Person per,int n) int i; printf("-n"); /*格式*/ printf("编号 姓名 年龄 电话号码 通讯地址 电子邮箱n"); printf("-n"); for(i=1;i<n+1;i+) printf("%-5d%-8s%-6s%-13s%-15s%-15sn",peri-1.score,peri-1.name,peri-1.age,peri-1.num,peri-1.adds,peri-1.email); if(i>1&&i%10=0) printf("t-n"); printf("t"); system("pause"); printf("t-n"); printf("-n");system("pause"); int Delete_a_record(Person per,int n) char s20; int i=0,j; printf("t请输入想删除记录中的名字:"); scanf("%s",s); while(strcmp(peri.name,s)!=0&&i<n) i+; if(i=n) printf("t通讯录中没有此人!n"); return(n); for(j=i;j<n-1;j+) strcpy(perj.num,perj+1.num); strcpy(perj.name,perj+1.name); strcpy(perj.age,perj+1.age);strcpy(perj.adds,perj+1.adds);strcpy(perj.email,perj+1.email);perj.score=perj+1.score; printf("ttt已经成功删除!n"); return(n-1); void Query_a_record(Person per,int n) int m;printf("tn请选择查询方式:n"); printf("tn"); printf("t1-姓名 n"); printf("t2-电话 n"); printf("t3-地址 n"); printf("t4-返回 n"); printf("tn"); printf("请选择:"); scanf("%d",&m); while(m!=1&&m!=2&&m!=3&&m!=4) printf("输入错误,请重新选择:");scanf("%d",&m);if(m=1)char s20; int i=0; printf("t请输入想查询的姓名:"); scanf("t%s",s); while(strcmp(peri.name,s)!=0&&i<n) i+; if(i=n) printf("t通讯录中没有此人!n"); return; printf("t此人编号: %dn",peri.score);printf("t此人年龄: %sn",peri.age); printf("t电话号码: %sn",peri.num); printf("t通讯地址: %sn",peri.adds);printf("t电子邮箱: %sn",peri.email); ;if(m=2)char s20; int i=0; printf("t请输入想查询的电话:"); scanf("t%s",s); while(strcmp(peri.num,s)!=0&&i<n) i+; if(i=n) printf("t通讯录中没有此人!n"); return; printf("t此人编号: %dn",peri.score);printf("t此人姓名: %sn",peri.name);printf("t此人年龄: %sn",peri.age); printf("t通讯地址: %sn",peri.adds);printf("t电子邮箱: %sn",peri.email); ;if(m=3)char s20; int i=0; printf("t请输入想查询的地址:"); scanf("t%s",s); while(strcmp(peri.adds,s)!=0&&i<n) i+; if(i=n) printf("t通讯录中没有此人!n"); return; printf("t此人编号: %dn",peri.score);printf("t此人姓名: %sn",peri.name);printf("t此人年龄: %sn",peri.age); printf("t电话号码: %sn",peri.num); printf("t电子邮箱: %sn",peri.email); ;void Change(Person per,int n) char s20; int i=0; printf("t请输入想修改的记录中的名字:"); scanf("%s",s); while(strcmp(peri.name,s)!=0&&i<n) i+; if(i=n) printf("t通讯录中没有此人!n"); return; printf("t编号:"); scanf("t%d",&peri.score); printf("t姓名:"); scanf("t%s",peri.name); printf("t年龄:"); scanf("t%s",peri.age);printf("t电话号码:"); scanf("t%s",peri.num); printf("t通讯住址:"); scanf("t%s",peri.adds);printf("t电子邮箱:");scanf("t%s",peri.email);printf("t修改成功!");void WritetoText(Person per,int n) int i=0; FILE *fp; /*定义文件指针*/ char filename20; /*定义文件名*/ printf("t保存到文件n"); /*输入文件名*/ printf("t请输入所保存的文件名:"); scanf("t%s",filename); if(fp=fopen(filename,"w")=NULL) printf("t无法打开文件n"); system("pause"); return; fprintf(fp,"*通讯录*n");fprintf(fp,"编号 姓名 年龄 电话号码 通讯地址 电子邮箱n");fprintf(fp,"-n");while(i<n) fprintf(fp,"%-3dt%-6st%-3st%-13st%-20st%-20sn",peri.score,peri.name,peri.age,peri.num,peri.adds,peri.email); i+; fprintf(fp,"-n");fprintf(fp,"*共有%d条记录*n",n); fclose(fp); /*关闭文件*/ printf("保存成功!n"); void main() /*主函数*/ int n=0; for(;) switch(menu_select() case 1: printf("nt添加记录到通讯录n"); /*添加记录*/ n=Input(pe,n); break; case 2: printf("nttt 通讯录记录表n"); /*显示记录*/ Display(pe,n); break;case 3: printf("nt从通讯录中删除记录n"); n=Delete_a_record(pe,n); /*删除记录*/ printf("t"); system("pause"); break; case 4: printf("nt在通讯录中查找记录n"); Query_a_record(pe,n); /*查找记录*/ printf("t"); system("pause"); break;case 5: printf("nt修改通讯录中的记录n"); Change(pe,n); /*修改数据*/ printf("t"); system("pause"); break; case 6: printf("nt保存功能n"); WritetoText(pe,n); /*保存数据*/ printf("t"); system("pause"); break; case 0: printf("ntt谢谢使用,再见!n"); /*结束程序*/ printf("ntt"); system("pause"); exit(0); 五 测试数据及其结果分析测试:1)显示的主菜单界面2)添加界面:3)显示界面:4)删除界面:删除后,通讯录里的显示记录:5)查询界面:以姓名查询方式为例:6)修改界面:修改后,通讯录里的显示记录:7)保存界面:tongxunlu.txt文件截图:问题思考:1.当我在进行删除、查询、修改、保存等功能时,以查询为例,输入名字按回车后,虽然会显示该人的所有记录,但是显示后,它马上自动消失了,还没来得及等我看内容。因此,向别人请教后,在一些地方加入了system("pause");这个语言,用来对某项操作完成后进行暂停。2. 现在这个程序的界面个人感觉很清爽。但在最初,每次进行一项操作,运行窗口里的内容会一直保留着,感觉很杂乱,如下图(添加后,进行显示操作):之后,我去网上寻求解决办法,知道可以使用system("cls");这一语句可以解决这个问题,最后,修改成功。六 课程设计总结这次的程序实设计实验是对我们进入大学以来学习程序设计语言结果的一次大检验。自己动手,自己发现和解决问题。发现了自己的许多不足。平时没有掌握好的知识在这次实验中彻底暴露出来,经过不断思考,不断查阅资料和上机运行,解决其中大部分问题,当然还存在一些问题没有解决。我相信在以后的学习能够解决好它们。但是,收获还是不小的,我不仅对C的操作有了进一步的掌握,还了解到了程序设计的书写风格及其注释的格式。当我选择通讯录这个题目时,一开始想运用大量链表及指针来完成,但是在慢慢琢磨之后,觉得这个不一定要用链表,于是改变了编程思路。当然还有不少文件的读写问题,不过还是通过不断测试之后顺利解决了。另外一点要说的就是这个程序用了很多的循环,因此对于循环的控制要十分小心,有时while和do-while的区别也是十分重要的。还有一点体会就是,书上和老师教的内容是有限的,我们需要不断地靠自己去学习,向他人请教,了解和掌握更多的知识,这样我们才能编出更好的C程序。总体来说,这次C语言程序设计实验还是比较成功的,虽然最终程序还存在一些不足,但能取得这样的成绩我还是比较高兴的。最后,要感谢学校为我们提供这次实验机会,也要感谢老师的教导和好心人对我的帮助与支持。

    注意事项

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

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    经营许可证编号:宁ICP备18001539号-1

    三一文库
    收起
    展开