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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

C语言实验报告.docx

1、C语言实验报告C语言集中上机实习报告 指导教师 : 纪良浩 姓 名: 梁皓 学 号: 2012211516 班 级: 0401204 时 间: 2013年5月27日 实验题目 通讯录1、实验目的 为综合应用C语言程序设计理论知识、进一步提高自己综合解决问题、协调工作的能力和良好的软件开发习惯,所以设计一个个人通讯录管理系统,拥有对数据的各种操作功能,实现对通讯录的管理,从而巩固C语言程序设计。二、实验内容 1. 通讯录需求分析 2. 通讯录总体设计 3. 通讯录算法设计 4. 通讯录代码编写 5. 程序测试 6. 实验心得体会三、实践过程1.通讯录应实现以下功能:添加:添加通讯录记录显示:显示

2、通讯录记录删除:删除通讯录记录查询:查询通讯录记录修改:修改通讯录记录 保存:将信息保存到文件 2.功能实现分析 首先该程序需要一个主菜单设计如下 添加:可以添加通讯录记录,依次输入姓名、电话号码、通讯地址、邮政编码后,会提示是否继续添加。显示:可以以表格形式输出所有通讯录里的记录删除:输入欲删除的那个人的名字后,会自动删除他(她)的记录内容查询:可以选择用姓名、电话、地址三种方式查询修改:输入欲修改的那个人的名字后,再依次输入姓名、电话号码、通讯地址、邮政编码即可完成修改保存:输入文件名(带后缀名)后,即可将通讯录信息保存到文件分别将其设计后大概为: 添加: 显示: Y Y N N删除: 查

3、询(以姓名为例): 当然在代码的实现方面我也遇到了很多困难,毕竟这也是有一定难度的,也别是对于我这种很低端的人来说。 首先遇到的困难是程序该如何设计,第一步真的很难迈出。做一件事情首先要有完整计划才能事半功倍,当然写一个程序,一个良好的程序设计是必须的。在这里我去查找了很多资料和C语言教科书。成功的解决了这个问题。 后来再如何判断是否存在此人这一位问题中遇到了瓶颈,后来经过查资料,同学讨论解决了该问题。 做菜单也遇到了一点困难,最后通过XX知道了解到可以用f(;)做菜单在内置break等语句实现菜单功能。修改: 当然在编写代码中业余到了很难4.程序测试1.主菜单显示2.添加功能选择Y继续程序选

4、择N结束添加。3.显示记录4.查询记录(以姓名查询为例)5.删除记录6.修改记录7.保存记录8.退出程序五、实验心得 在这次的C语言上机实验中,我收获颇丰。不仅巩固了以前学习的C语言的知识同时锻炼了自己的动手操作能力和综合解决问题、协调工作的能力和养成了良好的软件开发习惯。6、源代码#include #include /*standard library标准库头文件*/#include typedef struct char name10;/*姓名*/ char num15; /*号码*/ char postcode20; /*邮政编码*/ char adds30; /*地址*/ Person

