ImageVerifierCode 换一换
格式:DOC , 页数:28 ,大小:290.11KB ,
资源ID:1139307      下载积分:20 积分
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 微信支付   
验证码:   换一换

加入VIP,免费下载资源
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【http://www.wodocx.com/d-1139307.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(通讯录管理系统数据结构课程设计.doc)为本站会员(芳黎)主动上传,沃文网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知沃文网(发送邮件至2622162128@qq.com或直接QQ联系客服),我们立即给予删除!

通讯录管理系统数据结构课程设计.doc

1、 C语言课程设计 通讯录管理系统目 录 一、 需求分析2二、 概要设计2三、 详细设计3四、 上机操作14五、 实习心得19六、 源程序 20一、需求分析 具有数据的插入、修改、删除、显示和查询功能的电话簿管理程序。(1) 数据包括:人名、工作单位、电话号码和E-MAIL地址。(2) 可对记录中的姓名和电话号码进行修改。(3) 可增加和删除记录。(4) 可显示所有的保存记录。(5) 可按人名或电话号码进行查询。提示 建议采用结构体数组和文件系统实现。结构体成员包括人名、工作单位、电话号码和E-MAIL地址。根据题目的要求程序应该采用结构体数组和文件系统实现。应该有文件的操作功能;在程序中应该包

2、括输入、显示、删除、查询、添加、修改、保存、加载和退出的功能。二、概要设计根据上面的分析,可以将程序系统的设计分为如下几个模块:插入、显示、删除、查询、修改、保存和退出。 通讯录管理系统插入显示删除查询保存修改退出三、详细设计1、 主函数;主函数一般设计得比较简洁,只提供输入,处理和输出部分的函数调用。其中各功能模块用菜单方式选择。 流程图输入n,判断是否是06开始显示一系列功能选项N根据n的值调用各功能模块函数结束Y【程序】int main() /主函数Man man500,*pman=man;char control;int size;printf(tt*n); /窗口初始化 printf

3、(tt* 欢迎使用通讯录管理系统! *n); printf(tt*-*n); printf(tt* 请按回车键继续! *n); printf(tt*n); scanf(%c,&control);if(control)size=Scan(pman); /判断文件是否存在printf(ttt请输入相应操作数操作n);for(;) /菜单生成printf(tt*n); printf(tt* 1-插入信息 *n); printf(tt* 2-按姓名查找 *n); printf(tt* 3-按电话查找 *n); printf(tt* 4-删除信息 *n); printf(tt* 5-显示信息 *n);

4、printf(tt* 6-修改信息 *n); printf(tt* 0-退出系统 *n); printf(tt*n);scanf(%s,&control);switch(control)case 1: size=Insert(pman,size);break; /插入新的通讯录 case 2: S_asname(pman,size);break; /按姓名查找 case 3: S_astel(pman,size);break; /按电话查找 case 4: Delete(pman,size);break; /删除信息 case 5: Display(pman,size);break; /显示所

