Пример #1
0
        private static void Main(string[] args)
        {
            Console.OutputEncoding = Encoding.UTF8;

            //Reservoir res = new Reservoir(1050, 0, 100, 50000);
            ////Reservoir res = new Reservoir();
            //Console.Write("введiть площу водоймища(м.кв.) ");
            //res.Square = int.Parse(Console.ReadLine());
            //Console.Write("введiть кiлькiсть впадаючих рiчок ");
            //res.Number = int.Parse(Console.ReadLine());
            //Console.Write("введiть найбiльшу глибину(м.) ");
            //res.MaxDepth = double.Parse(Console.ReadLine());
            //Console.Write("введiть масу води(кг.) ");
            //res.WeightWater = double.Parse(Console.ReadLine());


            //Console.WriteLine("");
            //Console.WriteLine("середня глибина водоймища = " + res.AverageDepth() + "(м.)");
            //if (res.WaterAnalise())
            //    Console.WriteLine("маса води бiльша нiж 1000(кг.)");
            //else
            //    Console.WriteLine("маса води менша нiж 1000(кг.)");

            //Console.WriteLine(res.NumberRivers());
            var classCreator = chooseClass();
            var obj          = classCreator.reservoir();
            //var tps = Assembly.GetExecutingAssembly().GetTypes().Where(t => t.IsClass && !t.IsAbstract && t.IsSubclassOf(typeof(ReservoirCreator))).ToList();//DefinedTypes.Where(t => t.);
            //Console.WriteLine(obj.GetType().ToString() == "KovalGroup.Lake");
            List <Reservoir> reservoirList = new List <Reservoir>();

            Console.Write("Кількість резервуарів даного типу, яку хочете створити:");
            int reservoirCount = int.Parse(Console.ReadLine());

            if (obj.GetType().ToString() == "Water.Lake")
            {
                for (int i = 0; i < reservoirCount; i++)
                {
                    Lake lake = new Lake();
                    Console.Write("Введіть назву водойми: ");
                    lake.Name = Console.ReadLine();
                    Console.Write("введiть кiлькiсть причалiв ");
                    lake.BerthsQty = int.Parse(Console.ReadLine());
                    Console.Write("введiть рiвень заболоченостi ");
                    lake.BoggingLevel = int.Parse(Console.ReadLine());
                    Console.Write("введiть коефiнiєнт солоностi ");
                    lake.SaltFactor = int.Parse(Console.ReadLine());
                    Console.Write("введiть кiлькiсть водозаборiв ");
                    lake.WaterIntakeQty = int.Parse(Console.ReadLine());
                    reservoirList.Add(lake);
                }
                //(reservoirList as List<Lake>).Sort(Lake.compareLakesByName);
                //reservoirList.Sort(Lake.compareLakesByBerthsQuality);

                for (int j = 0; j < reservoirCount - 1; j++)
                {
                    for (int i = 0; i < reservoirCount - j - 1; i++)
                    {
                        if ((new Lake()).compareLakesByBerthsQuality(reservoirList[i] as Lake, reservoirList[i + 1] as Lake) == 1)
                        {
                            Reservoir temp = reservoirList[i];
                            reservoirList[i]     = reservoirList[i + 1];
                            reservoirList[i + 1] = temp;
                        }
                    }
                }
                for (int j = 0; j < reservoirCount - 1; j++)
                {
                    for (int i = 0; i < reservoirCount - j - 1; i++)
                    {
                        if ((new Lake()).compareLakesByName(reservoirList[i] as Lake, reservoirList[i + 1] as Lake) == 1)
                        {
                            Reservoir temp = reservoirList[i];
                            reservoirList[i]     = reservoirList[i + 1];
                            reservoirList[i + 1] = temp;
                        }
                    }
                }
            }
            else if (obj.GetType().ToString() == "Water.Pond")
            {
                for (int i = 0; i < reservoirCount; i++)
                {
                    Console.Write("Введіть назву водойми: ");
                    obj.Name = Console.ReadLine();
                    Console.Write("введiть кiлькiсть мiсць на пляжi ");
                    (obj as IPond).Colvoplaces = int.Parse(Console.ReadLine());
                    Console.Write("введiть рiвень забрудненостi води ");
                    (obj as IPond).Drinkwater = int.Parse(Console.ReadLine());
                    Console.Write("введiть кiлькiсть стереотипних видань ");
                    (obj as IPond).Stereotype = int.Parse(Console.ReadLine());
                    Console.Write("введiть кiлькiсть рокiв видання ");
                    (obj as IPond).Years = int.Parse(Console.ReadLine());
                }
            }

            Console.ReadLine();
            //Console.Wri
            //List<Lake> lakesList = new List<Lake>();
            //// Lake
            //for (int i = 0; i < 4; i++)
            //{
            //    Console.WriteLine("Клас Lake");
            //    var lake = new Lake();
            //    Console.Write("введiть назву озера ");
            //    lake.Name = Console.ReadLine();
            //    Console.Write("введiть кiлькiсть причалiв ");
            //    //ILake lake1 = lake as ILake;
            //    //if (lake1 != null)
            //    //{
            //        lake.BerthsQty = int.Parse(Console.ReadLine());
            //        lakesList.Add(lake);
            //    //}
            //}
            //lakesList.Sort(Lake.compareLakesByName);
            //lakesList.Sort(Lake.compareLakesByBerthsQuality);
            for (int i = 0; i < reservoirList.Count; i++)
            {
                Console.WriteLine(reservoirList[i]);
            }
            //Console.WriteLine("Клас Lake");
            //var lake = new Lake();
            //Console.Write("введiть кiлькiсть причалiв ");
            //lake.BerthsQty = int.Parse(Console.ReadLine());
            //Console.Write("введiть рiвень заболоченостi ");
            //lake.BoggingLevel = int.Parse(Console.ReadLine());
            //Console.Write("введiть коефiнiєнт солоностi ");
            //lake.SaltFactor = int.Parse(Console.ReadLine());
            //Console.Write("введiть кiлькiсть водозаборiв ");
            //lake.WaterIntakeQty = int.Parse(Console.ReadLine());

            //             Console.WriteLine();
            //         Console.WriteLine($"Кiлькiсть рейсiв {lake.VoyagesPerMonth()}");
            //         Console.WriteLine($"Якiсть води {lake.WaterQuality()}");
            //         Console.WriteLine($"Середня глибина у поточному мiсяцi {lake.VoyagesPerMonth()}");

            ////Pond
            //var pond = new Pond();
            //Console.Write("введiть кiлькiсть мiсць на пляжi ");
            //pond.Colvoplaces = int.Parse(Console.ReadLine());
            //Console.Write("введiть рiвень забрудненостi води ");
            //pond.Drinkwater = int.Parse(Console.ReadLine());
            //Console.Write("введiть кiлькiсть стереотипних видань ");
            //pond.Stereotype = int.Parse(Console.ReadLine());
            //Console.Write("введiть кiлькiсть рокiв видання ");
            //pond.Years = int.Parse(Console.ReadLine());


            //Console.WriteLine();
            //   Console.WriteLine($"Середня площа на пляж (м.кв.) {pond.squar(res.Square)}");
            //Console.WriteLine($"Маса води на одну рибу (кг.) {pond.fishweight(res.WeightWater)}");

            Console.ReadLine();
        }
