Не пойму, как сделать подсчет и почему программа не выполняется полностью - C#

Узнай цену своей работы

Формулировка задачи:

Задание - из исходного файла с информацией вывести на экран название и суммарную стоимость для продукта от каждого поставщика, а после записать их в файл вывода. Исходный файл: хрень1;22.10.12;1;10;хрен1; хрень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;
Листинг программы
  1. using System;
  2. using System.Collections.Generic;
  3. using System.IO;
  4. using System.Linq;
  5. using System.Text;
  6. namespace _31
  7. {
  8. class Program
  9. {
  10. enum goods : byte { хрень1 = 1, хрень2, хрень3 } //нумерация как отд. константы
  11. static string originalFile = @"C:\UUUUUUUBLE\file.txt"; //файл с инфой
  12. static string outFile = @"C:\UUUUUUUBLE\output.txt"; //файл с выводом
  13. static StreamReader readerOriginalFileStream; //типы, использующиеся для простой и удобной редакции текста
  14. static StreamWriter writerOutFileStream;
  15. public static string OutFile { get => outFile; set => outFile = value; }
  16. static void TestExist(string nameFile, ref StreamReader readerFileStream) //проверка на достоверность и на наличие файла
  17. {
  18. if (File.Exists(nameFile))
  19. {
  20. readerFileStream = new StreamReader(nameFile);
  21. string s = File.ReadAllText(nameFile);
  22. if (s == "")
  23. Console.WriteLine("Исходный файл "{0}" пустой", nameFile);
  24. else
  25. Console.WriteLine("Исходный файл "{0}" существует, и он заполнен.", nameFile);
  26. }
  27. else
  28. Console.WriteLine("Исходный файл "{0}" не существует", nameFile);
  29. }
  30. public static string[,] TablFile(StreamReader sr, int m) //создание таблицы из файла
  31. {
  32. string s, line = "";
  33. while ((s = sr.ReadLine()) != null)
  34. {
  35. line += s;
  36. }
  37. string[] xMass = line.Split(';');
  38. string[,] xTabl = new string[xMass.Length / m, m];
  39. int k = 0;
  40. for (int i = 0; i < xMass.Length / m; i++)
  41. {
  42. for (int j = 0; j < m; j++)
  43. {
  44. xTabl[i, j] = xMass[k];
  45. k++;
  46. }
  47. }
  48. return xTabl;
  49. }
  50. static void Main(string[] args)
  51. {
  52. try
  53. {
  54. TestExist(originalFile, ref readerOriginalFileStream);
  55. string[,] originalTabl = TablFile(readerOriginalFileStream, 7);
  56. writerOutFileStream = new StreamWriter(outFile);
  57. Console.Write("(Хрень1 - 1)\n(Хрень2 - 2)\n(Хрень3 - 3)\nВведите тип товара: ");
  58. byte t = byte.Parse(Console.ReadLine());
  59. string s = "";
  60. if (t == (byte)goods.хрень1) //count-инг
  61. s = Convert.ToString(goods.хрень1);
  62. else if (t == (byte)goods.хрень2)
  63. s = Convert.ToString(goods.хрень2);
  64. else if (t == (byte)goods.хрень3)
  65. s = Convert.ToString(goods.хрень3);
  66. Console.WriteLine("Выбран товар: " + s);
  67. string numname = "", price = "";
  68. for (int i = 0; i < originalTabl.Length / 7; i++)
  69. {
  70. if (s == originalTabl[i, 4])
  71. {
  72. numname = originalTabl[i, 0];
  73. price = originalTabl[i, 3]*[i, 2];
  74. writerOutFileStream.WriteLine(numname + "; " + price);
  75. Console.WriteLine("\n" + numname + "; " + price);
  76. Console.WriteLine("Файл успешно записан.");
  77. }
  78. }
  79. writerOutFileStream.Close();
  80. readerOriginalFileStream.Close();
  81. }
  82. catch (NullReferenceException) //"вылавливание", отсутствует нужный объект
  83. {
  84. Console.WriteLine("\nНе все файлы готовы к использованию.\nПроверь наличие данных.");
  85. }
  86. catch //"вылавливание"
  87. {
  88. Console.WriteLine("Неизвестное исключение."); //случайная ошибка
  89. }
  90. finally //очистка данных try
  91. {
  92. Console.ReadLine();
  93. }
  94. }
  95. }
  96. }
Все закомментировал, чтобы код было проще прочитать. Очень нужна помощь.

Решение задачи: «Не пойму, как сделать подсчет и почему программа не выполняется полностью»

