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();
}
}