使用 I/O 和字符串进行编程。 |基本库存加价计算器
Program using I/O & Strings. | Basic Inventory Markup Calculator
我正在编写一个程序,从文件中读取库存项目并添加加价费用。我假设每一行都是正确的并且不使用任何验证。但是,我正在根据每行的格式构建程序,希望是:名称数量成本加价。
成本是公司为该商品支付的批发成本(每件)。加价是一个介于 1 和 100 之间的数字,表示加价的百分比以确定零售成本。我正在尝试将所有输入数据连同价格、批发商品的价值(数量 * 成本)、零售商品的价值(数量 * 价格)一起输出到一个文件中。所有货币在输出 (printf) 时都应四舍五入到两位小数。该文件应该使用 printf 语句以表格形式很好地格式化输出,并包含一个标题
排。
目前,我正在尝试使用 value-returning 方法确定零售价,但我似乎遗漏了什么?我不明白为什么即使在 outFile.print(Sect[0] + " " + Sect[1]);
之后也没有任何内容打印到输出文件?
(我的完整代码}
package pray;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.PrintWriter;
import java.util.Scanner;
public class Doitgoooo {
public static void main(String[] args) throws FileNotFoundException {
int Quantity;
double Cost, Markup, FinCost=0;
String Line, item1, item2, item3, item4;
String[] Sect;
Scanner inFile;
PrintWriter outFile;
System.out.println("(Basic) Inventory Program Starting. Opening file...");
System.out.println("Please ensure data is entered per line in the format of: 'Name Quantity Cost Markup' ");
inFile = new Scanner(new File("input.txt"));
outFile = new PrintWriter(new File("output.txt"));
while(inFile.hasNext()){
Line = inFile.nextLine();
Sect = Line.split(" ");
if(Sect.length == 4) {
item1 = Sect[0];
item2 = Sect[1];
item3 = Sect[2];
item4 = Sect[3];
Quantity = (int) Double.parseDouble(item2);
Cost = Double.parseDouble(item3);
Markup = Double.parseDouble(item4);
double Value = Quantity * Cost;
double ValueMarkup = Quantity * FinCost;
outFile.print(Sect[0] + " " + Sect[1]);
outFile.printf(" %.2f %.2f %.2f %.2f %.2f", Cost, Markup, FinCost, Value, ValueMarkup);
}
else {
outFile.println("Line did not have 4 item(s)");
}
}
}
private void CalculateRetail(double Cost, double Markup) {
double MarkPerct = Markup/100;
double MarkAdd = MarkPerct * Cost;
double FinCost = MarkAdd + Cost;
}
}
{输入示例}
小东西 22 15.65 45.00
Whatchacallit 59 67.99 25.5
小发明 10 100.00 40.00
{输出示例(我要打印的不是这个)}
项目 |数量 |费用 |加价百分比 |价格(R)|值(W) |值 (R)
东西 | 22 | 15.65 | 45.00 | 22.69 | 344.30 | 499.24
胡说八道 | 59 | 67.99 | 25.50 | 85.33 | 4011.41 | 5034.32
小发明 | 10 | 100.00 | 40.00 | 140.00 | 1000.00 | 1400.00
如果这就是您的全部代码,那么您需要刷新和/或关闭文件以将数据写入磁盘。
写完后在代码中添加 outFile.close()。
我正在编写一个程序,从文件中读取库存项目并添加加价费用。我假设每一行都是正确的并且不使用任何验证。但是,我正在根据每行的格式构建程序,希望是:名称数量成本加价。
成本是公司为该商品支付的批发成本(每件)。加价是一个介于 1 和 100 之间的数字,表示加价的百分比以确定零售成本。我正在尝试将所有输入数据连同价格、批发商品的价值(数量 * 成本)、零售商品的价值(数量 * 价格)一起输出到一个文件中。所有货币在输出 (printf) 时都应四舍五入到两位小数。该文件应该使用 printf 语句以表格形式很好地格式化输出,并包含一个标题 排。
目前,我正在尝试使用 value-returning 方法确定零售价,但我似乎遗漏了什么?我不明白为什么即使在 outFile.print(Sect[0] + " " + Sect[1]);
之后也没有任何内容打印到输出文件?
(我的完整代码}
package pray;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.PrintWriter;
import java.util.Scanner;
public class Doitgoooo {
public static void main(String[] args) throws FileNotFoundException {
int Quantity;
double Cost, Markup, FinCost=0;
String Line, item1, item2, item3, item4;
String[] Sect;
Scanner inFile;
PrintWriter outFile;
System.out.println("(Basic) Inventory Program Starting. Opening file...");
System.out.println("Please ensure data is entered per line in the format of: 'Name Quantity Cost Markup' ");
inFile = new Scanner(new File("input.txt"));
outFile = new PrintWriter(new File("output.txt"));
while(inFile.hasNext()){
Line = inFile.nextLine();
Sect = Line.split(" ");
if(Sect.length == 4) {
item1 = Sect[0];
item2 = Sect[1];
item3 = Sect[2];
item4 = Sect[3];
Quantity = (int) Double.parseDouble(item2);
Cost = Double.parseDouble(item3);
Markup = Double.parseDouble(item4);
double Value = Quantity * Cost;
double ValueMarkup = Quantity * FinCost;
outFile.print(Sect[0] + " " + Sect[1]);
outFile.printf(" %.2f %.2f %.2f %.2f %.2f", Cost, Markup, FinCost, Value, ValueMarkup);
}
else {
outFile.println("Line did not have 4 item(s)");
}
}
}
private void CalculateRetail(double Cost, double Markup) {
double MarkPerct = Markup/100;
double MarkAdd = MarkPerct * Cost;
double FinCost = MarkAdd + Cost;
}
}
{输入示例}
小东西 22 15.65 45.00
Whatchacallit 59 67.99 25.5
小发明 10 100.00 40.00
{输出示例(我要打印的不是这个)}
项目 |数量 |费用 |加价百分比 |价格(R)|值(W) |值 (R)
东西 | 22 | 15.65 | 45.00 | 22.69 | 344.30 | 499.24
胡说八道 | 59 | 67.99 | 25.50 | 85.33 | 4011.41 | 5034.32
小发明 | 10 | 100.00 | 40.00 | 140.00 | 1000.00 | 1400.00
如果这就是您的全部代码,那么您需要刷新和/或关闭文件以将数据写入磁盘。
写完后在代码中添加 outFile.close()。