0

私は、私が書かなければならないこのプログラムに本当に苦労しています。プログラムは

ファイルから読み込む

  1. 名前
  2. 提示価格
  3. セールスプライス
  4. 住宅ローンの未払い額

以下を含む表を印刷してファイルに書き込みます。

  • 名前
  • 提示価格
  • 住宅ローンの金額
  • 販売価格
  • 不動産業者委員会
  • 固定資産税 正味価格

    計算:

  • 不動産仲介手数料 = 販売価格 * 6%
  • 固定資産税 = 販売価格 * 10.5%
  • 正味価格 = 提示価格 - 住宅ローン額 - 不動産仲介手数料
  • 総利益 / 損失 = 正味価格の累積

データを分離して個別の計算を行う方法がわかりません!! サンプルデータファイルは次のようになります...

Hopkins 250000      223000      209000
Smith   305699      299999      297500
Forrest 124999      124999      53250
Fitch   214999      202500      200000

データを読み取って計算を行い、新しいデータを新しいファイルに書き込む方法はありません。助けてください!

4

2 に答える 2

1

Java を使用しているため、先に進む前にアプリケーションのオブジェクト モデルを作成する必要があります。アプローチ全体を説明するのは難しいですが、おそらく、アプリケーションのクラス図を作成することから始めることができます。

あまり具体的になりすぎずに、いくつかのヒントを与えようとします。以下はその方法の 1 つにすぎず、最善の方法ではない可能性があることを強調したいと思います。

大まかに、実行する操作と、操作で処理されるデータについて考えます。あなたの場合、例として、ファイルから読み取り、計算を実行してからデータを出力するという3つのアクティビティがあります。これらのアクティビティ用に個別のワーカー クラスを作成します。また、データを格納するクラスについても考えてください。これらのクラスは、ワーカー クラス間でデータを渡すのに役立ちます。

次に、クラスが互いに通信してジョブを完了する方法を設計します。たとえば、他のコンポーネントと協力してジョブを完了させることにより、3 つのアクティビティを管理するコントローラー クラスを作成できます。ファイルリーダーコンポーネントを呼び出してファイルからデータを取得し、データを計算コンポーネントに送信して計算を実行し、結果を取得してライターコンポーネントに渡します。

繰り返しますが、これは単純化されたアプローチですが、最善の解決策ではない可能性があります。作業を進めながら、必要に応じてレビューとリファクタリングを行います。

于 2011-03-30T04:44:49.247 に答える
0
try {
    float netTotal = 0;
    String thisLine = null;
    FileOutputStream out = new FileOutputStream("out.txt"); 
    BufferedReader br = new BufferedReader(new FileReader("inputFile.txt"));
    while ((thisLine = br.readLine()) != null) { // while loop begins here
        String[] parts = thisLine.split("[\\t\\n\\r ]+");
        int askingPrice = Integer.parseInt(parts[1]); 
        int salePrice = Integer.parseInt(parts[2]);
        int amountOwed = Integer.parseInt(parts[3]);
        float commission = salePrice * 0.06;
        float tax = salePrice * 0.105;
        float netPrice = askingPrice - amountOwed - commission;
        netTotal += netPrice;

        out.write((parts[0] + "\t").getBytes());       //name
        out.write((askingPrice + "\t").getBytes());    //asking price
        out.write((amountOwed + "\t").getBytes());     //mortgage amount
        out.write((salePrice + "\t").getBytes());      //selling price
        out.write((commission + "\t").getBytes());     //realtor commission
        out.write((tax + "\t").getBytes());            //sales tax
        out.write((netPrice + "\t\n").getBytes());     //net price
    }
    out.close(); 
    br.close();
    System.out.println("Net profit/loss:  " + netTotal);
} 
catch (Exception e) {
    e.printStackTrace();
}
于 2011-03-30T04:44:00.213 に答える