Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class Program {
- static int GetInput() {
- for(; ; ) {
- string input = Console.ReadLine();
- int output;
- if(int.TryParse(input, out output)) {
- return output;
- }
- Console.WriteLine("Not correct input, input type is int");
- }
- }
- static bool KorrektDjurtyp(string djurtyp) {
- switch (djurtyp) {
- case "Lejon":
- case "Leopard":
- case "Gepard":
- return true;
- default:
- Console.WriteLine("Ej acceptabel djursort");
- return false;
- }
- }
- static void PrintList(ref List<Djur> djur) {
- List<Gepard> geparder = djur.OfType<Gepard>().ToList();
- List<Lejon> lejon = djur.OfType<Lejon>().ToList();
- List<Leopard> leoparder = djur.OfType<Leopard>().ToList();
- Console.WriteLine("Lejon = " + lejon.Count);
- for (int i = 0; i < lejon.Count; i++) {
- Console.WriteLine(i + ": höjd = " + djur[i].höjd + " cm, vikt = " + djur[i].vikt + " kg");
- }
- Console.WriteLine("Leoparder = " + leoparder.Count);
- for (int i = 0; i < leoparder.Count; i++) {
- Console.WriteLine(i + ": höjd = " + djur[i].höjd + " cm, vikt = " + djur[i].vikt + " kg");
- }
- Console.WriteLine("Geparder = " + geparder.Count);
- for (int i = 0; i < geparder.Count; i++) {
- Console.WriteLine(i + ": höjd = " + djur[i].höjd + " cm, vikt = " + djur[i].vikt + " kg");
- }
- }
- static Djur SkapaDjur(string djurtyp) {
- Console.Write("Höjd i cm? ");
- int höjd = GetInput();
- Console.Write("Vikt i kg? ");
- int vikt = GetInput();
- switch (djurtyp) {
- case "Lejon":
- return new Lejon(höjd, vikt);
- case "Leopard":
- return new Leopard(höjd, vikt);
- case "Gepard":
- return new Gepard(höjd, vikt);
- }
- return null;
- }
- static void Main(string[] args) {
- List<Djur> djur = new List<Djur>();
- Console.Write("Djursort? ");
- string input = Console.ReadLine();
- while (input != "STOPP") {
- if (KorrektDjurtyp(input)) {
- djur.Add(SkapaDjur(input));
- }
- Console.Write("Djursort? ");
- input = Console.ReadLine();
- }
- PrintList(ref djur);
- Console.ReadKey(true);
- }
- }
- public class Djur : IComparable {
- int IComparable.CompareTo(object obj) {
- Djur djur = (Djur)obj;
- return string.Compare(Djurtyp(), djur.Djurtyp());
- }
- public Djur(int höjd, int vikt) {
- this.höjd = höjd;
- this.vikt = vikt;
- }
- public int höjd { get; }
- public int vikt { get; }
- public virtual string Djurtyp() {
- return "Djur";
- }
- }
- public class Lejon : Djur {
- public Lejon(int höjd, int vikt) : base(höjd, vikt) { }
- public override string Djurtyp() {
- return "Lejon";
- }
- }
- public class Leopard : Djur {
- public Leopard(int höjd, int vikt) : base(höjd, vikt) { }
- public override string Djurtyp() {
- return "Leopard";
- }
- }
- public class Gepard : Djur {
- public Gepard(int höjd, int vikt) : base(höjd, vikt) { }
- public override string Djurtyp() {
- return "Gepard";
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement