3月5日 练习讲解

Profile Picture
- Published on Mar 5, 2020🌏 Public

练习

练习1: 创建一个Cat类, 1. 包含毛色、性别、名字、饱食度四个字段 2. 有玩耍方法,玩耍时,可以选择传入一个玩耍的玩具,显示xxx在玩yyy,也可以不传,显示xxx在玩耍。玩耍消耗10点饥饿度,饥饿度小于20无法玩耍。 3. 吃东西,必须传入吃什么,每次吃东西补充50点饥饿度。 4. 显示猫咪信息的方法,将猫咪所有信息显示到控制台。

操作方式: 进入后,输入毛色、性别和名字,创建一只猫,默认饱食度50(上限100),然后显示主页面;

1. 喂食
2. 玩耍
3. 信息

可以通过按键进入不同的功能,功能完成后,再回到主界面。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Test3
{
    class Cat
    {
        //变量采用骆驼命名法
        //属性、方法都是首字母大写

        //包含毛色、性别、名字、饱食度四个字段
        string color, sex, name;
        int satiationDegree=50;

        public Cat(string color,string sex,string name) {
            this.color = color;
            this.sex = sex;
            this.name = name;
        }

        /// <summary>
        ///     玩耍
        /// </summary>
        public void Play() {
            if (satiationDegree <= 20)
            {
                Console.WriteLine("{0}当前太饿了,没心情玩耍", name);
            }
            else
            {
                Console.WriteLine("{0}在玩耍", name);
                satiationDegree -= 10;
            }
        }

        /// <summary>
        ///      玩耍,指定玩具
        /// </summary>
        /// <param name="item">玩具名字</param>
        public void Play(string item)
        {
            if (satiationDegree <= 20)
            {
                Console.WriteLine("{0}当前太饿了,没心情玩耍", name);
            }
            else
            {
                Console.WriteLine("{0}在玩{1},饱食度降低10", name, item);
                satiationDegree -= 10;
            }
        }

        /// <summary>
        ///     吃东西
        /// </summary>
        /// <param name="item">要吃的道具</param>
        public void Eat(string item)
        {
            if (satiationDegree == 100)
            {
                Console.WriteLine("{0}现在一点都不饿",name);
            }
            else
            {
                if (100 - satiationDegree >= 50)
                {
                    Console.WriteLine("{0}在吃{1},饱食度增加50", name, item);
                    satiationDegree += 50;
                }
                else
                {
                    Console.WriteLine("{0}在吃{1},饱食度增加{2}", name, item, 100 - satiationDegree);
                    satiationDegree = 100;
                }
            }
        }

        /// <summary>
        ///     自我介绍
        /// </summary>
        public void Introduce() {
            Console.WriteLine("名字:{0}\n毛色:{1}\n性别:{2}\n饱食度:{3}\n", name,color,sex,satiationDegree);
        }

    }
}




using System;

namespace Test3
{
  
    class Program
    {
       
        static void Main() {

            Console.WriteLine("请输入毛色:");
           var color= Console.ReadLine();
            Console.WriteLine("请选择性别:m: 公猫 ,f:母猫");
           var key= Console.ReadKey();
            string sex;
            if (key.KeyChar == 'm')
            {
                 sex = "公猫";
            }
            else  if(key.KeyChar=='f'){
                 sex = "母猫";
            }
            else
            {
                 sex = "待鉴定";
            }
            Console.WriteLine("请输入名字:");
            var name= Console.ReadLine();
            Cat  cat = new Cat(color,sex,name); //根据输入的信息,创建猫的实例

            Start(cat);
        }

        static void Start(Cat cat) {
            Console.Clear(); 
            Console.WriteLine("1. 喂食\n2.玩耍\n3.信息");
            var key = Console.ReadKey();
            switch (key.KeyChar)
            {
                case '1':
                    Console.WriteLine("输入食物");
                    var item = Console.ReadLine();
                    if (string.IsNullOrWhiteSpace(item))
                    {
                        Console.WriteLine("输入内容有误,返回主菜单,请按任意键继续");
                    }
                    else
                    {
                        cat.Eat(item);
                        Console.WriteLine("请按任意键继续");
                    }
                    break;
                case '2':
                    Console.WriteLine("输入要玩什么,可以不填写");
                    var wanju = Console.ReadLine();
                    if (string.IsNullOrWhiteSpace(wanju))
                    {
                        cat.Play();
                    }
                    else
                    {
                        cat.Play(wanju);
                    }
                    Console.WriteLine("请按任意键继续");
                    break;
                case '3':
                    cat.Introduce();
                    Console.WriteLine("请按任意键继续");
                    break;
                default:
                    Console.WriteLine("输入内容有误,请重新输入,请按任意键继续");
                    break;
            }
            Console.ReadKey();
            Start(cat);
        }
    }
}