C语言课程设计大作业06237.doc
《C语言课程设计大作业06237.doc》由会员分享,可在线阅读,更多相关《C语言课程设计大作业06237.doc(52页珍藏版)》请在咨信网上搜索。
1、.郑 州 大 学课程报告课 程 名 称: C语言程序设计 专 业 班 级 : (15)班 学 生 姓 名 : 谢* 学 号 : 20127611* 任 课 教 师 : 赵* 学 期 : 2012-2013-2 课程报告任务书精选word.题 目通讯录管理系统主要内容开发一个通讯录管理系统,基本信息包括:编号、姓名、性别、出生年月、固定电话、手机号、电子邮件等基本信息(也可以根据自己情况进行扩充)。使之能提供以下基本功能:(1)通讯录等信息录入功能 (注:数据等要求用文件保存)输入v(2)通讯录信息的浏览功能输出(3)查询功能(至少一种查询方式)、排序功能(至少一种排序方式): l 按电话号码进
2、行查询 按姓名查询 等 按照年龄排序 按姓名排序等(4)通讯录条目的删除与修改等扩展功能:可以按照自己的程度进行扩展。比如(1)简单的权限处理 (2)报表打印功能(3)模糊查询,如姓张的人员等;或者给定电子邮件的部分进行查询等(4)给定指定年龄范围之内的查询等等。 总之,可以根据自己需求进行分析功能,成绩评定按照难度进行区分。任务要求一、提交材料应包括:(1)系统源代码 (2)课程报告二、整个设计过程具体要求(1)需求分析 要求学生对案例系统进行分析,设计出需要完成的功能,完善各个模块的调用关系;(2)设计过程 要求学生进一步明确各模块调用关系,进一步完善模块函数细节(函数名、参数、返回值等)
3、(3)实现过程 要求学生养成良好的编码习惯、完成各个模块并进行测试,最终完成系统整体测试;(4)总结阶段 按照要求完成系统设计和实现报告,并进行总结、答辩。成绩评定报告撰写情况(30分)系统完成情况(30分)答辩情况(40分)总分内容20分规范程度5分程序测试5分基本功能20分扩展功能10分自述情况10分答辩情况30分 成绩评定教师: 精选word.一. 需求分析1,具有数据的插入、修改、删除、显示和查询功能的电话簿管理程序。2,数据包括:人名、工作单位、电话号码和E-MAIL地址。3,可对记录中的姓名和电话号码进行修改。4,可增加和删除记录。5,可显示所有的保存记录。6,可按人名或电话号码进
4、行查询。分析 建议采用结构体数组和文件系统实现。结构体成员包括人名、工作单位、电话号码和E-MAIL地址。根据题目的要求程序应该采用结构体数组和文件系统实现。应该有文件的操作功能;在程序中应该包括输入、显示、删除、查询、添加、修改、保存、加载和退出的功能。二、概要设计(1)程序的模块组成及各个函数的功能:程序的模块组成:主函数:main();输出数据函数:printf();读取数据函数:scanf();显示记录函数:Display();删除记录函数:shanchu(); 查找记录函数:chaxun(); 自定义清屏函数:system(“cls”); 自定义输入函数:input(); 字符输入函
5、数:getchar();修改数据函数:xiugai();保存数据函数:baocun();排序数据函数:paixu();各函数的主要功能:输出数据函数:随时输出数据;精选word.读取数据函数:读取输入的数据信息;显示菜单函数:显示可供选择的主菜单;显示记录函数:显示通讯录所有输入的信息;删除记录函数:显示要删除的通讯录所有输入的信息; 查找记录函数:显示要查询的通讯录所有输入的信息;自定义清屏函数:清除前面运行留下的信息;自定义输入函数:输入通讯录的成员;;字符输入函数:从终端输入一个字符,遇回车键返回;修改数据函数:修改通讯录的成员信息;保存数据函数:保存通讯录的成员信息;排序数据函数:排序
6、通讯录的成员信息;(2)程序中的抽象数据类型的定义: 用户的状态结构 用户 编号: 姓名: 电话; 年龄; 邮箱: 地址;(3)总体流程图根据上面的分析,可以将程序系统的设计分为如下几个模块:插入、显示、删除、查询、修改、保存和退出。 通讯录管理系统插入显示删除查询保存修改退出 精选word.三. 详细设计(1). 主菜单;主菜单一般设计得比较简洁,只提供输入,处理和输出部分的函数调用。其中各功能模块用菜单方式选择。 流程图输入n,判断是否是06开始显示一系列功能选项N根据n的值调用各功能模块函数结束Y【程序】Person pe80; int menu_select() char c; do
7、system(cls); /清屏 printf(ttt*n);/窗口初始化 printf(ttt* 欢迎使用通讯录管理系统! *n); printf(ttt*n); printf(ttt* 1. 添加记录 *n); printf(ttt* 2. 显示记录*n); printf(ttt* 3. 删除记录*n); printf(ttt* 4. 查询记录*n); 精选word. printf(ttt* 5. 修改记录*n); printf(ttt* 6. 保存记录*n); printf(ttt* 7. 排序记录*n); printf(ttt* 0. 退出程序*n); printf(ttt*n); p
8、rintf(tt请您选择(0-7):); c=getchar(); while(c7); return(c-0); (2)显示模块此模块为显示所有记录,流程图如下:选择显示功能显示所有数据回主菜单void Display(Person per,int n) Inti;printf(-n); /格式 printf(编号t姓名t年龄t电话号码t通讯地址t电子邮箱n); printf(-n); for(i=1;i1&i%10=0) 精选word. printf(t-n); printf(t); system(pause); printf(t-n); printf(-n); system(pause)
9、; (3)修改模块此模块先调用查找函数查找到所要修改的信息,然后用户根据需要修改信息。流程图如下:开始输入要修改记录的姓名是否找到信息提示未找到信息显示要修改的信息修改需要修改的条目,并保存结束NYvoid xiugai(Person per,int n) char s20; int i=0; printf(t请输入想修改的记录中的名字:); scanf(%s,s); /输入修改人的名字 while(strcmp(peri.name,s)!=0&in) i+; if(i=n)精选word. printf(t通讯录中没有此人!n); return; printf(t编号:); scanf(t%d
10、,&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修改成功); (4)插入模块 此模块为插入信息模块,插入后再调用保存函数来保存所插入的数据,支持多条信息的插入。 流程图精选word.开始输入要插入的记录个数ni从0到n-1调用Inp
11、ut函数i!=0吗?返回主菜单保存调用baocun函数结束NYY 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)
12、; printf(t电子邮箱:); scanf(t%s,pern+i.email); 精选word. gets(x); printf(nt是否继续添加?(Y/N); scanf(t%c,&sign); i+; return(n+i); (5)删除模块此模块先利用查找模块找到所要删除的信息,然后根据用户的选择来确定是否删除信息,此种调用到Save函数。其流程图如下:开始输入要删除信息的名字是否找到信息提示没有找到信息NY显示找到的信息提示是否删除NY提示未删除提示删除成功结束int shanchu(Person per,int n) char s20; int i=0,j; printf(t请输
13、入想删除记录中的名字:); scanf(%s,s); while(strcmp(peri.name,s)!=0&in) i+; if(i=n) 精选word. printf(t通讯录中没有此人!n); return(n); for(j=i;jn-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); printf(ttt已经成功删除!n
14、); return(n-1); (6) 查询模块void chaxun(Person per,int n) int m; printf(tn请选择查询方式:n); printf(t-n); printf(t1-姓名查询n); printf(t2-电话查询n); printf(t3-地址查询n); printf(t4-返回 n); printf(t-n); printf(请选择:); scanf(%d,&m); while(m!=1&m!=2&m!=3&m!=4) printf(输入错误请重新选择:); scanf(%d,&m); 精选word. if(m=1) char s20; int i=
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 课程设计 作业 06237
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【w****g】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【w****g】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。