您的位置:首页 > 编程语言 > C语言/C++

面向对象以及面向过程编程 --- C++ 实例

2018-03-26 19:45 399 查看

Procedure-Oriented and Object-Oriented Programming— A Tiny Example in c++

Here are two tiny program based on c++ for distinguishing the procedure oriented programming and objected oriented programming. The example problem is a simple Number Determination problem (ND).

ND problem : Giving a integer number, determinate it is odd or not.

本文给出两种思路,分别是面向对象和面向过程,来解决一个简单的 判断奇偶 的问题(ND):给定一个整数,判断它是奇数还是偶数。

For procedure-oriented-programming

int main(void)
{
int num=0;
cout<<"Input a interger number: " ;
cin>>num;
if (num%2 == 0)
{
cout<<"the number:"<<num<<"is: "<<"even"<<endl;
}else
{
cout<<"the number:"<<num<<"is: "<<"odd"<<endl;
}
return 0;
}


For objected-oriented-programming

// Class Definetion
class Number
{
private:
int Num=0;       // value
bool ISODD=False;//value for determination

public:
Number(int num)
{
Num=num;
};

void isodd(void) // function for determinatting
{
if (Num%2 == 0)
{ ISODD = False;    }
else
{ ISODD = Ture; }
};
void showisodd(void)
{
if (ISODD==False)
{
cout<<"the number:"<<num<<"is: "<<"even"<<endl;
}else{
cout<<"the number:"<<num<<"is: "<<"odd"<<endl;
};
};
int showval(void){return Num;};
};

// main program
int main(void)
{
int num=0;
cout<<"Input a interger number: " ;
cin>>num;

// create class
Number integer(num); // use num to initialize 'integer'
interger.isodd();    // determinating whether integer is odd or not
interger.showisodd();// show wether the integer is odd or not

return 0;
}


SUMMERIZATION

通过以上两个例子我们可以看到面向过程(procedure-oriented)和面向对象(objected-oriented)编程的不同思路。同样时解决一个简单的 判断奇偶 的问题,面向过程编程就是用最直接了当的方式来解决问题,直达问题的核心,即,给程序一个整数,程序运行判断条件(是否与2同余),输出结果。而面向对象则是,先把整数这个概念抽象出来,定义一个‘类’,也就是先说明一堆数据具有什么样的‘性质’才能算作一个整数,在这里仅仅做了一个很“简单”的说明,即,当一个 class 具有 value ,以及 value for determination 这两个值,并且拥有对这两组书据进行处理的能力的时候,我们就把这一堆数据称为 Number . 当你给程序一个整数num时,程序先利用num生成一个Number,再调用Number的一段程序(isodd)来判断Number的类型,最后调用Number的输出函数(showisodd)显示结果。

流程如下:

面向过程

得到整数;

判断奇偶性质;

输出结果;

面向对象

得到整数;

创建 Number类型的对象 integer ;

调用 integer的公有函数判断其奇偶性质;

调用 integer的公有函数输出结果;

两种方案都能很好的解决这个问题,然而,当我们继续深入思考下去呢?实际问题总是充满不确定性,对我们的程序的要求也会随着面临不同问题而改变。比如,这时我不仅仅想知道这个数的奇偶性质,还想知道它是否能被5整除,能否被3整除,是不是素数。等等,这时用两种不同解决方案时,程序内容又会发生怎样的变化?又比如,当我需要处理的数据不是一个,而是上万个上亿个数据呢?当我们的问题遍复杂,要求变高,工作量变大时,程序必然会变得冗长,那么怎样使得程序能够很好的适应外部要求不不断改变,怎样使得我们修改(升级)我们的程序更方便以及思路更清晰,就变得尤其重要。

下一次,我将会继续深入探讨这个“简单”的问题,显然我们的小程序能够做的事情还是太少。

[Hubinbin 的博客]https://blog.csdn.net/benzp

欢迎在评论区交流,或者通过邮件 (cquhbb@163.com)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