REPORT#3
3種類以上の体積を求めるクラスを作成し、具体的な値を入力しプログラムを実行せよ
import java.io.*;
class j02 {
public static void main(String args[]){
BufferedReader br = new BufferedReader(
new InputStreamReader(System.in));
String rdLine,rd2Line;
double height = 0;
double radius = 0;
double side = 0;
double vol = 0;
try{
System.out.println("どの体積の計算を行うか選んでください");
System.out.print("1、円錐の体積,");
System.out.print("2、四角柱の体積,");
System.out.println("3、球の体積,");
System.out.print("番号を入力してください=>");
rdLine = br.readLine();
int cheakNum = Integer.parseInt(rdLine);
switch (cheakNum) {
case 1:
System.out.print("円の半径を入力してください=>");
radius = (new Double(br.readLine())).doubleValu\e();
System.out.print("円錐の高さを入力してください=\>");
height = (new Double(br.readLine())).doubleValu\e();
Volume volume = new Volume(radius, heig\ht, side);
vol = volume.cone();
System.out.println();
System.out.println("この円錐の体積は『"+vol\+"』です。");
break;
case 2:
System.out.print("底辺の横の長さを入力してください=\>");
radius = (new Double(br.readLine())).doubleValu\e();
System.out.print("底面の縦の長さを入力してくだ\\さい=>");
height = (new Double(br.readLine())).doubleValu\e();
System.out.print("四角柱の高さを入力してくださ\\い=>");
side = (new Double(br.readLine())).doubleValue(\);
volume = new Volume(radius, height, sid\e);
vol = volume.pillar();
System.out.println();
System.out.println("この円錐の体積は『"+vol\+"』です。");
break;
case 3:
System.out.print("球の半径を入力してださい=\>");
radius = (new Double(br.readLine())).doubleValu\e();
volume = new Volume(radius, height, sid\e);
vol = volume.boll();
System.out.println();
System.out.println("この球の体積は『"+vol+"\』です。");
class Volume{
double radius,height, side;
final static double pai = 3.14;
Volume(double radius, double height, double side){
this.radius = radius;
this.height = height;
this.side = side;
}
public double cone(){
return(radius * radius * pai * height * 1/3);
}
public double pillar(){
return(radius * side * height);
}
public double boll(){
return(4/3 * pai * radius * radius * radius);
}
}
実行結果
|
どの体積の計算を行うか選んでください
1、円錐の体積,2、四角柱の体積,3、球の体積,
番号を入力してください=>1
円の半径を入力してください=>3
円錐の高さを入力してください=>3
この円錐の体積は『28.26』です。
|
2種以上の表面積を求めるクラスを作成し、同様に実行せよ
import java.io.*;
class j03 {
public static void main(String args[]){
BufferedReader br = new BufferedReader(
new InputStreamReader(System.in));
String rdLine,rd2Line;
double line = 0;
double radius = 0;
double side = 0;
double are = 0;
try{
System.out.println("どのタイプの表面積の計算を行いますか?");
System.out.print("(1)円錐の表面積,");
System.out.print("(2)四角柱の表面積,");
System.out.println("(3)球の表面積");
System.out.print("番号を入力してください=>");
rdLine = br.readLine();
int cheakNum = Integer.parseInt(rdLine);
switch (cheakNum) {
case 1:
System.out.print("底辺の円の半径を入力してください=>");
radius = (new Double(br.readLine())).doubleValue();
System.out.print("母線の長さを入力してください=>");
line = (new Double(br.readLine())).doubleValue(\);
Area area = new Area(radius, line, side\);
are = area.cone();
System.out.println();
System.out.println("この円錐の表面積は『"+a\re+"』です。");
break;
case 2:
System.out.print("底面の円の半径を入力してください=>");
radius = (new Double(br.readLine())).doubleValu\e();
System.out.print("円柱の高さを入力してください=>");
line = (new Double(br.readLine())).doubleValue(\);
area = new Area(radius, line, side);
are = area.pillar();
System.out.println();
System.out.println("この円柱の表面積は『"+a\re+"』です。");
break;
case 3:
System.out.print("球の半径を入力してださい=>");
radius = (new Double(br.readLine())).doubleValu\e();
area = new Area(radius, line, side);
are = area.boll();
System.out.println();
System.out.println("この球の表面積は『"+are\+"』です。");
break;
default:
System.out.println("入力値が正しくありませ\\ん。正しい入力値を入力してください。");
}
}catch(Exception e){
System.out.println("IOExceptionエラー発生");
}
}
}
class Area{
double radius,line, side;
final static double pai = 3.14;
Area(double radius, double line, double side){
this.radius = radius;
this.line = line;
this.side = side;
}
public double cone(){
double angle = 360 * ((radius*2) / (line*2));
return((radius * radius * pai) + (line * line * pai * (angle/36\0)));
}
public double pillar(){
double yen = radius * radius * pai * 2;
return((line * radius * 2 * pai) + yen);
}
public double boll(){
return(4 * pai * radius * radius);
}
}
|
実行結果
どのタイプの表面積の計算を行いますか?
(1)円錐の表面積,(2)四角柱の表面積,(3)球の表面積
番号を入力してください=>3
球の半径を入力してださい=>3
この球の表面積は『113.04』です。
|
例題を参考に、階乗計算を再帰プログラムにより作成し、for文による階乗計算との違いを考察せよ
import java.io.*;
class j04{
public static void main(String args[]) throws Exception{
BufferedReader in = new BufferedReader(
new InputStreamReader(System.in));
System.out.print("input natural numeber:");
int num = (new Integer(in.readLine())).intValue();
System.out.print("for文を使った階乗計算 ==>");
for (int i = 1; i <= number; i++){
factrial = i * factrial;
}
return(factrial);
}
static int factrec(int number){
if (number == 0)
return(1);
return(number * factrec(number -1));
}
}
|
実行結果
[nw0611:~] j06011% javac j04.java
[nw0611:~] j06011% java j04
input natural numeber:10
v: ==>10 ! =3628800
v: ==>10 ! =3628800
|
感想
大変です。明日テストです。でも今夜は先輩の誕生日会。
しかも結構キツい飲み会になるはず。
泥酔必至、きっと朝日も拝める事だろう。
願わくば寝坊しませんように。