zoukankan      html  css  js  c++  java
  • (深入.Net平台和C#编程)第六章上机练习3.李向阳.20170411

     1 =======父类==========
     2 using System;
     3 using System.Collections.Generic;
     4 using System.Linq;
     5 using System.Text;
     6 using System.Threading.Tasks;
     7 
     8 namespace Sj3.Entity
     9 {
    10     /// <summary>
    11     /// 父类
    12     /// </summary>
    13     public class Employee
    14     {
    15         public string ID { get; set; }
    16         public string Name { get; set; }
    17         public int Age { get; set; }
    18         public List<Job> WorkList { get; set; }
    19         public Gender Sex { get; set; }
    20         /// <summary>
    21         /// 构造函数
    22         /// </summary>
    23         /// <param name="id"></param>
    24         /// <param name="name"></param>
    25         /// <param name="age"></param>
    26         /// <param name="worklist"></param>
    27         /// <param name="sex"></param>
    28         public Employee(string id, string name, int age, List<Job> worklist, Gender sex)
    29         {
    30             this.ID = id;
    31             this.Name = name;
    32             this.Age = age;
    33             this.Sex = sex;
    34             this.WorkList = worklist;
    35         }
    36 
    37         public virtual string DoWork()
    38         {
    39             return "";
    40         }
    41     }
    42 }
    View Code
     1 =======性别类==========
     2 using System;
     3 using System.Collections.Generic;
     4 using System.Linq;
     5 using System.Text;
     6 using System.Threading.Tasks;
     7 
     8 namespace Sj3.Entity
     9 {
    10     /// <summary>
    11     /// 性别
    12     /// </summary>
    13     public enum Gender
    14     {
    15         男,女
    16     }
    17 }
    View Code
     1 =========Job类=========
     2 using System;
     3 using System.Collections.Generic;
     4 using System.Linq;
     5 using System.Text;
     6 using System.Threading.Tasks;
     7 
     8 namespace Sj3.Entity
     9 {
    10     /// <summary>
    11     /// 定义工作项类
    12     /// </summary>
    13     public class Job
    14     {
    15         public string Description { get; set; }  //描述
    16         public string Name { get; set; }   //工作名称
    17         /// <summary>
    18         /// 构造函数
    19         /// </summary>
    20         public Job(string description, string name)
    21         {
    22             this.Description = description;
    23             this.Name = name;
    24         }
    25     }
    26 }
    View Code
     1 =======子PM类===============
     2 
     3 using System;
     4 using System.Collections.Generic;
     5 using System.Linq;
     6 using System.Text;
     7 using System.Threading.Tasks;
     8 
     9 namespace Sj3.Entity
    10 {
    11     /// <summary>
    12     /// PM类
    13     /// </summary>
    14     public class PM : Employee
    15     {
    16 
    17         public PM(string name, string id, int age, Gender sex, List<Job> worklist)
    18             : base(id, name, age, worklist, sex)
    19         { }
    20 
    21         /// <summary>
    22         /// 给PM类添加DoWork()方法:工作
    23         /// </summary>
    24         public override string DoWork()
    25         {
    26             string mes = this.Name + ":管理员工完成工作内容!";
    27             return mes;
    28         }
    29     }
    30 }
    View Code
     1 ===========子SE类================
     2 using System;
     3 using System.Collections.Generic;
     4 using System.Linq;
     5 using System.Text;
     6 using System.Threading.Tasks;
     7 
     8 namespace Sj3.Entity
     9 {
    10     /// <summary>
    11     /// SE类
    12     /// </summary>
    13     public class SE : Employee
    14     {
    15         public SE(string name, string id, int age, Gender sex, List<Job> worklist)
    16             : base(id, name, age, worklist, sex)
    17         { }
    18         /// <summary>
    19         /// 给SE类添加DoWork()方法:工作
    20         /// </summary>
    21         public override string DoWork()
    22         {
    23             StringBuilder sdd = new StringBuilder();
    24             sdd.Append(this.Name + ":
    ");
    25             for (int i = 0; i < this.WorkList.Count; i++)
    26             {
    27                 sdd.Append((i + 1) + "," + WorkList[i].Name + ":" + WorkList[i].Description + "
    ");
    28 
    29             }
    30             return sdd.ToString();
    31         }
    32     }
    33 }
    View Code
     1 =============测试类==================
     2 using System;
     3 using System.Collections.Generic;
     4 using System.ComponentModel;
     5 using System.Data;
     6 using System.Drawing;
     7 using System.Linq;
     8 using System.Text;
     9 using System.Threading.Tasks;
    10 using System.Windows.Forms;
    11 using Sj3.Entity;
    12 
    13 
    14 namespace Sj3
    15 {
    16     public partial class FrmMain : Form
    17     {
    18         public FrmMain()
    19         {
    20             InitializeComponent();
    21             InfoMain();
    22         }
    23         List<Employee> emply = new List<Employee>();
    24         /// <summary>
    25         /// 初始化员工信息
    26         /// </summary>
    27         public void InfoMain()
    28         {
    29             //实例SE对象
    30             List<Job> job = new List<Job>();
    31             job.Add(new Job("购物车模块", "编码"));
    32             job.Add(new Job("给购物车模块做单元测试", "测试"));
    33             SE se = new SE("爱边成", "111", 25, Gender.男, job);
    34 
    35             //实例SE对象
    36             List<Job> job1 = new List<Job>();
    37             job1.Add(new Job("购物车模块", "编码"));
    38             job1.Add(new Job("给购物车模块做单元测试", "测试"));
    39             SE se1 = new SE("joe", "112", 30, Gender.男, job1);
    40 
    41             //实例化PM对象
    42             PM pm = new PM("盖茨", "114", 50, Gender.男, job1);
    43             emply.Add(se);
    44             emply.Add(se1);
    45             emply.Add(pm);
    46             Console.Read();
    47         }
    48         /// <summary>
    49         ///汇报工作 
    50         /// </summary>
    51         /// <param name="sender"></param>
    52         /// <param name="e"></param>
    53         private void button1_Click(object sender, EventArgs e)
    54         {
    55             foreach (Employee emp in emply)
    56             {
    57                 //if (emp is PM)
    58                 //{
    59                 //    MessageBox.Show(((PM)emp).DoWork(), "汇报");
    60                 //}
    61                 //if (emp is SE)
    62                 //{
    63                 //    MessageBox.Show(((SE)emp).DoWork(), "汇报");
    64                 MessageBox.Show(emp.DoWork());
    65             }
    66         }
    67     }
    68 }
    View Code

    效果图:

  • 相关阅读:
    关于随机数生成
    全文搜索基本原理(倒排索引、搜索结果排序)
    Log-Structured Merge Tree (LSM Tree)
    Spring Cloud组件使用/配置小记
    容错框架之Hystrix小记
    (转)调试程序时设置断点的原理
    字符串匹配算法
    信息论小记
    Java 函数式编程(Lambda表达式)与Stream API
    (转)自动控制的故事
  • 原文地址:https://www.cnblogs.com/qq2835200767/p/6691765.html
Copyright © 2011-2022 走看看