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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

C语言实训报告Word文档格式.docx

1、实训是在学生已经具备了使用C语言编写简单的应用程序的能力,为使学生对C语言有更全面的理解,进一步提高运用C语言编程解决实际问题的能力,通过提出算法、指定输入输出来设计一个解决方案。并为参加计算机等级考试作准备。1.2实训的基本内容和要求参加实训的学生,应当认真完成实训的全部内容。最终提交实训成果来证明其独立完成各种实际任务的能力。从而反映出理解和运用本课程知识的水平和能力。具体如下:1.代码编写规范,形成良好的编程习惯;2.程序须有一定的健壮性和必要的提示信息,考虑问题的多种可能和边界数据。3.提交实训报告电子稿、装订的打印稿。实训报告内容包括以下几个方面:程序的总体设计和算法分析。l 程序流

2、程图、函数说明 源程序代码清单 测试数据和测试过程记录 遇到的问题及解决方法分析 实训小结第2章C语言实训课题演示系统的设计2.1需求分析功能:包括选择结构、循环结构、顺序结构程序、数组、函数、指针等,要求可以实现字母表加密系统,6174规律的验证, 生成职工信息单链表,实现ASCII码文件信息复制, 实现前n项数列求和运算, 实现优秀学生成绩的筛选。2.2概要设计2.2.1 演示系统主控模块根据表1的子系统与函数名的对照表,设计出如下“C语言实验演示系统”的主控模块。在主控模块中,只要在主函数main()前加入包含各子系统文件组成的头文件,我们就能方便的调用各子系统的函数了。主控模块(图示)

3、:图2.1 图2.2子模块(图示):图2.3图2.4图2.5图2.6主程序包含所有子程序中要用到的自定义头文件。2.2.2 各子系统的函数名对照表表2.1 各子系统函数名对照表序号菜单名文 件 名函 数 名16174规律验证yanzheng.hyanzheng2单链表建立与输出lianbiao.hlianbiao3数列求和shulieqiuhe.hshulieqiuhe程序执行过程:当程序编译连接成功后,就可以生成可执行程序了。程序主菜单如图xx:此时等待用户输入,系统对输入的数会自动进行判断,如果不合理则会提示用户重新输入,如果合理则会进入相应的子模块。并进行相应的运算。例如输入4时,则系统

4、运行结束后会生成一个新的文件,并将源文件的内容复制到新文件里。第3章 6174的验证系统的设计3.1需求分析编写程序验证以下说法:输入一个4位数,该数个、十、百、千位上的数互不相等,由个、十、百、千位上的数组成一个最大数和一个最小数,最大数-最小数,构成一个新的4位数。反复以上运算,使其最终结果为:6174。3.2概要设计3.2.1 6174的验证系统的基本算法S1:输入numS2:判断num是否是四位数,如果不是则返回S1,如果是则转至S3S3:判断num的个十百千位上数是否互异,互异则转至S4,否则输出出错信息后结束S4:令ans=numS5:令t=ans,分解ans的各个数位,将其存入一

5、个数组里对该数组进行升序排列S6:有排列后的数得到最大数max和最小数minS7:令ans=max-minS8:判断ans是否与t相等,如果不相等则返回至S5,否则输出ans3.3 6174的验证系统主流程图图3.13.4模块测试6174的验证系统主菜单图3.2输入菜单号1,进入6174的验证系统 , 并输入一个4位数,输入完毕后,其结果将会在屏幕显示出来。图3.3图3.4图3.5第4章 职工信息单链表系统的设计4.1需求分析编写一个程序实现如下功能:建立一个单链表,每个结点数据要有职工号、工资。用一个creat函数来建立链表,用list函数输出数据4.2概要设计4.2.1职工信息单链表系统的

6、基本算法令n=0,head=NULL系统分配sizeof(struct staff)字节的空间给p1,p2输入p1-num,p1-wage的值判断p1-num是否为0,如果不为0,n=n+1,转至S7判断n=1,如果成立,则head=p1,否则移动链表指针p2为 p1分配sizeof(struct staff)字节空间,并返回S3返回链表头指针head令p=head,判断head是否为NULL,如果不为NULL,转至S9,否则结束S9:输出p-num,p-wage,移动指针p,使p=p-nextS10:判断p是否为NULL,如果p不为NULL,返回S9,否则结束4.3职工信息单链表系统流程图图

