Программирование с использованием I / O & Strings.|Калькулятор базовой инвентаризации - PullRequest
0 голосов
/ 11 декабря 2018

Я работаю над написанием программы, которая считывает предметы инвентаря из файла и добавляет плату за наценку.Я предполагаю, что каждая строка будет правильной и не использует никакой проверки.Тем не менее, я строю программу на формате каждой строки, НАДЕЖДЫ, как: имя количество стоимость разметки.

Стоимость - это оптовая стоимость, которую компания заплатила за элемент (за каждую).Наценка - это число от 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

1 Ответ

0 голосов
/ 11 декабря 2018

Если это весь ваш код, то вам нужно очистить и / или закрыть файл, чтобы получить данные, записанные на диск.

Добавьте outFile.close () в ваш код, когда вы закончите писать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...