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 }
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
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")}"); } }
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()}"); } }
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(); }