Esempio n. 1
0
        static void Main(string[] args)
        {
            EmployeeList list = new EmployeeList();
            Employee fte1, fte2, fte3, pte1, pte2;

            fte1 = new FulltimeEmployee("张无忌", 3200, 45);
            fte2 = new FulltimeEmployee("杨过", 2000, 40);
            fte3 = new FulltimeEmployee("段誉", 2400, 38);
            pte1 = new ParttimeEmployee("洪七公", 80, 20);
            pte2 = new ParttimeEmployee("郭靖", 60, 18);

            list.addEmployee(fte1);
            list.addEmployee(fte2);
            list.addEmployee(fte3);
            list.addEmployee(pte1);
            list.addEmployee(pte2);

            Console.WriteLine("财务部 访问数据!");

            Department fadep = new FADepartment();
            list.accept(fadep);

            Console.WriteLine();
            Console.WriteLine("人力资源部 访问数据!");

            Department hrdep = new HRDepartment();
            list.accept(hrdep);

            Console.ReadLine();
        }
Esempio n. 2
0
        /// <summary>
        /// 实现人力资源部对全职员工的访问
        /// </summary>
        /// <param name="employee"></param>
        public override void Visit(FulltimeEmployee employee)
        {
            int workTime = employee.WorkTime;
            Console.WriteLine("正式员工{0}实际工作时间为:{1}小时。",
                employee.Name,
                employee.WorkTime);

            if(workTime > 40)
            {
                Console.WriteLine("正式员工{0}加班时间为{1}小时。",
                    employee.Name,
                    workTime - 40);
            }
            else if(workTime < 40)
            {
                Console.WriteLine("正式员工{0}请假时间为:{1}小时。",
                    employee.Name,
                    40 - workTime);
            }
        }
Esempio n. 3
0
 /// <summary>
 /// 实现财务部对全职员工的访问
 /// </summary>
 /// <param name="employee"></param>
 public override void Visit(FulltimeEmployee employee)
 {
     int workTime = employee.WorkTime;
     Decimal weekWage = employee.WeeklyWage;
     if(workTime > 40)
     {
         weekWage = weekWage + (workTime - 40) * 100;
     }
     else if(workTime < 40)
     {
         weekWage = weekWage - (40 - workTime) * 80;
         if(weekWage < 0)
         {
             weekWage = 0;
         }
     }
     Console.WriteLine("正式员工{0}实际工资为:{1}元。",
         employee.Name,
         weekWage);
 }
Esempio n. 4
0
 //声明一组重载的访问方法,用于访问不同类型的具体元素
 /// <summary>
 /// 实现对全职员工的访问
 /// </summary>
 /// <param name="employee"></param>
 public abstract void Visit(FulltimeEmployee employee);