2016-10-05 1 views
-2

私のクラスの課題を完了するのに少し問題があります。全12個の毎月のファイルから次の番号が負になるかどうかを確認するにはどうすればよいですか?

読むと、各 月の開始残高を印刷:
命令があります。残高が負の場合は、標準出力に警告メッセージを出力します。

すべてのファイルの形式がどのように見えるかの例は次のとおりです。

dep 350.18 
wdr 500 
wdr 4.99 
wdr 7.95 
wdr 25 
dep 50 
wdr 199.99 
wdr 25 
wdr 25 
wdr 9.72 

私のコードは、これまでのところです:

import java.io.File; 
import java.io.FileNotFoundException; 
import java.util.Scanner; 

public class Excercise4 { 

public static void main(String[] args) throws FileNotFoundException { 
    // TODO Auto-generated method stub 
    Scanner sc = new Scanner(System.in); 
    System.out.println("Enter the file name: "); 
    String filename = sc.next(); 
    File myFile = new File(filename); 
    Scanner myScanner = new Scanner(myFile); 
    float temp = 0; 
    float sum = 0; 
    while(myScanner.hasNextFloat()) { 
      temp = myScanner.nextFloat(); 
      sum += temp; 
      System.out.println(sum); 
    } 
    } 
} 

任意の助けいただければ幸いです、と聞かせください私は質問を編集する必要があるかどうかを知っています。

+1

負の残高照合コードはどこに書いてありますか?まずそれを書いて、いくつかの間違いを犯すと、私たちはあなたの問題を克服するのを手伝います。 –

+0

ヒント: 'filename = sc.nextLine();' –

+0

を使うとよいでしょう。 'if'文と' String.equals() 'を使って、入力行がデポジットか撤退。それが預金の場合は、あなたが 'sum + ='をあなたのものとして追加します。引き出しの場合は、 'sum - ='で合計から引くことになります。 –

答えて

0

次の数字が負数になるかどうかを確認するにはどうすればよいですか?

sumbalanceとしましょう。

double balance = 0; 
String line; 
while (scanner.hasNextLine()) { 
    line = myScanner.nextLine(); // Read the line 
    String[] parts = line.split("\\s+"); // split on one or more whitespaces 
    String action = parts[0]; // 'dep' or 'wdr' 
    double amount = Double.parseDouble(parts[1]); 
    if ("wdr".equals(action) && amount > balance) { 
     // Warning: not enough funds 
     break; // exit the loop, if required 
    } 
    balance += amount; 
} 

System.out.println(balance); // Print the final balance 
+1

総額が負のように見える場合はOPを意味します。つまり、それが撤回の場合、 'if(sum-temp <0){// warning} ' –

+0

ああ、私はそれが理にかなっていると思う。 'wdr'と' dep'については本当に考えなかった。 –

+0

@ cricket_007「parseDouble(parts [1])」の範囲外の配列インデックスを取得していますが、その理由は何ですか? – themaster389

1
  1. ファイルは、トランザクションタイプ(DEP、WDR)と量の両方を含みます。あなたはタイプに応じて金額を入金(dep)または引き出し(wdr)する必要があります。
  2. 各取引の後に残高を印刷しています。各ファイルの後にのみ印刷してください。
  3. 残高がマイナスかどうかを確認し、警告を表示する必要があります。
  4. 複数のファイルをループする必要があります。現在のところ、1つのみを読み込みます。
関連する問題