问题:
输入圆柱的地面圆的半径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; }
- 优越性
- 自顶向下,逐步求精的方法(原则是功能分解与模块化),可以显著提高算法设计的成功率。
- 用先全局后局部,先整体后细节、先抽象后具体的逐步求精设计的算法有清楚的层次结构,容易阅读和理解。
注意:运用这种编程方法,考虑问题必须先进行整体分析,避免边写边想。
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对象 } }
- 面向对象算法设计方法的过程包括一下步骤:
- 在给定的问题域中抽象地识别出类和对象
- 识别这些对象和类的语义
- 识别这些类和对象之间的关系
- 实现类和对象
抽象化是面向对象的一个重要特征但并不是它独有的特征。重要是面向对象的一个重要优点。最大特点是能够大幅度提高软件项目的成功率,减少日后的维护费用,提高软件的可移植性和可靠性。