c语言程序设计论文

  • 格式:doc
  • 大小:109.50 KB
  • 文档页数:15

天津电子信息职业技术学院暨国家示范性软件职业技术学院二级C编程实训报告*名:***系别:网络系专业:计算计控制班级:计控s11-1指导教师:***完成时间: 2012 年 6 月 1 日十个程序运算的综合设计一、前言C语言是一门长盛不衰的程序设计语言,深受广大软件爱好者的喜爱。

C语言功能丰富,表达能力强、使用灵活方便、应用面广、目标程序效率高、可移植性好。

兼备高级语言与低级语言的优点,属于一种中间语言。

它是一种结构化程序设计语言,非常适合结构化程序设计。

有较丰富的数据类型、运算符以及函数供以选用。

直接与内存打交道,使修改、编辑其他程序与文档变得轻松、简单。

C语言是国际上广泛流行的计算机高级语言,它适合作为系统描述语言,即可以用来编写系统软件,也可以编写应用软件。

在早期的操作系统软件主要是汇编语言编写的,但汇编语言依赖于计算机硬件程序的可读性和可移植性级语言,而C语言兼具一般语言优点还能克服其他语言的缺点。

通过这个学期的学习,我认为要学好C语言程序这门课程,不仅要认真阅读课本知识,更重要的是要通过上机实践才能增强和巩固自己的知识。

在理论学习和基础实验的基础上,培养我们的实际操作能力,培养我们综合运用理论知识来分析和解决实际问题的能力、严谨的科学态度和良好的程序设计习惯,最终实现由知识向智能的初步转化。

经过此次设计,我熟练掌握了编程技巧,课程设计为我提供了一个动手又动脑,独立实践的机会,将课本上的理论知识和实践有机的结合起来,锻炼了我的分析解决实际问题的能力,提高了我适应实际、实践编程的能力。

此报告说明书主要介绍了经典算法集成系统的C语言编程,经典算法集成系统设计是一个较简单的编程,经过仔细的分析,总结出算法再进行编辑、编译、链接、运行及调试,从而得到需要的程序。

经过此次课程设计,学生更能对c语言有了新的理解。

学会用一些函数来解决现实中的实际问题。

二、正文1. 设计目的和意义此次课程设计的目的是为了让我们加深对C语言内容的理解,特别是一些语法规定,光靠课堂老师讲授的,既乏味又难以记住,但它们都很重要。

通过课程设计,就自然地、熟练地掌握了。

熟悉所用的计算机系统的操作方法,也就是熟悉了C语言程序开发的环境。

每一个计算机系统的功能和操作方法不完全相同,但只要熟练掌握一种两种计算机系统的使用,再遇到其它的系统时很快就能学会。

学会上机调试程序。

也就是善于发现程序中的错误,并且能很快地排除这些错误,使程序正常运行。

经验丰富的人在编译链接过程中出现“错误信息”时,一般能很快地判断出错误所在,并改正之。

而缺乏经验的人即使在明确的“错误提示”下也往往找不出错误而求救于别人。

要真正掌握计算机应用技术,不仅要了解和熟悉有关的理论和方法,还要求自己动手实现。

为以后的学习打下坚实的基础。

2.目标和总体方案运用 Microsoft Visual C++ 6.0和所学C语言知识设计一个可以方便进行各种经典算法的集成系统。

系统程序设计一般由两部分组成:算法和数据结构,合理地选择和实现一个数据结构和处理这些数据结构具有同样的重要性。

在经典算法集成系统程序中,由于预计设计6种以上的算法,我觉得能够实现一个就能实现多个。

所以我设计了10个算法。

具体方案如下:1. 计算1+2+3+4+…+100的和.。

2. 猜数游戏:任意设置一个整数,请用户从键盘上输入数据猜想设值的数是什么,告诉用户是猜大了还是小了。

10次以内猜对,用户获胜。

否则,告诉用户设置的数据是什么。

3.输出菱形。

