1、公司要建立人事管理模型,员工包括有正式员工和试用员工两种,正式员工中又有经理级别的员工
员工拥有名字、工号、薪水
所有的员工都要有工作的方法,所有的员工都能够被晋升,作为试用期员工,他的晋升是提升自己为正式员工(返回一个正式员工对象),薪水增加30%;正式员工和经理仅增加薪水20%;经理有管理的方法
针对以上对象设计类
2、小张有一个闹钟,闹钟响起时会报出当天日期时间,如果是周六、周日,小张会继续睡觉,否则就起床去上班
小张的父亲也在关注这个闹钟,如果是周日、周一,则睡觉,否则就去上班
利用事件模拟以上流程

解决方案 »

  1.   

    //以下纯属手写,有误差见谅
    1.提供一个员工接口Iemp,
    public interface Iemp{string EmpName{get;set;}string EmpNo{get;set;}int Salary{get;set;}}
    三个类Manager,TrialEmp,OfficialEmp 分别继承Iemppublic class Manager
    {
      private string empName;private string empNo;private int salary;
      public string EmpName{get{return empName;} set{empName=value;}}
      public string EmpNo{get{return empNo;}set{empNo=value;}}
      public int Salary{get{return salary;} set{salary=value;}}
     
      
    }public class TrialEmp
    {
      private string empName;private string empNo;private int salary;
      public string EmpName{get{return empName;} set{empName=value;}}
      public string EmpNo{get{return empNo;}set{empNo=value;}}
      public int Salary{get{return salary;} set{salary=value;}}  public void ToOfficialEmp ()
      {
        this.Salary=this.Salary*1.3;
        //如果用数据库
        delete ...
        insert...
        //如果用集合,先remove,
        IList<TrialEmp>.remove(this);
        IList<OfficialEmp>.add(this);
        
      }
    }
    //另一个正式员工升到经理相似不写了2.public interface Iacitve{void Morning();DateTime Clock{get{};set{};} }
    //DateTime为闹钟响的时候的时间,你可以写个闹钟类,有属性获取当前时间,和一个方法实现小张类和小张他爸类的实例化
    //public void Linglingling()
    //{Far f=new Far();XiaoZhang xz=new XiaoZhang();}
    //然后再这两类的构造函数中判断是该睡觉还是去工作,即实现Morning();方法
    public class Far{ private DateTime clock ;public DateTime Clock{get{return clock;}set{clock=value;}}
    public void Morning()
    {
    //获取星期几的方式自己弄,我瞎写,
    if(this.Clock.Week==7 || this.Clock.week==1)
    {
    gotosleep();
    }
    else
    {gotowork();}
    }
    //小张的类相似