1 using SJ2.entity;
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
12 namespace SJ2
13 {
14 public partial class FrmMain : Form
15 {
16 public FrmMain()
17 {
18 InitializeComponent();
19 }
20
21 List<Employee> empls = new List<Employee>();
22 /// <summary>
23 /// 单击事件
24 /// </summary>
25 /// <param name="sender"></param>
26 /// <param name="e"></param>
27 private void btnHuiBo_Click(object sender, EventArgs e)
28 {
29 foreach (Employee emp in empls)
30 {
31 if (emp is PM)
32 {
33 MessageBox.Show(((PM)emp).DoWork());
34 }
35 if (emp is SE)
36 {
37 MessageBox.Show(((SE)emp).DoWorK());
38 }
39 }
40 }
41
42 /// <summary>
43 /// 加载事件
44 /// </summary>
45 /// <param name="sender"></param>
46 /// <param name="e"></param>
47 private void FrmMain_Load(object sender, EventArgs e)
48 {
49 List<Job> list1 = new List<Job>();
50 list1.Add(new Job("编码", "购物车模块"));
51 list1.Add(new Job("测试", "给购物车模块做单元测试"));
52 SE ai = new SE("112", 25, "爱变成", "男", list1, 200);//list1已经赋值给Job
53
54 List<Job> list2 = new List<Job>();
55 list2.Add(new Job("设计", "数据库建模"));
56 list2.Add(new Job("编写文档", "详细设计说明书"));
57 SE Joe = new SE("113", 25, "Joe", "女", list2, 200);//list1已经赋值给Job
58
59 PM pm = new PM("890",20, "hh", "男", null,30);
60 empls.Add(ai);
61 empls.Add(Joe);
62 empls.Add(pm);
63 }
64 }
65 }
1 using System;
2 using System.Collections.Generic;
3 using System.Linq;
4 using System.Text;
5 using System.Threading.Tasks;
6
7 namespace SJ2.entity
8 {
9
10 public class Employee
11 {
12 /// <summary>
13 /// 工作列表属性
14 /// </summary>
15 protected List<Job> WorkList { set; get; }
16 /// <summary>
17 /// 年龄
18 /// </summary>
19 public int Age { get; set; }
20 /// <summary>
21 /// 性别
22 /// </summary>
23 public string Sex { get; set; }
24 /// <summary>
25 /// 工号
26 /// </summary>
27 public string ID { get; set; }
28 /// <summary>
29 /// 姓名
30 /// </summary>
31 public string Name { get; set; }
32
33 /// <summary>
34 /// 构造函数
35 /// </summary>
36 public Employee(string id,int age,string name,string sex,List<Job>list)
37 {
38 this.ID = id;
39 this.Age = age;
40 this.Name = name;
41 this.Sex = sex;
42 this.WorkList = list;
43
44
45 }
46 }
47 }
1 using System;
2 using System.Collections.Generic;
3 using System.Linq;
4 using System.Text;
5 using System.Threading.Tasks;
6
7 namespace SJ2.entity
8 {
9 /// <summary>
10 /// jop类,定义工作项目
11 /// </summary>
12 public class Job
13 {
14 /// <summary>
15 /// 工作名称
16 /// </summary>
17 public string Name { get; set; }
18 /// <summary>
19 /// 描述
20 /// </summary>
21 public string Description { get; set; }
22
23 /// <summary>
24 /// 结构函数
25 /// </summary>
26 /// <param name="name"></param>
27 /// <param name="description"></param>
28 public Job(string name, string description)
29 {
30 this.Name = name;
31 this.Description = description;
32 }
33
34 }
35 }
1 using System;
2 using System.Collections.Generic;
3 using System.Linq;
4 using System.Text;
5 using System.Threading.Tasks;
6
7 namespace SJ2.entity
8 {
9 /// <summary>
10 /// 经理类
11 /// </summary>
12 public class PM:Employee
13 {
14 /// <summary>
15 /// 经验
16 /// </summary>
17 public int Yesar{ get; set; }
18
19 //构造函数
20 public PM(string id, int age, string name, string sex, List<Job> list, int yesar):base( id, age, name, sex, list)
21 {
22 this.Yesar = yesar;
23 }
24 /// <summary>
25 /// 添加工作方法
26 /// </summary>
27 /// <returns></returns>
28 public string DoWork()
29 {
30 string message = this.Name + "管理员工完成工作内容!";
31 return message;
32 }
33 }
34 }
1 using System;
2 using System.Collections.Generic;
3 using System.Linq;
4 using System.Text;
5 using System.Threading.Tasks;
6
7 namespace SJ2.entity
8 {
9 /// <summary>
10 /// 员工类
11 /// </summary>
12 public class SE:Employee
13 {
14 /// <summary>
15 /// 人气
16 /// </summary>
17 public int Popularity { get; set; }
18
19 //构造函数
20 public SE(string id, int age, string name, string sex, List<Job> list, int popularity):base( id, age, name, sex, list)
21 {
22 this.Popularity = popularity;
23 }
24
25
26 /// <summary>
27 /// 显示工作方法
28 /// </summary>
29 public string DoWorK()
30 {
31 StringBuilder sb = new StringBuilder();
32 sb.Append(this.Name + ":\n");
33 for (int i = 0; i < this.WorkList.Count; i++)
34 {
35 sb.Append((i + 1) + "," + WorkList[i].Name + ":" + WorkList[i].Description + "\n");
36 }
37 return sb.ToString();
38 }
39
40 }
41 }