Browse Source

Диаграммы
Основной код программы

aleksynders 2 years ago
parent
commit
0d24445d6f

BIN
Diagram/DiagramComponentov.PNG


BIN
Diagram/DiagramPotokovDannyh.PNG


BIN
Diagram/DiagramRazvertivanya.PNG


+ 33 - 13
ExamGromov/Program.cs

@@ -4,22 +4,42 @@ namespace ExamGromov
 {
     internal class Program
     {
-        // Структура для данных о трубе(ах)
-        public struct Truby
-        {
-            public string name; // Название
-            public string dlina; // Длина
-            public double vneshDiametr; // Внешний диаметр
-            public double tolshina; // Толщина
-            public bool proverkaBrak; // Булева переменная для определения на соответствие (для проверки на брак)
-            public bool proverkaArm; // Булева переменная для проверки типа трубы (армированная или нет)
-        }
-        Truby[] truba = new Truby[0];
+
         static void Main(string[] args)
         {
+            ReadCSV.getDannye("data.txt");
             DebugAndTrace.Otladka();
-            Console.WriteLine("Добро пожаловать в программу!");
-            
+            while (true)
+            {
+                Console.WriteLine("\n1. Исходные данные");
+                Console.WriteLine("2. Проверка на брак");
+                Console.WriteLine("3. Вес изделий");
+                Console.WriteLine("4. Чистка экрана");
+                Console.WriteLine("5. Закрытие программы");
+                Console.Write("Выбертие действие -> ");
+
+                switch (Convert.ToInt32(Console.ReadLine()))
+                {
+                    case 1:
+                        ReadCSV.showIshodDannye();
+                        break;
+                    case 2:
+                        ReadCSV.getFalse();
+                        break;
+                    case 3:
+                        ReadCSV.getVes();
+                        break;
+                    case 4:
+                        Console.Clear();
+                        break;
+                    case 5:
+                        Environment.Exit(0);
+                        break;
+                    default:
+                        Console.WriteLine("Такого действия не существует!");
+                        break;
+                }
+            }
         }
         
     }

+ 166 - 0
ExamGromov/ReadCSV.cs

@@ -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();
+            }
+
+        }
+    }
+}