3月5日 练习讲解
练习
练习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);
}
}
}