예제 #1
0
        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);
        }
예제 #2
0
        public static OrderSum operator +(OrderSum x, double y)
        {
            OrderSum a = new OrderSum(x.ClientName, x.OrderCost + y);

            return(a);
        }
예제 #3
0
        public int CompareTo(Object obj)
        {
            OrderSum x = (OrderSum)obj;

            return(this.OrderCost.CompareTo(x.OrderCost));
        }