|
@@ -0,0 +1,166 @@
|
|
|
|
+namespace ExamGromov
|
|
|
|
+{
|
|
|
|
+ internal class ReadCSV
|
|
|
|
+ {
|
|
|
|
+ private static string[] array;
|
|
|
|
+ /// <summary>
|
|
|
|
+ /// Считывания данных из файла (или же попытка)
|
|
|
|
+ /// </summary>
|
|
|
|
+ public static void getDannye(string path)
|
|
|
|
+ {
|
|
|
|
+ try
|
|
|
|
+ {
|
|
|
|
+ array = File.ReadAllLines(path);
|
|
|
|
+ }
|
|
|
|
+ catch
|
|
|
|
+ {
|
|
|
|
+ Console.Write("\nИсходный файл \"data.txt\" не найден!");
|
|
|
|
+ Environment.Exit(0);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ /// <summary>
|
|
|
|
+ /// Вывод исходных данных, которые были считаны из файла data.txt
|
|
|
|
+ /// </summary>
|
|
|
|
+ public static void showIshodDannye()
|
|
|
|
+ {
|
|
|
|
+ for (int i = 0; i < array.Length; i++)
|
|
|
|
+ {
|
|
|
|
+ string[] stroka = array[i].Split(";"); ;
|
|
|
|
+ Console.Write("Тип: " + stroka[0]);
|
|
|
|
+ Console.Write(" Длина трубы: " + stroka[1]);
|
|
|
|
+ Console.Write(" Диаметр: " + stroka[2]);
|
|
|
|
+ Console.Write(" Толщина: " + stroka[3]);
|
|
|
|
+
|
|
|
|
+ if (stroka[0] == "PN25")
|
|
|
|
+ {
|
|
|
|
+ Console.Write(" A");
|
|
|
|
+ }
|
|
|
|
+ else
|
|
|
|
+ {
|
|
|
|
+ Console.Write(" " + stroka[4]);
|
|
|
|
+ }
|
|
|
|
+ Console.WriteLine(); // Для вывода данных по строчно
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ /// <summary>
|
|
|
|
+ /// Метод для подсчета веса для каждой трубы
|
|
|
|
+ /// + подсчёт общего веса
|
|
|
|
+ /// </summary>
|
|
|
|
+ public static double getVes()
|
|
|
|
+ {
|
|
|
|
+ double r, S, obiem, ves, summa = 0;
|
|
|
|
+ for (int i = 0; i < array.Length; i++)
|
|
|
|
+ {
|
|
|
|
+ string[] stroka = array[i].Split(";"); ;
|
|
|
|
+ Console.Write("Тип: " + stroka[0]);
|
|
|
|
+ Console.Write(" Длина трубы: " + stroka[1]);
|
|
|
|
+ Console.Write(" Диаметр: " + stroka[2]);
|
|
|
|
+ Console.Write(" Толщина: " + stroka[3]);
|
|
|
|
+ if (stroka[0] == "PN25")
|
|
|
|
+ {
|
|
|
|
+ Console.Write(" A");
|
|
|
|
+ }
|
|
|
|
+ else
|
|
|
|
+ {
|
|
|
|
+ Console.Write(" " + stroka[4]);
|
|
|
|
+ }
|
|
|
|
+ r = (Convert.ToDouble(stroka[2]) - Convert.ToDouble(stroka[3])) / 2;
|
|
|
|
+ S = Math.PI * r * r; // Формула для подсчета
|
|
|
|
+ obiem = S * Convert.ToDouble(stroka[1]) * 0.001;
|
|
|
|
+ if (stroka[4] == " A" && stroka[0] != "PN25")
|
|
|
|
+ {
|
|
|
|
+ ves = obiem * 1.24;
|
|
|
|
+ }
|
|
|
|
+ else
|
|
|
|
+ {
|
|
|
|
+ ves = obiem * 0.91;
|
|
|
|
+ }
|
|
|
|
+ Console.Write("\tВес: {0} кг", Math.Round(ves / 1000, 2));
|
|
|
|
+ summa += ves;
|
|
|
|
+ Console.WriteLine(); // Для вывода данных по строчно
|
|
|
|
+ }
|
|
|
|
+ Console.WriteLine("\nВес всей партии = {0} кг", Math.Round(summa / 1000, 2));
|
|
|
|
+ return summa;
|
|
|
|
+ }
|
|
|
|
+ /// <summary>
|
|
|
|
+ /// Вывод данных с пометкой "Соответствует" или "Не соответствуе"
|
|
|
|
+ /// Проверяет, по данным в задании параметрам, на брак
|
|
|
|
+ /// </summary>
|
|
|
|
+ public static void getFalse()
|
|
|
|
+ {
|
|
|
|
+ for (int i = 0; i < array.Length; i++)
|
|
|
|
+ {
|
|
|
|
+ const string NeSootvet = "\tНе соответствует";
|
|
|
|
+ string[] stroka = array[i].Split(";"); ;
|
|
|
|
+ Console.Write("Тип: " + stroka[0]);
|
|
|
|
+ Console.Write(" Длина трубы: " + stroka[1]);
|
|
|
|
+ Console.Write(" Диаметр: " + stroka[2]);
|
|
|
|
+ Console.Write(" Толщина: " + stroka[3]);
|
|
|
|
+ if (stroka[0] == "PN25")
|
|
|
|
+ {
|
|
|
|
+ Console.Write(" A");
|
|
|
|
+ }
|
|
|
|
+ else
|
|
|
|
+ {
|
|
|
|
+ Console.Write(" " + stroka[4]);
|
|
|
|
+ }
|
|
|
|
+ if (Math.Round(Convert.ToDouble(stroka[1])) < 3960 || Math.Round(Convert.ToDouble(stroka[1])) > 4040)
|
|
|
|
+ {
|
|
|
|
+ Console.ForegroundColor = ConsoleColor.Red;
|
|
|
|
+ Console.Write(NeSootvet);
|
|
|
|
+ Console.ResetColor();
|
|
|
|
+ Console.WriteLine();
|
|
|
|
+ continue;
|
|
|
|
+ }
|
|
|
|
+ if (stroka[0] == "PN10")
|
|
|
|
+ {
|
|
|
|
+ if (Math.Round(Convert.ToDouble(stroka[2])) * 0.1 > Convert.ToDouble(stroka[3]) || Math.Round(Convert.ToDouble(stroka[2])) * 0.11 < Convert.ToDouble(stroka[3]))
|
|
|
|
+ {
|
|
|
|
+ Console.ForegroundColor = ConsoleColor.Red;
|
|
|
|
+ Console.Write(NeSootvet);
|
|
|
|
+ Console.ResetColor();
|
|
|
|
+ Console.WriteLine();
|
|
|
|
+ continue;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ if (stroka[0] == "PN16")
|
|
|
|
+ {
|
|
|
|
+ if (Math.Round(Convert.ToDouble(stroka[2])) * 0.135 > Convert.ToDouble(stroka[3]) || Math.Round(Convert.ToDouble(stroka[2])) * 0.14 < Convert.ToDouble(stroka[3]))
|
|
|
|
+ {
|
|
|
|
+ Console.ForegroundColor = ConsoleColor.Red;
|
|
|
|
+ Console.Write(NeSootvet);
|
|
|
|
+ Console.ResetColor();
|
|
|
|
+ Console.WriteLine();
|
|
|
|
+ continue;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ if (stroka[0] == "PN20")
|
|
|
|
+ {
|
|
|
|
+ if (Math.Round(Convert.ToDouble(stroka[2])) * 0.165 > Convert.ToDouble(stroka[3]) || Math.Round(Convert.ToDouble(stroka[2])) * 0.17 < Convert.ToDouble(stroka[3]))
|
|
|
|
+ {
|
|
|
|
+ Console.ForegroundColor = ConsoleColor.Red;
|
|
|
|
+ Console.Write(NeSootvet);
|
|
|
|
+ Console.ResetColor();
|
|
|
|
+ Console.WriteLine();
|
|
|
|
+ continue;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ if (stroka[0] == "PN25")
|
|
|
|
+ {
|
|
|
|
+ if (Math.Round(Convert.ToDouble(stroka[2])) * 0.165 > Convert.ToDouble(stroka[3]) || Math.Round(Convert.ToDouble(stroka[2])) * 0.17 < Convert.ToDouble(stroka[3]))
|
|
|
|
+ {
|
|
|
|
+ Console.ForegroundColor = ConsoleColor.Red;
|
|
|
|
+ Console.Write(NeSootvet);
|
|
|
|
+ Console.ResetColor();
|
|
|
|
+ Console.WriteLine();
|
|
|
|
+ continue;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ Console.ForegroundColor = ConsoleColor.Green;
|
|
|
|
+ Console.WriteLine("\tСоответствует");
|
|
|
|
+ Console.ResetColor();
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+}
|