示例#1
0
    public static void Main( string[] args )
    {
        // create five-element Employee array
          Employee[] employees = new Employee[ 5 ];

          // initialize array with Employees
          employees[ 0 ] = new SalariedEmployee( "John", "Smith",
         "111-11-1111", 800M );
          employees[ 1 ] = new HourlyEmployee( "Karen", "Price",
         "222-22-2222", 16.75M, 40M );
          employees[ 2 ] = new CommissionEmployee( "Sue", "Jones",
         "333-33-3333", 10000M, .06M );
          employees[ 3 ] = new BasePlusCommissionEmployee( "Bob", "Lewis",
         "444-44-4444", 5000M, .04M, 300M );
          employees[4] = new PieceWorker("Tony", "Rosella", "555-55-5555", 15.50M, 20M);

           Console.WriteLine( "Employees processed polymorphically:\n" );

          // generically process each element in array employees
          foreach ( var currentEmployee in employees )
          {
         Console.WriteLine( currentEmployee ); // invokes ToString
         Console.WriteLine( "earned {0:C}\n",
            currentEmployee.Earnings() );
          } // end foreach
    }
示例#2
0
    public static void Main(string[] args)
    {
        // create five-element Employee array
        Employee[] employees = new Employee[5];

        // initialize array with Employees
        employees[0] = new SalariedEmployee("John", "Smith",
                                            "111-11-1111", 800M);
        employees[1] = new HourlyEmployee("Karen", "Price",
                                          "222-22-2222", 16.75M, 40M);
        employees[2] = new CommissionEmployee("Sue", "Jones",
                                              "333-33-3333", 10000M, .06M);
        employees[3] = new BasePlusCommissionEmployee("Bob", "Lewis",
                                                      "444-44-4444", 5000M, .04M, 300M);
        employees[4] = new PieceWorker("Tony", "Rosella", "555-55-5555", 15.50M, 20M);

        Console.WriteLine("Employees processed polymorphically:\n");

        // generically process each element in array employees
        foreach (var currentEmployee in employees)
        {
            Console.WriteLine(currentEmployee); // invokes ToString
            Console.WriteLine("earned {0:C}\n",
                              currentEmployee.Earnings());
        } // end foreach
    }     // end Main
示例#3
0
        static void Main(string[] args)
        {
            Boss            boss            = new Boss("John", "Smith", 800);
            CommisionWorker commisionWorker = new CommisionWorker("Sue", "Jones", 400, 3, 150);
            PieceWorker     pieceWorker     = new PieceWorker("Bob", "Lewis", (decimal)2.5, 200);
            HourlyWorker    hourlyWorker    = new HourlyWorker("Karen", "Priece", (decimal)13.75, 50);

            Employee[] workers = { boss, commisionWorker, pieceWorker, hourlyWorker };

            foreach (Employee worker in workers)
            {
                Console.WriteLine($"{worker}.\nEarned: {worker.Earnings().ToString("C")}");
            }
        }
示例#4
0
    public static void Main( string [] args)
    {
        bool loop = true;
            while(loop == true)
            {
                Console.WriteLine("Welcome to Employee Builder: ");
                Console.Read();

                //instantiate Employee Array
                Employee[] Employees = new Employee[5];

                //fill array with different 'Employee' Derived Types all functioning under their own version of the 'Employee' Methods.
                Employees[0] = new BasePlusCommissionEmployee("Jerry", "Redmond", "000-00-0000", 500.00M, .8M, 700M);
                Employees[1] = new CommissionEmployee("Carlos", "Reese", "111-11-1111", 999.00M, .45M);
                Employees[2] = new HourlyEmployee("Mike", "Luongo", "222-22-2222", 15.00M, 45M);
                Employees[3] = new PieceWorker("Marcus", "Shepherd", "333-33-3333", 3.50M, 100M);
                Employees[4] = new SalariedEmployee("Larry", "Peters", "444-44-4444", 75000M);
                //Employees[5] = new PieceWorker("Hakeem", "Rogers", "555-55-5555", 5.0M,1);

                Console.WriteLine("Employees Earnings & System Signature through ToString: \n\n{0}\t\t{1}", "Earnings:", "String:");

                foreach(Employee employee in Employees)
                {
                    Console.WriteLine( employee.GetPaymentAmount() );
                }//end foreach

                for (int i = 0; i <= 4; i++)
                {

                    if (Employees[i].GetType is BasePlusCommissionEmployee)
                    {
                        BasePlusCommissionEmployee employee =
                            (BasePlusCommissionEmployee)Employees[i];

                            employee.BaseSalary =  employee.BaseSalary * 1.1M;

                    }//end if

                    Console.WriteLine("\n" + Employees[i].GetPaymentAmount() /* + "\t\t" + Employees[i].Earnings() + Employees[i].*/);
                }//end for statement printing GetPaymentAmount

                Console.ReadLine();

            }//End while
    }
    static void Main()
    {
        // create derived-class objects
        var salariedEmployee = new SalariedEmployee("John", "Smith",
                                                    "111-11-1111", 800.00M);
        var hourlyEmployee = new HourlyEmployee("Karen", "Price",
                                                "222-22-2222", 16.75M, 40.0M);
        var commissionEmployee = new CommissionEmployee("Sue", "Jones",
                                                        "333-33-3333", 10000.00M, .06M);
        var basePlusCommissionEmployee =
            new BasePlusCommissionEmployee("Bob", "Lewis",
                                           "444-44-4444", 5000.00M, .04M, 300.00M);
        var pieceWorker = new PieceWorker("MainuL", "Haque", "123-11-1234", 10.05M, 525);

        Console.WriteLine("Employees processed individually:\n");

        Console.WriteLine($"{salariedEmployee}\nearned: " +
                          $"{salariedEmployee.Earnings():C}\n");
        Console.WriteLine(
            $"{hourlyEmployee}\nearned: {hourlyEmployee.Earnings():C}\n");
        Console.WriteLine($"{commissionEmployee}\nearned: " +
                          $"{commissionEmployee.Earnings():C}\n");
        Console.WriteLine($"{basePlusCommissionEmployee}\nearned: " +
                          $"{basePlusCommissionEmployee.Earnings():C}\n");
        Console.WriteLine($"{pieceWorker}\nearned: " +
                          $"{pieceWorker.Earnings():C}\n");

        // create List<Employee> and initialize with employee objects
        var employees = new List <Employee>()
        {
            salariedEmployee,
            hourlyEmployee, commissionEmployee, basePlusCommissionEmployee, pieceWorker
        };

        Console.WriteLine("Employees processed polymorphically:\n");

        // generically process each element in employees
        foreach (var currentEmployee in employees)
        {
            Console.WriteLine(currentEmployee); // invokes ToString

            // determine whether element is a BasePlusCommissionEmployee
            if (currentEmployee is BasePlusCommissionEmployee)
            {
                // downcast Employee reference to
                // BasePlusCommissionEmployee reference
                var employee = (BasePlusCommissionEmployee)currentEmployee;

                employee.BaseSalary *= 1.10M;
                Console.WriteLine("new base salary with 10% increase is: " +
                                  $"{employee.BaseSalary:C}");
            }

            Console.WriteLine($"earned: {currentEmployee.Earnings():C}\n");
        }

        // get type name of each object in employees
        for (int j = 0; j < employees.Count; j++)
        {
            Console.WriteLine(
                $"Employee {j} is a {employees[j].GetType()}");
        }
    }
示例#6
0
    static void Main()
    {
        var date1                      = new Date(1, 1, 1989);
        var birthday                   = new Date(2, 9, 1989);
        var salariedEmployee           = new SalariedEmployee("John", "Smith", "111-11-1111", 800.00m, birthday);
        var hourlyEmployee             = new HourlyEmployee("Karen", "Price", "222-22-2222", 16.75m, 40.0m, birthday);
        var commissionEmployee         = new CommissionEmployee("Sue", "Jones", "333-33-3333", 10000.00m, .06m, birthday);
        var basePlusCommissionEmployee = new BasePlusCommissionEmployee("Bob", "Lewis", "444-44-4444", 5000.00m, .04m, 300.00m, birthday);
        var pieceWorker2               = new PieceWorker("Brian", "Briansen", "555-55-5555", .40m, 1000, birthday);

        birthday = new Date(4, 9, 1989);
        var pieceWorker = new PieceWorker("Brian", "Briansen", "555-55-5555", .40m, 1000, birthday);

        Console.WriteLine("Employees processed individually:\n");

        Console.WriteLine($"{salariedEmployee}\nearned: " +
                          $"{salariedEmployee.Earnings():C}\n");
        Console.WriteLine($"{hourlyEmployee}\nearned: " +
                          $"{hourlyEmployee.Earnings():C}\n");
        Console.WriteLine($"{commissionEmployee}\nearned: " +
                          $"{commissionEmployee.Earnings():C}\n");
        Console.WriteLine($"{basePlusCommissionEmployee}\nearned: " +
                          $"{basePlusCommissionEmployee.Earnings():C}\n");
        Console.WriteLine($"{pieceWorker}\nearned: " +
                          $"{pieceWorker.Earnings():C}");

        var employees = new List <Employee>()
        {
            salariedEmployee, hourlyEmployee, commissionEmployee, basePlusCommissionEmployee, pieceWorker2, pieceWorker
        };

        Console.WriteLine("\nEmployees processed polymorphically: \n");
        for (int month = 1; month < 12; month++)
        {
            foreach (var currentEmployee in employees)
            {
                Console.WriteLine(currentEmployee);
                if (currentEmployee is BasePlusCommissionEmployee)
                {
                    var employee = (BasePlusCommissionEmployee)currentEmployee;

                    employee.BaseSalary *= 1.10m;
                    Console.WriteLine("new base salary with 10% increase is: " +
                                      $"{employee.BaseSalary:C}");
                }
                if (month == currentEmployee.Birthday.Month)
                {
                    Console.WriteLine("Birthday Bonus: 100.00");
                    Console.WriteLine($"earned {currentEmployee.Earnings() + 100:C}\n");
                }
                else
                {
                    Console.WriteLine($"earned {currentEmployee.Earnings():C}\n");
                }
            }
        }


        for (int j = 0; j < employees.Count; j++)
        {
            Console.WriteLine($"Employee {j} is a {employees[j].GetType()}");
        }

        Console.ReadLine();
    }