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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

C语言实训报告Word下载.docx

1、 添加:增加一个或几个人的通信录信息。 删除:删除已输入的通信录信息。 查询:根据输入的姓名查找通信录信息。 修改:根据输入的姓名修改通信录信息。 显示:输出所有通信录信息。3.2 设计环境所使用的语言采用标准C,开发工具选用在Windows环境下的C-free、Win-TC或者Visual C+ 6.0。3.3 数据结构本系统是对通信录的信息进行管理,通信录记录的信息采用C的结构体数据类型描述,定义如下:struct ren /*定义个人资料结构体类型*/ char name10; /*姓名*/ int age; /*年龄*/ char tel12; /*电话号码*/ char city20

2、; /*城市 */ char units30 ; /*所在单位*/ char note20; /*备注*/;3.4实现方法及主要算法分析(1)主界面的设计:主界面采用文本菜单的形式,各功能调用通过菜单进行选择。采用循环处理,以便执行完某项处理后,仍可选择其他项处理。在循环内先显示提示信息,然后读取用户输入,使用switch语句对用户的输入进行判断,分别调用相应的模块,当某模块结束后再次回到文本菜单,直到用户选择结束程序菜单,才退出循环,从而退出系统。(2) 外部文件的类型:文件采用的二进制的文件,对文件的读写采用顺序文件的方式,并使用fread和fwrite等函数对文件进行操作。(3)清屏函数

3、:一般由上一级菜单屏幕进入下一级菜单屏幕或由下一级菜单屏幕返回上一级菜单屏幕都需要清除屏幕原来显示的内容。同时在调用程序的过程中,记录需要清屏的位置,然后修改代码,加入clrscr()函数清屏。(4)提示信息:一般的输入与输出需有相应的提示信息,以增加用户的交互性,增加输出的可读性,以帮助用户使用程序。(5)设置颜色:textbackground()、textcolor()函数设置背景和前景颜色(6)光标定位:gotoxy(列,行); 光标定位3.5模块设计根据功能要求,本系统为五大主要模块,具体模块如表所示。表 通讯录管理管理系统的模块main()主控函数add()增加个人资料del()删除

4、个人资料edit()修改个人资料search()查找个人资料主函数display()浏览所有信息pause()等待Y、yn、Y键输入pause2()等待任意键输入load_rec()统计记录数search_name()按姓名查找个人资料search_city ()按城市查找个人资料3.6处理流程(1)通讯录主界面模块(2)增加记录模块 (3)显示记录模块(4)删除记录(5)修改记录四、结论通信录管理系统的编写,看似杂乱无头绪,实际上却并不如此。它的每一个功能都能分成模块,有句话说的好,大事化小,小事化了。C语言编程也正式如此,把一个大的程序分为若干相互独立的模块,这样使完成每一个模块的工作变得

5、单纯而明确,这样不仅降低了难度还使得思路清晰,很容易编写出要做的程序,从而为设计一些较大的软件打下了良好的基础。分析问题:通讯录管理的整体功能都包括登陆限制、增加成员、删除成员、查看成员、修改成员、登陆口令五大板块,而查看有包括姓名查看,城市查看,年龄查看三个模块。(1) 设计的数据对象包括整形:年龄。字符型:姓名、电话、城市、所在单位、备注。(2) 数据结构线性数据结构,定义人数上限为100.算法的设计:(1) 自顶向下 现有全局,在进行整体设计,然后再进行下层的设计,逐步实现精细化。采用这种方法能够做到胸有全局,能全盘考虑,不至于顾此失彼,头重脚轻。(2) 逐步细化 一步步地将上层的任务分

6、解成较小的、易于实现的任务,知道可以很简单实现为止。编写源程序:(1) 不求速度,但求质量!一步一个脚印,编写程序时候宁可速度慢些也要尽量保证质量,做到尽量不出错。(2) 精力集中,全神贯注!写程序时候最忌讳三心二意,这样才能思路清晰保证质量。(3) 保持一个良好的编程心态,不要被长长的代码吓到,更不要厌烦,既然同样都是写,为什么不仲满激情的去写那?程序的编译与运行:(1) 查找错误是一件让人闹心的事,但是要注重技巧,注意平时经验的积累。才能在最快的时间找出错误(2) 用心去查找,也许你会发现错误并不是很难找(3) 程序编译成功不要满足现状,要积极测试程序的可用性,对功能不理想,存在缺点的地方

7、,积极的改进,完善。五、结束语在实训过程中,使我良好的锻炼了自己,首先是兴趣方面,通过编写通讯录管理系统使我更加喜欢编程,使我从以前的迷茫状态中解脱出来,使我了解了编程的真正意义。我想这对我以后的人生有着很大的帮助。其次通过编写通讯录管理系统使我对写程序有了一定的思路,不像以前无从下手,使我理解了算法的意义,使我懂得了模块化思想的好处。通过一个星期的编写代码,使我对书本上的知识有了更深的理解,甚至有很多不懂的问题在这过程中自然而然的理解了。对期末考试更有了信心。在方建文老师的悉心指导下,我对C语言有了更深刻的理解,对程序的算法,数据的定义,程序的改错等方面的能力有了很大提高,自身的注意力,耐心

