static void FindMaxOrder() { FileStream fs = new FileStream(@".\ordersumm.txt", FileMode.Create); StreamWriter sw = new StreamWriter(fs, Encoding.UTF8); string[] tmp = File.ReadAllLines(@".\database.txt"); string temp = null; ArrayList OrderList = new ArrayList(); Queue <OrderSum> OrderSearch = new Queue <OrderSum>(); foreach (string a in tmp) { Order NewOrder = new Order(a); OrderList.Add(NewOrder); } double summ = 0; foreach (Order x in OrderList)//выделяем заказы клиента среди всех для определения общей суммы заказов данного клиента { if (x.OrderedDistance != 0) { temp = x.ClientSurname + " " + x.ClientName + " " + x.ClientPatronymic; summ += x.OrderPrice; x.OrderedDistance = 0; x.DiscontSize = 0; foreach (Order y in OrderList) { if (temp == y.ClientSurname + " " + y.ClientName + " " + y.ClientPatronymic) { summ += y.OrderPrice; y.OrderedDistance = 0; //обнуление заказанной перевозки-она не будет теперь учтена вторично y.PriceForKm = 0; y.DiscontSize = 0; } } OrderSum a = new OrderSum(temp, summ); OrderSearch.Enqueue(a); sw.WriteLine(temp + "|" + summ);//запись в файл суммы заказов каждого клиента summ = 0; } } sw.Close(); fs.Close(); OrderSum[] ord = OrderSearch.ToArray(); Array.Sort(ord); int n = ord.Length - 1;//номер максимального элемента Console.WriteLine("Максимальный заказ у {0} он равен {1}", ord[n].ClientName, ord[n].OrderCost); }
public static OrderSum operator +(OrderSum x, double y) { OrderSum a = new OrderSum(x.ClientName, x.OrderCost + y); return(a); }
public int CompareTo(Object obj) { OrderSum x = (OrderSum)obj; return(this.OrderCost.CompareTo(x.OrderCost)); }