예제 #1
0
int main()
{
    Linie l;
    Kreis k, k1, k2;

    zeichne(l);            // zeichne(GeoObj&) => Linie::draw()
    zeichne(k);            // zeichne(GeoObj&) => Kreis::draw()

    abstand(k1,k2);        // abstand(GeoObj&,GeoObj&)
    abstand(l,k);          // abstand(GeoObj&,GeoObj&)

    std::vector<GeoObj*> menge;  // inhomogene Menge
    menge.push_back(&l);         // Linie einfügen
    menge.push_back(&k);         // Kreis einfügen
    ausgeben(menge);             // Menge ausgeben
}
예제 #2
0
int main(int argc, char* argv[]) {
//./r-spantree -in path/to/file/ -out (path

    //Eingabe-Validierung
    if( argc != 5 && argc != 3) {
        printf("Unzulässige Anzahl an Argumenten: %d \n", argc);
        showUsage();
        return 2;
    }
    printf("Moin, dies ist der Aufruf von r-spantree.\n");
    //Parameter filtern
    eval_parameter = false;
    for(int i = 1; i < argc - 1; i++ ) {
        //Argument erfassen
        string s = argv[i];
        //Ist der -in Parameter erfasst, lese die Datei aus folgenden Path ein.
        if(s.compare( "-in" ) == 0) {
            input_path = argv[i+1];
        }
        if(s.compare( "-out" ) == 0) {
            output_path = argv[i+1];
        }
        //Ist der -eval Parameter erfasst, setze die entsprechende flag
        if(s.compare( "-eval" ) == 0) {
            eval_parameter = true;
            input_path = argv[i+1];
        }
    }

    //Hier soll später das Ergebnis gespeichert werden.
    long best_cost = -1;

    //Parameter Bearbeitung/Validierung
    einlesen(input_path);
    if(eval_parameter == true) {
        //Führe Validierung
        bool erfolg = validate();
        if(erfolg) {
            //Validierung erfolgreich
            printf("valide Lösung\n");
            return 0;
        } else {
            //Lösung ist nicht valide.
            printf("ERROR:\n");
            std::cout << fehlertext.str();
            return 1;
        }
    } else {
        //---------------------------------------------------
        //HIER werden die Optimierungsansätze eingefügt bzw.
        //Optimierungsmethoden Aufruf findet HIER statt.

        //Führe Optimierung durch
        start_zeit = clock();
        best_cost = optimize(&knotenliste, &kantenliste, anzahl_knoten, anzahl_kanten);
        end_zeit = clock();
        //Wenn die Optimierung erfolgreich war,
        if(best_cost != -1) {
            //Schreibe das Ergebnis in die Ausgabedatei raus
            ausgeben(output_path);
        }

        //-------------------------------------------------
    }

    //'best_cost' immer mit den errechneten Kosten der Lösung belegen.
    //ODER -1 bei Fehlschlag
    printf("%ld %ld\n", best_cost, ((end_zeit - start_zeit) * 1000) / CLOCKS_PER_SEC );
    return 0;
}