OPR/Prueffolge.cpp
2025-11-25 08:58:33 +01:00

69 lines
1.2 KiB
C++

/**
* $Author: $
* $Rev: $
* $Date: $
* ACHTUNG: Diese Datei darf nicht verändert werden!
*/
#include "Prueffolge.h"
#include <iostream>
#include <sstream>
using namespace std;
Prueffolge::Prueffolge()
{
}
Prueffolge::~Prueffolge()
{
for(list<Prueffall*>::iterator it=prueffaelle.begin(); it!=prueffaelle.end(); it++)
{
delete *it;
}
}
void Prueffolge::anmelden(std::string bezeichnung, Prueffunktion test)
{
Prueffall* tf = new Prueffall(bezeichnung,test);
tf->funktion = test;
prueffaelle.push_back(tf);
}
void Prueffolge::ausfuehren()
{
int zaehlerTestBestanden = 0;
for(list<Prueffall*>::iterator it=prueffaelle.begin(); it!=prueffaelle.end(); it++)
{
cout << "PRUEFUNG " << (*it)->bezeichnung << ": ";
try
{
(*it)->funktion();
zaehlerTestBestanden++;
cout << "ERFOLGREICH\n";
}
catch(Fehler f)
{
cout << f.beschreibung() << endl;
}
}
cout << zaehlerTestBestanden << " von " << prueffaelle.size() << " Pruefungen erfolgreich\n";
}
void Prueffolge::sicherstellen(bool b, std::string dateiName, int zeile)
{
if(!b)
{
throw Fehler(dateiName, zeile);
}
}
string Prueffolge::Fehler::beschreibung()
{
stringstream s;
s << "FEHLER in " << dateiName << " Zeile " << zeile;
return s.str();
}