質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
87.20%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

解決済

Javaの銀行口座プログラムのユーザーの入金履歴と出金履歴の表示の仕方について

amareno
amareno

総合スコア0

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

1回答

0評価

0クリップ

53閲覧

投稿2018/11/18 09:03

編集2022/01/12 10:58

前提・実現したいこと

Javaを用いて簡単な銀行口座のプログラムを作っています。ユーザーがDepositを選択するとユーザーの好きな額を入金し、withdrawalを選択すると好きな額を引き下ろし、output balanceを選択するとその時の口座に入っているお金を表示し、Output all depositsを選択するとその時までの入金履歴を表示し、Output all withdrawalsを選択するとその時までの出金履歴を表示します。現在、入金履歴と出金履歴の仕方がよく分からなくこちらで質問させて頂きました。
下記のコードでdeposit.lengthとwithdrawal.lengthが0だと思うので入金履歴と出金履歴が表示されないのだと思います。そしてcountDpとcountWdのカウントの仕方が間違えていると思います。正しくするにはどのようにすれば良いでしょうか?教えて頂きたいです。
このプログラムの問題文にarrayを使えと書いてあるのでarrayを使う前提でお願いします。

該当のソースコード

Java

import java.util.Scanner; import java.io.*; import java.io.FileNotFoundException; class Account { private float balance; private int countDp; private int countWd; float[] deposit = new float[countDp]; float[] withdrawal = new float[countWd]; Scanner input = new Scanner(System.in); public Account() { balance = 0; countDp = 0; countWd = 0; } public float depositing() { System.out.println("Enter the amount you would like to deposit: "); float depositAmount = input.nextFloat(); balance += depositAmount; countDp += 1; return balance; } public float withdrawing() { System.out.println("Enter the amount you would like to withdraw: "); float withdrawalAmount = input.nextFloat(); if (balance >= withdrawalAmount) balance -= withdrawalAmount; else { System.out.println("Less balance, transaction failed."); } countWd += 1; return balance; } public float balanceOfAccount() { return balance; } public void outputAllDeposits() { // while(input.hasNextFloat()) { // deposit[countDp] = input.nextFloat(); // float line = deposit[countDp]; // countDp += 1; // System.out.println(line); // } System.out.println("Outputting all your deposits:"); for (int i = 0; i < deposit.length; i++) { deposit[i] = input.nextFloat(); if(deposit[i] >= 0.0f) { System.out.println(deposit[i]); } } } public void outputAllWithdraws() { System.out.println("Outputting all your withdrawals:"); for (int i = 0; i < withdrawal.length; i++) { withdrawal[i] = input.nextFloat(); if(withdrawal[i] >= 0.0f) { System.out.println(withdrawal[i]); } } } public void outputToTextFile() { try { PrintWriter pw = new PrintWriter("bankAcount.txt"); pw.println("Your balance: " + balanceOfAccount()); pw.println("Outputting all your withdrawals:"); for (int i = 0; i < withdrawal.length; i++) { withdrawal[i] = input.nextFloat(); if(withdrawal[i] >= 0.0f) { pw.println(withdrawal[i]); } } pw.println("Outputting all your deposits:"); for (int i = 0; i < deposit.length; i++) { deposit[i] = input.nextFloat(); if(deposit[i] >= 0.0f) { pw.println(deposit[i]); } } pw.close(); } catch (IOException ex) { ex.printStackTrace(); } } } public class Main { public static void main(String[] args) throws Exception{ int choice = 0; Account account = new Account(); Scanner in = new Scanner(System.in); do { System.out.println("**************************************\n" + "* Bank Account Program: *\n" + "* Enter # to run program or Quit *\n" + "* 1) Make a Deposit *\n" + "* 2) Make a Withdrawal *\n" + "* 3) Output balance *\n" + "* 4) Output all deposits *\n" + "* 5) Output all withdrawals *\n" + "* 6) Quit *\n" + "**************************************\n"); choice = in.nextInt(); switch (choice) { case 1: account.depositing(); break; case 2: account.withdrawing(); break; case 3: System.out.println("Your balance is " + account.balanceOfAccount()); break; case 4: account.outputAllDeposits(); break; case 5: account.outputAllWithdraws(); break; case 6: System.out.println("Thank you for using this Bank."); break; default: break; } } while(choice != 6); account.outputToTextFile(); } }

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

まだ回答がついていません

会員登録して回答してみよう

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
87.20%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。