Liste in c

di il
60 risposte

60 Risposte - Pagina 2

  • Re: Liste in c

    oregon ha scritto:


    Quindi devi cercarli ed eliminarli nella lista e dopo scrivi tutta la lista nel file. Cosi saranno eliminati anche dal file
    ok ma facciamo che viene uno studente e fa la richiesta del libro.. poi questa deve essere accettata o rifiutata...perciò ho creato un file e ho inserito le richieste.
    La funzione di cancellazione dei libri non funziona se il libro è in testa o in coda
  • Re: Liste in c

    La cancellazione funziona sempre ma che c'entra questo? E perché riempi un file per le prenotazioni? Non ha nessun senso.
  • Re: Liste in c

    oregon ha scritto:


    La cancellazione funziona sempre ma che c'entra questo? E perché riempi un file per le prenotazioni? Non ha nessun senso.
    il progetto chiede di
    1)richiedere un libro
    2)eseguire una richiesta (accettandola o rifiutandola)

    all'inizio pensava di prendere il libro e poi eliminarlo dalla lista ma poi il prof ha detto che non è prendere il libro ma fare una richiesta e no ripeto se il libro è in testa alla lista non lo elimina e se e in coda mi da questo errore : Thread 1: EXC_BAD_ACCESS (code=1, address=0x50)
    Allegati:
    25543_febb7ac8042fe6ec1ccc6b0a892c160e.jpeg
    25543_febb7ac8042fe6ec1ccc6b0a892c160e.jpeg
  • Re: Liste in c

    Di un certo libro puoi avere molte copie. Quando c'è un prestito devi vedere se le copie disponibili sono 0 maggiori di 0 per rifiutarla e accettarla. E aggiorni il numero di copie disponibili. Le richieste vanno in un'altra lista e solo quando termina il programma tutto va salvato nei file.

    Ovviamente non si può parlare di tutto il tuo progetto in un thread.
  • Re: Liste in c

    oregon ha scritto:


    Di un certo libro puoi avere molte copie. Quando c'è un prestito devi vedere se le copie disponibili sono 0 maggiori di 0 per rifiutarla e accettarla. E aggiorni il numero di copie disponibili. Le richieste vanno in un'altra lista e solo quando termina il programma tutto va salvato nei file.

    Ovviamente non si può parlare di tutto il tuo progetto in un thread.
    ma se io voglio avere il caso in cui ho solo una copia nell'archivio come posso risolvere la funzione di eliminazione?
    io in realtà ho fatto la funzione di ricerca ed se il libro è presente allora la richiesta è accettata altrimenti la richiesta e rifiutata ed se viene accettata elimino il libro dalla lista
  • Re: Liste in c

    E quando lo restituisce lo inserisci nuovamente?
  • Re: Liste in c

    oregon ha scritto:


    E quando lo restituisce lo inserisci nuovamente?
    si.. perche se non c'è qualcuno lo ha in prestito e viene eliminato dalla lista
  • Re: Liste in c

    Allora va bene ma tutto in lista e solo alla fine salvi la lista nel file. Le richieste non vanno nel file a meno che non sia richiesto esplicitamente per avere un elenco
  • Re: Liste in c

    oregon ha scritto:


    Allora va bene ma tutto in lista e solo alla fine salvi la lista nel file. Le richieste non vanno nel file a meno che non sia richiesto esplicitamente per avere un elenco
    si dovrei avere un elenco delle richieste tipo una coda di richieste...perciò avevo pensato di richiedere da tastiera i dati inserirli nel file di richieste e poi volevo confrontare il titolo presente nel file di richieste con il titolo dei libri nel file se era presente allora veniva cancellato il libro..ma non so come realizzare questo collegamento
  • Re: Liste in c

    Non è un "collegamento".

    Apri il file, leggi le linee una dopo l'altra e passa i dati alla funzione di eliminazione, poi chiudi il file. Non mi pare impossibile da fare.

    Comunque tutto questo va discusso in un thread diverso da questo in cui si tratta solo della cancellazione.
    Devi aprire un thread per un singolo argomento e non parlare di tutto.
    E il thread non si deve intitolare sempre "liste in c" ma deve avere un titolo adeguato al problema (che so "cancellazione nodo di una lista", "lettuta di un file in una lista" ...) e parlare SOLO di quello.
  • Re: Liste in c

    oregon ha scritto:


    Non è un "collegamento".

    Apri il file, leggi le linee una dopo l'altra e passa i dati alla funzione di eliminazione, poi chiudi il file. Non mi pare impossibile da fare.

    Comunque tutto questo va discusso in un thread diverso da questo in cui si tratta solo della cancellazione.
    Devi aprire un thread per un singolo argomento e non parlare di tutto.
    E il thread non si deve intitolare sempre "liste in c" ma deve avere un titolo adeguato al problema (che so "cancellazione nodo di una lista", "lettuta di un file in una lista" ...) e parlare SOLO di quello.
    Tipo cosi:
    
      
            
            fd = fopen("Richieste.dat", "r");
            fscanf(fp, "%s", titolo);
             ricerca(lista);
             cancellalibri(lista, titolo);
            scriviLista(lista);
            
          fclose(fd);
            
    
    
    
    ok allora la prossima volta aprirò un'altro thread..
  • Re: Liste in c

    La funzione

    ricerca

    scritta in quel modo che fa? Nulla!

    E la scriviLista nel ciclo perché?
  • Re: Liste in c

    oregon ha scritto:


    La funzione

    ricerca

    scritta in quel modo che fa? Nulla!

    E la scriviLista nel ciclo perché?
    la ricerca cerca se il titolo è presente nella lista...ed funziona
    scrivi lista l'avevo scritta per stampare la lista cosi vedevo se si cancellava il libro ma ora va eliminata
  • Re: Liste in c

    Ma scritta in quel modo non ha senso. Cerca di capire ... nel ciclo non c'è controllo su quello che fa la funzione ricerca e le funzioni seguenti vengono COMUNQUE chiamate. Possibile che tu non sappia ancora queste cose di base?
  • Re: Liste in c

    oregon ha scritto:


    Ma scritta in quel modo non ha senso. Cerca di capire ... nel ciclo non c'è controllo su quello che fa la funzione ricerca e le funzioni seguenti vengono COMUNQUE chiamate. Possibile che tu non sappia ancora queste cose di base?
    In un altro forum dove ho chiesto se andava bene mi hanno detto di si la funzione di ricerca è questa
    
    void ricerca (struct libri *l){
    
    int trovato = 0 ;
    char titolo[MAXTITOLO]
    printf("\nInsersici il titolo del libro richiesto:");
    scanf("%s", titolo);
    
    while (l != NULL && trovato != 1) {
      if(strcmp(l->titolo, titolo)==0) {
       printf("\nIl libro richiesto e' presente nell'archivio ed la richiesta è stata accettata.\n");
          trovato=1;
          
    }
    
      l = l->next;
    
    }
    
      if(trovato != 1)
    
       printf("\nIl libro richiesto non e' presente nell'archivio la richiesta è stata rifiutata. La invitiamo ad richiederlo nei prossimi giorni.\n");
    
    }
    
Devi accedere o registrarti per scrivere nel forum
60 risposte