** 要素数3の配列で入金処理・出金処理・利息をそれぞれ計算して出力したいのだが、利率だけ計算結果が変わらない**
下記の出力結果にある通り、入金処理、出金処理まではうまくいくのだが、利率だけ解決できない。
FBankAccountクラスにある、利率計算メソッド(void addInterest())口座残高に利息額を加える 所で間違っていると思うのだが、解決方法がわかりません。
BankBase
1package k08; 2 3public class BankBase { 4 private String number; 5 private String name; 6 private int money; 7 8 BankBase(String number,String name, int money){ 9 this.number = number; 10 this.name = name; 11 this.money = money; 12 } 13 public String getNumber() { 14 return number; 15 } 16 public String getName() { 17 return name; 18 } 19 public int getMoney(){ 20 return money; 21 } 22 void depositMoney(int money) { 23 this.money += money; 24 } 25 void paymentMoney(int money) { 26 if(this.money >= money) { 27 28 this.money -= money; 29 } 30 else { 31 System.out.println("残高不足です"); 32 } 33 } 34} 35
FBankAccount
1package k08; 2 3public class FBankAccount extends BankBase{ 4 private static double rate; 5 private static int counter=1001; 6 7 FBankAccount(String name,int money){ 8 super("F" + counter,name,money); 9 counter +=10; 10 } 11 void addInterest() { 12 int money = getMoney() + (int)(Math.round((double)getMoney() * FBankAccount.rate/100)); 13 } 14 void setRate(double rate) { 15 FBankAccount.rate = rate; 16 } 17 double getRate() { 18 return rate; 19 } 20} 21
Main
1package k08; 2import java.util.Scanner; 3public class Kadai0803 { 4 5 public static void main(String[] args) { 6 Scanner sc = new Scanner(System.in); 7 8 FBankAccount[] fb = new FBankAccount[3]; 9 10 for(int i=0; i<fb.length; i++) { 11 System.out.print("Name --> "); 12 String name = sc.next(); 13 System.out.print("Money --> "); 14 int money = sc.nextInt(); 15 16 fb[i] = new FBankAccount(name,money); 17 } 18 System.out.println(); 19 System.out.println("口座一覧"); 20 21 for(int i=0; i<fb.length; i++) { 22 System.out.println(fb[i].getNumber() +" "+ fb[i].getName() +" "+ fb[i].getMoney()); 23 } 24 System.out.println(); 25 System.out.println("入金処理"); 26 27 for(int i=0; i<fb.length; i++) { 28 System.out.println("Number : " + fb[i].getNumber()); 29 System.out.print("Deposit Money -->"); 30 int money = sc.nextInt(); 31 fb[i].depositMoney(money); 32 } 33 System.out.println(); 34 System.out.println("口座一覧"); 35 36 for(int i=0; i<fb.length; i++) { 37 System.out.println(fb[i].getNumber() +" "+ fb[i].getName() +" "+ fb[i].getMoney()); 38 } 39 System.out.println(); 40 System.out.println("出金処理"); 41 42 for(int i=0; i<fb.length; i++) { 43 System.out.println("Number : " + fb[i].getNumber()); 44 System.out.print("Payment Money -->"); 45 int money = sc.nextInt(); 46 fb[i].paymentMoney(money); 47 } 48 System.out.println(); 49 System.out.println("口座一覧"); 50 51 for(int i=0; i<fb.length; i++) { 52 System.out.println(fb[i].getNumber() +" "+ fb[i].getName() +" "+ fb[i].getMoney()); 53 } 54 System.out.println(); 55 System.out.print("Rate -->"); 56 int rate = sc.nextInt(); 57 58 for(int i=0; i<fb.length; i++) { 59 fb[i].setRate(rate); 60 fb[i].addInterest(); 61 } 62 63 System.out.println(); 64 65 System.out.println("口座一覧"); 66 for(int i=0; i<fb.length; i++) { 67 System.out.println(fb[i].getNumber() +" "+ fb[i].getName() +" "+ fb[i].getMoney()); 68 } 69 } 70 71} 72
OutputResult
1Name --> Aoyama 2Money --> 15000 3Name --> Inoue 4Money --> 27000 5Name --> Uchiyama 6Money --> 8000 7 8口座一覧 9F1001 Aoyama 15000 10F1011 Inoue 27000 11F1021 Uchiyama 8000 12 13入金処理 14Number : F1001 15Deposit Money -->3000 16Number : F1011 17Deposit Money -->5000 18Number : F1021 19Deposit Money -->1000 20 21口座一覧 22F1001 Aoyama 18000 23F1011 Inoue 32000 24F1021 Uchiyama 9000 25 26出金処理 27Number : F1001 28Payment Money -->10000 29Number : F1011 30Payment Money -->40000 31残高不足です 32Number : F1021 33Payment Money -->9000 34 35口座一覧 36F1001 Aoyama 8000 37F1011 Inoue 32000 38F1021 Uchiyama 0 39 40Rate -->3 41 42口座一覧 43F1001 Aoyama 8000 44F1011 Inoue 32000 45F1021 Uchiyama 0
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/06/23 04:47