zoukankan      html  css  js  c++  java
  • 算法学习 二 >> 结构化与面向对象两种算法设计的简略分析(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. 实现类和对象

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

  • 相关阅读:
    LeetCode【125. 验证回文串】
    LeetCode【122. 买卖股票的最佳时机 II】
    LeetCode【121. 买卖股票的最佳时机】
    LeetCode【119. 杨辉三角 II】
    LeetCode【118. 杨辉三角】
    LeetCode【112. 路径总和】
    PAT1024
    PAT1020
    PAT1018
    PAT1017
  • 原文地址:https://www.cnblogs.com/sunrisepeak/p/9687239.html
Copyright © 2011-2022 走看看