8、,和对编程的兴趣有了很大增长,使我获益匪浅。六、参考书目:1 周成义,汤德俊,钟菊,C语言程序设计与数据结构,中国铁道出版社,北京,2007年8月2(美)克尼汉,(美)里奇 著,徐宝文,李志 译, C程序设计语言,机械工业出版社2004年01月七、程序运行系统各个模块运行调试,并附上运行结果截图。八、附录:(源程序清单)/*通讯录程序*/#define M 100#includestdlib.hstring.hstruct record char name20; char tele15; char units30;void modi_seq(struct record info,int n);

9、void creat();void append();void display();void locate();void modify();void dele();void disp_arr(struct record * ,int);void disp_row(struct record);void disp_table();void modi_sep(struct record,int);void disp_str(char,int);void sort(struct record,int);void sort_name(struct record,int);void sort_city(

10、struct record,int);void dele_name(struct record,int*);void dele_sequ(struct record,int*);void main() char choice; while(1) printf(nn); disp_str( ,18);通讯录管理程序n*,50); putchar(n,16);1.通讯录信息输入n2.显示通讯录信息n3.通讯录记录查询n4.修改通讯录信息n5.通讯录记录删除n disp_str(6.建立通讯录文件n7.退出通讯录程序n,14);请输入代码选择(17) choice=getchar(); getcha

11、r(); switch(choice) case1: append(); break;2 display(); break;3 locate();4 modify();5 dele();6 creat();7 return 1; default: continue; void disp_str(char ch,int n) int i; for(i=1;i=n;i+) printf(%c,ch); return;void append() struct record infoM; FILE *fp; char ask; int i=0; if(fp=fopen(address.txl,rb+w

12、b)=NULL) printf(cant open file!n return; while(!feof(fp) fread(&infoi+,sizeof(struct record),1,fp); i-; if(i=M)纪录已满!,10);添加通讯录信息(共有%d条记录)n,i);,17);1.添加新的通讯纪录n2.退出添加程序n请输入代码选择(12) ask=getchar(); if(ask=) break; else if(ask=开始添加新的纪录信息: putchar(清输入一下信息:姓名: gets(infoi.name);n年龄: scanf(%d,&infoi.age); ge

13、tchar();n电话: gets(infoi.tele);n所在城市: gets(infoi.city);n所在单位: gets(infoi.units);n备注: gets(infoi.note); fwrite(&infoi,sizeof(struct record),1,fp); i+; /while(1) fclose(fp);void creat() FILE * fp; if(fp=fopen(wb fclose(fp);nn文件成功建立,请使用“通讯录信息输入功能”输入信息!void display()rb n return;显示通讯录信息(共有%d条记录)n1.按自然顺序显示

14、 n2.按排序顺序显示 n3.退出显示程序 n请输入代码选择1-3 fclose(fp); disp_arr(info,i); sort(info,i);void disp_arr(struct record info,int n) char press; int i; for(i=0;n; if(i%20=0) disp_str(,25);我的通讯录n,78);序号 disp_table();%-7d,i+1); disp_row(infoi); if(i+1)%20=0)按回车键继续显示下屏,按其他键结束显示!请按键 press=getchar(); if(press!=按任意键继续.vo

15、id disp_row(struct record row)%-12s%-12s%-15s%-16s%-4d%-sn,row.name,row.tele,row.city,row.units,row.age,row.note);void sort(struct record info,int n)通讯录排序 n1.按姓名排序 n2.按城市排序 n3.返回上一层 n请输入号码选择(1-3) sort_name(info,n); sort_city(info,n); void sort_name(struct record info,int n) int i,j; struct record in

16、fo_tM,temp; for(i=0; info_ti=infoi; for(j=0;j0) temp=info_tj; info_tj=info_tj+1; info_tj+1=temp; disp_arr(info_t,n); void sort_city(struct record info,int n) struct record info_tM,temp; for(j=0;n-i; if(strcmp(info_tj.city,info_tj+1.city) temp=info_tj; info_tj=info_tj+1; info_tj+1=temp; disp_arr(info_t,n); void disp_table() 姓名,8);电话城市,12);单位年龄,2);备注n void locate() struct record temp,infoM; char ask,name20,city20; int n=0,i,flag; FILE *fp; while(fread(&temp,sizeof(struct record),1,fp)=1) infon+=temp; while(1) flag=0;,20);查询通讯录n1.按姓名查询n2.按城市查询n

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

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