Advertisement
WilleMahMille

Exempel - Djur

Oct 18th, 2019
168
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 3.80 KB | None | 0 0
  1.     class Program {
  2.         static int GetInput() {
  3.             for(; ; ) {
  4.                 string input = Console.ReadLine();
  5.                 int output;
  6.                 if(int.TryParse(input, out output)) {
  7.                     return output;
  8.                 }
  9.                 Console.WriteLine("Not correct input, input type is int");
  10.             }
  11.         }
  12.         static bool KorrektDjurtyp(string djurtyp) {
  13.             switch (djurtyp) {
  14.                 case "Lejon":
  15.                 case "Leopard":
  16.                 case "Gepard":
  17.                     return true;
  18.                 default:
  19.                     Console.WriteLine("Ej acceptabel djursort");
  20.                     return false;
  21.             }
  22.         }
  23.         static void PrintList(ref List<Djur> djur) {
  24.             List<Gepard> geparder = djur.OfType<Gepard>().ToList();
  25.             List<Lejon> lejon = djur.OfType<Lejon>().ToList();
  26.             List<Leopard> leoparder = djur.OfType<Leopard>().ToList();
  27.  
  28.             Console.WriteLine("Lejon = " + lejon.Count);
  29.             for (int i = 0; i < lejon.Count; i++) {
  30.                 Console.WriteLine(i + ": höjd = " + djur[i].höjd + " cm, vikt = " + djur[i].vikt + " kg");
  31.             }
  32.             Console.WriteLine("Leoparder = " + leoparder.Count);
  33.             for (int i = 0; i < leoparder.Count; i++) {
  34.                 Console.WriteLine(i + ": höjd = " + djur[i].höjd + " cm, vikt = " + djur[i].vikt + " kg");
  35.             }
  36.             Console.WriteLine("Geparder = " + geparder.Count);
  37.             for (int i = 0; i < geparder.Count; i++) {
  38.                 Console.WriteLine(i + ": höjd = " + djur[i].höjd + " cm, vikt = " + djur[i].vikt + " kg");
  39.             }
  40.         }
  41.         static Djur SkapaDjur(string djurtyp) {
  42.             Console.Write("Höjd i cm? ");
  43.             int höjd = GetInput();
  44.             Console.Write("Vikt i kg? ");
  45.             int vikt = GetInput();
  46.             switch (djurtyp) {
  47.                 case "Lejon":
  48.                     return new Lejon(höjd, vikt);
  49.                 case "Leopard":
  50.                     return new Leopard(höjd, vikt);
  51.                 case "Gepard":
  52.                     return new Gepard(höjd, vikt);
  53.             }
  54.             return null;
  55.         }
  56.         static void Main(string[] args) {
  57.  
  58.             List<Djur> djur = new List<Djur>();
  59.             Console.Write("Djursort? ");
  60.             string input = Console.ReadLine();
  61.             while (input != "STOPP") {
  62.                 if (KorrektDjurtyp(input)) {
  63.                     djur.Add(SkapaDjur(input));
  64.                 }
  65.                 Console.Write("Djursort? ");
  66.                 input = Console.ReadLine();
  67.             }
  68.             PrintList(ref djur);
  69.            
  70.             Console.ReadKey(true);
  71.         }
  72.     }
  73.  
  74.     public class Djur : IComparable {
  75.         int IComparable.CompareTo(object obj) {
  76.             Djur djur = (Djur)obj;
  77.             return string.Compare(Djurtyp(), djur.Djurtyp());
  78.         }
  79.         public Djur(int höjd, int vikt) {
  80.             this.höjd = höjd;
  81.             this.vikt = vikt;
  82.         }
  83.         public int höjd { get; }
  84.         public int vikt { get; }
  85.         public virtual string Djurtyp() {
  86.             return "Djur";
  87.         }
  88.     }
  89.     public class Lejon : Djur {
  90.         public Lejon(int höjd, int vikt) : base(höjd, vikt) { }
  91.         public override string Djurtyp() {
  92.             return "Lejon";
  93.         }
  94.     }
  95.     public class Leopard : Djur {
  96.         public Leopard(int höjd, int vikt) : base(höjd, vikt) { }
  97.         public override string Djurtyp() {
  98.             return "Leopard";
  99.         }
  100.     }
  101.     public class Gepard : Djur {
  102.         public Gepard(int höjd, int vikt) : base(höjd, vikt) { }
  103.         public override string Djurtyp() {
  104.             return "Gepard";
  105.         }
  106.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement