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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

本文(C语言程序设计实训报告之通讯录管理.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

C语言程序设计实训报告之通讯录管理.docx

1、C语言程序设计实训报告之通讯录管理青岛大学软件技术学院C语言程序设计实训报告姓 名 任XX 专 业 软件技术 班 级 软件技术班 指导教师 白伟青 2011 年 7月14日1问题定义与描述1.1问题定义通讯录管理系统1. 2问题描述该程序应该能够提供添加、删除和修改通讯录信息的功能;基本信息包含编号、姓名、年龄、电话、通讯地址、电子邮箱等;能够提供安不同方式查询的功能;如按姓名、年龄或电话等查询;能将通讯录保存在文件中;能够输出通讯录信息;并且界面友好,易于操作。2总体设计2.1主要功能模块添加:添加通讯录记录。显示:显示通讯录记录。删除:删除通讯录记录。查询:查询通讯录记录。修改:修改通讯录

2、记录。保存:将信息保存到文件。2.2数据类型定义typedef struct char score; /*编号*/ char name10; /*姓名*/ char num15; /*号码*/ char email20; /*邮箱*/ char age8; /*年龄*/ char adds20; /*住址*/ Person;23函数定义int menu_select()int Input(Person per,int n)void Display(Person per,int n) int Delete_a_record(Person per,int n)void Query_a_record

3、(Person per,int n)void Change(Person per,int n)void WritetoText(Person per,int n) 3详细设计3.1每个模块的功能添加:可以添加通讯录记录,依次输入编号、姓名、年龄、电话号码、通讯地址、电子邮箱后,会提示是否继续添加。显示:可以以表格形式输出所有通讯录里的记录删除:输入欲删除的那个人的名字后,会自动删除他(她)的记录内容查询:可以选择用姓名、电话、地址三种方式查询修改:输入欲修改的那个人的名字后,再依次输入编号、姓名、年龄、电话号码、通讯地址、电子邮箱即可完成修改保存:输入文件名(带后缀名,如.txt)后,即可将通

4、讯录信息保存到文件3.2流程图添加模块:可以添加通讯录记录,依次输入编号、姓名、年龄、电话号码、通讯地址、电子邮箱后,会提示是否继续添加,如图3.1。N Y图3.1添加通讯录记录显示模块:输出所有通讯录里的记录,如图3.2。图3.2显示通讯录记录 删除模快:输入欲删除的那个人的名字后,会自动删除他(她)的记录内容,如图3.3。图3.3删除通讯录记录查询模块:可以选择用姓名、电话、地址三种方式查询,如图3.5。图3.4查询通讯录记录(以姓名查询方式为例)修改模块:输入欲修改的那个人的名字后,再依次输入编号、姓名、年龄、电话号码、通讯地址、电子邮箱即可完成修改,如图3.5。图3.5修改通讯录记录保

5、存模块:,输入文件名(带后缀名)后,即可将通讯录信息保存到文件。如图3.7 图3.7保存通讯记录4程序测试4.1测试主菜单界面主界面如图4.1图4.1主界面4.2测试添加界面 进入添加界面,如图4.2。图4.2添加界面4.3测试显示界面进入显示界面,如图4.3。图4.3显示界面4.4测试删除界面进入删除界面,如图4.4。图4.4删除界面4.5测试查询界面进入查询界面,如图4.5。图4.5查询界面4.6测试修改界面进入修改界面,如图4.6。图4.6修改界面4.7测试保存界面进入保存界面,如图4.7。图4.7保存界面5心得体会这次的C语言程序实设计实训是对我们进入大学以来学习C语言程序设计成果的一

6、次大检验。自己动手,自己发现和解决问题。发现了自己的许多不足。平时没有掌握好的知识在这次实验中彻底暴露出来,经过不断思考,不断查阅资料和上机运行,解决其中大部分问题,当然还存在一些问题没有解决。我相信在以后的学习能够解决好它们。但是,收获还是不小的,我不仅对C的操作有了进一步的掌握,还了解到了程序设计的书写风格及其注释的格式。当我选择通讯录这个题目时,一开始想运用大量链表及指针来完成,但是在慢慢琢磨之后,觉得这个不一定要用链表,于是改变了编程思路。当然还有不少文件的读写问题,不过还是通过不断测试之后顺利解决了。另外一点要说的就是这个程序用了很多的循环,因此对于循环的控制要十分小心。本次C 语言

7、的实训让我对C 语言的学习又有了更深入的了解,也让我更深刻地领悟“实践出真理”这个道理,在上机实践过程中学到的知识远远超过了在课堂上十几周学到的,学校组织的这次实训让我们这些实践知识匮乏的大学生增添了许多社会经验,为我们将来走上工作岗位其了不小的铺垫作用。本次实训中遇到了很多以前没有遇到过的问题 。但在老师同学的帮助下,我顺利的结束了本次实习。并且,通过一种题材两中方式的学习,我掌握了更多的知识。书上和老师教的内容是有限的,我们需要不断地靠自己去学习,向他人请教,了解和掌握更多的知识,这样我们才能编出更好的C语言程序。此次编写的是一个应用程序,相对于以前我们见到的程序,它要大得多,运行的结果也

8、没有预想中的好,数据的输出格式不太规范,而且各模块也出现了一些小问题,在老师同学们的帮助下,我很有耐心的一次又一次的进行修改,最后运行的结果基本上达到了预期的目的。已有的那些功能虽已能基本上满足用户的需要,但如果还有更多的功能程序就会更加完美。最后,要感谢学校为我们提供这次实训机会,也要感谢老师的帮助与支持。6参考文献1 刘振安,刘燕君.C程序设计课程设计M.北京:机械工业出版社,2004年9月2 谭浩强.C程序设计(第三版).清华大学出版社,2005年7月3 严蔚敏,吴伟民.数据结构(C语言版).清华大学出版社,1997年4月4 张岳新.Visual C+ 程序设计.苏州大学出版社,2007

9、年12月5 徐宝文,The C Programming Language .机械工业出版社,2004年1月6 黄明,梁旭,周绍斌.Visual C+ 信息系统设计与开发实例.机械工业出版社, 2005年3月7 AL KELLEY等著,麻志毅译.C语言解析教程.北京:机械工业出版社,2002年8 李志球,实用C语言程序设计教程.北京:电子工业出版社,1999年9 王立柱,C/C+与数据结构.北京:清华大学出版社,2002年10 李大友,C语言程序设计.清华大学出版社,1999年 7附录#include #include#include typedef struct char score; /*编

10、号*/ char name10; /*姓名*/ char num15; /*号码*/ char email20; /*邮箱*/ char age8; /*年龄*/ char adds20; /*住址*/ Person; Person pe80; int menu_select() char c; do system(cls); printf (t*n); printf ( 欢迎进入通讯录管理系统 n); printf (t*n); printf ( 添加记录:1n 显示记录:2n 删除记录:3n 查询记录:4n 修改记录:5n 保存记录:6n 退出:0n); printf (t*n); pri

11、ntf(tt请选择(0-6):); c=getchar(); while(c6); 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通讯住址:);