textual
Листинг программы
  1. using System;
  2. using System.IO;
  3.  
  4. namespace ConsoleApplication4
  5. {
  6.     class Program2
  7.     {
  8.         enum goods : byte { хрень1 = 1, хрень2, хрень3 } //нумерация как отд. константы
  9.  
  10.         static string originalFile = @"file.txt"; //файл с инфой
  11.         static string outFile = @"output.txt"; //файл с выводом
  12.  
  13.         static StreamReader readerOriginalFileStream; //типы, использующиеся для простой и удобной редакции текста
  14.         static StreamWriter writerOutFileStream;
  15.  
  16.         public static string OutFile
  17.         {
  18.             get { return outFile; }
  19.             set { outFile = value; }
  20.         }
  21.  
  22.  
  23.         static void TestExist(string nameFile, ref StreamReader readerFileStream) //проверка на достоверность и на наличие файла
  24.         {
  25.             if (File.Exists(nameFile))
  26.             {
  27.                 readerFileStream = new StreamReader(nameFile);
  28.  
  29.                 string s = File.ReadAllText(nameFile);
  30.                 if (string.IsNullOrEmpty(s))
  31.                 {
  32.                     Console.WriteLine("Исходный файл {0} пустой", nameFile);
  33.                 }
  34.                 else
  35.                 {
  36.                     Console.WriteLine("Исходный файл {0} существует, и он заполнен.", nameFile);
  37.                 }
  38.             }
  39.             else
  40.             {
  41.                 Console.WriteLine("Исходный файл {0} не существует", nameFile);
  42.             }
  43.         }
  44.  
  45.         public static string[,] TablFile(StreamReader sr, int m) //создание таблицы из файла
  46.         {
  47.             string s;
  48.  
  49.             string line = string.Empty;
  50.  
  51.             while ((s = sr.ReadLine()) != null)
  52.             {
  53.                 line += s;
  54.             }
  55.  
  56.             string[] xMass = line.Split(';');
  57.  
  58.             string[,] xTabl = new string[xMass.Length / m, m];
  59.  
  60.             int k = 0;
  61.  
  62.             for (int i = 0; i < xMass.Length / m; i++)
  63.             {
  64.                 for (int j = 0; j < m; j++)
  65.                 {
  66.                     xTabl[i, j] = xMass[k];
  67.                     k++;
  68.                 }
  69.             }
  70.  
  71.             return xTabl;
  72.         }
  73.         static void Main(string[] args)
  74.         {
  75.             try
  76.             {
  77.                 TestExist(originalFile, ref readerOriginalFileStream);
  78.  
  79.                 string[,] originalTabl = TablFile(readerOriginalFileStream, 7);
  80.  
  81.                 readerOriginalFileStream.Close();
  82.  
  83.                 using (var writerOutFileStream = new StreamWriter(outFile))
  84.                 {
  85.                     Console.Write("(Хрень1 - 1)\n(Хрень2 - 2)\n(Хрень3 - 3)\nВведите тип товара: ");
  86.  
  87.                     byte t = 1; /*byte.Parse(Console.ReadLine());*/
  88.                     string s = string.Empty;
  89.  
  90.                     switch (t)
  91.                     {
  92.                         case (byte)goods.хрень1:
  93.                             s = Convert.ToString(goods.хрень1);
  94.                             break;
  95.                         case (byte)goods.хрень2:
  96.                             s = Convert.ToString(goods.хрень2);
  97.                             break;
  98.                         case (byte)goods.хрень3:
  99.                             s = Convert.ToString(goods.хрень3);
  100.                             break;
  101.                     }
  102.  
  103.                     Console.WriteLine("Выбран товар: " + s);
  104.                     string numname = string.Empty;
  105.  
  106.                     for (int i = 0; i < originalTabl.Length / 7; i++)
  107.                     {
  108.                         if (s == originalTabl[i, 0])
  109.                         {
  110.                             numname = originalTabl[i, 0];
  111.                             var price = Convert.ToInt32(originalTabl[i, 3]) * Convert.ToInt32(originalTabl[i, 2]);
  112.  
  113.                             writerOutFileStream.WriteLine(numname + "; " + price);
  114.                             Console.WriteLine("\n" + numname + "; " + price);
  115.                             Console.WriteLine("Файл успешно записан.");
  116.                         }
  117.                     }
  118.                 }
  119.             }
  120.             catch (NullReferenceException) //"вылавливание", отсутствует нужный объект
  121.             {
  122.                 Console.WriteLine("\nНе все файлы готовы к использованию.\nПроверь наличие данных.");
  123.             }
  124.             catch //"вылавливание"
  125.             {
  126.                 Console.WriteLine("Неизвестное исключение."); //случайная ошибка
  127.             }
  128.             finally //очистка данных try
  129.             {
  130.                 Console.ReadLine();
  131.             }
  132.         }
  133.     }
  134. }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 4.3 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы