69 lines
1.2 KiB
C++
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();
|
|
}
|
|
|