12、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(t*n); printf( 编号 姓名 年龄 电话号码 通讯地址 电子邮箱 n); printf(t*n); for(i=1;i1&i%10=0) printf(t*n); printf(t); system(pause); printf(t*n

13、); printf(t*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&in) i+; if(i=n) 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,per

14、j+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(t 请选择查询方式:n); printf(t*n); printf(t 姓名:1 n); printf(t 电话:2 n); printf(t 地址:3 n); printf(t 返回:4 n); printf(t*n); pri

15、ntf(t请选择:); 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&in) i+; if(i=n) printf(t通讯录中没有此人!n); return; printf(t此人编号: %dn,peri.score); printf(t此人年龄: %sn,peri.age); printf(t电话号码: %s

16、n,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&in) i+; if(i=n) printf(t通讯录中没有此人!n); return; printf(t此人编号: %dn,peri.score); printf(t此人姓名: %sn,peri.name); printf(t此人年龄: %sn,peri.age);

17、 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&in) 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电话

18、号码: %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&in) i+; if(i=n) printf(t通讯录中没有此人!n); return; printf(t编号:); scanf(t%d,&peri.score); printf(t姓名:); scanf(t%s,peri.name); printf(t年龄:);

19、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

20、,filename); if(fp=fopen(filename,w)=NULL) printf(t无法打开文件n); system(pause); return; fprintf(fp,*通讯录*n); fprintf(fp,编号 姓名 年龄 电话号码 通讯地址 电子邮箱 n); fprintf(fp,-n); while(in) fprintf(fp,%-3dt%-6st%-3st%-13st%-20st%-20sn,peri.score,peri.name,peri.age,peri.num,peri.adds,peri.email); i+; fprintf(fp,-n); fprin

21、tf(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); /*删除记录*/

22、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);

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1