5、; Person per80; /*定义结构体*/int menu_select() /*菜单函数*/ char c; do system(cls); printf(tt 通讯录 n); /*t 横向跳到下一制表位置*/ printf(n); 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(n); printf(请您选择 (

6、0-6) :); c=getchar(); while(c6); /* 判断C的大小,如果不是0-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%s,pern+i.name); printf(t电话号码:); scanf(t%s,pern+i.num); printf(t通讯住址:); scanf(t%s,pern+i.adds); printf(t邮政编码:); scanf(t

7、%s,pern+i.postcode); 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;i1&i%10=0) printf(t-n); printf(t); system(pause); /*等待接收信号,重新运行*/ printf(t-n); printf(-n); system(

8、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函数的功能 删除记录*/ strcpy(perj.name,perj+1.name); strcpy(perj.adds,perj+1.adds

9、); strcpy(perj.postcode,perj+1.postcode); printf(ttt已经成功删除!n); return(n-1); void Query_a_record(Person per,int n) /*查找函数*/ int m; printf(tn请选择查询方式:n); printf(n); printf(t 1-姓名 n); printf(t 2-电话 n); printf(t 3-地址 n); printf(t 4-返回 n); printf(n); printf(请选择(1-4):); scanf(%d,&m); while(m!=1&m!=2&m!=3&m

10、!=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电话号码: %sn,peri.num); printf(t通讯地址: %sn,peri.adds); printf(t邮政编码: %sn,peri.postcode); if(m=2)

11、 /*利用电话查询*/ 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此人姓名: %sn,peri.name); printf(t通讯地址: %sn,peri.adds); printf(t邮政编码: %sn,peri.postcode); if(m=3) /*利用地址查询*/ char s20; int i=0; printf(t请输入想查询的地址:); scanf(t%

12、s,s); while(strcmp(peri.adds,s)!=0&in) i+; if(i=n) printf(t通讯录中没有此人!n); return; printf(t此人姓名: %sn,peri.name); printf(t电话号码: %sn,peri.num); printf(t邮政编码: %sn,peri.postcode); void Change(Person per,int n) /*修改记录功能函数*/ char s20; int i=0; printf(t请输入想修改的记录中的名字:); scanf(%s,s); while(strcmp(peri.name,s)!=

13、0&in) i+; if(i=n) scanf(t%s,s); while(strcmp(peri.num,s)!=0&in) i+; /*查找是否有此人*/ if(i=n) printf(t通讯录中没有此人!n); return; printf(t此人姓名: %sn,peri.name); printf(t通讯地址: %sn,peri.adds); printf(t邮政编码: %sn,peri.postcode); if(n=3) char s20; int i=0; printf(t请输入想查询的地址:); scanf(t%s,s); while(strcmp(peri.adds,s)!=

14、0&in) i+; /*查找是否有此人*/ if(i=n) printf(t通讯录中没有此人!n); return; printf(t此人姓名: %sn,peri.name); printf(t电话号码: %sn,peri.num); printf(t邮政编码: %sn,peri.postcode); printf(t请输入想修改的记录中的名字:); scanf(%s,s); while(strcmp(peri.name,s)!=0&in) i+; /*查找是否有此人*/ if(i=n) printf(t通讯录中没有此人!n); return; printf(t姓名:); scanf(t%s,

15、peri.name); printf(t电话号码:); scanf(t%s,peri.num); printf(t通讯住址:); scanf(t%s,peri.adds); printf(t邮政编码:); scanf(t%s,peri.postcode); printf(t修改成功!); void WritetoText(Person per,int n) /*保存功能*/ int i=0; FILE *fp; /*定义文件指针*/ char filename20; /*定义文件名*/ printf(t保存到文件n); printf(t请输入所保存的文件名(需要加上后缀名):); /*输入文件

16、名*/ 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(in) fprintf(fp,%-8st%-13st%-15st%-15sn,peri.name,peri.num,peri.adds,peri.postcode); i+; fprintf(fp,-n); fprintf(fp,*共有%d条记*n,n); f

17、close(fp); /*关闭文件*/ printf(保存成功!n); void main() /*主函数*/ int n=0; for(;) switch(menu_select() case 1: printf(nt添加记录到通讯录n); /*添加记录*/ n=Input(per,n); break; case 2: printf(nttt 通讯录记录表n); /*显示记录*/ Display(per,n); break; case 3: printf(nt从通讯录中删除记录n); n=Delete_a_record(per,n); /*删除记录*/ printf(t); system(p

18、ause); break; case 4: printf(nt在通讯录中查找记录n); Query_a_record(per,n); /*查找记录*/ printf(t); system(pause); break; case 5: printf(nt修改通讯录中的记录n); Change(per,n); /*修改数据*/ printf(t); system(pause); break; case 6: printf(nt保存功能n); WritetoText(per,n); /*保存数据*/ printf(t); system(pause); break; case 0: printf(ntt谢谢使用,再见!n); /*结束程序*/ printf(ntt); system(pause); exit(0); /*无条件的退出程序*/ 7、参考文献谭浩强,C程序设计(第二版),北京:清华大学出版社。陈朔鹰,C语言程序设计习题集,北京:人民邮电出版社。

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

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