c语言程序设计论文_第1页
c语言程序设计论文_第2页
c语言程序设计论文_第3页
c语言程序设计论文_第4页
c语言程序设计论文_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

天津电子信息职业技术学院

暨国家示范性软件职业技术学院二级C编程实训报告名:系 别: 网络系 专 业: 计算计控制班 级: 计控S11-1指导教师: 完成时间:2012年6月1日十个程序运算的综合设计一、前曰C语言是一门长盛不衰的程序设计语言,深受广大软件爱好者的喜爱。C语言功能丰富,表达能力强、使用灵活方便、应用面广、目标程序效率高、可移植性好。兼备高级语言与低级语言的优点,属于一种中间语言。它是一种结构化程序设计语言,非常适合结构化程序设计。有较丰富的数据类型、运算符以及函数供以选用。直接与内存打交道,使修改、编辑其他程序与文档变得轻松、简单。C语言是国际上广泛流行的计算机高级语言,它适合作为系统描述语言,即可以用来编写系统软件,也可以编写应用软件。在早期的操作系统软件主要是汇编语言编写的,但汇编语言依赖于计算机硬件程序的可读性和可移植性级语言,而C语言兼具一般语言优点还能克服其他语言的缺点。通过这个学期的学习,我认为要学好C语言程序这门课程,不仅要认真阅读课本知识,更重要的是要通过上机实践才能增强和巩固自己的知识。在理论学习和基础实验的基础上,培养我们的实际操作能力,培养我们综合运用理论知识来分析和解决实际问题的能力、严谨的科学态度和良好的程序设计习惯,最终实现由知识向智能的初步转化。经过此次设计,我熟练掌握了编程技巧,课程设计为我提供了一个动手又动脑,独立实践的机会,将课本上的理论知识和实践有机的结合起来,锻炼了我的分析解决实际问题的能力,提高了我适应实际、实践编程的能力。此报告说明书主要介绍了经典算法集成系统的C语言编程,经典算法集成系统设计是一个较简单的编程,经过仔细的分析,总结出算法再进行编辑、编译、链接、运行及调试,从而得到需要的程序。经过此次课程设计,学生更能对c语言有了新的理解。学会用一些函数来解决现实中的实际问题。二、正文设计目的和意义此次课程设计的目的是为了让我们加深对C语言内容的理解,特别是一些语法规定,光靠课堂老师讲授的,既乏味又难以记住,但它们都很重要。通过课程设计,就自然地、熟练地掌握了。熟悉所用的计算机系统的操作方法,也就是熟悉了C语言程序开发的环境。每一个计算机系统的功能和操作方法不完全相同,但只要熟练掌握一种两种计算机系统的使用,再遇到其它的系统时很快就能学会。学会上机调试程序。也就是善于发现程序中的错误,并且能很快地排除这些错误,使程序正常运行。经验丰富的人在编译链接过程中出现“错误信息”时,一般能很快地判断出错误所在,并改正之。而缺乏经验的人即使在明确的“错误提示”下也往往找不出错误而求救于别人。要真正掌握计算机应用技术,不仅要了解和熟悉有关的理论和方法,还要求自己动手实现。为以后的学习打下坚实的基础。目标和总体方案运用MicrosoftVisualC++6.0和所学C语言知识设计一个可以方便进行各种经典算法的集成系统。系统程序设计一般由两部分组成:算法和数据结构,合理地选择和实现一个数据结构和处理这些数据结构具有同样的重要性。在经典算法集成系统程序中,由于预计设计6种以上的算法,我觉得能够实现一个就能实现多个。所以我设计了10个算法。具体方案如下:计算1+2+3+4+,・・+100的和.o猜数游戏:任意设置一个整数,请用户从键盘上输入数据猜想设值的数是什么,告诉用户是猜大了还是小了。10次以内猜对,用户获胜。否则,告诉用户设置的数据是什么。输出菱形。计算1+3+5+7+-+99的值.计算1-1/3+1/5-1/7+—1/99的值.求斐波纳契数列的前30项之和.求两个正整数的最大公因子.打印所有水仙花数.输入一个正整数x,编程计算x的每一位数字相加之和.计算1*2*3+3*4*5+—+99*100*101的值.每个菜单都有其相对应的功能.这10个题目在一个界面内。通过设计把它们组和在一起,并且能够实现其中的各种算法,每个算法互不影响。通过键盘进行选择相应的算法,然后按回车,会出现相应的提示,然后根据提示往下做。输入相应的之后,按回车就可以得到了。设计方案和内容我做的是循环系统经典算法集成系统,运用C语言中的循环,输入,查找,显示等函数功能,把多个函数放在一起,使主程序看起来很明了。在主菜单界面里有10个相对应的小菜单,每个小菜单都能单独实现其功能。运行的时候就可以在屏幕上看到这10个菜单。程序基本能满足我们日常生活中各种算法的需要,就是我们教程上的各种算

