« C语言的发展史Windows xp/vista/7 的一点破事 »

简单的C/C++程序实例

作者:vich 发布于 2008-10-8 22:44 评论(0)人阅读

下面通过2个例子(分别用C及C++编写)的讲解,来对C程序和C++程序有个初步的感性认识,并分析程序特点,找出C及C++两者的基本区别。
【例1.1】由键盘输入2个整数,计算他们的商和余数,并在屏幕上输出。
程序设计如下:


main()
{
int a,b,c,d;                  /*变量说明*/
printf("\n input a,b=?\n");   /*屏幕输出提示语*/
scanf("%d %d",&a,&b);         /*由键盘输入a,b的值*/
c=a/b;                        /*求a除以b的商,赋予c*/
d=a%b;                        /*求a除以b的余数,赋予d*/
printf("\n %d / %d =%d \n %d %% %d=%d\n",a,b,c,a,b,d);   /*输出*/
}

本程序中仅由一个函数模块组成。第一行main()表示这是主函数,一对大括号{}括起来的是函数体。函数体所描述的内容的是:定义整型变量a,b,c,d,然后屏幕上输出“input a,b=?”提示语,意思是提醒输出a,b两个数,接着用调用scanf函数,从键盘输入两个整数,存入变量a和b的存储单元中,再计算a与相除的商(存于c中)和余数(存于d中),最后调用printf语句输出两个算术的运算式。

程序中的/*……*/代表注释,是个编写程序者和阅读程序者看的,它不是程序的组成部分,不影响程序的编译和运行,仅起注释作用。至于程序中的某些细节,例如“%d”、“\n”等内容,我们暂且不去讨论它,以后会学习的。
程序运行后屏幕输出:

input a,b=?11 4 ↓回车(键盘输入两书为11和4)
11/4=2
11%4=3

下面用C++改写该程序:

#include <iostream.h>      //I/O流库头文件
void main()
{
int a,b;
cout<<"\n input a,b=?\n";  //输出提示语
cin>>a>>b;                 //对a、b变量输入
int c;                     //变量可随用随定义
c=a/b;
int d=a%b;
cout<<"\n a/b="<<c<<end;   //输出a除以b的商
cout<<"\n a%b="<<d<<end;   //输出a除以b的余数
}

将上面的两个程序作比较,显然C++程序与C程序有三点明显的不同之处:
其一,程序的注释改变为简化的标记形式“//”(针对单行注释);
其二,数据的输入输出改用cin和cout两个标准流设备,而且不用考虑数据类型,其中cin用于键盘输入,cout用于显示器输出;
其三,输入输出流cin和cout未被默认,因此程序首部必须写上编译预处理命令#include<iostream.h>。

【例 1.2】由键盘输入圆柱底面的半径和高,计算圆柱体的体积。
程序设计如下:


float volm(r,h)                  /*定义volm函数,用于计算圆柱体的体积*/
float r,h
{
float x;
x=3.14159*r*r*h;
return x;
}                                /*volm函数结束*/
main()                           /*定义主函数*/
{
float radius,height,volume;
scanf("%f%f",&radius,&height);
vllume=volume(radius,height);
printf("volume of cylinder is:%f\n",volume);
}

本例包含2个函数,一个是mail()主函数,另一个是volm()辅函数。volm函数有两个参数r(底面半径)和h(柱体高),函数的功能是对依据r和h计算圆柱体的体积,再通过return语句将结果返回给主函数。main函数首先对实型变量radius和height输入半径和高,然后调用volm函数计算圆柱体的体积,并在屏幕上输出计算结果。

下面用C++改写该程序:


#include <iostream.h>                  //I/O流库头文件
/*类的声明部分*/
class Cylinder                         //圆柱类
{
public:                                //定义公有成员函数或数据成员
  Cylinder(float r,float h);           //带两个参数的构造函数
  float GetVolume()const;              //计算圆柱体积的成员函数
private:                               //定义私有成员函数或数据成员
  float rd;                            //圆柱底半径
  float hd;                            //圆柱高
};
/*类的实现部分*/
Cylinder::Cylinder(float r,float h)  //定义带两个参数的构造函数并完成初始化
{
rd=r;hd=h;
}
float Cylinder::GetVloume()const       //定义成员函数,计算圆柱体体积
{
return 3.141519*rd*hd;
}
int main()                             //定义测试程序(即主函数)
{
Cylinder myCylinder(2,3);              //定义对象并初始化
cout<<"The Volume is :"<<myCylinder.GetVolume();   //调用函数并输出结果
}

本程序运行后,屏幕输出类容为:The Vloume is :37.3991。

与上面的C程序相比,本程序也仅有一个主函数,并且是通过在主函数中调用其他函数实现圆柱体体积的计算。但两者的去别是:C程序中,对数据r、h以及计算体积的操作没有进行封装,是分散的;而C++程序把与圆柱相关数据(r和h)以及操作(计算并返回体积值)集中起来形成一个类,使用户通过创建对象来控制这个圆柱,这样只有对象中的函数可以改变数据,避免给对象内部的信息实施不恰当的操作。以后会对类和对象进行详细介绍。


原创文章如转载,请注明:转载自微风博客 [ http://www.vichx.com/ ]

本文链接地址:http://www.vichx.com/post/c-1-2-1.html

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

RSS图标订阅 [留言] RSS订阅  手机版
搜索栏

热门文章

最新评论及回复

最新文章

关于微风博客
Powered By Z-Blog
CopyRight 2007-2008 微风博客 沪ICP备07009058号 [管理]