Advertisement
Levi0227

Második ZH

Dec 6th, 2023 (edited)
596
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 5.06 KB | Source Code | 0 0
  1. namespace KohariLevente_P99J7Y_M
  2. {
  3.     internal class Program
  4.     {
  5.         static void Main(string[] args)
  6.         {
  7.             //Zeneszam z = new Zeneszam("Karma", "TaylorSwift", 204);
  8.             //Console.WriteLine($"{z.Cim} {z.Szerzo} {z.Hossz}\n{z.IdoTimeSpan()}");
  9.  
  10.             Album a = new Album("Taylor Swift", "Midnights", "taylor_swift-midnights.txt");
  11.             //Console.WriteLine(a.LegrovidebbFelvetel());
  12.             //Console.WriteLine(a.AdottHosszFelett(250));
  13.             Console.WriteLine(a.AlbumStatisztika());
  14.         }
  15.     }
  16. }
  17.  
  18.  
  19.  
  20. -----------------------------------------------------------
  21.  
  22.  
  23.  
  24. namespace KohariLevente_P99J7Y_M
  25. {
  26.     internal class Zeneszam
  27.     {
  28.         string cim, szerzo;
  29.         int hossz;
  30.  
  31.         public string Cim { get { return cim; } }
  32.         public string Szerzo { get { return szerzo; } }
  33.         public int Hossz
  34.         {
  35.             get { return hossz; }
  36.             set { if (value >= 0) hossz = value; }
  37.         }
  38.  
  39.         public Zeneszam(string cim, string szerzo, int hossz)
  40.         {
  41.             this.cim = cim;
  42.             this.szerzo = szerzo;
  43.             this.hossz = hossz;
  44.         }
  45.  
  46.         public TimeSpan IdoTimeSpan()
  47.         {
  48.             return new TimeSpan(0, 0, hossz);
  49.         }
  50.     }
  51. }
  52.  
  53.  
  54.  
  55. -----------------------------------------------------------
  56.  
  57.    
  58.  
  59. namespace KohariLevente_P99J7Y_M
  60. {
  61.     enum Adathordozo
  62.     {
  63.         Kazetta, CD, Bakelit, Stream
  64.     }
  65.  
  66.     internal class Album
  67.     {
  68.         string eloado, cim;
  69.         Adathordozo adathordozo;
  70.         List<Zeneszam> zeneszamok = new List<Zeneszam>();
  71.  
  72.         public int AlbumDB { get => zeneszamok.Count; }
  73.  
  74.         private Zeneszam ZeneszamFeldolgozas(string s)
  75.         {
  76.             string[] sor = s.Split(';');
  77.             string cim = sor[0];
  78.             string szerzo = sor[1];
  79.             int hossz = int.Parse(sor[2]);
  80.  
  81.             return new Zeneszam(cim, szerzo, hossz);
  82.         }
  83.  
  84.         private void FelveteltHozzaad(Zeneszam z)
  85.         {
  86.             zeneszamok.Add(z);
  87.         }
  88.  
  89.         public Album(string eloado, string cim, string fajl)
  90.         {
  91.             this.eloado = eloado;
  92.             this.cim = cim;
  93.  
  94.             Console.WriteLine("Milyen legyen az adathordozó típusa? (Kazetta,CD,Bakelit,Stream)");
  95.             string be = Console.ReadLine();
  96.             adathordozo = (Adathordozo)Enum.Parse(typeof(Adathordozo), be);
  97.             Console.Clear();
  98.  
  99.             string[] sorok = File.ReadAllLines(fajl);
  100.             foreach (var e in sorok)
  101.             {
  102.                 FelveteltHozzaad(ZeneszamFeldolgozas(e));
  103.             }
  104.  
  105.             //StreamReader sr = new StreamReader(fajl);
  106.             //while (!sr.EndOfStream)
  107.             //{
  108.             //    zeneszamok.Add(ZeneszamFeldolgozas(sr.ReadLine()));
  109.             //}
  110.             //sr.Close();
  111.         }
  112.  
  113.         private string LegrovidebbFelvetel()
  114.         {
  115.             Zeneszam minHossz = zeneszamok[0];
  116.             int minindex = 0;
  117.             for (int i = 0; i < zeneszamok.Count; i++)
  118.             {
  119.                 if (zeneszamok[i].Hossz < minHossz.Hossz)
  120.                 {
  121.                     minHossz = zeneszamok[i];
  122.                     minindex = i;
  123.                 }
  124.             }
  125.             return zeneszamok[minindex].Cim;
  126.         }
  127.  
  128.         public int AdottHosszFelett(int adottHossz)
  129.         {
  130.             int db = 0;
  131.             for (int i = 0; i < zeneszamok.Count; i++)
  132.             {
  133.                 if (zeneszamok[i].Hossz > adottHossz)
  134.                 {
  135.                     db++;
  136.                 }
  137.             }
  138.             return db;
  139.         }
  140.  
  141.         public string[] SzerzoKivalogat(string adottSzerzo)
  142.         {
  143.             List<string> temp = new List<string>();
  144.             for (int i = 0; i < zeneszamok.Count; i++)
  145.             {
  146.                 if (zeneszamok[i].Szerzo.Contains(adottSzerzo))
  147.                 {
  148.                     temp.Add(zeneszamok[i].Cim);
  149.                 }
  150.             }
  151.  
  152.             string[] szerzoDalok = new string[temp.Count];
  153.             for (int i = 0; i < zeneszamok.Count; i++)
  154.             {
  155.                 szerzoDalok[i] = temp[i];
  156.             }
  157.             return szerzoDalok;
  158.         }
  159.  
  160.         public string AlbumStatisztika()
  161.         {
  162.             string kiiratas = $"{eloado} - {cim} ({adathordozo})\n\nDalok száma: {AlbumDB}\nA legrövidebb dal címe: {LegrovidebbFelvetel()}\nA dalok átlagos hossza: ";
  163.  
  164.             int avg = 0;
  165.             for (int i = 0; i < zeneszamok.Count; i++)
  166.             {
  167.                 avg += zeneszamok[i].Hossz;
  168.             }
  169.             avg = avg / AlbumDB;
  170.             TimeSpan atlag = TimeSpan.FromSeconds(avg);
  171.  
  172.             kiiratas += $"{atlag.Minutes}:{atlag.Seconds}\n\n";
  173.  
  174.             for (int i = 0; i < zeneszamok.Count; i++)
  175.             {
  176.                 string[] szerzoDB = zeneszamok[i].Szerzo.Split(',');
  177.  
  178.                 kiiratas += $"{i+1}. {zeneszamok[i].Cim} ({szerzoDB.Length} szerző)\n";
  179.             }
  180.  
  181.             return kiiratas;
  182.         }
  183.     }
  184. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement