需要帮助阅读文件输入而不是计算!

时间:2011-03-30 04:11:18

标签: java file-read

我必须写这个程序真的很难。 该计划必须

从文件中读入

  1. 名称
  2. 要价
  3. 促销价
  4. 仍欠抵押贷款的金额
  5. 打印并向文件写入包含以下内容的表:

    • 姓名
    • 要价
    • 抵押金额
    • 销售价格
    • 房地产经纪人委员会
    • 物业税净价

      计算:

    • 房地产经纪人委员会=售价* 6%
    • 物业税=售价* 10.5%
    • 净价=要价 - 按揭金额 - 房地产经纪人委员会
    • 总利润/亏损=累计净价

    我不知道如何分离数据并进行单独的计算!! 示例数据文件如下所示......

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

    我无法读取数据然后进行计算,然后将新数据写入新文件,请帮忙!

2 个答案:

答案 0 :(得分:1)

由于您使用的是Java,因此在继续之前应尝试为应用程序创建Object模型。很难解释整个方法,但也许你可以从创建应用程序的类图开始。

我会尽量给出一些提示,而不是太具体。我想强调一下,以下只是其中一种方法,可能不是最佳方法。

在较高级别,考虑您要执行的操作以及操作将要处理的数据。在您的情况下,例如,您有3个活动 - 从文件读取,执行计算然后输出数据。为这些活动创建单独的工作类。还要考虑将存储数据的类。这些类对于在工作类之间传递数据很有用。

接下来,设计类如何相互通信以完成工作。例如,您可以拥有一个控制器类,通过与其他组件协作来完成工作,从而管理3个活动。它可以调用文件读取器组件从文件中获取数据,然后将数据发送到计算组件进行计算并获取结果,然后将结果传递给编写器组件。

同样,这是一种简单的方法,但可能不是最佳解决方案。随着你的进展,必要时进行审查和重构。

答案 1 :(得分: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();
}