using System; using System; using System.Diagnostics; using System.IO; class Program{ public string[] product; public double brakPN10 = 0; public double brakPN16 = 0; public double brakPN20 = 0; public double brakPN25 = 0; public double PN10 = 0; public double PN16 = 0; public double PN20 = 0; public double PN25 = 0; public static void Main() { TextWriterTraceListener[] listeners = new TextWriterTraceListener[] { new TextWriterTraceListener($"{Directory.GetCurrentDirectory()}/debug.txt") }; Trace.Listeners.AddRange(listeners); Console.ReadKey(); Program obj = new Program(); obj.Readdatas(); obj.CheckProduct(); } public void Readdatas()//метод для ситывания из файла { string[] lines = File.ReadAllLines(@"\\main\RDP\31П\КарзиновВА\Desktop\data.txt"); Trace.WriteLine("данные считанны"); product = new string[lines.Length]; foreach (string s in lines) { } for (int i = 0; i < lines.Length; i++) { product[i] = lines[i]; } } public void CheckProduct()// метод для вызова других методов через массив для проверки брака, нахождения процента брака и веса каждого изделия { Program obj = new Program(); string line= ""; string[] checking = product[0].Split(';'); for (int i = 0; i < product.Length; i++) { checking = product[i].Split(';'); obj.CheckBrak(checking);//проверка на брак } Trace.WriteLine("Осуществлена проверка на брак"); foreach (string s in checking) { line += s + " "; } obj.ProcentBrak();// вывод процента Trace.WriteLine("Осуществлена вывод процента"); for (int i = 0; i < product.Length; i++) { checking = product[i].Split(';'); Console.WriteLine( line + " вес равен" + obj.weights(checking));// вывод dtcf } Trace.WriteLine("Осуществлена вывод веса"); Trace.Flush(); } public void CheckBrak(string[] myArray)//првоерка на брак { double lengts = 0; double vnDiametr = 0; double tolSten = 0; double min = 0; double max = 0; string line = ""; //значения для проверки выхода за длину int minLengh = 3960; int maxLengh = 4040; //значения для проверки выхода за внешний диаметр switch (myArray[0]) { case "PN10": PN10++; foreach (string s in myArray) { line += s + " "; } lengts = Double.Parse(myArray[1]); vnDiametr = Double.Parse(myArray[2]); tolSten = Double.Parse(myArray[3]); min = (vnDiametr / 100) * 10; max = (vnDiametr / 100) * 11; //проверка внешнего даметра // проверка толщины if (tolSten >= min & tolSten <= max) { // проверка длины if (lengts >= minLengh & lengts <= maxLengh) { Console.WriteLine(line + " -> соответствует"); } else { brakPN10++; Console.WriteLine($" {line} -> несоответствует длина {lengts} не входит в диапазон толщина {tolSten} и внешний диаметр{vnDiametr} не входит в диапазон"); } } else { brakPN10++; if (lengts >= minLengh & lengts <= maxLengh) { Console.WriteLine($" {line} -> несоответствует толщина {tolSten} и внешний диаметр {vnDiametr} не входит в диапазон"); } else { Console.WriteLine($" {line} -> несоответствует длина {lengts} не входит в диапазон толщина {tolSten} и внешний диаметр{vnDiametr} не входит в диапазон"); } } break; case "PN16": PN16++; foreach (string s in myArray) { line += s + " "; } lengts = Double.Parse(myArray[1]); vnDiametr = Double.Parse(myArray[2]); tolSten = Double.Parse(myArray[3]); min = (vnDiametr / 100) * 13.5; max = (vnDiametr / 100) * 14; if (tolSten >= min & tolSten <= max) { if (lengts >= minLengh & lengts <= maxLengh) { Console.WriteLine(line + " -> соответствует"); } else { brakPN16++; Console.WriteLine($" {line} -> несоответствует длина {lengts} не входит в диапазон толщина {tolSten} и внешний диаметр{vnDiametr} не входит в диапазон"); } } else { brakPN16++; if (lengts >= minLengh & lengts <= maxLengh) { Console.WriteLine($" {line} -> несоответствует толщина {tolSten} и внешний диаметр {vnDiametr} не входит в диапазон"); } else { Console.WriteLine($" {line} -> несоответствует длина {lengts} не входит в диапазон толщина {tolSten} и внешний диаметр{vnDiametr} не входит в диапазон"); } } break; case "PN20": PN20++; foreach (string s in myArray) { line += s + " "; } lengts = Double.Parse(myArray[1]); vnDiametr = Double.Parse(myArray[2]); tolSten = Double.Parse(myArray[3]); min = (vnDiametr / 100) * 16.5; max = (vnDiametr / 100) * 17; if (tolSten >= min & tolSten <= max) { if (lengts >= minLengh & lengts <= maxLengh) { Console.WriteLine(line + " -> соответствует"); } else { brakPN20++; Console.WriteLine($" {line} -> несоответствует длина {lengts} не входит в диапазон толщина {tolSten} и внешний диаметр{vnDiametr} не входит в диапазон"); } } else { brakPN20++; if (lengts >= minLengh & lengts <= maxLengh) { Console.WriteLine($" {line} -> несоответствует толщина {tolSten} и внешний диаметр {vnDiametr} не входит в диапазон"); } else { Console.WriteLine($" {line} -> несоответствует длина {lengts} не входит в диапазон толщина {tolSten} и внешний диаметр{vnDiametr} не входит в диапазон"); } } break; case "PN25": PN25++; foreach (string s in myArray) { line += s + " "; } lengts = Double.Parse(myArray[1]); vnDiametr = Double.Parse(myArray[2]); tolSten = Double.Parse(myArray[3]); min = (vnDiametr / 100) * 16.5; max = (vnDiametr / 100) * 17; if (tolSten >= min & tolSten <= max) { if (lengts >= minLengh & lengts <= maxLengh) { Console.WriteLine(line + " -> соответствует"); } else { brakPN25++; Console.WriteLine($" {line} -> несоответствует длина {lengts} не входит в диапазон толщина {tolSten} и внешний диаметр{vnDiametr} не входит в диапазон"); } } else { brakPN25++; if (lengts >= minLengh & lengts <= maxLengh) { Console.WriteLine($" {line} -> несоответствует толщина {tolSten} и внешний диаметр {vnDiametr} не входит в диапазон"); } else { Console.WriteLine($" {line} -> несоответствует длина {lengts} не входит в диапазон толщина {tolSten} и внешний диаметр{vnDiametr} не входит в диапазон"); } } break; } } public void ProcentBrak()//подсчет процентов { double procPN10 = 0; double procPN16 = 0; double procPN20 = 0; double procPN25 = 0; //формула для прцоентов procPN10 = ((double)((brakPN10 / PN10) * 100)); Console.WriteLine("Процент брака PN10 составляет" + procPN10); procPN16 = ((double)((brakPN16 / PN16) * 100)); Console.WriteLine("Процент брака PN16 составляет" + procPN16); procPN20 = ((double)((brakPN20 / PN20) * 100)); Console.WriteLine("Процент брака PN20 составляет" + procPN20); procPN25 = ((double)((brakPN25 / PN25) * 100)); Console.WriteLine("Процент брака PN25 составляет" + procPN25); } public double weights(string[] myArray)//нахождение веса { double mass = 0; double plotNoA = 0.91 ; double plotA = 1.24 ; double S = Double.Parse(myArray[3]); double D = Double.Parse(myArray[2]); double L = Double.Parse(myArray[1]); if (myArray.Length == 5) { mass = Math.PI * plotA * S * (D - S) * L; } else mass = Math.PI * plotNoA * S * (D - S) * L; return mass; } }