タイトル:体積計算互換角柱下
まず、ソース
1、Test.java
/ ** 交換角形底の計算量 * 9クラス * / パッケージW29; インポートjava.util.Scanner; パブリック クラスのテスト{ 公共 静的 ボイドメイン(文字列[]引数){ ながら(真の){ スキャナリーダー = 新しい新しいスキャナ(System.in); のSystem.out.println( "シリンダボトム:. R(長方形)の形状を入力してください; S(四角); T(ラダー); T(三角); C(円)" )。 チャー C = reader.next()のcharAt(0 ); Factoryの工場 = 新しい新しい工場の(); シェイプ形状; カラムカラム = 新しいカラム(factory.getShape(C)、reader.nextDouble())。 System.out.println( "柱体的体积" + column.getVolume()); } } }
2、Factory.java
パッケージW29; // ファクトリクラス のインポートjava.util.Scanner; パブリック クラスファクトリーの{ 保護された形getShape(char型のC){ スキャナリーダー = 新しい新しいスキャナ(System.in); 形状形状 = ヌル; スイッチ(C){ ケース「R&LT ':のSystem.out.println( "矩形状の底、高い柱の長さと幅を入力してください");形状= 新しい新しい矩形を(reader.nextDouble()、reader.nextDouble()); BREAK ; ケース ' S「: System.out.println(「を入力してください側、正方形ベースを有する高気筒」);シェイプ= 新しい新しい正方形(reader.nextDouble())。BREAK 。 ケース 'T':のSystem.out.println( "垂直台形高い、高い塔の底を入力してください");形状= 新新 TRAPEZIUM(reader.nextDouble()、reader.nextDouble()、reader.nextDouble( )); BREAK ; ケース 'T':のSystem.out.println( "三方を入力して、高い基質三角形の柱");形状= 新しい新しい三角形(reader.nextDouble()、reader.nextDouble()、リーダー.nextDouble()); BREAK ; ケース 'C':のSystem.out.println( "ハイシリンダの円形の底半径を入力してください");シェイプ= 新しい新しい円(reader.nextDouble()); BREAK ; } 戻り; Shapeを } }
3、Shape.java
パッケージW29; // インタフェースの形状 パブリック インターフェース形{ ダブルのgetArea(); }
4、Rectangle.java
パッケージW29; // 矩形类 パブリック クラス矩形が実装形{ ダブル幅、長さ。 公共長方形(ダブル幅、ダブル長さ){ この .width = 幅。 この .LENGTH = 長さ。 } 公共の 二重のgetArea(){ 戻り幅* 長さ; } }
5、Square.java
パッケージW29; // 正方形类 パブリック クラススクエア延び長方形{ 公共広場(ダブルサイド){ スーパー(側側)。 } 公共の 二重のgetArea(){ 戻り幅* 長さ; } }
6、trapezium.java
パッケージW29; // 梯形类 パブリック クラス台形は延び長方形{ ダブル高さ; 公共台形(倍、アップ倍、ダウン二重高さ){ スーパー(上下)。 この .height = 高さ; } 公共の 二重のgetArea(){ リターン(幅+長さ)*高さ/ 2 。 } }
7、Triangle.java
パッケージW29; // 三角形类 パブリック クラストライアングル実装形{ ダブル、B、Cと、 公共トライアングル(ダブル、ダブル B、ダブルC){ スーパー()。 この .A = ; この .B = B; この .C = C; } 公共の 二重のgetArea(){ 二重和=(A + B + C)/ 2 。 戻り Math.sqrt(SUM *(SUM-A)*(SUM-B)を*(sum- c)参照)。 } }
8、Circle.java
パッケージW29; // 圆形类 パブリック クラスサークル実装形{ ダブル半径。 公共サークル(二重半径){ スーパー()。 この .radius = 半径。 } 公共の 二重のgetArea(){ // TODO自動生成方法スタブ 戻り半径*半径* 3.14 。 } }
9、列の.java
パッケージW29; // 柱体类 パブリック クラス列{ 形形状。 二重の高いです; 公共カラム(図形形状、二重ハイ){ スーパー()。 この .shape = 形状; この .high = 高いです。 } 公共 ダブルgetVolume(){ 戻り shape.getArea()*は高いです。 } }
第二に、成功のスクリーンショット