5、有信息 case 6: Modify(pman,size);break; /修改信息 case 0: printf(*谢谢使用!再见!*n); /退出系统return 0;default: printf(*输入数字有误,请重新输入*n);break;return 0;2、 插入模块 此模块为插入信息模块,插入后再调用保存函数来保存所插入的数据,支持多条信息的插入。 流程图 开始输入要插入的记录个数ni从0到n-1调用Insert函数i!=0吗?返回主菜单保存调用Save函数结束NYY【程序】int Insert(Man * pMan,int Size) /插入模块int i,n;printf(

6、tt*请输入要插入数据的个数.*n); printf(tt*n);scanf(%d,&n);for(i=0;in;i+) /从键盘输入数据再写入文件 printf(您将要录入第%d条记录(共有%d条)n,i+1,n);printf(请输入姓名:n);scanf(%s,&pManSize+i.Name);printf(请输入工作单位:n);scanf(%s,&pManSize+i.Depart);printf(请输入电话号码:n); scanf(%s,&pManSize+i.TEL); printf(请输入Email地址:n); scanf(%s,&pManSize+i.Email);if(Sa

7、ve(pMan,Size+n)printf(tt* 恭喜!数据插入成功! *n);elseprintf(tt* 操作失败,请稍后再试 !*n);return Size+n;3、 显示模块此模块为显示所有记录,流程图如下:选择显示功能显示所有记录自动返回主菜单【程序】void Display(Man * pMan,int Size) /显示所有记录int i;printf(t人名t 工作单位t 电话号码t E-mail地址n);printf(t*n);for(i=0;iName,pMan-Depart,pMan-TEL,pMan-Email); printf(t-n);4、 查找模块本模块分为按

8、姓名查找和按电话查找两个子模块。4.1按姓名查找模块,流程图如下:是否找到此姓名输入姓名开始提示没有找到显示找到的记录结束,返回主菜单NY【程序】void S_asname(Man * pMan,int Size) /查找信息int i=0;char name8;printf(tt*请输入要查询信息的姓名:*n); printf(tt*n);scanf(%s,name);while(iName,name)/查找pMan+; i+;if(!strcmp(pMan-Name,name)/找到后输出printf(tt*查到的信息为: *n); printf(t*n); printf(t人名t 工作单

9、位t 电话号码t E-mail地址n); printf(t*n); printf(t%stt%st%st%sn,pMan-Name,pMan-Depart,pMan-TEL,pMan-Email); printf(t*n);elseprintf(tt*抱歉,没有找到相关数据 *n); printf(tt*n);4.2按电话查找模块,此模块与按姓名查找模块相似,流程图略。【程序】void S_astel(Man * pMan,int Size) /按电话查找模块int i=0;char tel12;printf(tt*请输入要查询信息的电话:*n); printf(tt*n);scanf(%s,

10、tel);while(iTEL,tel) /查找信息pMan+; i+;if(!strcmp(pMan-TEL,tel) /输出找到的信息printf(tt*查到的信息为: *n); printf(t*n); printf(t人名t 工作单位t 电话号码t E-mail地址n); printf(t*n); printf(t%stt%st%st%sn,pMan-Name,pMan-Depart,pMan-TEL,pMan-Email); printf(t*n);elseprintf(tt*抱歉,没有找到相关数据 *n); printf(tt*n);5、 删除模块此模块先利用查找模块找到所要删除的

11、信息,然后根据用户的选择来确定是否删除信息,此种调用到Save函数。其流程图如下:开始输入要修改信息的姓名是否找到信息提示没有找到信息NY显示找到的信息提示是否删除NY提示未删除提示删除成功结束【程序】void Delete(Man * pMan,int Size)/删除信息char name8,control;int i=0;printf(tt*请输入要删除信息的姓名: *n);printf(tt*n);scanf(%s,name);while(iName,name)/同查找,找到后跳出pMan+; i+;if(!strcmp(pMan-Name,name) /找到了,删除信息!做出判断.p

12、rintf(您要删除的信息为:n); printf(%stt%st%st%sn,pMan-Name,pMan-Depart,pMan-TEL,pMan-Email); printf(是否确认删除?(Y/N)n); scanf(%s,&control);switch(control) case y: pMan-Name0=0; pMan-Depart0=0; pMan-TEL0=0; pMan-Email0=0; if(Save(pMan,Size)/将新信息写入文件printf(tt*恭喜!信息删除成功!*n); printf(tt*n);break; elseprintf(tt*操作失败,请

13、稍后再试! *n);printf(tt*n);break;case n:printf(信息未删除!n);break;default:printf(选择有误!n);break;elseprintf(tt*抱歉,没有找到相关信息! *n);printf(tt*n);6、 修改模块此模块先调用查找函数查找到所要修改的信息,然后用户根据需要来修改信息。流程图如下:开始输入要修改记录的姓名是否找到信息提示未找到信息显示要修改的信息修改需要修改的条目,并保存结束NY【程序】void Modify(Man * pMan,int Size) /修改模块void Display();int i=0;char n

14、ame8; char depart20; char tel12; char email30;printf(tt*输入要修改信息的姓名:*n);printf(tt*n);scanf(%s,name);while(iName,name)/遍历数组,查找数据,若查到跳出循环pMan+;i+;if(!strcmp(pMan-Name,name)/如果找到,则开始修改printf(请输入修改后的姓名:n);scanf(%s,name); strcpy(pMan-Name,name); printf(请输入修改后的工作单位:n); scanf(%s,depart); strcpy(pMan-Depart,

15、depart); printf(请输入修改后的电话号码:n); scanf(%s,tel); strcpy(pMan-TEL,tel); printf(请输入修改后的E-mail地址:n); scanf(%s,email);strcpy(pMan-Email,email);if(Save(pMan,Size) /将修改信息写入文件,并判断是否写入成功printf(tt*恭喜!信息修改成功!*n); printf(tt*n);elseprintf(tt*操作失败,请稍后再试!*n); printf(tt*n);elseprintf(tt*抱歉,没有找到相关信息!*n); printf(tt*n)

16、;7、 其他模块7.1结构体定义【程序】struct Man /定义结构体char Name8; /名字char Depart20; /工作单位char TEL12; /电话号码char Email30; /邮箱;7.2保存模块【程序】int Save(Man * pMan,int Size) /把数据写入文件int i;FILE * out;out=fopen(info.txt,w);if(out=NULL)/判断文件打开成功与否printf(tt*文件info.txt打开失败 !*n);printf(tt*n);return 0;for(i=0;iName,pMan-Depart,pMan

17、-TEL,pMan-Email);fclose(out);return 1;7.3浏览模块【程序】int Scan(Man * pMan) /从文本中读取数据printf(tt*正在读取文件信息,请稍后! *n);int i;FILE * in=fopen(info.txt,r);if(in=NULL) /判断文件是否打开成功printf(tt* 文件info.txt打开失败 ! *n);return 0;for(i=0;!feof(in);i+,pMan+)/打开成功后一一读取,直到读完为止fscanf(in,%s%s%s%s,pMan-Name,pMan-Depart,pMan-TEL,p

18、Man-Email);fclose(in);printf(tt* 文件数据读入成功 !*n); return (i-1);7.4 getch()函数【程序】void getch()char stop;printf(n确认?(按任意键并回车返回!)n);getchar();scanf(%c,&stop);return;四、上机操作1、已有文件信息 (info.txt) name depart phone email kong cug71092 15271896975 kkk gong cug71092 15927211897 ggg2、要插入的信息 name depart phone email

19、 liji cug71091 13888888888 lll chen cug71091 13999999999 ccc3、各模块功能的实现(1)窗口的初始化(2)主菜单(3)显示所有信息(4)插入信息第一条第二条(6) 按姓名查找模块(7) 按电话查找模块(8) 删除没有的信息删除已有信息取消删除确认删除(9)退出系统五、实习心得在老师的带领下进行了C语言程序实践学习。在短短一周的实习期间使我获取了不少新知识也巩固了许多老知识。在这之前,我们已经对C语言这门课程学习了一个学期,对其有了一定的了解,但是也仅仅是停留在学习了解的范围,对里面的好多东西还是很陌生,并不是很熟练,有着许多欠缺,更多的

20、在运用起来的时候还是感到很不好动手。C语言是需要有一定基础、而且动手能力强的学科。上机实验是学习程序设计语言必不可少的实践环节,特别是C语言灵活、简洁,更需要通过编程的实践来真正掌握它。对于程序设计语言的学习目的,可以概括为学习语法规定、巩固贯穿系统知识、掌握程序设计方法、提高程序设计能力,这些都必须通过充分的实际上机操作才能完成。课堂上许多关于C语言的语法规则,听起来十分枯燥无味,也不容易记住,死记硬背是不可取的。然而要使用C语言这个工具解决实际问题,又必须掌握它。通过多次上机练习,对于语法知识有了感性的认识,加深对它的理解,在理解的基础上就会自然而然地掌握C语言的语法规定。对于一些内容自己

21、认为在课堂上听懂了,但上机实践中会发现原来理解的偏差,更加巩固了学过的知识,而且在设计的时候学要系统的知识,也是一个较大的挑战,某一方面知识的欠缺都将影响到整个程序的设计。这次上机实习让我学到了很多有用的东西,巩固了之前的学习,让我学到了在教室和做题中学不到的一些知识,通过这个程序的学习,使我进一步理解和运用结构化程序设计的思想和方法。相信对以后初步掌握开发一个小型实用系统的基本方法,学会调试一个比较长程序的基本方法,学会利用流程图表示算法,进一步掌握和提高利用C语言进行程序设计的能力。我认为,这次实习对于我是非常有意义的,对我个人的影响比较大,对我的动手能力有了很大的提高。在体会到程序成功后

22、的快乐后,发现自己也逐步喜欢上了这门语言,对以后的专业知识的学习也会很有帮助。最后感谢在实习过程中帮助过我的老师和同学,正是你们的帮助才有了这次实习的成功!六、源程序#include#includestruct Man /定义结构体char Name8; /名字char Depart20; /工作单位char TEL12; /电话号码char Email30; /邮箱;void getch()char stop;printf(n确认?(按任意键并回车返回!)n);getchar();scanf(%c,&stop);return;int Scan(Man * pMan) /从文本中读取数据pri

23、ntf(tt*正在读取文件信息,请稍后! *n);int i;FILE * in=fopen(info.txt,r);if(in=NULL) /判断文件是否打开成功printf(tt* 文件info.txt打开失败 ! *n);return 0;for(i=0;!feof(in);i+,pMan+)/打开成功后一一读取,直到读完为止fscanf(in,%s%s%s%s,pMan-Name,pMan-Depart,pMan-TEL,pMan-Email);fclose(in);printf(tt* 文件数据读入成功 !*n); return (i-1);int Save(Man * pMan,i

24、nt Size) /把数据写入文件int i;FILE * out;out=fopen(info.txt,w);if(out=NULL)/判断文件打开成功与否printf(tt*文件info.txt打开失败 !*n);printf(tt*n);return 0;for(i=0;iName,pMan-Depart,pMan-TEL,pMan-Email);fclose(out);return 1;int Insert(Man * pMan,int Size) /插入模块int i,n;printf(tt*请输入要插入数据的个数.*n); printf(tt*n);scanf(%d,&n);for

25、(i=0;in;i+) /从键盘输入数据再写入文件 printf(您将要录入第%d条记录(共有%d条)n,i+1,n);printf(请输入姓名:n);scanf(%s,&pManSize+i.Name);printf(请输入工作单位:n);scanf(%s,&pManSize+i.Depart);printf(请输入电话号码:n); scanf(%s,&pManSize+i.TEL); printf(请输入Email地址:n); scanf(%s,&pManSize+i.Email);if(Save(pMan,Size+n)printf(tt* 恭喜!数据插入成功! *n);elseprin

26、tf(tt* 操作失败,请稍后再试 !*n);return Size+n;void Modify(Man * pMan,int Size) /修改模块void Display();int i=0;char name8; char depart20; char tel12; char email30;printf(tt*输入要修改信息的姓名:*n);printf(tt*n);scanf(%s,name);while(iName,name)/遍历数组,查找数据,若查到跳出循环pMan+;i+;if(!strcmp(pMan-Name,name)/如果找到,则开始修改printf(请输入修改后的姓名

27、:n);scanf(%s,name); strcpy(pMan-Name,name); printf(请输入修改后的工作单位:n); scanf(%s,depart); strcpy(pMan-Depart,depart); printf(请输入修改后的电话号码:n); scanf(%s,tel); strcpy(pMan-TEL,tel); printf(请输入修改后的E-mail地址:n); scanf(%s,email);strcpy(pMan-Email,email);if(Save(pMan,Size) /将修改信息写入文件,并判断是否写入成功printf(tt*恭喜!信息修改成功!*n); printf(tt*n);elseprintf(tt*操作失败,请稍后再试!*n); printf(tt*n);elseprintf(tt*抱歉,没有找到相关信息!*n); printf(tt*

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

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

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