bekomme programm nicht fertig zugverbindung.cpp



  • Hallo alle miteinander,
    ich soll ein kleines programm in c fertigstellen nur leider komme ich jetzt nicht mehr weiter. denn jetzt geht es um Zeiger/pointer, da rall ich nichts!
    hier mal das, was ich bis jetzt gemacht habe:

    /*Alle Bibliotheken*/
    
    #include <stdio.h>
    #include <conio.h>
    #include <stdlib.h>
    #include <time.h>
    #include <math.h>
    #include <string.h>
    #include <iostream.h>
    
    // Struktur Bahnhof
    
    struct bahnhof
    {
    	char bname[25];
       struct bahnhof *z_sued;
       struct bahnhof *z_nord;
    };
    
    // Fuktionsprototypen
    
    char *z_ortsname (int i);
    void strecke ();
    void zeige_Fahrstrecke (int i_start);
    
    // Variablen
    struct bahnhof *z_p, *z_q, *z_r, *z_station;
    
    /*// Mainfunktion
    
    int main ()
    {
       int i;
       int start = 0;
    
       z_p = NULL;
    
       for (i = 12; i >= 1; i--)
       {
       	z_q = z_p;
          z_p = (bahnhof*)malloc(sizeof(bahnhof));
    
          strcpy (z_p->bname, z_ortsname(i));
          z_p->z_sued = z_q;
       }
    
       strecke ();
    
       printf ("\n\nBitte Nummer Startbahnhof eingeben: ");
       scanf ("%i", &start);
    
       zeige_Fahrstrecke(start);
    
    	getch ();
       return 0;
    }
     */
    
    // Funktion z_ortsname
    
    char *z_ortsname (int i)
    {
    	char *z_ort[]=
       	{
          	"", "Muenchen", "Augsburg", "Ulm", "Stuttgart", "Heidelberg", "Mannheim", "Frankfurt",
          	"Fulda", "Bebra", "Goettingen", "Hannover", "Hamburg"
          };
       return z_ort[i];
    }
    
    // Fuktion strecke
    
    void strecke ()
    {
       int i=1;
    
    	z_station = (bahnhof*)malloc(sizeof(bahnhof));
       printf ("Streckenfuehrung:\n\n");
    
       for ( z_station = z_p; z_station != NULL; z_station = z_station->z_sued)
       {
          printf("%i: %s\n",i, z_station->bname);
          i++;
       }
    }
    
    // Funktion zeige_Fahrstrecke
    
    void zeige_Fahrstrecke(int i_start)
    {
    	int i, j = 1;
    
       for (i = i_start; i <= 12; i++)
       {
       	z_station->z_sued;
       	printf ("%i: %s\n",j, z_station -> bname);
          j++;
       }
    }
    
    //Funktion Zielbahnhof
    int zielbahnhof()
    	{
       	int zielauswahl=0;
    
          strecke;
          printf("\nBitte geben sie die Nummer ihres gewuenschten Zielbahnhofes an: ");
    
          scanf("%i",&zielauswahl);
    
          printf("\n Ihr Zielbahnhof lautet %i\n\n", zielauswahl);
    
       }
    
    //Funktion Umsteigen
    int umsteigen()
    	{
       	int umauswahl=0;
    
          printf("\nWie oft moechten sie Umsteigen?\n Bitte geben sie eine Zahl an: ");
    
          scanf ("%i", &umauswahl);
    
       }
    
    //Funktion Ticket
    int ticket()
    	{
       	int ticketanzahl=0;
    
          printf("\nBitte geben sie ihre gewuenschte Anzahl an Tickets an: ");
    
          scanf("%i", &ticketanzahl);
    
          return 0;
       }
    
    //Funktion Preis
    int preis()
    	{
       	int preisauswahl=0;
    
          printf("\nIn welcher Preisklasse befinden sich ihre Tickets?\n");
          printf("Erwachsene		(1)\n");
          printf("Kind            (2)\n");
          printf("Bahncard 25		(3)\n");
          printf("Bahncard 50		(4)\n");
          printf("Abbruch			(9)\n");
    
          scanf("%i", &preisauswahl);
    
                switch(preisauswahl)
          	{
             	case 1: printf("Ihre Tickets werden fuer Erwachsene gebucht!\n");
                		  break;
                case 2: printf("Ihre Tickets werden fuer Kinder gebucht!\n");
                		  break;
                case 3: printf("Ihre Tickets werden fuer die Bahncard 25 gebucht!\n");
                		  break;
                case 4: printf("Ihre Tickets werden fuer die Bahncard 50 gebucht!\n");
                	     break;
                case 9: return 0;
             }
          return 0;
       }
    
    //Funktion Hauptmenu
    int hauptmenue()
    	{
       	int hauptauswahl=0;
    
          printf("\nBitte treffen Sie eine Auswahl!\n");
          printf("Zielbahnhof eingeben   (1)\n");
          printf("Umsteigen              (2)\n");
          printf("Ticketanzahl aendern   (3)\n");
          printf("Preisklasse            (4)\n");
          printf("Bahnhoefe anzeigen     (5)\n");
          printf("Abbruch                (9)\n\n");
    
          scanf("%i",&hauptauswahl);
    
          switch(hauptauswahl)
          	{
             	case 1: zielbahnhof();
                		  break;
                case 2: umsteigen();
                		  break;
                case 3: ticket();
                		  break;
                case 4: preis();
                	     break;
                case 5: strecke();
                		  break;
                case 9: return 0;
             }
          return 0;
       }
    
    //Die Mainfunktion
    int main()
    	{
       	while (true)
          {
    			hauptmenue();
          }
          return 0;
       }
    

    Aufgabe ist es ein Infosystem der Bahn nachzuamen!
    Im menu soll man die einzelnen punkte abarbeiten und dann soll zum schluss alles was der benutzer eingegeben hat in einer datei gespeichert werden, die man dann drucken könnte oder so. 😕



  • und? wo zickt es? fehlermeldungen? abstürze?



  • also,
    erstmal zeigt er mir den streckenverlauf nicht an! die funktion zeige_fahrstrecke()

    und dann weiß ich nicht wie ich die einzelenn Angaben wie zb tickets usw außerhalb der funktion speichern kann



  • äh, fang das Programm doch mal von vorne an. Schreib immer einen kleinen Teil und teste ob dieser funktioniert. Wenn der Teil funktioniert, dann mach mit dem nächsten Teil weiter. Einen riesen Klotz zu schreiben und dann da versuchen die Fehler zu finden ist doch sinnlos (ganz zu schweigen davon, das wohl kaum jemand in einem Forum einen derart langen Code für dich debuggen wird).

    Ach ja und versuch bitte konkrete Fragen zu stellen und bei Problemen eine konkrete Fehlerbeschreibung zu geben...



  • versuch doch einfach selber mal zu debuggen



  • Lass dir an diversen Stellen die Inhalte der Variablen anzeigen.



  • Warte mal bis proggingmania kommt, der debbugt dir das ratz fatz 😉



  • hier mal alles was mir so aufgefallen is:

    ➡ die funktionen zielbahnhof und umsteigen geben keinen wert zurück
    ➡ funktionsaufrufe brauchen ein () (siehe strecke;)
    ➡ was hast du mit der iostream.h vor? 😕
    ➡ eine stringarray solltest du mit NULL/0 abschließen.
    ➡ wäre gut die möglichen bahnhöfe zu kenne bevor man sich ein ticket kauft 😉
    ➡ das programm wird nicht korrekt beendet: ein return 0; in hauptmenue verläßt nur diese funktion, nicht aber die main() (exit(0) musste machen)
    ➡ to be continued ...

    Na Warte schrieb:

    Warte mal bis proggingmania kommt, der debbugt dir das ratz fatz

    lol 🤡





  • Na Warte schrieb:

    Warte mal bis proggingmania kommt, der debbugt dir das ratz fatz 😉

    Hö ?
    Ähm, wer hat dir denn den Floh ins Ohr gesetzt, wie kommstn auf das schmale Brett ? 😮



  • sind deine fahrstrecken durhc verkettet Listen aneinander gebunden??

    weil:

    // Struktur Bahnhof
    
    struct bahnhof
    {
        char bname[25];
       struct bahnhof *z_sued;
       struct bahnhof *z_nord;
    };
    

    weil deine struktur wohl auf zwei bahnhöfe zeigt...

    Hast du da verstanden mit verketten listen?


Anmelden zum Antworten