法,这也是比较实用的问题。经典算法集成系统的功能还不是很完善,也不强大,程序还不够简洁、完善,我会继续努力学习,改正程序中存在的不足,在好的方面继续努力。详细设计过程程序代码的函数名:在这个程序中有2个函数名#include<stdio.h>#include<math.h>以下是他们在程序中的作用:在使用系统库函数时,要用预编译命令“#include”将有关的“头文件”包括到用户源文件中。因为用到了数学函数,所以还需要用#include<math.h>对程序进行数学函数调用。第一个程序中程序代码:/*整数型定义/*整数型定义*//*sum的作用是存/*输出*/voidfun1()(inti=1,sum=0;放求和的中间值*/while(i<=100)(sum+=i;i++;}printf("1+2+3+4+•••+100=%d\n〃,sum);}首先定义整数型intMun;空格定义voidfun1(),然后经过i,sum进行定义,使程序能够进行运算。While语句的用法。While语句后的表达式的值一开始就为假,循环体将一次都不执行。最后通过printf(〃1+2+3+4+…+100=%d\n",sum);这样就实现了1+2+3+4+-+100的和.第二个程序中程序代码:voidfun2()(intnum=23,x,n;/*输出*/printf(〃hint:0<number<100\n〃);/*输出*/for(n=1;n<=10;n++)printf(〃guess:〃);/*输出*/