7、4.14.3模块测试职工信息单链表系统主菜单图4.2输入菜单号2,进入职工信息单链表系统,输入职工号和职工工资,其结果如图所示。图4.3图4.4第5章 前n项数列求和运算系统的设计5.1需求分析 功能:输入一个 n的值,求出数列前n项的和。该数列满足以下规律:1 + 12 + 123 + 1234 + 5.2概要设计5.2.1数列前n项和的基本算法输入令t=0,i=1,sum=0判断in,如果成立成立转至S4,否则转至S5t=t*10+i,sum=sum+t,i=i+1转至S3输出sum的值5.3前n项数列求和运算系统流程图图5.15.4模块测试前n项数列求和运算系统主菜单图5.2输入菜单号3

8、,进入前n项数列求和运算系统,并输入n的值,数列前n项和的值如图所示。图5.3图5.4第6章实训小结一个星期的C语言实训十分匆忙,还来不及回味,就已经结束了。这次实训不仅让我重温了从课本上学到的知识,C语言的三种基本结构运用更娴熟还对函数定义, 函数调用有了较深入的了解,同时也初步掌握了C语言中比较重要的结构体,链表,文件操作等。通过这次实训,让我明白,学习C语言不能停留在学习它的语法规则,而是应该利用自己学到的知识编写C语言程序,解决实际问题。只有通过实践才能检验自己是否掌握C语言,检验自己编写的程序是否能够正确地解题。因为在自己编好程序上机调试运行时,可能有很多意想不到的情况发生,也许你认

9、为正确的答案却是错的。而通过解决这些问题,可以逐步提高自己对C语言的理解和程序开发能力。这次实训让同学们从25道题中选择自己喜欢题进行编写,在一定程度上给人以很大的自由选择空间,同时也极大的考验了大家的动手能力和思考能力。这次实训确实让我获益匪浅!实训,让我学会了耐心对待每一件事。有时候,我认为自己编写的程序绝对是没有问题的,但每次就是运行不出来,这让人很着急。但是我还是一遍又一遍的检查,看看自己是否把程序的源代码输错;然后反复斟酌,看看自己自己的思路是不是有问题。通过不断地检验,我终于检查出了程序的错误,在修改后,程序得到了正确的运行。而当时那份喜悦的心情,真是无以言表!实训,激发了我学习的

10、浓厚兴趣。由于自己以前学习C语言不够全面,这让我在实训中面对结构体,文件函数等题型时感到十分的无助。于是,我便又拿起了自己许久不见的课本,静静地在图书馆自学,当遇到不懂的地方时,我会向老师和同学询问或者到网上查询资料。在不断的学习过程中,我对C语言有了更深的认识和体会。实训,提高了我解决问题的能力。在这次实训过程中,像给字母加密,对学生成绩进行筛选等题型是我以前从未遇到过的。当我面对困难时,我没有像以前那样一味的逃避,而是勇敢的去面对。我会通过自己的学习或者是和同学的交流后,试着编写程序,遇到错误后,积极思考,及时的改正。在解决问题的过程中,我了解到同一个程序可能许多种解决方法,而不同编写方法

11、有不同的特点。我认为最简单最直接的方法便是最有效的方法。实训,让我学会了严谨。这次实训让我养成了良好的编写风格。由于一点小失误,就会使整个程序出错。因此,在编程时,要注意相同内容的缩进和对齐。这样做,可以使程序代码出错的情况下,可以快速并且便捷的查找到错误的行,利于很好的修改。在实训的一个星期的时间里,我学到很多很多的东西,这次实训使我懂得了理论与实际相结合的重要性。只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在实训的过程中可以说是困难重重,但我却没有放弃,而是迎难而上。同时在实训的过程中我也

12、发现了自己的不足之处,对一些前面学过的知识理解得不够深刻,掌握得不够牢固,比如说结构体,文件等。这次实训,我并不满足于对C语言的学习,我更长远的目标便是考出计算机等级二(c)的证书,在不久后,我即将面临等级考试,但我并不害怕,因为这次实训让我信心倍增!参考文献谭浩强编著,C程序设计(第三版),清华大学出版社夏耘,吉顺如编著,大学程序设计(C)实践手册, ,复旦大学出版社 鲁沐浴编著,C语言最新编程技巧200例,电子工业出版社梁翎等编著,C语言程序设计实用技巧与程序实例,上海科普出版社各模块源代码/*主控模块代码*/#includewindows.hstdlib.h#includehelp.hy

