using System;
using System.Collections.Generic;
namespace MyApp
{
class Program
{
static void Main()
{
Department department1 = new Department("Qian", "Resource Shanghai");
Department department2 = new Department("Li", "ITG Shanghai");
Department department3 = new Department("Zhang", "Account Shanghai");
Department department4 = new Department("Sun", "Account Beijing");
Department department5 = new Department("Fan", "Resource Beijing");
Company company1 = new Company("Zhou Jie", "Wicresoft Beijing");
company1.AddOrganization(department4);
company1.AddOrganization(department5);
Company company2 = new Company("Zhou Li","Wicresoft Shanghai");
company2.AddOrganization(company1);
company2.AddOrganization(department1);
company2.AddOrganization(department2);
company2.AddOrganization(department3);
company2.Display();
Console.ReadKey();
}
}
abstract class Organization
{
protected string managerName;
protected string organizationName;
public Organization(string managerName, string organizationName)
{
this.managerName = managerName;
this.organizationName = organizationName;
}
public abstract void AddOrganization(Organization organization);
public abstract void DeleteOrganization(Organization organization);
public abstract void Display();
}
class Department:Organization
{
public Department(string managerName, string departmentNmae)
: base(managerName, departmentNmae)
{ }
public override void AddOrganization(Organization organization)
{
Console.WriteLine("You can't add a organization under a department...");
}
public override void DeleteOrganization(Organization organization)
{
Console.WriteLine("You can't delete a organization under a department...");
}
public override void Display()
{
Console.WriteLine("Department:{0}",organizationName);
Console.WriteLine("Manager:{0}", managerName);
Console.WriteLine();
}
}
class Company : Organization
{
public Company(string managerName, string companyName)
: base(managerName, companyName)
{ }
List<Organization> organizations = new List<Organization>();
public override void AddOrganization(Organization organization)
{
organizations.Add(organization);
}
public override void DeleteOrganization(Organization organization)
{
organizations.Remove(organization);
}
public override void Display()
{
Console.WriteLine("Company:{0}", organizationName);
Console.WriteLine("Manager:{0}", managerName);
Console.WriteLine();
foreach (Organization organization in this.organizations)
{
organization.Display();
}
}
}
}
本文通过C#代码实现了一个简单的公司组织结构模拟系统,包括部门和公司层级,并演示了如何添加和展示下属组织。
1171

被折叠的 条评论
为什么被折叠?



