PROBLEMA IN PROGRAMMAZIONE C

di il
11 risposte

PROBLEMA IN PROGRAMMAZIONE C

Ragazzi ho un problema devo creare un programma per la gestione di un'azienda dove elenco nome, cognome, data di nascita , ecc. degli operai , quando vado a salvare su file ,il testo mi chiede di fare in modo che il programma vada a creare un file diverso in base alla lettera iniziale del nome dell'operaio inserito. Qualcuno sa come fare??? uso come programma Devc++.

11 Risposte

  • Re: PROBLEMA IN PROGRAMMAZIONE C

    Ragazzi ...
    Il fatto è che devi farlo tu. E mostrarci dove hai problemi o malfunzionamenti ... e se ne parla.
  • Re: PROBLEMA IN PROGRAMMAZIONE C

    Io volevo sapere come fare per far salvare automaticamente un file diverso per ogni lettera iniziale diversa, perche includerli nello stesso file so come farlo
  • Re: PROBLEMA IN PROGRAMMAZIONE C

    I dati degli operai dove li hai inseriti? Hai del codice su cui discutere?
  • Re: PROBLEMA IN PROGRAMMAZIONE C

    Basta che tu crei 26 file (a.txt, b.txt, c.txt...) e in ciascuno metta solo i dati relativi a quelle schede dove compaiono nomi che iniziano con la lettera che dà nome al file.
  • Re: PROBLEMA IN PROGRAMMAZIONE C

    Questo è un programma fatto simile ad una rubrica , anche qui penso che possiate aiutarmi , ovviamnete il file con la lettera deve crearsi automaticamente e non devo crearlo io

    typedef struct contatto
    {
    char nome[20];
    char cognome[20];
    char numero[20];

    }t_contatto;

    void inserimento_dati(t_contatto c[],int n)
    {
    int i;

    printf("\nInserisci il nome:");
    scanf("%s",&c.nome);
    printf("\nInserisci il cognome:");
    scanf("%s",&c.cognome);
    printf("\nInserisci il numero:");
    scanf("%s",&c.numero);

    FILE *fp;
    fp=fopen("contatto.txt","a+");
    if(fp!=NULL)
    {
    fprintf(fp,"%s\t%s\t%s",c.nome,c.cognome,c.numero);
    }
    }
    void LeggiDati_contatto(t_contatto c[],int *n)
    {
    FILE *fp;
    fp=fopen("contatto.txt","r");
    int i;
    for(i=0;!feof(fp);i++)
    {
    fscanf(fp,"%s\t%s\t%s",c.nome,c.cognome,c.numero);
    printf("\nNome : %s",c.nome);
    printf("\nCognome: %s",c[i].cognome);
    printf("\nNumero: %s",c[i].numero);
    }

    fclose(fp);
    }

    void Scrivi_su_file(t_contatto c[],int n)
    {
    FILE *fp;
    fp=fopen("contatto.txt","w+");
    int i;
    for(i=0;i<n;i++)
    {
    fprintf(fp,"%s\t%s\t%s",c[i].nome,c[i].cognome,c[i].numero);
    }
    fclose(fp);
    }

    void stampa(t_contatto c[],int n)
    {
    int i;
    for(i=0;i<n;i++)
    {
    printf("\nNome : %s",c[i].nome);
    printf("\nCognome: %s",c[i].cognome);
    printf("\nNumero: %s",c[i].numero);
    }
    }


    void main()
    {
    t_contatto rubrica[20];
    char scelta;
    int n;
    int s;

    do
    {
    system("cls");
    printf(" \t\t<<<<<< RUBRICA >>>>>>");
    printf("\n\n1 Inserisci un nuovo contatto");
    printf("\n2 visualizza contatti");
    printf("\n3 Esci");
    printf("\nInserisci la tua scelta ---->");
    scanf("%c",&scelta);

    switch(scelta)
    {
    case '1': inserimento_dati(rubrica,3);
    break;

    case '2': LeggiDati_contatto(rubrica,10);
    break;

    case '3': Esci:
    {
    printf("vuoi uscire?");
    printf("\nS o N\n");
    scanf("%s",&scelta);
    if(scelta=='s')
    {
    printf("Chiusura!");
    }
    else
    {
    scelta='n';
    printf("ok");
    }
    break;
    }


    default:; break;
    }
    getch();

    }while(scelta!='s');
    }
  • Re: PROBLEMA IN PROGRAMMAZIONE C

    Usa i tag code per il codice nel forum altrimenti non si capisce nulla. In ogni caso in quel codice ci sono errori nell'uso dell'indice i molto evidenti e non funzionerà...

    Poi che vuol dire creare automaticamente i file? Sei tu che devi inserire il codice che lo faccia.

    Puoi farlo da menu scegliendo una opzione Salva oppure ogni volta che inserisci un nuovo nominativo. In tutti e due i casi, potresti prima ordinare i nomi per poterli salvare in maniera più veloce. Oppure, senza ordinate, con un ciclo, prelevi il primo carattere di ogni nome e lo usi per aprire il file corrispondente e salvare i dati.
  • Re: PROBLEMA IN PROGRAMMAZIONE C

    Quando chiami fopen() specificando una qualsiasi modalità che implichi scrittura, se il file esiste viene aperto, se non esiste viene creato "automaticamente".
  • Re: PROBLEMA IN PROGRAMMAZIONE C

    Allora il programma così creto funziona perfettamente , allora crea automaticamente vuol dire che ogni volta che inserisco un nuovo contatto invece di andare a salvare tutti i contatti in un solo file , in base alla lettera iniziale del nome del contatto inserito il programma va a creare un file diverso, ad esempio inserisco come nome alessandro e me lo salva in un file chiamato A, inserisco uno che si chiama davide e me lo salva in un file chiamato D, non so come fare in modo che avvenga questo meccanismo, ovviamente so che bisogna creare un ciclo che prelevi la lettera iniziale ma non so come fare, qualcuno sa farlo?
  • Re: PROBLEMA IN PROGRAMMAZIONE C

    Quando si apre il menù e devo scegliere un'alternativa in base all'azione desiderata devo scegliere il numero e poi premere invio, sapete come fare ad evitare di dover premere invio per accettare la scelta , cioè appena premo il numero si avvia direttamente la scelta
  • Re: PROBLEMA IN PROGRAMMAZIONE C

    daniextreme ha scritto:


    Allora il programma così creto funziona perfettamente
    No che non funziona, poi fai come vuoi ...
    allora crea automaticamente vuol dire che ogni volta che inserisco un nuovo contatto invece di andare a salvare tutti i contatti in un solo file , in base alla lettera iniziale del nome del contatto inserito il programma va a creare un file diverso, ad esempio inserisco come nome alessandro e me lo salva in un file chiamato A
    Questo l'avevamo capito e ti ho spiegato come fare ...
  • Re: PROBLEMA IN PROGRAMMAZIONE C

    daniextreme ha scritto:


    Quando si apre il menù e devo scegliere un'alternativa in base all'azione desiderata devo scegliere il numero e poi premere invio, sapete come fare ad evitare di dover premere invio per accettare la scelta , cioè appena premo il numero si avvia direttamente la scelta
    Dovresti usare la funzione keybhit ma non è standard ... dipende dal sistema operativo.
Devi accedere o registrarti per scrivere nel forum
11 risposte