算法学习 二 >> 结构化与面向对象两种算法设计的简略分析(c++/java)

问题:

输入圆柱的地面圆的半径r和高h,求体积v。

1、结构化方法(c++实现):☛:source code

#include<iostream>
using namespace std;
double volume(double r, double h)
{
    return 3.14159*r*r*h;
}
void vol(double v)
{
    cout<< "volume:" << v;
}
int main()
{
    double r, h, v;
    cin >> r >> h;
    v = volume(r,h);
    vol(v);
    return 0;
}
  1. 优越性
    1. 自顶向下,逐步求精的方法(原则是功能分解与模块化),可以显著提高算法设计的成功率。
    2. 用先全局后局部,先整体后细节、先抽象后具体的逐步求精设计的算法有清楚的层次结构,容易阅读和理解。

注意:运用这种编程方法,考虑问题必须先进行整体分析,避免边写边想。

 

 2、面向对象方法(java实现):☛:source code

import java.util.Scanner;

//定义圆柱对象
class Clinder{
    private double r;
    private double h;
    //初始化圆柱
    public Clinder(double r, double h){
        this.r = r;
        this.h = h;
    }
    //计算体积
    public double Volume(){
        return 3.14159*r*r*h;
    }
}
//测试类
public class CTest {
    public static void main(String[] args){
        double r, h, v;
        Scanner input = new Scanner(System.in);        //创建输入对象
        r = input.nextDouble();            //从键盘上读取半径
        h = input.nextDouble();            //读取高
        Clinder c = new Clinder(r, h);    //创建圆柱对象    
        v = c.Volume();                    //调用圆柱对象的求体积的方法
        System.out.println(v);            //输出体积v
        input.close();                    //关闭scanner对象
    }
}
  • 面向对象算法设计方法的过程包括一下步骤:
    1. 在给定的问题域中抽象地识别出类和对象
    2. 识别这些对象和类的语义
    3. 识别这些类和对象之间的关系
    4. 实现类和对象

   抽象化是面向对象的一个重要特征但并不是它独有的特征。重要是面向对象的一个重要优点。最大特点是能够大幅度提高软件项目的成功率,减少日后的维护费用,提高软件的可移植性和可靠性。

原文地址:https://www.cnblogs.com/sunrisepeak/p/9687239.html