Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.04.2017, 19:42   #1
TheStevesCompany
 
Регистрация: 30.10.2016
Сообщений: 4
По умолчанию Общее количество, подсчет. Требуется дебаг и доработка

Суть - я написал по методичке программу, но она недоработана и почему-то не выводит данные в выходной файл. А так же мне нужно подсчитать сумму стоимости товаров и вывести ее так же в файл и на консоль, как отдельную переменную.

Текст из методички:

Исходный файл состоит из строк, в каждой из которых записаны данные о товарах,
находящихся на складе, в следующем порядке:
Наименование товара
Дата поступления на склад
Количество на складе
Цена единицы товара
Наименование поставщика (у меня просто номер)
Записать в выходной файл следующие данные:
Для заданного интервала времени (начальная и конечная даты) – стоимость товаров
для каждого из поставщиков в виде:
Наименование (в моем случае номер) поставщика
Сумма стоимости товаров
Если в указанном диапазоне для какого-либо поставщика поставок не было, в
выходной файл соответствующую строку не записывать. Если не было ни одной
поставки – записать в выходной файл соответствующее сообщение.

Вот входной файл:

хрень1;22/10/12;1;10;хрен1; (1 - наименование товара, 2 - дата, 3 - количество, 4 - цена, 5 - поставщик.)
хрень1;22/11/12;2;20;хрен1;
хрень1;22/01/13;3;30;хрен1;
хрень2;22/02/13;4;40;хрен2;
хрень2;22/03/13;5;50;хрен2;
хрень2;22/04/13;6;60;хрен2;
хрень3;22/05/13;7;70;хрен3;
хрень3;22/06/13;8;80;хрен3;
хрень3;22/07/13;9;90;хрен3;

А вот код. С комментариями, все расписал.

Код:
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
 
namespace _31
{
    class Program
    {
        enum goods : byte { хрень1 = 1, хрень2, хрень3 } //нумерация как отд. константы
 
        static string originalFile = @"C:\UUUUUUUBLE\file.txt"; //файл с инфой
        static string outFile = @"C:\UUUUUUUBLE\output.txt"; //файл с выводом
 
        static StreamReader readerOriginalFileStream; //типы, использующиеся для простой и удобной редакции текста
        static StreamWriter writerOutFileStream;
 
        public static string OutFile { get => outFile; set => outFile = value; }
 
        static void TestExist(string nameFile, ref StreamReader readerFileStream) //проверка на достоверность и на наличие файла
        {
            if (File.Exists(nameFile))
            {
                readerFileStream = new StreamReader(nameFile);
 
                string s = File.ReadAllText(nameFile);
                if (s == "")
                    Console.WriteLine("Исходный файл "{0}" пустой", nameFile);
                else
                    Console.WriteLine("Исходный файл "{0}" существует, и он заполнен.", nameFile);
            }
            else
                Console.WriteLine("Исходный файл "{0}" не существует", nameFile);
        }
 
        public static string[,] TablFile(StreamReader sr, int m) //создание таблицы из файла
        {
            string s, line = "";
            while ((s = sr.ReadLine()) != null)
            {
                line += s;
            }
            string[] xMass = line.Split(';');
            string[,] xTabl = new string[xMass.Length / m, m];
            int k = 0;
            for (int i = 0; i < xMass.Length / m; i++)
            {
                for (int j = 0; j < m; j++)
                {
                    xTabl[i, j] = xMass[k];
                    k++;
                }
            }
            return xTabl;
        }
        static void Main(string[] args)
        {
            try
            {
                TestExist(originalFile, ref readerOriginalFileStream);
                string[,] originalTabl = TablFile(readerOriginalFileStream, 7);
                writerOutFileStream = new StreamWriter(outFile);
 
                Console.Write("(Хрень1 - 1)\n(Хрень2 - 2)\n(Хрень3 - 3)\nВведите тип товара: ");
                
                byte t = byte.Parse(Console.ReadLine());                
                string s = "";                                          
 
                if (t == (byte)goods.хрень1) //count-инг
                    s = Convert.ToString(goods.хрень1);            
                else if (t == (byte)goods.хрень2)               
                    s = Convert.ToString(goods.хрень2);         
                else if (t == (byte)goods.хрень3)                
                    s = Convert.ToString(goods.хрень3);            
 
                Console.WriteLine("Выбран товар: " + s);
                string numname = "", price = "";
 
                for (int i = 0; i < originalTabl.Length / 7; i++)
                {
                    if (s == originalTabl[i, 4])
                    {
                        numname = originalTabl[i, 0];
                        price = originalTabl[i, 3];
 
                        writerOutFileStream.WriteLine(numname + "; " + price);
                        Console.WriteLine("\n" + numname + "; " + price);
                        Console.WriteLine("Файл успешно записан.");
                    }
                }
 
                writerOutFileStream.Close();
                readerOriginalFileStream.Close();
            }
            catch (NullReferenceException) //"вылавливание", отсутствует нужный объект
            {
                Console.WriteLine("\nНе все файлы готовы к использованию.\nПроверь наличие данных.");
            }
            catch //"вылавливание"
            {
                Console.WriteLine("Неизвестное исключение."); //случайная ошибка
            }
            finally //очистка данных try
            {
                Console.ReadLine();
            }
        }
    }
}
TheStevesCompany вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Листинк определяющий общее количество функций РЕ kotov-zhenja Общие вопросы Delphi 1 17.09.2015 17:43
подсчитать общее количество книг FraerFAkk Microsoft Office Access 4 02.04.2012 12:26
Подсчитать общее количество марок в коллекции. Narim Общие вопросы C/C++ 1 02.06.2011 13:47
Создать функцию вычисляющую общее количество локальных максимумов leha1993 Паскаль, Turbo Pascal, PascalABC.NET 2 23.05.2011 14:23
Подсчитать количество букв "А" в предложении и общее количество букв.В тексте из файла несколько строк. kvas91 Общие вопросы C/C++ 3 14.11.2010 16:51