Вызов метода объекта для проверки в конструкции switch-case - C#
Формулировка задачи:
Ребят, каким образом создать объект и метод для него, чтобы в кейсах просто метод вызывать, а то с точки зрения ООП неверное получается...
Весь код:
switch (choose)
{
case "Lion": Animal Lion = new Animal();
Console.WriteLine("Введите оценку здоровья");
Lion.Health = Int32.Parse(Console.ReadLine());
Console.WriteLine("Введите оценку чистоты");
Lion.Clean = Int32.Parse(Console.ReadLine());
Console.WriteLine("Введите оценку сытости");
Lion.Training = Int32.Parse(Console.ReadLine());
Console.WriteLine(Lion.Itogi());
Console.WriteLine("\nОцените следующее животное или введите 4 для выхода\n");
AnimalSostoyanie();
break;
case "Tiger": Animal Tiger = new Animal();
Console.WriteLine("Введите оценку здоровья");
Tiger.Health = Int32.Parse(Console.ReadLine());
Console.WriteLine("Введите оценку чистоты");
Tiger.Clean = Int32.Parse(Console.ReadLine());
Console.WriteLine("Введите оценку сытости");
Tiger.Training = Int32.Parse(Console.ReadLine());
Console.WriteLine(Tiger.Itogi());
Console.WriteLine("\nОцените следующее животное или введите 4 для выхода\n");
AnimalSostoyanie();
break;
case "Giraffie": Animal Giraffie = new Animal();
Console.WriteLine("Введите оценку здоровья");
Giraffie.Health = Int32.Parse(Console.ReadLine());
Console.WriteLine("Введите оценку чистоты");
Giraffie.Clean = Int32.Parse(Console.ReadLine());
Console.WriteLine("Введите оценку сытости");
Giraffie.Training = Int32.Parse(Console.ReadLine());
Console.WriteLine(Giraffie.Itogi());
Console.WriteLine("\nОцените следующее животное или введите 4 для выхода\n");
AnimalSostoyanie();
break;
case "exit":
break;
}
}using System;
namespace event
{
public delegate void AnimalStatusMethod();
class Animal
{
public int clean { get; set; }
public int health { get; set; }
public int training { get; set; }
public int Clean
{
set
{ if (clean < 1)
throw new ArgumentOutOfRangeException("Недопустимый ввод");
clean = value;
if (clean > 10)
throw new ArgumentOutOfRangeException("Недопустимый ввод");
clean = value;
if (clean < 7)
Console.WriteLine("Животное нужно помыть");
else Console.WriteLine("Животное находится в хорошем чистом состоянии");
clean = value;
}
get
{
return clean;
}
}
public int Health
{
set
{
if ((health < 1) || (health > 5))
throw new ArgumentOutOfRangeException("Значение должно быть по пятибальной системе");
health = value;
if ((health < 4) && (health > 0))
{
Console.WriteLine("Животное нужно вылечить");
health = value;
}
health = value;
}
get
{
return health;
}
}
public int Training
{
set
{
if ((value < 1) || (value > 5))
throw new ArgumentOutOfRangeException("Значение должно быть по пятибальной системе");
training = value;
if ((value < 4) && (value > 0))
{
Console.WriteLine("Животное нужно покормить, оно выглядит агрессивным");
training = value;
}
training = value;
}
get
{
return training;
}
}
public string Itogi()
{
if ((clean == 5) && (training == 5) && (health == 5))
return "Посетители в восторге";
else
{
if ((clean < 3) && (training < 3) && (health < 3))
{
return "Животное в ужасном состоянии, скоро вы потеряете поситителей \n";
}
return "Посетители удовлетворены, но нужно стремится к лучшему";
}
}
}
class AnimalStatus : Animal
{
public static void AnimalSostoyanie()
{
Animal Lion = new Animal();
Animal Tiger = new Animal();
Animal Giraffie = new Animal();
Console.WriteLine("Из зоопарка XXXXX были выбраны 4 вида животных для показа"
+ "\n различных трюков на международном фестивале YYYYY-2015 ");
Console.WriteLine("Инспекция выбрала 4 вида животных: Tiger, Elephant, Lion, Giraffie");
Console.WriteLine();
Console.WriteLine("Выберите одно из животных для оценки: ");
string choose = (Console.ReadLine());
switch (choose)
{
case "Lion":
Console.WriteLine("Введите оценку здоровья");
Lion.Health = Int32.Parse(Console.ReadLine());
Console.WriteLine("Введите оценку чистоты");
Lion.Clean = Int32.Parse(Console.ReadLine());
Console.WriteLine("Введите оценку сытости");
Lion.Training = Int32.Parse(Console.ReadLine());
Console.WriteLine(Lion.Itogi());
Console.WriteLine("\nОцените следующее животное или введите 4 для выхода\n");
AnimalSostoyanie();
break;
case "Tiger":
Console.WriteLine("Введите оценку здоровья");
Tiger.Health = Int32.Parse(Console.ReadLine());
Console.WriteLine("Введите оценку чистоты");
Tiger.Clean = Int32.Parse(Console.ReadLine());
Console.WriteLine("Введите оценку сытости");
Tiger.Training = Int32.Parse(Console.ReadLine());
Console.WriteLine(Tiger.Itogi());
Console.WriteLine("\nОцените следующее животное или введите 4 для выхода\n");
AnimalSostoyanie();
break;
case "Giraffie":
Console.WriteLine("Введите оценку здоровья");
Giraffie.Health = Int32.Parse(Console.ReadLine());
Console.WriteLine("Введите оценку чистоты");
Giraffie.Clean = Int32.Parse(Console.ReadLine());
Console.WriteLine("Введите оценку сытости");
Giraffie.Training = Int32.Parse(Console.ReadLine());
Console.WriteLine(Giraffie.Itogi());
Console.WriteLine("\nОцените следующее животное или введите 4 для выхода\n");
AnimalSostoyanie();
break;
case "exit":
break;
}
}
public static void Posetiteli()
{
int p;
Console.WriteLine("Какое количество посетителей в данный момент " + DateTime.Now.ToString());
p = Int32.Parse(Console.ReadLine());
if (p > 100)
{
Console.WriteLine("Отличный результат");
}
else
{
Console.WriteLine("Вам нужно улучшать результат");
}
Console.WriteLine("Прибыль равна " + p * 5 + "$");
}
}
public class ZooEvent
{
public event AnimalStatusMethod activate;
public void ActivateEvent()
{
if (activate != null) activate();
}
}
class Program
{
public static void Main()
{
ZooEvent zooEvent = new ZooEvent();
zooEvent.activate += new AnimalStatusMethod(AnimalStatus.Posetiteli);
zooEvent.activate += new AnimalStatusMethod(AnimalStatus.AnimalSostoyanie);
zooEvent.ActivateEvent();
}
}
}Решение задачи: «Вызов метода объекта для проверки в конструкции switch-case»
textual
Листинг программы
public static void AnimalSostoyanie()
{
Animal Lion = new Animal();
Animal Tiger = new Animal();
Animal Giraffie = new Animal();
Console.WriteLine("Из зоопарка XXXXX были выбраны 4 вида животных для показа"
+ "\n различных трюков на международном фестивале YYYYY-2015 ");
Console.WriteLine("Инспекция выбрала 4 вида животных: Tiger, Elephant, Lion, Giraffie");
Console.WriteLine();
Console.WriteLine("Выберите одно из животных для оценки: ");
string choose = (Console.ReadLine());
switch (choose)
{
case "Lion":
Console.WriteLine("Введите оценку здоровья");
Lion.Health = Int32.Parse(Console.ReadLine());
Console.WriteLine("Введите оценку чистоты");
Lion.Clean = Int32.Parse(Console.ReadLine());
Console.WriteLine("Введите оценку сытости");
Lion.Training = Int32.Parse(Console.ReadLine());
Console.WriteLine(Lion.Itogi());
Console.WriteLine("\nОцените следующее животное или введите 4 для выхода\n");
AnimalSostoyanie();
break;
case "Tiger":
Console.WriteLine("Введите оценку здоровья");
Tiger.Health = Int32.Parse(Console.ReadLine());
Console.WriteLine("Введите оценку чистоты");
Tiger.Clean = Int32.Parse(Console.ReadLine());
Console.WriteLine("Введите оценку сытости");
Tiger.Training = Int32.Parse(Console.ReadLine());
Console.WriteLine(Tiger.Itogi());
Console.WriteLine("\nОцените следующее животное или введите 4 для выхода\n");
AnimalSostoyanie();
break;
case "Giraffie":
Console.WriteLine("Введите оценку здоровья");
Giraffie.Health = Int32.Parse(Console.ReadLine());
Console.WriteLine("Введите оценку чистоты");
Giraffie.Clean = Int32.Parse(Console.ReadLine());
Console.WriteLine("Введите оценку сытости");
Giraffie.Training = Int32.Parse(Console.ReadLine());
Console.WriteLine(Giraffie.Itogi());
Console.WriteLine("\nОцените следующее животное или введите 4 для выхода\n");
AnimalSostoyanie();
break;
case "exit":
break;
}
}