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(); }
public int compareLakesByName(Lake l1, Lake l2) { return(String.Compare(l1.Name, l2.Name));//l1.Name.CompareTo(l2.Name); }
public int compareLakesBySaltFactor(Lake l1, Lake l2) { return(l1.SaltFactor.CompareTo(l2.SaltFactor)); }
public int compareLakesByBoggingLevel(Lake l1, Lake l2) { return(l1.BoggingLevel.CompareTo(l2.BoggingLevel)); }
public int compareLakesByBerthsQuality(Lake l1, Lake l2) { return(l1.BerthsQty.CompareTo(l2.BerthsQty)); }
/// <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)); }