Skip to content
B

Bibliotheksverwaltungsytem OOP

namespace OOP_Praktikum_Klasse_Buch; using System; using System.Collections.Generic;

// Enum für Buchkategorien enum Kategorie { Roman, Wissenschaft, Fantasy, Geschichte, Biografie }

// Enum für Buchstatus enum BuchStatus { Verfuegbar, Ausgeliehen, Reserviert, Beschaedigt, Veraltet }

// Klasse Buch class Buch { // Attribute und Properties public string Titel { get; private set; } public string Autor { get; private set; } public string ISBN { get; private set; } public Kategorie Kategorie { get; private set; } public BuchStatus Status { get; private set; }

// Ausleihhistorie und Bewertungen
private List<string> AusleihHistorie = new List<string>();
private List<double> Bewertungen = new List<double>();

// Konstruktor
public Buch(string titel, string autor, string isbn, Kategorie kategorie)
{
    Titel = titel;
    Autor = autor;
    ISBN = isbn;
    Kategorie = kategorie;
    Status = BuchStatus.Verfuegbar;
}

// Methoden
public void Ausleihen(string nutzer)
{
    if (Status != BuchStatus.Verfuegbar)
    {
        Console.WriteLine($"Das Buch '{Titel}' ist nicht verfügbar.");
        return;
    }
    Status = BuchStatus.Ausgeliehen;
    AusleihHistorie.Add(nutzer);
    Console.WriteLine($"Das Buch '{Titel}' wurde von {nutzer} ausgeliehen.");
}


public void Zurueckgeben()
{
    if (Status != BuchStatus.Ausgeliehen)
    {
        Console.WriteLine($"Das Buch '{Titel}' kann nicht zurückgegeben werden.");
        return;
    }
    Status = BuchStatus.Verfuegbar;
    Console.WriteLine($"Das Buch '{Titel}' wurde zurückgegeben.");
}

public void Bewerte(double bewertung)
{
    if (bewertung < 0 || bewertung > 5)
    {
        Console.WriteLine("Bitte geben Sie eine Bewertung zwischen 0 und 5 ein.");
        return;
    }
    Bewertungen.Add(bewertung);
    Console.WriteLine($"Bewertung von {bewertung} für '{Titel}' hinzugefügt.");
}


public double Durchschnittsbewertung()
{
    if (Bewertungen.Count == 0)
        return 0;
    double sum = 0;
    foreach (var bewertung in Bewertungen)
    {
        sum += bewertung;
    }
    return sum / Bewertungen.Count;
}

public void MarkiereAlsBeschädigt()
{
    Status = BuchStatus.Beschaedigt;
    Console.WriteLine($"Das Buch '{Titel}' wurde als beschädigt markiert.");
}

}

// Beispielanwendung class Program { static void Main(string[] args) { Buch buch = new Buch("Der Herr der Ringe", "J.R.R. Tolkien", "123-456-789", Kategorie.Fantasy);

    buch.Ausleihen("Max Mustermann");
    buch.Bewerte(4.5);
    buch.Bewerte(5.0);
    Console.WriteLine($"Durchschnittsbewertung: {buch.Durchschnittsbewertung()}");
    buch.Zurueckgeben();
    buch.MarkiereAlsBeschädigt();
}

}