Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2012
    Messaggi
    35

    Problema con un errore

    Scrivendo un programma per la gestione di un officina, quindi mi doveva fare l'inserimento di u auto, la modifica dei dati, la ricerca per targa e la stampa di tutte le auto.
    andando a compilarlo mi dava questi errori, che non riesco a capire:

    In function `main':
    syntax error at end of input

    potreste darmi una mano nella correzione del codice???

    vi posto il codice :

    codice:
    # include <stdio.h>
    # include <stdlib.h>
    # include <string.h>
    
    struct veicolo
        {
            char *targa;
            char *modello;
            char *nomeP;
            char *cognomeP;
            char *intervento;
            char *data;
            int ingressi;
            struct veicolo *next;
            };
            
            
    void inserimento(char *tar, char *mod, char *no, char *cog, char *inte, char *dat);
    void cerca(char *tar);
    void modifica(char *t);
    void stampa_auto(char *tar);
    void stampa();
    
    
    struct veicolo *officina;
    const int dimS=30;
    
     main()
    {
    char risp='\0', targa[dimS], modello[dimS], nomeP[dimS], cognomeP[dimS], intervento[dimS], data[dimS];
    int ingressi;
    
    struct veicolo *v;
         
         while (risp!='u'){
               printf("***che operazione vuoi eseguire?***\n");
               printf("i per inserire un nuovo veicolo\n");
               printf("c per cercare un veicolo inserendo la targa\n");
               printf("m per modificare i dati di un veicolo\n");
               printf("p per la stampa\n");
               printf("s per stampare un veicolo inserendo la targa\n");
               printf("u per uscire\n");
               scanf("%c",&risp);
               fflush(stdin);
               switch(risp){
                          
                    case 'i' :
                           printf("inserire targa\n");
                           gets(targa);
                           fflush(stdin);
                           printf("inserire modello\n");
                           gets(modello);
                           fflush(stdin);
                           printf("inserire nome\n");
                           gets(nomeP);
                           fflush(stdin);
                           printf("inserire cognome\n");
                           gets(cognomeP);
                           fflush(stdin);
                           printf("inserire la riparazione\n");
                           gets(intervento);
                           fflush(stdin);
                           printf("Inserire la data \n");
                           gets(data);
                           fflush(stdin);
                           inserimento(targa,modello,nomeP,cognomeP,intervento,data);
                           break;
                           
               case 'c' :
                          printf("Inserisci la targa:\n");
                          gets(targa);
                          fflush(stdin);
                          cerca(targa);
                          break;
                          
                          
                          case 'm':
                          printf("Inserisci la targa del veicolo da modificare:\n");
                          gets(targa);
                          fflush(stdin);
                          modifica(targa);
                          break;
                          
                          
                          case 'p' :
                          stampa();
                          break;
                          
                          
                          case 's':
                         printf("Inserisci la targa del veicolo da stampare:\n");
                          gets(targa);
                          fflush(stdin);
                          stampa_auto(targa);
                          break;
                          
                          case 'u' :
                          break;
                          
                          default:
                          printf("Scelta errata.\n");
                          break;
                          
                          
                          }
                          system("PAUSE");    
    }
                            
    
        
    void inserimento(char *t,char *mod,char *n,char *cog, int c,char *inte, char *dat)
    {
         struct veicolo *v,*curr, *prev;
         int ingresso =1;
         v=malloc(sizeof(struct veicolo));
         v->targa=malloc((strlen(t)+1)*sizeof(char));
         strcpy(v->targa,t);
         v->modello=malloc((strlen(mod)+1)*sizeof(char));
         strcpy(v->modello,mod);     
         v->nomeP=malloc((strlen(n)+1)*sizeof(char));
         strcpy(v->nomeP,n);
         v->cognomeP=malloc((strlen(cog)+1)*sizeof(char));
         strcpy(v->cognomeP, cog);
         v->intervento=malloc((strlen(inte)+1)*sizeof(char));
         strcpy(v->intervento,inte);
         v->data=malloc((strlen(dat)+1)*sizeof(char));
         strcpy(v->data, dat);
         v->ingressi=ingresso;
         v->next=NULL;
         
         prev=NULL;
         curr=officina;
         
         if (!officina || strcmp(curr->targa,t)>=0){
                       v->next=officina;
                       officina=v;
                       }
            else{
                 while (curr && strcmp(curr->targa,t)<0){
                       prev=curr;
                       curr=curr->next;
                       }
                 prev->next=v;
                 v->next=curr;
            }
    }
        
                            
    void modifica(char *t){
         struct veicolo *v;
         char risp,temp[dimS], temp2[dimS];
         int cil;
         
         v=officina;
         
         while(v && strcmp(v->targa,t)!=0)
                 v=v->next;
                 
         if(v){
               printf("che dato vuoi modificare?\n");
               printf("0 targa\n");
               printf("1 tipo\n");
               printf("2 nome\n");
               printf("3 cilindrata\n");
               printf("4 riparazione\n");
               scanf("%c",&risp);
               fflush(stdin);
               switch (risp){
                      case '0':
                           printf("inserire nuova targa\n");
                           gets(temp);
                           fflush(stdin);
                           strcpy(v->targa,temp);
                           break;
                      case '1':
                           printf("inserire nuovo modello\n");
                           gets(temp);
                           fflush(stdin);
                           strcpy(v->modello,temp);
                           break;
                      case '2':
                           printf("inserire nuovo nome\n");
                           gets(temp);
                           fflush(stdin);
                           printf("inserire cognome\n");
                           gets(temp2);
                           fflush(stdin);
                           strcpy(v->nomeP,temp);
                           strcpy(v->cognomeP, temp2);
                           break;
                      case '3':
                           printf("inserire nuova cilindrata\n");
                           scanf("%d",&cil);
                           fflush(stdin);
                           break;
                      case '4':
                           printf("inserire nuova intervento\n");
                           gets(temp);
                           fflush(stdin);
                           strcat(v->intervento,temp);
                           v->ingressi++;
                           break;                    
                      default:
                           printf("scelta errata,riselezionare\n");
                           break;
                      }
               }
               else
                   printf("veicolo non trovato\n");
    }                                        
                            
                            
    
    void cerca(char *t)
        {
        struct veicolo *v;
        v=officina;
        
         while(v)
              {
              if(strcmp(v->targa, t)==0)            
                        {
                        printf("L'auto cercata e' stata riparata nell'officina.\n");
                        return;
                        }
                        else
                               printf("Auto non presente nell'archivio.\n");
                               v=v->next;
                                            
              } 
              if(!v)
                        printf("Auto non presente.\n");
                        return;
                        
              
        }
        
        
    void stampa(){
         struct veicolo *v;
         v=officina;
         
         while (v){
            printf("Targa veicolo:         %s\n", v->targa);
            printf("modello:               %s\n", v->modello);
            printf("nome proprietario:     %s\n", v->nomeP);
            printf("cognome proprietario:  %s\n", v->cognomeP);
            printf("intervento effettuato: %s\n", v->intervento);
            printf("data :                 %s\n", v->data);
            printf("numero di interventi:  %d\n", v->ingressi);
               v=v->next;
               }
               return;
    }                 
    
    void stampa_auto(char *t)
    {
        struct veicolo *v;
        
        v=officina;
       
        if(strcmp(v->targa, t)==0)
        {
            printf("Targa veicolo:         %s\n", v->targa);
            printf("modello:               %s\n", v->modello);
            printf("nome proprietario:     %s\n", v->nomeP);
            printf("cognome proprietario:  %s\n", v->cognomeP);
            printf("intervento effettuato: %s\n", v->intervento);
            printf("data :                 %s\n", v->data);
            printf("numero di interventi:  %d\n", v->ingressi);
            
        }
        else
            printf("Auto non trovata.\n");
            
    }

  2. #2
    Utente di HTML.it
    Registrato dal
    Jan 2011
    Messaggi
    115

    Re: Problema con un errore

    codice:
    system("PAUSE"); 
    // Valore di ritorno
    }
    Hai dimenticato il valore di ritorno della funzione main().

  3. #3
    Utente di HTML.it L'avatar di torn24
    Registrato dal
    Aug 2008
    Messaggi
    551

    ciao

    Manca la parentesi graffa di chiusura del main()

    nella funzione inserimento hai un parametro di troppo

    void inserimento(char *t,char *mod,char *n,char *cog, int c,char *inte, char *dat)

    TOGLI int c che sembra che non usi , dovrebbe funzionare con queste correzioni !
    Tecnologia

  4. #4
    Utente di HTML.it
    Registrato dal
    Jul 2012
    Messaggi
    35
    grazie per i consigli.......adesso funziona, grazie ragazzi

  5. #5

    Moderazione

    Amaro C++, il gusto pieno dell'undefined behavior.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.