接口、 Dictionary、List

1、创建一个EatBehavior接口,该接口提供一个eat()抽象方法,为该接口提拱两个实现类:中餐和西餐(ChineseMeal和WesternStyleFood),创建一个Person抽象类,该类中有描述人的姓名和年龄和吃饭(eatBehavior)三个属性,分别可通过get/set访问器,并有一个performEat()方法(该方法通过调用EatBehavior接口的eat方法来完成功能)和三个属性的构造器;中国人(Chinese)和美国人(American)两个类分别继承Person类,中国人吃中餐,美国人吃西餐,创建一个Test类进行测试。

interface EatBehavior
{
void Eat();
}
class ChineseMeal : EatBehavior
{
public void Eat()
{
Console.WriteLine(“中餐”);
}
}
class WesternStyleFood : EatBehavior
{
public void Eat()
{
Console.WriteLine(“西餐”);
}
}
public abstract class Person
{
protected Person()
{ }
public string Name { get; set; }
public int Age { get; set; }
public string EatBehavior { get; set; }
protected Person(string name,int age,string eatBehavior )
{
Name = name;
Age = age;
EatBehavior = eatBehavior;
}
void performEat(EatBehavior eat)
{
eat.Eat();
}
}
class Chinese : Person
{
public Chinese(string name, int age, string eatBehavior) : base(name, age, eatBehavior)
{
Console.Write(name+eatBehavior);
}

    public void performEat()
    {
        Console.WriteLine("中国人");
    }
}
class American : Person
{
    public American(string name, int age, string eatBehavior) : base(name, age, eatBehavior)
    {
        Console.Write(name + eatBehavior);
    }

    public void performEat()
    {
        Console.WriteLine("美国人");
    }
}
static void Main(string[] args)
        {
            Person P = new Chinese("中国人",21,"吃");
            EatBehavior eat = new ChineseMeal();
            eat.Eat();
            P = new American("美国人", 21, "吃");
            eat = new ChineseMeal();
            eat.Eat();
           }

2、(Map)已知某学校的教学课程内容安排如下:
老师 课程

Tom CoreJava

John Oracle

Susan Oracle

Jerry JDBC

Jim Unix

Kevin JSP

Lucy JSP

完成下列要求:

1) 使用一个 Dictionary,以老师的名字作为键,以老师教授的课程名作为值,表示上述课程安排。

2) 增加了一位新老师 Allen 教 JDBC

3) Lucy 改为教 CoreJava

4) 遍历 Map,输出所有的老师及老师教授的课程

5) 利用 Map,输出所有教 JSP 的老师。

class Map
    {
        public void GetMap()
        {
            Dictionary<string, string> map = new Dictionary<string, string>();
            map.Add("Tom", "CoreJava");
            map.Add("John", "Oracle");
            map.Add("Susan", "Oracle");
            map.Add("Jerry", "JDBC");
            map.Add("Kevin", "JSP");
            map.Add("Lucy", "JSP");
			map.Add("Allen ", "JDBC");
  			map["Lucy "] = "CoreJava";
            foreach (var item in map)
            {
                Console.WriteLine(item.Key+"\t"+item.Value);
            }
            foreach (var item in map)
            {
                if (map.ContainsValue("JSP"))
                {
                    Console.WriteLine(item.Key);
                }
            }
        }
    }

3、完成下面的要求

1)创建一个 List,在 List 中增加三个工人,基本信息如下:

姓名 年龄 工资

zhang3 18 3000

li4 25 3500

wang5 22 3200

2)在 li4 之前插入一个工人,信息为:姓名:zhao6,年龄:24,工资 3300

3)删除 wang5 的信息

4)利用 for 循环遍历,打印 List 中所有工人的信息

class Worker
    {
        private string name;
        public string Name
        {
            get { return name; }
            set { name = value; }
        }
        private int age;
  public int Age
        {
            get { return age; }
            set { age = value; }
        }
private float salary;
  public float Salary
        {
            get { return salary; }
            set { salary = value; }
        }
        private Address address;
 public Address Address
        {
            get { return address; }
            set { address = value; }
        }
        public Worker()
        {
        }
        public Worker(string name, int age,float salery,Address address)
        {
            Name = name;
            Age = age;
            Salary = salery;
            Address = address;
        }
    }
    class Address
    {
        private string addressNmae;
		public string AddressNmae
        {
            get { return addressNmae; }
            set { addressNmae = value; }
        }
        private string zipCode;
        public string ZipCode
        {
            get { return zipCode; }
            set { zipCode = value; }
        }
        public Address()
        { }
        public Address(string addressNmae, string zipCode)
        {
            AddressNmae = addressNmae;
            ZipCode = zipCode;
        }
    }
        List<List> list = new List<List>();
        List l1 = new List("zhang3",18,3000);
        List l2 = new List("li4", 25, 3500);
        List l3 = new List("wang5", 22, 3200);


        list.Add(l1);
        list.Add(l2);
        list.Add(l3);

        list.Insert(1,new List("zhao6",24,3300));

        foreach (var item in list)
        {
            if (item.Name.Equals("wang5"))
            {
                list.Remove(item);
            }
        }
        foreach (var item in list)
        {
            Console.WriteLine(item.Name+"\t"+item.Age + "\t" +item.Salary);
        }

4、(Set)有如下两个类(只写了类的属性,请自行添加相应的构造方法和 get/set 方法)

在这里插入图片描述

要求,完善 Worker 和 Address 类,使得 Worker 对象能够正确放入 HashSet 中:即将 Worker 放入 HashSet 中时不会出现重复元素。并编写相应测试代码。

 class Worker
    {
        private string name;
        public string Name
        {
            get { return name; }
            set { name = value; }
        }
        private int age;
        public int Age
        {
            get { return age; }
            set { age = value; }
        }
        private float salary;
        public float Salary
        {
            get { return salary; }
            set { salary = value; }
        }
        private Address address;
        public Address Address
        {
            get { return address; }
            set { address = value; }
        }
        public Worker()
        {
        }
        public Worker(string name, int age,float salery,Address address)
        {
            Name = name;
            Age = age;
            Salary = salery;
            Address = address;
        }
    }
    class Address
    {
        private string addressNmae;
        public string AddressNmae
        {
            get { return addressNmae; }
            set { addressNmae = value; }
        }
        private string zipCode;
        public string ZipCode
        {
            get { return zipCode; }
            set { zipCode = value; }
        }
        public Address()
        { }
        public Address(string addressNmae, string zipCode)
        {
            AddressNmae = addressNmae;
            ZipCode = zipCode;
        }
    }




            Address add = new Address("埃及","124356");
            Worker W1 = new Worker("张三",18,10000,add);
            Worker W2 = new Worker("李四",20,10000,add);

            HashSet<Worker> t1 = new HashSet<Worker> {W1};

            bool b = false;
            foreach (var item in t1)
            {
                if (!item.Name.Equals(W2.Name))
                {
                    b = true;
                }
            }
            if (b)
            {
                t1.Add(W2);
            }
            foreach (var item in t1)
            {
                Console.WriteLine(item.Name);
            }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值