Я работаю над написанием программы, которая считывает предметы инвентаря из файла и добавляет плату за наценку.Я предполагаю, что каждая строка будет правильной и не использует никакой проверки.Тем не менее, я строю программу на формате каждой строки, НАДЕЖДЫ, как: имя количество стоимость разметки.
Стоимость - это оптовая стоимость, которую компания заплатила за элемент (за каждую).Наценка - это число от 1 до 100, которое указывает процент от наценки для определения розничной стоимости.Я пытаюсь вывести все входные данные в файл вместе с ценой, стоимостью товаров оптом (количество * стоимость), стоимостью товаров в розницу (количество * цена).Все валюты должны быть округлены до двух десятичных знаков на выходе (printf).Файл должен быть красиво отформатирован в табличной форме с использованием операторов printf для вывода и включать строку заголовка.
В настоящее время я пытаюсь определить розничную цену, используя метод возврата стоимости, и мне кажется, что я что-то упустил?Я не понимаю, почему даже после 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;
}
}
{INPUT EXAMPLE}
thingy 2215,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
Whatchacallit| 59 | 67,99 | 25,50 | 85,33 | 4011,41 | 5034,32
штуковина | 10 | 100,00 | 40,00 | 140,00 | 1000,00 | 1400,00