問題1. 電気料金計算
例題のプログラムを改造して一ヶ月の電気料金を計算できるようにする。プログラムの空欄を埋めなさい。
次の表が1kWh当たりの単価です。
| 1kWhあたりの電力料金(円) | 単価 |
|---|---|
| 最初の120kWhまで | 17.80 |
| 120kWhをこえ250kWhまで | 23.85 |
| 250kWhをこえるもの | 26.32 |
電気料金の計算式は次のとおりです。
電気料金=(基本料金+17.8×使用量1+23.85×使用量2+26.32×使用量3)×1.05
例えば、契約アンペア数が30A、一月の使用量が260kWhときは次のような式になります。
電気料金=(780+17.8×120+23.85×130+26.32×10)×1.05
処理の流れ
import java.io.*;
import java.text.*;
class DenkiRyokin {
public static void main(String args[]){
// 変数宣言
int KeiyakuA, Shiyouryo, S1, S2, S3;
int KihonRyokin, DenkiRyokin;
// 変数の初期化
S1 = S2 = S3 = KihonRyokin = 0;
// 入力ストリーム、バッファの定義
BufferedReader BR = new BufferedReader(new InputStreamReader(System.in));
DecimalFormat DF = new DecimalFormat();
// 契約アンペア数の入力
System.out.print("契約アンペア数を入力してください : ");
try {
String s = BR.readLine();
Number Num = DF.parse(s);
KeiyakuA = Num.intValue();
}
catch (IOException e) { KeiyakuA = -1; }
catch (ParseException e) { KeiyakuA = -2; }
// 契約アンペア数による基本料金の代入
switch ((1)) {
case -1 : System.out.println("I/Oの例外が発生しました。");
System.out.println("基本料金は計算できません。。");
break;
case -2 : System.out.println("パース時の例外が発生しました。");
System.out.println("基本料金は計算できません。。");
break;
case 10 : (2) = 260; break;
case 15 : (2) = 390; break;
case 20 : (2) = 520; break;
case 30 : (2) = 780; break;
case 40 : (2) = 1040; break;
case 50 : (2) = 1300; break;
case 60 : (2) = 1560; break;
default : (2) = 0;
}
// 使用電力量の入力
System.out.print("一月の電力使用量を入力してください : ");
try {
String s = BR.readLine();
Number Num = DF.parse(s);
(3) = Num.intValue();
}
catch (IOException e) { Shiyouryo = 0; }
catch (ParseException e) { Shiyouryo = 0; }
// 使用電力量による単価別の使用量の算出
// 基本料金が0でないときに料金を計算する
if (KihonRyokin (4) 0) {
// 使用量120kWh以下の場合
if(Shiyouryo <= 120) {
S1 = (5);
S2 = S3 = (6);
}
// 120KWhより大きく、250kWh以下の場合
if(Shiyouryo >120 (7) Shiyouryo <= 250) {
S1 = (8);
S2 = Shiyouryo - (9);
S3 = (10);
}
// 250kWhより大きい場合
if(Shiyouryo > 250){
S1 = (11);
S2 = (12);
S3 = Shiyouryo - (13);
}
//電気料金の計算
DenkiRyokin = ((14))(((15) + 17.8 * (16) + 23.85 * (17) + 26.32 * (18)) * 1.05);
System.out.println("電気料金は" + (19) + "円です");
} else {
System.out.println("入力された契約アンペア数は無効です。");
}
}
}
問題2. 特急料金計算
距離により特急料金が次の表に示すような路線がある。この路線の利用距離による特急料金を求めるプログラムを作りなさい。
| 利用距離(km) | 特急料金(円) |
|---|---|
| 1から100まで | 1500 |
| 101から200まで | 2300 |
| 201から300まで | 2500 |
| 301から400まで | 2700 |
| 401から600まで | 3100 |
| 601以上 | 3500 |
処理手順は次の通り
入力された利用距離のままではswitch文で処理できないので次の変換の式を使って指定された範囲内にある距離を一つの値に変換するようにします。
変換された値 = (利用距離 - 1) / 100
この式を使うことで利用距離の範囲はそれぞれ次の表に示す値になります。
| 利用距離(km) | 変換された値 |
|---|---|
|
1から100
|
0
|
|
101から200
|
1
|
|
201から300
|
2
|
|
301から400
|
3
|
|
401から500
|
4
|
|
501から600
|
5
|
問題3 .問題の自作
switch文を使ったプログラムを自作しなさい。
プログラムの概要をコメントとしてプログラム中に入力しておくこと。
// このプログラムは・・・・