C语言通讯录管理系统程序设计.docx
《C语言通讯录管理系统程序设计.docx》由会员分享,可在线阅读,更多相关《C语言通讯录管理系统程序设计.docx(32页珍藏版)》请在咨信网上搜索。
C语言通讯录管理系统程序设计 32 2020年4月19日 文档仅供参考 广西科技大学鹿山学院 课程设计报告 课程名称: c语言程序设计 课题名称: 通讯录管理系统设计 指导教师: 倪志平 班 级: 物联网152 姓 名: 吴肖军 学 号: 3076 成绩评定: 指导教师签字: 二〇一六 年 七 月 六 日 目录 1 需求分析 3 2 总体分析与设计 3 2.1 总体设计方案 3 2.2 功能描述 4 2.2.1 新增联系人模块 4 2.2.2 保存联系人模块 4 2.2.3 查询联系人模块 4 2.2.4 显示联系人模块 4 2.2.5 修改联系人模块 4 2.2.6 删除联系人模块 4 2.2.7 读取联系人模块 5 2.2.8 退出系统模块 5 2.3 系统流程图 5 3 系统实现 6 4 功能测试 11 4.1.1 新增联系人 11 4.1.2 查询联系人 13 4.1.3 显示联系人 14 4.1.4 修改联系人 15 4.1.5 删除联系人 16 4.1.6 退出系统 17 总 结 18 参考文献 18 课程设计目的 1 需求分析 通讯录档案信息采用文件存储,因而要提供文件的输入输出操作;根据联系人信息的变动情况,添加删除记录,因而要提供文件的添加删除操作;根据编号进项查询,因此要提供文件的查找操作;高级编辑功能,就是提供文件的修改操作;显示功能就是显示出通讯录中所有联系人的功能;另外还要提供键盘式选择菜单以实现功能选择。 2 总体分析与设计 1. 总体设计 总体设计目标:使用者能够利用本系统对通讯录的各项管理进行操作,根据用户要求自动进行新增联系人,保存联系人,删除联系人,查找所要的联系人,修改所要的联系人,最后将她们清楚地显示在屏幕中。 结合上述分析,该系统应包括一下模块:新增联系人,保存联系人,查询联系人,修改联系人,显示联系人,删除联系人,退出系统。结构图如下。 2.1 总体设计方案 通讯录管理系统 图2-1 系统功能模块图 退出系统 修改联系人 显示联系人 查询联系人 删除联系人 新增联系人 保存联系人 2.2 功能描述 根据以上需求分析,通讯录管理系统划分为七个功能模块,分别是新增联系人模块,保存联系人模块,查找联系人模块,修改联系人模块,显示联系人模块,删除联系人模块,读取联系人模块。其中各功能模块的具体说明如下。 2.2.1 新增联系人模块 增加联系人模块:该模块的功能是增加新的联系人信息。信息包括联系人姓名,联系人所在单位,联系人电话号码等。然后从键盘输入并逐条写入到的文件中。增加成功后提示增加联系人信息成功! 2.2.2 保存联系人模块 保存联系人模块:该模块会保存所新增联系人,修改联系人等信息到指定文件夹中。 2.2.3 查找联系人模块 查找人事信息模块:该模块的功能是,查找文件中的联系人信息记录,从键盘输入联系人编号,输入时会判断该联系人编号是否存在,若不存在,则重新输入。若存在,则将该人事信息输出到窗口。 2.2.4 修改联系人模块 修改人事信息模块:该模块的功能是由用户输入所需修改的联系人信息编号。然后对联系人信息(姓名和电话号码等)进行修改,最后保存修改后的结果。 2.2.5 显示联系人模块 该模块将文件里的内容输出到电脑屏幕。用户能够经过该功能看到文件当中的所有联系人的信息。 2.2.6 删除联系人模块 删除人事信息模块:该模块首先由用户输入要删除的联系人的编号,根据编号删除所需的联系人信息,删除后提示联系人删除成功。删除的方法是将文件中的数据读入内存,赋给相应的结构体,并将结构体数组中将删除的后面的数据赋给前一个结构体,然后将相应数据写入文件并保存。 2.2.7 读取联系人模块 该模块将保存到文件中的联系人读取到内存中以供程序操作。 2.2.8 退出系统模块 若在系统最初运行时,选择退出系统,则系统退出运行。 开始 2.3 系统流程图 显示主菜单 选择 6删除 联系 人 7退出系统 1新增联系人 3查询联系人 2保存联系人 4修改联系人 5显示联系人 退出系统 结束 显示操作结果 3 系统实现 程序源码 #include <stdio.h> #include <string.h> #include <stdlib.h> #include<conio.h> struct BOOKS { int id; char tell[12],phone[12],name[31],add[20],email[30],qq[20]; }books[100],*p; void page_title(char *menu_item) { printf("\t\t********************************************\n",menu_item); printf("\t\t* 欢迎使用通讯录管理系统 *\n",menu_item); printf("\t\t* *\n",menu_item); printf("\t\t* 系统设计人:吴肖军 *\n",menu_item); printf("\t\t* *\n",menu_item); printf("\t\t********************************************\n\n- %s -\n\n",menu_item); } void return_confirm(void) { printf("\n按任意键返回……\n"); getchar(); } void books_add(void) //输入模块 { int n; system("cls");//清屏 page_title("新增联系人"); for(n=0;n<100;n++) if(books[n].id==0) break; printf("序号:"); scanf("%d",&books[n].id); printf("姓名:"); scanf("%s",&books[n].name); printf("单位:"); scanf("%s",&books[n].add); printf("固定电话:"); scanf("%s",&books[n].tell); printf("移动电话:"); scanf("%s",&books[n].phone); printf("邮件:"); scanf("%s",&books[n].email); printf("QQ:"); scanf("%s",&books[n].qq); return_confirm(); } int books_search(void)//查找模块 { int n,i=-1; char nam[30]; system("cls"); printf("请输入联系人:"); scanf("%s",&nam); for(n=0;n<100;n++) { if((strcmp(books[n].name,nam)==0)) { printf("序号:%d\t",books[n].id); printf("联系人:%s\t",books[n].name); printf("单位:%s\t",books[n].add); printf("固定电话:%s\t",books[n].tell); printf("移动电话:%s\t",books[n].phone); printf("邮件:%s\t",books[n].email); printf("QQ:%s\n",books[n].qq);i=n; } } if(i==-1) printf("\n没有找到相关记录.\n"); getchar(); return i; } int books_change(void)//修改模块 { int n,i; system("cls"); page_title("修改联系人信息"); printf("请输入要修改的联系人编号:"); scanf("%d",&i); for(n=0;n<100;n++) { if(books[n].id==i) { printf("修改联系人:"); scanf("%s",books[n].name); printf("修改单位:"); scanf("%s",books[n].add); printf("修改固定电话:"); scanf("%s",books[n].tell); printf("修改移动电话:"); scanf("%s",books[n].phone); printf("修改邮件:"); scanf("%s",books[n].email); printf("修改QQ:"); scanf("%s",books[n].qq); printf("修改联系人信息成功.\n"); return n; } } printf("\n没有找到相关记录.\n"); getchar(); return -1; } int books_show(void)//显示模块 {int n,i=1; system("cls"); for(n=0;n<100;n++) { if(strlen(books[n].name)!=0) { printf("序号:%d\t",books[n].id); printf("联系人:%s\t",books[n].name); printf("单位:%s\t",books[n].add); printf("固定电话:%s\t",books[n].tell); printf("移动电话:%s\t",books[n].phone); printf("邮件:%s\t",books[n].email); printf("QQ:%s\n",books[n].qq); i=0; } } if(i==1) printf("\n没有找到相关记录.\n"); getchar(); return -1; } int books_del(void)//删除模块 { int n,num,i; system("cls"); page_title("删除联系人"); printf("请输入所要删除的联系人的编号:\n"); scanf("%d",&num); for(n=0;n<100;n++) { if(books[n].id==num) { for(i=n;i<100;i++) { books[i].id=books[i+1].id; strcpy(books[i].name,books[i+1].name); strcpy(books[i].email,books[i+1].email); } printf("该联系人已删除.\n"); return n; } } printf("没有找到相关记录\n"); getchar(); return -1; } void books_save()//保存模块 { system("cls"); FILE *fp; int i; p=books; if((fp=fopen("d:\\tt.txt","wb+"))==NULL) { printf("Cannot open file,strike any key exit!"); getchar(); exit(1); } fwrite(p,sizeof(struct BOOKS),2,fp); p=books; for(i=0;i<2;i++,p++) printf("%5d\t%s\t%s\t%s\t%s\t%s\t%s\t\n",p->id,p->name,p->add,p->tell,p->phone,p->email,p->qq); fclose(fp); getchar(); } void books_read() { system("cls"); FILE *fp; int i; p=books; if((fp=fopen("d:\\tt.txt","rb+"))==NULL) { printf("Cannot open file,strike any key exit!"); getchar(); exit(1); } fread(p,sizeof(struct BOOKS),2,fp); p=books; for(i=0;i<2;i++,p++) printf("%5d\t%s\t%s\t%s\t%s\t%s\t%s\t\n",p->id,p->name,p->add,p->tell,p->phone,p->email,p->qq); fclose(fp); getchar(); } void main(void) { menu:page_title("操作选单"); printf("请用数字键选择操作\n\n"); printf("\t\t\t1 新增联系人\t\t\t2 保存联系人\n"); printf("\t\t\t3 查询联系人\t\t\t4 修改联系人\n"); printf("\t\t\t5 显示联系人\t\t\t6 删除联系人\n"); printf("\t\t\t7 输出数据 \t\t\t8 退出系统 \n"); printf("请按数字键:\n"); switch(getchar()) { case '1' : books_add(); break; case '2' : books_save(); break; case '3' : books_search(); break; case '4' : books_change(); break; case '5' : books_show(); break; case '6' : books_del(); break; case '7' : books_read(); break; case '8' :/*退出系统*/ { system("cls"); printf("\n"); printf("\t*===============================================================*\n"); printf("\t* *\n"); printf("\t* 谢 谢 使 用 *\n"); printf("\t* *\n"); printf("\t* *\n"); printf("\t* 如有疑问,请联系管理员 *\n"); printf("\t*===============================================================*\n"); printf("\t* *\n"); printf("\t* 广 西 科 技 大 学 鹿 山 学 院 *\n"); printf("\t* 物联网 1 5 2 吴肖军 *\n"); printf("\t*===============================================================*\n"); printf("\n"); } exit(0); break; } goto menu; } 4 功能测试 4.1 选择新增联系人,查找联系人,显示联系人,修改联系人,删除联系人,五个功能进行测试。输出测试数据,查看文件记录检测操作结果是否符合预期设计。 4.1.1 新增联系人 1 输入联系人信息 4.1.2 查询联系人 在选择界面输入3 回车 输入要查询的联系人姓名 回车 4.1.3 显示联系人 在显示界面输入数字5 回车。出现全部联系人信息。 4.1.4 修改联系人 在显示界面输入数字4 回车。输入要修改联系人编号后修改信息。 回车输入5 显示修改后全部联系人。 4.1.5 删除联系人 在显示界面输入数字6回车。 输入要删除联系人编号 回车。 4.1.6 退出系统 在显示界面输入数字8回车。 总 结 这次设计是一个漫长而又艰苦的过程,也可说是有苦有乐!经过设计让我 学到不少:理论是要与实际相结合,只有能够将一条条的理论化为自己所能拥有的经验才是有用的!同时这次设计也让我改变了我以前的一些错误观点:以前我认为一个系统设计中最重要的是程序编码,因为只有程序编码才能实现程序的功能,其它的并不重要。可是经过这次设计,让我知道每一步都是很重要的。 首先得想这个设计做出是否有这个必要,是否可行!再有如果需求分析写得条理清晰,那么能够为设计节约时间! 编码实现之后,测试与维护在整个系统设计中占最大比例! 以前总是简单的用数据库建表,存储一些数据而已。但这次经过对数据库的更深入的学习了解,数据库的功能远远不只这些,在我的数据库里面就采用了数据库的存储过程,然后在前台直接调用存储过程,不但使用方便,安全性也更高。 因为时间关系,该系统制作比较匆忙,因此有些功能还不够完善,还有很多地方考虑不周,在以后的日子里,我会一边学习,一边再思考,争取把设计的系统做到更加完善。 参考文献 [1] 倪志平 著. C程序设计 . 现代教育出版社 . [2] 谭浩强 著. C程序设计(第四版)学习辅导 . 清华大学出版社 . [3] 王卓等 著. C语言工程实训教程 . 人民邮电出版社 .- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 通讯录 管理 系统 程序设计
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【人****来】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【人****来】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【人****来】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【人****来】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文