using System; using System.Collections.Generic; using System.Diagnostics.Contracts; using System.IO; using System.Linq; using System.Net; using System.Text; using System.Threading.Tasks; namespace Konyvtari_Rendszer { public class Konyvtar { public List konyvek = new List(); public Konyvtar(List konyvek) { this.konyvek = konyvek; } public Konyvtar() { } public void KonyvFelvetel(Konyv konyv) { if (!konyvek.Contains(konyv)) { konyvek.Add(konyv); return; } for (int i = 0; i < konyvek.Count; i++) { if (konyvek[i].cim == konyv.cim) { konyvek[i].darabszam++; } } return; } public void Kilistazas() { foreach (var item in konyvek) { Console.WriteLine($"Cím: {item.cim}, Szerző: {item.szerzo}, Kiadás éve: {item.kiadasEve}, Darab: {item.darabszam}"); } } private Konyv KeresesCim(string cim) { foreach (var item in konyvek) { if (cim == item.cim) { return item; } } return null; } public void KeresesCimAlapjan(string cim) { Konyv konyv = KeresesCim(cim); if (konyv != null) { Console.WriteLine($"Cím: {konyv.cim}, Szerző: {konyv.szerzo}, Kiadás éve: {konyv.kiadasEve}, Darab: {konyv.darabszam}"); return; } Console.WriteLine("Nincs ilyen című könyv!"); } private List KeresesSzerzo(string szerzo) { List talalatok = new List(); foreach (var item in konyvek) { if (item.szerzo == szerzo) { talalatok.Add(item); } } return talalatok; } public void KeresesSzerzoAlapjan(string szerzo) { List talalatok = KeresesSzerzo(szerzo); if (talalatok.Count != 0) { foreach (var item in talalatok) { Console.WriteLine($"Cím: {item.cim}, Szerző: {item.szerzo}, Kiadás éve: {item.kiadasEve}, Darab: {item.darabszam}"); } return; } Console.WriteLine("A keresett szerzőtől nem találtunk könyvet!"); } public void KonyvModositas(Konyv modositando, Konyv modositott) { for (int i = 0; i < konyvek.Count; i++) { if (konyvek[i].cim == modositando.cim) { konyvek[i] = modositott; return; } } } public void KonyvTorles(Konyv torlendo) { konyvek.Remove(torlendo); } } public class Konyv { public string cim; public string szerzo; public int kiadasEve; public int darabszam = 1; public Konyv(string cim, string szerzo, int kiadasEve) { this.cim = cim; this.szerzo = szerzo; this.kiadasEve = kiadasEve; } public Konyv(string cim, string szerzo, int kiadasEve, int darabszam) { this.cim = cim; this.szerzo = szerzo; this.kiadasEve = kiadasEve; this.darabszam = darabszam; } } internal class Program { static void Main(string[] args) { string path = "C:\\Users\\szabomarton\\Desktop\\C#\\ProgaOra\\20250130\\konyvek.txt"; Konyvtar konyvtar = new Konyvtar(FileReading(path)); Konyv HP = new Konyv("Harry Potter", "J.K.Rowling", 2000); Konyv HP_2 = new Konyv("Harry Potter és a Tűz Serlege", "J.K.Rowling", 2005); Konyv AH = new Konyv("Atomic Habits", "James Clear", 2015); konyvtar.KonyvFelvetel(HP); konyvtar.KonyvFelvetel(HP); konyvtar.KonyvFelvetel(AH); konyvtar.KonyvFelvetel(HP_2); konyvtar.Kilistazas(); konyvtar.KeresesCimAlapjan("Atomic Habits"); konyvtar.KeresesCimAlapjan("Aranyember"); konyvtar.KeresesSzerzoAlapjan("J.K.Rowling"); Console.WriteLine(); konyvtar.KonyvModositas(HP, HP_2); konyvtar.KeresesSzerzoAlapjan("J.K.Rowling"); Console.WriteLine(); konyvtar.KonyvTorles(HP_2); konyvtar.KeresesSzerzoAlapjan("J.K.Rowling"); Console.ReadLine(); } public static List FileReading(string path) { List konyvek = new List(); FileStream fileStream = new FileStream(path, FileMode.Open, FileAccess.Read); StreamReader streamReader = new StreamReader(fileStream); string line = streamReader.ReadLine(); while(line != null) { string[] adatok = line.Split(';'); Konyv konyv = new Konyv(adatok[0], adatok[1], Convert.ToInt32(adatok[2]), Convert.ToInt32(adatok[3])); konyvek.Add(konyv); line = streamReader.ReadLine(); } streamReader.Close(); fileStream.Close(); return konyvek; } } }