205 lines
5.5 KiB
Plaintext
205 lines
5.5 KiB
Plaintext
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<Konyv> konyvek = new List<Konyv>();
|
|
|
|
public Konyvtar(List<Konyv> 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<Konyv> KeresesSzerzo(string szerzo)
|
|
{
|
|
List<Konyv> talalatok = new List<Konyv>();
|
|
foreach (var item in konyvek) {
|
|
if (item.szerzo == szerzo)
|
|
{
|
|
talalatok.Add(item);
|
|
}
|
|
}
|
|
|
|
return talalatok;
|
|
}
|
|
|
|
public void KeresesSzerzoAlapjan(string szerzo)
|
|
{
|
|
List<Konyv> 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<Konyv> FileReading(string path)
|
|
{
|
|
List<Konyv> konyvek = new List<Konyv>();
|
|
|
|
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;
|
|
}
|
|
}
|
|
}
|