zufällige Rangieraufträge erzeugen!? geht das?



  • Moin!

    Ich hätte da so eine Idee für die "sinnvolle" Beschäftigung mit der Modellbahn. Da ich keine Ahnung von PC-Programmierung habe (ausser CNC-Maschinen), habe ich mich mal umgehört und mir wurde gesagt, daß C++ prima für sowas geeignet sei! Es soll eine lauffähige .exe sein und mit Zufallszahlen arbeiten die in zufälliger Reihenfolge und bestimmter Menge erzeugt werden und niemals doppelt vorkommen dürfen! Näheres zu meinen Gedanken und Vorstellungen in mails. Meines Wissens gibt es sowas noch nicht auf dem Markt! Die oben angeführte Idee ist nur der Anfang von allem! Vielleicht könnte mir mal jemand sagen ob solche Rechenspiele wirklich gut und einfach mit C++ programmiert werden können! Vielleicht geht das ja auch einfach mit einer Tabellenkalkulation zu machen aber optisch ansprechender wäre wohl das eigene Programm, oder?

    MfG ein Modellbahner. 😉



  • Modellbahner schrieb:

    Vielleicht könnte mir mal jemand sagen ob solche Rechenspiele wirklich gut und einfach mit C++ programmiert werden können!

    Hallo und Willkommen,

    Rechenspiele sind eine Spezialität von C++.
    Aber wenn's nur darum geht, dann tut es so ziemlich jede andere Sprache auch. Man nimmt dann halt, was man am besten kann bzw. womit man am liebsten arbeitet.

    Dass die Forderung "niemals gleiche Zahlen" praktische Grenzen hat, sollte aber klar sein.



  • Moin und danke für den Beitrag!

    Meine Forderung "niemals doppelte Zahlen" zu erhalten ist durchaus möglich. Um das zu verstehen müßte ich etwas weiter ausholen und die Idee erklären.

    Ich habe eine Menge A Waggons zur Verfügung. Aus der Menge A möchte ich eine Menge B beliebiger Waggons zusammen gestellt haben und das in einer beliebigen Reihenfolge. Als Beispiel folgendes:

    A = 50 (vorhandene Waggons)
    B = 7 (Anzahl der Waggons die in einen Zug gestellt werden sollen)
    Ergebnis: 23 / 5 / 41 / 16 / 46/ 1 / 31 (ausgewählte Waggons)

    So etwa stelle ich mir die Erstvariante des Ganzen vor. Ausbaustufen sollten dann noch das Ergebnis wieder zerlegen und auf eine bestimmte Anzahl Abstellgleise aufgeteilen.

    Zum Schluß sollte das Programm flexibel sein und an verschiedene Modellbahnanlagen angepasst werden können.

    Und nun das Dumme an der Sache: ich habe keine Ahnung von C++ und mit einer Tabellenkalkulation (z.B. Excel, Corel QuattroPro) bin ich nicht weiter gekommen.

    Wer kann helfen?

    MfG der Modellbahner.



  • Ich poste ungern fertige Lösungen aber andererseits weiß ich, dass der Einstieg leichter fällt, wenn man eine funktionierende Basis zum Rumexperimentieren hat.

    Hier ist mein Vorschlag, wie ich es in C++ umsetzen würde:

    #include <iostream>
    #include <cstdlib>
    #include <vector>
    
    using namespace std;
    
    //Ein Zug besteht aus 7 Waggons
    class Zug
    {
      int Waggons[7];
      int Zuglaenge;
    
      public:
      Zug() {Zuglaenge = 0;}
    
      bool WagenAnkoppeln(int WagenNr);
      std::string Wagenliste();
    };
    
    bool Zug::WagenAnkoppeln(int WagenNr)
    {
      if (Zuglaenge >= 7) return false; //zu lang
    
      Waggons[Zuglaenge] = WagenNr;  
      Zuglaenge++;
    
      return true; //Anhangen erfolgreich
    }
    
    string Zug::Wagenliste()
    {
      if (Zuglaenge == 0) 
        {return "hat keinen Wagen";}
      else
      {
        string Tmp;
        char Buffer[20];
    
        for(size_t i=0; i<Zuglaenge; i++)
        {      
          sprintf(Buffer, "%d ", Waggons[i]);
          Tmp.append(Buffer);      
        }
        return Tmp;
      }
    }
    
    int main()
    {
      vector<int> Wagenhalle;
      Zug Zuege[7];
    
      //Zufallszahlen neu durchmischen
      srand(time(NULL));
    
      //Waggonhalle von 1 bis 50 füllen
      for (size_t i=0; i<50; i++)
        Wagenhalle.push_back(i+1);
    
      //sieben Züge stellen wir zusammen 
      for (size_t i=0; i<7; i++)
      {
        //fuer jeden Zug 7 Waggons
        for (size_t j=0; j<7; j++)    
        {
          size_t Reserve = Wagenhalle.size();
          size_t Pos = (rand() % Reserve);
    
          //wir rollen den Waggon zur Hangartuer :)
          int Tmp = Wagenhalle[Pos];
          Wagenhalle[Pos] = Wagenhalle[Reserve-1];   
          Wagenhalle[Reserve-1] = Tmp;
    
          //und koppeln ihn an und melden ihn in der Halle ab
          Zuege[i].WagenAnkoppeln(Tmp);         
          Wagenhalle.pop_back();
        } 
      }
    
      //Ausgabe
      for (size_t i=0; i<7; i++)
        cout << "Zug Nr." << int(i)+1 << " : " << Zuege[i].Wagenliste() << endl;
    
      cout << "Waggon Nr: " << Wagenhalle[0] << " hat heute frei." << endl;  
    
      return 0;
    }
    


  • es fehlen <string> und <ctime> . Zuglaenge sollte wohl ein size_t sein.

    cheers, Swordfish



  • 😕

    Moin!

    Ich würde es schwer in Ordnung finden wenn dazu noch einige Erklärungen für Laien (also mich) gestanden hätten. Ich kann mit den C++ Codes nichts anfangen!
    Ich kann also Deine Lösung eh nicht umsetzen oder Deine Lösungsvariante "klauen"! Aber Danke das Du dran gearbeitet hast und vielleicht kommen wir ja ins Geschäft.

    Ich möchte die Anzahl vorhandener Waggons (A) und (B) manuell eingeben. Diese Zahlen variieren ja nach Lust und Laune bzw nach Erwerb neuer Waggons.

    Wie groß ist der Aufwand sowas zu programmieren und wie lange dauert sowas?

    der Modellbahner.



  • Hallo Modellbahner!

    Das ganze soll auch die Rangiervorgänge steuern, oder?

    cheers, Swordfish



  • Hi,

    Modellbahner schrieb:

    Ich möchte die Anzahl vorhandener Waggons (A) und (B) manuell eingeben. Diese Zahlen variieren ja nach Lust und Laune bzw nach Erwerb neuer Waggons.

    vielleicht solltest du einfach mal klarstellen, was du genau möchtest.
    Suchst du einen Programmierer, der für dich ein Programm nach deinen Wünschen schreibt, dann schreibe das bitte zusammen mit einem Vorschlag, wie du dir die Entlohnung vorstellst. So wie es auch in dem gelblichen Kästchen hier oben im Forum schon steht.

    Modellbahner schrieb:

    Ich kann mit den C++ Codes nichts anfangen!
    Ich würde es schwer in Ordnung finden wenn dazu noch einige Erklärungen für Laien (also mich) gestanden hätten.

    Möchtest du hingegen das Projekt selbst verwirklichen und suchst nur Hilfestellung, dann wirst du wohl jetzt in die Bibliothek flitzen müssen und mit einem C++ Buch o.Ä. unter dem Arm wieder rauskommen, damit du konkrete Fragen stellen kannst.

    Ich hoffe, das ist jetzt nicht zu ernüchternd, aber die Vergangenheit hier im Projekteforum zeigt, dass es zwischen diesen beiden Seiten keinen erfolgreichen Weg gibt. "Ich liefere die Ideen, ihr mir den Code." wird so nicht funktionieren.

    Modellbahner schrieb:

    Ich kann also Deine Lösung eh nicht umsetzen oder Deine Lösungsvariante "klauen"!

    Schade, dass du es so siehst.



  • Dieser Thread wurde von Moderator/in Korbinian aus dem Forum Projekte in das Forum Rund um die Programmierung verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • Hallo

    Wenn du was zahlen willst und der Preis stimmt, wäre ich interessiert.

    chrische



  • Moin!

    Ich habe natürlich schon mehrfach in diversen Beiträgen gelesen und auch Aussagen über Bezahlung gelesen. Da ich nicht auf der Seite stehe alles für lau haben zu wollen, würde ich natürlich auch für ein gut funktionierendes Programm bezahlen. Aber ich werde einen Teufel tun und sagen was ich ausgeben würde - warum sagt Ihr nicht einfach was Ihr für die Arbeit haben möchtet? Dann kann ich immernoch entscheiden ob ich so ein Programm haben möchte!

    @ swordfish> Nein, das Rangieren übernehme ich manuell mit meiner digitalen Steuerung. Ich möchte lediglich die Aufträge, also die Zusammenstellung des Zuges vorgeschrieben bekommen und ihn dann selber zusammenstellen.

    Sieht also nach einem möglichen Projekt aus! Warum der Beitrag verschoben wurde ...? 😕

    @ chrische5> Sage mir Deinen Preis und wir sehen weiter!

    MfG der Modellbahner.



  • Chrische5, war nett mit Dir Geschäfte zu machen! Mal sehen wie wir das mit dem update und der "Vermarktung" hinbekommen!?

    der Modellbahner



  • Hallo Programmierer.

    Da sich mein bisheriger Programmierer nicht mehr meldet suche ich einen neuen Programmierer der die bisherige letzte Programmversion korrigieren kann und eventuell weiter entwickeln würde. Über Bezahlung wird selbsverständlich vorher gesprochen. Für lau will ich nach wie vor nix haben!
    Es gibt ein schon recht gut aussehendes Programm - es hat allerdings einen Fehler:

    " System.ArgumentOutOfRangeException: InvalidArgument=Value mit dem Wert 0 ist für SelectedIndex ungültig.
    Parametername: SelectedIndex "

    Wer kann und will helfen?

    Gruß, der Modellbahner.



  • hallo

    ich melde mich nicht mehr? habe nie eine mail von dir erhalten.

    chrische



  • na dann ist da wohl einiges schief gelaufen! in einem anderem Thema habe ich Dich auch versucht anzuschreiben, ohne eine Reaktion von Dir!
    http://www.c-plusplus.net/forum/294685-70

    Hättest Du Lust an dem Programm weiter zu basteln?



  • hmm.. das ist doch ansich ein Problem der Kombinatorik, welches man mit "Standardmitteln" sehr einfach lösen kann.. Oder steh ich hier völlig am Schlauch?



  • hallo

    ich denke, dass es etwas sehr kleines ist, habe aber absolut keine zeit. tut mir leid.

    chrische



  • Das ist natürlich bedauerlich!
    Aber wenn Du mal etwas Zeit findest, dann melde Dich. So dass wenigstens der Fehler in der Version 4 noch behoben werden kann und das Programm fehlerfrei läuft!



  • hallo

    sommerferien! ende juli.

    chrische



  • ok, ich warte dann mal ab! Jetzt auch Urlaub.

    Modellbahner


Log in to reply