簡體   English   中英

與計算相比,在讀取文件輸入方面需要幫助!

[英]Need help with Reading File Input than Calculating!

我要寫這個程序真的很難。 該程序必須

從文件讀入

  1. 名稱
  2. 詢問價格
  3. 銷售價格
  4. 尚欠抵押的金額

打印輸出並將包含以下內容的表寫入文件:

  • 名稱
  • 詢問價格
  • 抵押金額
  • 售價
  • 房地產經紀人委員會
  • 物業稅凈價

    計算:

  • 房地產經紀人佣金=售價* 6%
  • 物業稅=售價* 10.5%
  • 凈價=要價-抵押金額-經紀人佣金
  • 總盈虧=累計凈價

我不知道如何分離數據並進行單獨的計算! 示例數據文件如下所示:

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

我無法讀取數據,然后進行計算,然后將新數據寫入新文件,請幫忙!

由於您使用的是Java,因此在繼續之前,應嘗試為應用程序創建對象模型。 難以解釋整個方法,但是也許您可以從為應用程序創建類圖開始。

我將嘗試給出一些提示,但不要太具體。 我想強調的是,以下操作只是其中一種方法,可能不是最佳方法。

在較高級別上,請考慮要執行的操作以及這些操作將要處理的數據。 就您而言,例如,您有3個活動-從文件讀取,執行計算然后輸出數據。 為這些活動創建單獨的工作者類。 還要考慮將存儲數據的類。 這些類對於在工作者類之間傳遞數據很有用。

接下來,設計類之間如何相互通信以完成工作。 例如,您可以具有一個控制器類,該控制器類通過與其他組件協作完成任務來管理這3個活動。 它可以調用文件讀取器組件從文件中獲取數據,然后將數據發送到計算組件進行計算並返回結果,然后將結果傳遞給寫入器組件。

同樣,這是一種簡單的方法,但可能不是最佳解決方案。 在進行時,請根據需要進行審查和重構。

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();
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM