public static void Beolvasas_Feltoltes(lejatszo <Izene> lejatszo) // Beolvassuk a zenéket { Console.Clear(); StreamReader sr = new StreamReader("beolvas.txt"); string[] sor; while (!sr.EndOfStream) { sor = sr.ReadLine().Split(';'); if (sor[0] == "konnyuzene") { if (int.Parse(sor[4]) > 100000) { Console.WriteLine("Sajnos ez a fájl túl nagy méretű volt ezért nem töltődött fel"); } else { lejatszo.UjZeneFeltoltes(new komolyzene(sor[1], sor[2], int.Parse(sor[3]), int.Parse(sor[5]), int.Parse(sor[4])), int.Parse(sor[5])); } } else if (sor[0] == "komolyzene") { if (int.Parse(sor[4]) > 100000) { Console.WriteLine("Sajnos ez a fájl túl nagy méretű volt ezért nem töltődött fel"); } else { lejatszo.UjZeneFeltoltes(new komolyzene(sor[1], sor[2], int.Parse(sor[3]), int.Parse(sor[5]), int.Parse(sor[4])), int.Parse(sor[5])); } } else if (sor[0] == "sajatzene") { if (int.Parse(sor[2]) > 100000) { Console.WriteLine("Sajnos ez a fájl túl nagy méretű volt ezért nem töltődött fel"); } else { lejatszo.UjZeneFeltoltes(new sajatzene(int.Parse(sor[2]), int.Parse(sor[1])), 5); } } } Console.ReadLine(); Console.Clear(); sr.Close(); }
static void Main(string[] args) { int meret = 100000; // a mérete a memóriának try { string exit; // a felhasználói bevitel int db = 0; // ennek a kicsi darab változónak a lényege ,hogy ha egyszer lefutott a Beolvasas_Feltoltes akkor már nem töltünk fel újra, hanem már megvan az összes zeneszám egy stringbe beletöltve // és ha már megvan, az összes string léptetjük a db ot és ha 2 szer léptettük , már csak a zeneszámokat és adatait írja ki majd nekünk //példányosítás lejatszo <Izene> lejatszo = new lejatszo <Izene>(meret); //Feliratkoztatások 7. feladat lejatszo.ertekeles_valtozas_kiiras += Naplozas.Ertekeles_Megvaltozas; lejatszo.lejatszaskiiras += Naplozas.ZeneLejatszas; lejatszo.regi_szamok_torlese_kiiras += Naplozas.Regi_szamok_torlese; lejatszo.uj_szam_feltoltes_kiiras += Naplozas.Uj_szam_feltoltese; //menürendszer do { db++; // db változó léptetése Console.Title = "A saját zenelejátszód : Menü"; Console.WriteLine("Warning: ( A 2 -es menüpont csak az 1. feltöltés után működik , ezért kérlek nyomd meg az 1-es gombot"); Console.WriteLine("1 - A zenéid feltöltése / megtekintése"); Console.WriteLine("2 - A zenéid meghallgatása "); Console.WriteLine("esc - kilépés"); exit = Console.ReadLine(); // felhasználói bevitel if (exit.Equals("1")) { if (db < 2) { Beolvasas_Feltoltes(lejatszo); // itt beolvassa a zenéidet a fájlból majd megnézi h megfelelő-e a méret , ha igen akkor feltölti } else { Console.Clear(); Console.Title = " Könyvtárad "; lejatszo.Kiiras(); Console.ReadLine(); Console.Clear(); } } else if (exit.Equals("2")) { Console.Clear(); Console.Title = "A saját zenelejátszód"; lejatszo.lejatszas(lejatszo, meret); Console.ReadLine(); Console.Clear(); } else if (exit.Equals("esc")) { Console.Clear(); Console.Title = "A saját zenelejátszód : kilépés"; Console.WriteLine("Most kilépsz a zenelejátszóból, köszönjük hogy minket választottál ! További szép napot :)"); Console.ReadLine(); Console.Clear(); } else { Console.WriteLine("Mellényúltál ,az ENTER -lenyomása után próbáld újra"); Console.ReadLine(); Console.Clear(); } } while (!exit.Equals("esc")); } catch (MarVanIlyenZeneException e) { Console.WriteLine(e.Message); } catch (MegteltAMemoriaException e) { Console.WriteLine(e.Message); } finally { Console.ReadLine(); } }
public void lejatszas(binaris_fa p, ref lejatszo <t> lejatszas_0) { string beirt = ""; // amiben leírja a felhasználó hogy tetszett e neki, e vagy sem a zene int beirt_ertekeles = 0; // amiben értékel a felhasználó // do while azért kell ,mert ha mellé ütünk ne legyen hiba bool igaz_e = false; // külső do while ha a beirt adat i vagy n akkor kilép a do whileból bool igaz_e2 = false; // belső do while ha a beírt adattal nem lesz több vag kevesebb az értékelés mint 5 kilép a do whileból int elozo_ertekeles = 0; // kell mert szeretnék a hallgatók ,hogy kiírjam nekik a jelenlegi értékelést ,hogy tudják azt ,hogy mennyit lehet változtatni rajta if (p != null) { lejatszas(p.balelem, ref lejatszas_0); lejatszas(p.jobbelem, ref lejatszas_0); for (int i = 0; i < p.adatok.Count; i++) //a listát átpörgetjük és csak a végéig megyünk { t adat = p.adatok[i]; //a mostani adatokat lementjük , hogy a metódus végén felhasználjuk elozo_ertekeles = adat.ertekeles; // kell hogy kitudjuk iratni az eredeti értéket do { Console.WriteLine("Az " + (i + 1) + ". zeneszám lejátszódott. Hogy tetszett? // (i) - igen tetszett ! , (n) - nem tetszett"); beirt = Console.ReadLine(); Console.Clear(); if (beirt == "i") { igaz_e = true; do { Console.WriteLine("Látom tetszett a zene"); Console.WriteLine("Eredeti értékelés: {0}", elozo_ertekeles); Console.WriteLine("Mennyivel szeretnéd növelni az értékelést ? "); beirt_ertekeles = Convert.ToInt32(Console.ReadLine()); Console.Clear(); if (adat.ertekeles + beirt_ertekeles <= 5) { igaz_e2 = true; } else { igaz_e2 = false; Console.WriteLine("Az értékelésed meghaladja az 5-ös (maximum értéket)! jelenlegi értékelés : {0}", adat.ertekeles); Console.WriteLine("Nyomj egy ENTER -t az újrapróbálkozáshoz"); Console.ReadLine(); Console.Clear(); } } while (igaz_e2 != true); adat.ertekeles = adat.ertekeles + beirt_ertekeles; // ha megfelelt ,akkor hozzáadjuk az értékelést } else if (beirt == "n") { igaz_e = true; do { Console.WriteLine("Látom nem tetszett a zene"); Console.WriteLine("Eredeti értékelés: {0}", elozo_ertekeles); Console.WriteLine("Mennyivel szeretnéd csökkenteni az értékelést ? "); beirt_ertekeles = Convert.ToInt32(Console.ReadLine()); Console.Clear(); if (adat.ertekeles - beirt_ertekeles > 0) { igaz_e2 = true; } else { igaz_e2 = false; Console.WriteLine("Az értékelésed nem éri el a 0-ás (minimum értéket)! jelenlegi értékelés : {0}", adat.ertekeles); Console.WriteLine("Nyomj egy ENTER -t az újrapróbálkozáshoz"); Console.ReadLine(); Console.Clear(); } } while (igaz_e2 != true); adat.ertekeles = adat.ertekeles - beirt_ertekeles; // ha megfelelt kivonjuk } else { igaz_e = false; Console.WriteLine("Nem jó gombot ütöttél le, lehet csak megcsúszott a kezed :). A beirt adatod {0} ", beirt); Console.WriteLine("Kérlek az ENTER-gomb lenyomása után próbáld újra !"); Console.ReadLine(); Console.Clear(); } } while (igaz_e != true); Console.WriteLine("Szuper, az értékelés megváltozott! (kivéve ha 0-át írtál be, te kis sunyi :) )"); Console.WriteLine("Eredeti értékelés: {0}", elozo_ertekeles); Console.WriteLine("Új értékelés: {0}", adat.ertekeles); Console.WriteLine("Az ENTER lenyomásával tovább léphetsz"); ertekeles_valtozas_kiiras?.Invoke(); // esemény elsütés Console.ReadLine(); Console.Clear(); lejatszaskiiras?.Invoke(); // esemény elsütés } } } // itt történik az zenék meghallgatása és értékelése
public void lejatszas(lejatszo <t> lejatszo1, int meret) // lejátszás metódus ami létrehozza a binaris fát, és lefuttatja a "lejatszas" metódust { lejatszo1 = new lejatszo <t>(meret); // megadjuk a méretet lejatszas(gyoker, ref lejatszo1); }