예제 #1
0
 static void Main(string[] args)
 {
     do
     {
         Console.Clear();
         int n;
         Console.Write("Enter n = ");
         int.TryParse(Console.ReadLine(), out n);
         Employee[] empls = new Employee[n];
         string     name  = RandomString(rnd.Next(10000, 15000));
         for (int i = 0; i < empls.Length; i++)
         {
             if (rnd.Next(0, 2) == 1)
             {
                 empls[i] = new SalesEmployee(RandomString(rnd.Next(3, 7)), rnd.Next(10, 1000), rnd.Next(10, 1000));
             }
             else
             {
                 empls[i] = new PartTimeEmployee(RandomString(rnd.Next(3, 7)), rnd.Next(10, 1000), rnd.Next(10, 40));
             }
         }
         for (int i = 0; i < empls.Length; i++)
         {
             Console.WriteLine(empls[i]);
         }
         Array.Sort(empls, (e1, e2) => e1.CalculatePay().CompareTo(e2.CalculatePay()));
         Console.WriteLine("***");
         for (int i = 0; i < empls.Length; i++)
         {
             Console.WriteLine(empls[i]);
         }
         Console.WriteLine("***");
         foreach (Employee employee in empls)
         {
             if (employee is SalesEmployee)
             {
                 Console.WriteLine(employee.CalculatePay());
             }
         }
         Console.WriteLine("***");
         foreach (Employee employee in empls)
         {
             if (employee is PartTimeEmployee)
             {
                 Console.WriteLine(employee.CalculatePay());
             }
         }
     } while (Console.ReadKey().Key != ConsoleKey.Escape);
 }
        static void Main(string[] args)
        {
            List <string> names = new List <string>()
            {
                "Alexey", "Ivan", "Dmitry", "Vladimir", "Oleg", "Andrey", "Maxim", "Victor", "Alexandr", "Vyacheslav"
            };
            Random rand = new Random();

            Employee[] employees = new Employee[10];
            decimal[]  arr       = new decimal[10];
            for (int i = 0; i < employees.Length; i++)
            {
                if (rand.Next(0, 2) == 0)
                {
                    employees[i] = new SalesEmployee(names[rand.Next(0, names.Count)], (decimal)(rand.Next(10, 30) + rand.NextDouble()), (decimal)(rand.Next(10, 30) + rand.NextDouble()));
                    names.Remove(employees[i].name);
                }
                else
                {
                    employees[i] = new PartTimeEmployee(names[rand.Next(0, names.Count)], (decimal)(rand.Next(10, 30) + rand.NextDouble()), rand.Next(10, 30));
                    names.Remove(employees[i].name);
                }
                arr[i] = employees[i].CalculatePay();
            }
            Array.Sort(arr, employees);
            Console.WriteLine("SaleEmployee:");
            for (int i = employees.Length - 1; i >= 0; i--)
            {
                if (employees[i] is SalesEmployee)
                {
                    Console.WriteLine(employees[i].name + " " + employees[i].CalculatePay().ToString("f3"));
                }
            }
            Console.WriteLine("PartTimeEmployee:");
            for (int i = employees.Length - 1; i >= 0; i--)
            {
                if (employees[i] is PartTimeEmployee)
                {
                    Console.WriteLine(employees[i].name + " " + employees[i].CalculatePay().ToString("f3"));
                }
            }
        }