scanf(〃%d〃,&x);if(x==num){printf(〃Win!\n〃);break;}/*若输入num,则说明用户获胜*/if(x>num) printf(〃bigger!\n〃);if(x<num) printf(〃smaller!\n〃);}if(n==11)printf("Lost!thenumberis%d\n",x);/*输出*/}首先进行变量的定义,程序内容用了for循环语句,并运用if语句对程序的输入进行选择。当输入次数达到11时,循环结束。此猜数游戏是说用户可以进行十次猜测,若在10次之内输入正确的数字,则说明用户获胜。反之,亦然。第三个程序中程序代码:voidfun3()(intn,i,j;义*/scanf("%d",&n);for(i=1;i<=n;i++)(for(j=1;j<=n-i;j++)putchar('');for(j=1;j<=i*2-1;j++)putchar('*');printf(〃\n〃);}for(i=1;i<=n-1;i++)(for(j=1;j<=i;j++)putchar('');空格*/for(j=1;j<=2*(n-i)-1;j++)putchar('*');“*”*/printf("输出菱形\n");}/*定义变量的含/*定义变量的含/*输入n*//*光标的定位*//*输出星号*//*输出换行*//*打印每行前面的/*打印每行的/*输出*/首先进行变量的定义,用for循环打印*号。菱形图形的实现需要三个方面:光标的定位,星号输出个数;换行。最后说明输出的是几行的菱形。第四个程序中的代码:voidfun4()(

inti,sum=0; /*定义变量的含义*/i=1;for(;i<=99;i+=2) /*for循环语句*/sum+=i;printf(〃1+3+5+7+・・・+99=%d\n〃,sum); /*输出*/}首先对变量进行定义,然后用for循环计算。自变量i每次自增2,i从1循环到100.最后输出1+3+5+7+-+99的和.。第七个程序中的代码:voidfun7()(/*定义变量*//*定义变量*//*while循环语/*求余数*/scanf(〃%d%d〃,&m,&n);while(n!=0)句*/(r=m%n;m=n;n=r;}printf("最大公因子:%d\n”,m); /*输出*/}此程序的功能是说明输入的两个整数中,求他们之中的最大公因子。并运用while语句进行循环。当n不等于0时,进入循环体,最后输出结果。第八个程序中的代码:voidfun8()(intn,a,b,c;for(n=100;n<=999;n++)(/*输出百位*//*输出百位*//*输出十位*//*输出个位*//*输出*/b=n/10%10;c=n%10;if(n==a*a*a+b*b*b+c*c*c)printf("水仙花数%d",n);}}此程序的功能是表示a表示百位上的数字,b表示十位上的数字,c表示个位上的数字,水仙花数的条件是输入一个三位数的整数,若各位上的数字的立方和等于该本身,则说明此数是水仙花数。判断表达式为n==a*a*a+b*b*b+c*c*c。是否成立。最后输出所有的水仙花数。第九个程序中的代码:voidfun9()(inti1,i2,i3,i4,k,n; /*变量定义*/scanf(〃%d〃,&n);k=abs(n); /*求绝对值*/i1=k/1000; /*输出千位*/i2=(k-i1*1000)/100; /*输出百位*/i3=(k-i1*1000-i2*100)/10; /*输出十位*/i4=k%10; /*输出个位*/printf("thesumofthetoalbitis%d\n",i1+i2+i3+i4); /*输出*/}从键盘上任意输入一个正整数n,编程计算n的每一位数字相加之和。例如,输入n为1234,则由1234分离出1、2、3、4四个数字,然后计算1+2+3+4=10,并输出10。最后输出结果。其它的算法就是利用voidfun()加上算法。利用switch(Mun)(case1:fun1();gotoloop;break;case2:fun2();gotoloop;break;case:3fun3();gotoloop;break;case:4fun4();gotoloop;break;}等等共10个类似的算法。最后在调用它们就可以了。设计的流程图:直接利用输出函数printf输出字符串,在屏幕上显示一个菜单,并显示选项,请选择算法的提示。输入1-10之间的数字,将此数字作为菜单函数的返回值返回主函数这个数字调用相应的功能函数。制作简便,操作简单。根据提示输入相应的内容,经过处理和判断,输出相应的答案。输入一个算法完成之后,可以接着进行选择,再输入另一个算法,然后输出,可以循环的输入输出。如下图所示:图2-1流程图功能测试:本系统共有10个功能。想要实现哪一种功能就选择相应的序号,根据提示完成想要的算法。进入经典算法集成系统后,及运行之后,就可以看到10个算法。界面如下图3-2所示:

图3-2界面的显示功能一的测试,进入经典算法集成系统之后根据屏幕所显示的内容进行操作,它会显示请选择算法,输入1,然后按回车,就可以判断输入的数是否计算正确。例如输入1,然后按回车,屏幕显示1+2+3+4+-+100=5050o如图3-3所示:■'L:\Documen6sand5ettings\fli<imiris:tra^or\^lEta!Detug\Lppl.eHe"\l.\\ +2*3**!*■■-+100^.^11.1*3*5+? V.的值.:i 1/7«■■■-i/vvtf'lfB.K梏波纳契数列商前31*3*5+? V.的值.:i 1/7«■■■-i/vvtf'lfB.K梏波纳契数列商前3眄27;U.氏整装的最大盅医子一5b进印所有w芯虹卜矣?,.个1_趋功.并程计写赤容—位裁字忖?「上冏一十写I*2«3+3*4*5*-*9S*infl*iHIfit侄-请在抖■皆W盘1+2+3+4+'"*1U«-LU!>3图3-31+2+3+4+■■■+100的和显示经过程序的运行可以看出,经典算法集成系统可以成功编译。5.设计创新与技术关键循环系统的经典算法集成设计的主要难点在于实现各功能的主函数的运用,包括其中用到的for循环函数while循环函数,goto循环函数,输入函数,显示函数等等。基本函数的运用和主函数的调用是编制此系统各关键技术所在。当时开始做的时候,不懂怎样才能把那么多的程序集中在一起,并且还能够实现各种题目的算法功能。这是一大难点。经过仔细的看书和查资料,把这个问题解决了。其实也很简单,只是一时间没有想到。就是先定义,后调用就可以了。先把这10个程序定义好,每个程序在使用前,先检验一下是否能够单独运行,然后再把它写如大的程序中。个个小算法不能出错,不然会影响整个程序系统。最

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论