Hjälp med en programmerings uppgift! Joppes djurfamilj
Tjena allihopa! Har hållitt på som en galning med en uppgift i programmering 2, är rätt ny inom detta och gör kursen på distans, försöker att få hjälp via mail av min lärare men börjar ta alldeles för lång tid nu så tänkte kolla om någon har lust att hjälpa till att guida mig på rätt väg.
Nedanför är koden såhär långt, tanken är att skapa en meny där användaren får välja olika alternativ där olika metoder ska blandas in med hjälp av arv, mitt problem är att jag inte vet hur jag får in dessa så de svaras tack vare menyn, samt ser ni något annat som ser galet ut så är jag all ears! Tack på förhand. Skickar även med info om hur programmet är tänkt att fungera.
Här kommer en beskrivning av hur programmet ska fungera:PetownerDenna klass används för att skapa en husse, det villa säga ”Joppe”.Joppe har en ålder (-age : int) samt äger en eller fleradjur(pets: List<animal>) som då lagras i en lista.Med fördel får Joppe att antal djur när programmet startar.Från listan av djur kan Joppe ”leka med” djuren genom att anropa metoden ”Interact()”i animal-klassen.Exempelvis:pets[2].interact();Detta görs i metoden Play()
I metoden menu()visas då en meny med olika valmöjligheter och som är kopplat till metoder enligt följande:1.Playfetch(metoden Play)2.Feed Animal (metoden Feed)3.List animals (metoden list_animals)Här kommer en beskrivning av dessa metoder:Play()Denna metod frågar användaren vilket djur som Joppe ska leka med och därefter anropar metoden Interact()i det djurobjektet. Feed()Denna metod frågar användaren vilket djur som Joppe ska mata och därefter anropa det djurobjektets metod för detta (eat()). Denna metod hanterar också vilken mat som Joppe ska mata hunden med och som ska skickas med som en inparameter till denna metod.List_animals()Denna metodlistar helt enkelt djuren på ett lämpligt sätt genom att skriva ut var och en av djur-objekten.AnimalKlassen animal är en abstrakt klass. I denna klass finns flera fält definierade plus tre stycken metoder.Fälten är rätt självbeskrivande.Age: Hur gammal djuret ärName: Djurets namnFav_food: Djurets favoritmat som beskrivs med en vanlig strängBreed: Djurets rasHungry: Sant eller falskt för om djuret är hungrigtMetoden Interact()innebär att djuret leker med djurägaren (Joppe). Detta förmedlas med en lämplig utskrift.Om djuret är hungrigt så vill inte djuret leka utan klagar istället.Metoden eat()tar emot en sträng och jämför denna mot djurets favoritmat. Om djuret får sin favoritmat så äter djuret upp maten och blir därefter mätt (#hungry : bool). Får intedjuret sin favoritmat så finns en metod som styr vad djuret gör om djuret är hungrigt (+hungry_animal()). Som standard kommer djuret ”gny” och klaga på att djuret inte får någon mat.Denna metod anropas om djuret inte får sin favoritmat ovan.
Favorit-mat sätts i respektive underklass och som är lämpligt för djuret.CatKlassen cat ärver från animal.Det som skiljer denna klass från den generiska animal-klassen är metoden hungry_animal()som därmed ska ha en ”override”. Om katten inte får sin favoritmat så går han på egen hand ut och jagar en mus.Lämplig text skrivs ut i konsollen som bekräftar detta.Det är 50% chans att katten hittar en mus och blir mätt, annars är katten fortfarande hungrigt.Utöverdetta kan texten för interact() ändras eftersom katten leker annorlunda än hundar.DogKlassen dog ärver från animalDenna klass skiljer inte från den abstrakta klassen AnimalPuppyKlassen puppy ärver från dogPuppy skiljer sig från klassen hund då den har ytterligare ett fält för hur många månader gammal valpen är. Åldern iår ska sättas till noll (0)
namespace Joppes_Djurfamilj
{
class Program
{
public class Petowner
{
private int age { get; set; }
private List<string> Animal_List = new List<string>();
public Petowner(int age)
{
Age = age;
Animal_List.Add(("Misse"));
Animal_List.Add(("Zorro"));
Animal_List.Add(("Zeus"));
}
public int Age
{
get { return age; }
set { age = value; }
}
public void List_Animals()
{
Console.Write("\n-----------------------------------");
Console.Write("\nHere is the animals: \n");
foreach (var animales in Animal_List)
{
Console.WriteLine("\n" + animales);
}
Console.Write("\n\nPress any button to return to the menu. . .");
Console.Write("\n-----------------------------------");
Console.ReadLine();
Console.Clear();
}
public void Play()
{
Console.Write("\n-----------------------------------");
Console.Write("\nWhich animal do you want to play with? Numbers 1-3.\n");
foreach (var animales in Animal_List)
{
Console.WriteLine("\n" + animales);
}
Console.Write("\n\nYour choice: ");
int Anwser = int.Parse(Console.ReadLine());
if (Anwser == 1)
{
Console.Write("\nJoppe is playing with {0}", Animal_List[0]);
Console.Write("\n\nPress any button to return to the menu. . .");
Console.Write("\n-----------------------------------");
Console.ReadLine();
Console.Clear();
}
if(Anwser == 2)
{
Console.Write("\nJoppe is playing with {0}", Animal_List[1]);
Console.Write("\n\nPress any button to return to the menu. . .");
Console.Write("\n-----------------------------------");
Console.ReadLine();
Console.Clear();
}
if(Anwser == 3)
{
Console.Write("\nJoppe is playing with {0}", Animal_List[2]);
Console.Write("\n\nPress any button to return to the menu. . .");
Console.Write("\n-----------------------------------");
Console.ReadLine();
Console.Clear();
}
}
public void Feed()
{
Console.Write("\n-----------------------------------");
Console.Write("\nWhich animal do you want to feed? Numbers 1-3.\n");
foreach (var animales in Animal_List)
{
Console.WriteLine("\n" + animales);
}
Console.Write("\n\nYour choice: ");
int Anwser = int.Parse(Console.ReadLine());
if (Anwser == 1)
{
Console.Write("\nJoppe is feeding {0}", Animal_List[0]);
Console.Write("\n\nPress any button to return to the menu. . .");
Console.Write("\n-----------------------------------");
Console.ReadLine();
Console.Clear();
}
if (Anwser == 2)
{
Console.Write("\nJoppe is feeding {0}", Animal_List[1]);
Console.Write("\n\nPress any button to return to the menu. . .");
Console.Write("\n-----------------------------------");
Console.ReadLine();
Console.Clear();
}
if (Anwser == 3)
{
Console.Write("\nJoppe is feeding {0}", Animal_List[2]);
Console.Write("\n\nPress any button to return to the menu. . .");
Console.Write("\n-----------------------------------");
Console.ReadLine();
Console.Clear();
}
}
public void Menu()
{
int menu = 0;
do
{
Console.Write("\n\nWelcome to Joppe's animal simulator!");
Console.Write("\n-----------------------------------");
Console.Write("\n1. Play with animals");
Console.Write("\n2. Feed animals");
Console.Write("\n3. List animals");
Console.Write("\n4. Exit Program");
Console.Write("\n-----------------------------------");
Console.Write("\n\nChoose an option in the menu: ");
menu = int.Parse(Console.ReadLine());
switch (menu)
{
case 1:
Play();
break;
case 2:
Feed();
break;
case 3:
List_Animals();
break;
case 4:
Console.Clear();
Console.Write("\n\n\nPress any button to exit the program. . .\n\n\n");
break;
default:
break;
}
} while (menu != 4);
}
}
internal abstract class Animal
{
protected int age { get; set; }
protected string name { get; set; }
protected string fav_food { get; set; }
protected string breed { get; set; }
protected bool hungry { get; set; }
public Animal(string name, int age)
{
}
public virtual void Interact()
{
Console.Write("\n{0}");
}
public virtual void Eat(string fav_food)
{
}
public virtual void Hungry_Animal()
{
}
public override string ToString()
{
return base.ToString();
}
}
public class Cat : Animal
{
public Cat(string name, int age) : base (name, age)
{
Name = name;
Age = age;
}
public string Name
{
get { return name; }
set { name = value; }
}
public int Age
{
get { return age; }
set { age = value; }
}
public override string ToString()
{
return string.Format("{0},{1}", Name, Age);
}
}
public class Dog : Animal
{
public Dog(string name, int age) : base (name, age)
{
Name = name;
Age = age;
}
public string Name
{
get { return name; }
set { name = value; }
}
public int Age
{
get { return age; }
set { age = value; }
}
public override void Interact()
{
Console.Write("\n{0} is playing with Joppe", Name);
}
public override string ToString()
{
return string.Format("{0},{1}", Name, Age);
}
}
public class Puppy : Dog
{
public Puppy(string name, int age) : base("", 0)
{
Name = name;
Age = age;
}
public override void Interact()
{
}
public override string ToString()
{
return string.Format("{0},{1}", Name, Age);
}
}
public static void Main(string[] args)
{
Petowner petowner = new Petowner(29);
petowner.Menu();
Cat cat = new Cat("Misse", 4);
Dog dog = new Dog("Zorro", 5);
dog.Interact();
}
}
}