13、anzheng.hlianbiao.hshulieqiuhe.hprint.hmain() void print(void); void xz(int); int choice=100; while(choice!=0) print(); scanf(%d,&choice);getchar(); while(choice7) printf(ttplease input a number beween 0-7n); system(pauseprint();scanf( xz(choice);/*/*主控显示代码*/void xz(int a)cls switch(a) case 1: yanzh

14、eng();break; case 2: lianbiao(); case 3: shulieqiuhe(); case 4: hlpfun(); case 5: exit(0);void print(void) printf(ntt C Language Training Demonstration System n ttntt MENU ntt 1.验证6174 ntt 2.建立单链表 ntt 3.计算1+12+123+1234+ ntt 4.帮助 ntt 5.退出系统 nttinput your choice(1-5) : /*验证6174系统代码*/void yanzheng(void

15、) /*对一个各位不重复的四位数,计算后结果为6174*/ int IsNumberEqual(int); void ntos(int num,int c); void sort(int a); int getmax(int a); int getmin(int a); int num,c4,max,min,ans=1,t=0;this programe needs a number between 1000 to 9999 and its every digits nshould be different I can calculate the number like a magic to

16、nmake the result is 6174ninput a number(1000number9999):num); while(num9999)data error,input again: if(IsNumberEqual(num) ans=num; do t=ans; ntos(ans,c); /*把输入数的各位存入c数组*/ sort(c); /*对各数排序*/ max=getmax(c); min=getmin(c); ans=max-min; while(ans!=t); printf(result=%dn,ans); else printf(please input a s

17、uited number !int IsNumberEqual(int num) /*判断num的各位是否互异,互异返回1,否则返回0*/ int a4,flag=1; a0=num%10; a1=num%100/10; a2=num%1000/100; a3=num/1000; if(a0=a1|a0=a2|a0=a3 |a1=a2|a1=a3|a2=a3) flag=0; return flag;void ntos(int num,int c4) /*把num的各位存入数组c*/ c0=num%10; /*c0表示num的个位*/ c1=num%100/10; /*c0表示num的十位*/

18、 c2=num%1000/100; /*c0表示num的百位*/ c3=num/1000; /*c0表示num的千位*/ void sort(int a4) /*从小到大排序升序*/ int i,j,t; for(i=0;i4-1;i+) for(j=0;jaj+1) t=aj; aj=aj+1; aj+1=t; int getmax(int a) /*返回最大值*/ int ans; ans=a0+a1*10+a2*100+a3*1000; return ans;int getmin(int a) /*返回最小值*/ ans=a0*1000+a1*100+a2*10+a3;/*职工信息单链表

19、模块代码*/malloc.h#define LEN sizeof(struct staff)struct staff long num; float score; struct staff *next;void lianbiao(void) /*建立单链表并输出*/ struct staff *creat(void); void list(struct staff *head); struct staff *head;input some staffs information include ID and wage,the number of staff is nnot fixed becau

20、se we use a list without limited. you can input some staffs ninformationif you want to ends input plese press 0,a blank,0,now.nyou can try.n ID wagen head=creat(); list(head);struct staff *creat(void) /*建立单链表*/ struct staff *head,*p1,*p2; int n=0; p1=p2=(struct staff *)malloc(LEN);%ld%fp1-num,&score

21、); head=NULL; while(p1-num! n=n+1; if(n=1)head=p1; else p2-next=p1; p2=p1; p1=(struct staff *)malloc(LEN); p2-next=NULL; return (head);void list(struct staff *head) /*输出链表内数据*/ struct staff *p;nthe staff information you creat just now are: p=head; if(head!=NULL) printf(%-5dt%.2fn,p- p=p-next; while(

22、p!=NULL);void shulieqiuhe(void) /*calculate 1 + 12 + 123 + 1234 + */ long fun(int); void pt_result(long sum,int n); int n;this programe can calculate 1 + 12 + 123 + 1234 + nfor example if you input 3,it can calulate 1 + 12 + 123 ninput n :n); pt_result(fun(n),n);long fun(int n) long sum=0,t=0; int i

23、=1; while(i=n) t=t*10+i; sum+=t; i+; return sum;void pt_result(long sum,int n) long t=0;%d+,t); i+;b=%dn,sum);/*帮助源代码*/void hlpfun12(void)this program is designed for test a famous law named 6714nlet us look how to calculate a number and let the result is 6174nif a number between 1000 to 9999 meets the condition that itsnevery digit is different,with the four digits,we can get a maximu

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

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