Пример #2
0
 public int compareLakesByName(Lake l1, Lake l2)
 {
     return(String.Compare(l1.Name, l2.Name));//l1.Name.CompareTo(l2.Name);
 }
Пример #3
0
 public int compareLakesBySaltFactor(Lake l1, Lake l2)
 {
     return(l1.SaltFactor.CompareTo(l2.SaltFactor));
 }
Пример #4
0
 public int compareLakesByBoggingLevel(Lake l1, Lake l2)
 {
     return(l1.BoggingLevel.CompareTo(l2.BoggingLevel));
 }
Пример #5
0
 public int compareLakesByBerthsQuality(Lake l1, Lake l2)
 {
     return(l1.BerthsQty.CompareTo(l2.BerthsQty));
 }
Пример #6
0
        /// <summary>
        /// Сравнение качества воды в разных экземплярах класса Lake
        /// </summary>
        /// <param name="l1">Озеро 1</param>
        /// <param name="l2">Озеро 2</param>
        /// <returns>-1, если качество воды во втором озере лучше; 0, если качество воды одинаково; 1, если в первом озере качество воды лучше</returns>

        // how to use compareLakesBy... functions:
        // 1. create list of class Lake:
        //      List<Lake> lakesList;
        // ***some info about how does List<T> work: https://docs.microsoft.com/en-us/dotnet/api/system.collections.generic.list-1?view=netframework-4.8***
        // 2. when you have to sort it:
        //      lakesList.Sort(Lake.compareLakesBy...*variants are under*...)


        public int compareLakesByWaterIntakeQuality(Lake l1, Lake l2)
        {
            return(l1.WaterIntakeQty.CompareTo(l2.WaterIntakeQty));
        }