繁体   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