4. 计算1+3+5+7+…+99的值.5. 计算1-1/3+1/5-1/7+…-1/99的值.6. 求斐波纳契数列的前30项之和.7. 求两个正整数的最大公因子.8. 打印所有水仙花数.9. 输入一个正整数x,编程计算x的每一位数字相加之和.10. 计算1*2*3+3*4*5+…+99*100*101的值.每个菜单都有其相对应的功能.这10个题目在一个界面内。

通过设计把它们组和在一起,并且能够实现其中的各种算法,每个算法互不影响。

通过键盘进行选择相应的算法,然后按回车,会出现相应的提示,然后根据提示往下做。

输入相应的之后,按回车就可以得到了。

3.设计方案和内容我做的是循环系统经典算法集成系统,运用C语言中的循环,输入,查找,显示等函数功能,把多个函数放在一起,使主程序看起来很明了。

在主菜单界面里有10个相对应的小菜单,每个小菜单都能单独实现其功能。

运行的时候就可以在屏幕上看到这10个菜单。

程序基本能满足我们日常生活中各种算法的需要,就是我们教程上的各种算法,这也是比较实用的问题。

经典算法集成系统的功能还不是很完善,也不强大,程序还不够简洁、完善,我会继续努力学习,改正程序中存在的不足,在好的方面继续努力。

4.详细设计过程(1)程序代码的函数名:在这个程序中有2个函数名#include <stdio.h>#include <math.h>以下是他们在程序中的作用:在使用系统库函数时,要用预编译命令“#include”将有关的“头文件”包括到用户源文件中。

因为用到了数学函数,所以还需要用#include <math.h>对程序进行数学函数调用。

(2)第一个程序中程序代码:int Mun; /*整数型定义*/ void fun1(){int i=1,sum=0; /*sum的作用是存放求和的中间值*/while(i<=100){sum+=i;i++;}printf("1+2+3+4+…+100=%d\n",sum); /*输出*/}首先定义整数型int Mun; 空格定义void fun1(),然后经过i, sum进行定义,使程序能够进行运算。

While语句的用法。

While语句后的表达式的值一开始就为假,循环体将一次都不执行。

最后通过printf("1+2+3+4+…+100=%d\n",sum);这样就实现了1+2+3+4+…+100的和.(3)第二个程序中程序代码:void fun2(){int num=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!the number is %d\n",x); /*输出*/ }首先进行变量的定义,程序内容用了for循环语句,并运用if语句对程序的输入进行选择。

当输入次数达到11时,循环结束。

此猜数游戏是说用户可以进行十次猜测,若在10次之内输入正确的数字,则说明用户获胜。

反之,亦然。

(4)第三个程序中程序代码:void fun3(){int n,i,j; /*定义变量的含义*/scanf("%d",&n); /*输入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"); /*输出*/}}首先进行变量的定义,用for循环打印*号。

菱形图形的实现需要三个方面:光标的定位,星号输出个数;换行。

最后说明输出的是几行的菱形。

(5)第四个程序中的代码:void fun4(){int i,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的和.。

(6)第七个程序中的代码:void fun7(){int m,n,r; /* 定义变量*/ scanf("%d%d",&m,&n);while (n!=0) /*while循环语句*/{r=m%n; /*求余数*/m=n;n=r;}printf("最大公因子:%d\n",m); /*输出*/}此程序的功能是说明输入的两个整数中,求他们之中的最大公因子。

并运用while语句进行循环。

当n不等于0时,进入循环体,最后输出结果。

(7) 第八个程序中的代码:void fun8(){int n,a,b,c;for(n=100;n<=999;n++){a=n/100; /*输出百位*/ 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。

是否成立。

最后输出所有的水仙花数。

(8)第九个程序中的代码:void fun9(){int i1,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("the sum of the toal bit is%d\n",i1+i2+i3+i4); /*输出*/ }从键盘上任意输入一个正整数n,编程计算n的每一位数字相加之和。