Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2015
    Messaggi
    11

    [C] Cancellazione di un elemento da una lista

    ​Salve a tutti, sto lavorando ad un programma che, dopo aver trasferito da un file i dati delle prestazioni effettuate in un centro benessere, li gestisca di volta in volta e, ad un certo punto dell'esercizio, mi viene chiesto di creare una funzione che, chiesto il numero di prestazione che si vuole cancellare, cancelli tale prestazione assegnando all'indice della prestazione il valore 0. Mi date una mano?

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,466
    Quote Originariamente inviata da edc96 Visualizza il messaggio
    ​Salve a tutti, sto lavorando ad un programma che, dopo aver trasferito da un file i dati delle prestazioni effettuate in un centro benessere, li gestisca di volta in volta e, ad un certo punto dell'esercizio, mi viene chiesto di creare una funzione che, chiesto il numero di prestazione che si vuole cancellare, cancelli tale prestazione assegnando all'indice della prestazione il valore 0. Mi date una mano?
    Ma le strutture dati che hai usato, il codice che hai impostato, dove stanno? Una mano si può dare ma si deve capire su cosa e come darla ...

    In altri thrad non hai neanche risposto dopo il primo aiuto ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,304
    Oltre a quanto detto da oregon... in che linguaggio?


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  4. #4
    Utente di HTML.it
    Registrato dal
    Dec 2015
    Messaggi
    11
    Quote Originariamente inviata da oregon Visualizza il messaggio
    Ma le strutture dati che hai usato, il codice che hai impostato, dove stanno? Una mano si può dare ma si deve capire su cosa e come darla ...

    In altri thrad non hai neanche risposto dopo il primo aiuto ...
    Oddio, non avevo visto di aver ricevuto risposte! Chiedo scusa! Comunque ecco:
    codice:
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #define MAX 100
    #define M 50
    //Structures:
    typedef struct{
        char codice[M];
        char tipo[M];
        int durata;
        char cognome_cliente[M];
        char cognome_operatore[M];
        int costo;
        char data_prox[M];
    }prestazione;
    //Prototypes:
    int caricaDati(prestazione[], char[]);
    void valutacosto(prestazione[], int);
    void stampa(prestazione[], int);
    int cerca(prestazione[], int);
    void cancellaPrestazione(prestazione[], int);
    //Main:
    int main (){
        prestazione ElencoPrestazioni[MAX];
        char file1[M]="prestazioni.txt";
        int n_prestazioni=caricaDati(ElencoPrestazioni,file1);
        printf("Totale prestazioni caricate: %d \n", n_prestazioni);
        valutacosto(ElencoPrestazioni,n_prestazioni);
        stampa(ElencoPrestazioni,n_prestazioni);
        cancellaPrestazione(ElencoPrestazioni,n_prestazioni);
        stampa(ElencoPrestazioni,n_prestazioni);
        }
    
    
    //Functions:
    void valutacosto(prestazione ElencoPrestazioni[], int n){
    int i, max=0;
    for(i=0; i<n; i++){
        if(ElencoPrestazioni[i].costo>ElencoPrestazioni[max].costo){
            max=i;
        }
    }
    printf("Il cliente che ha effettuato la prestazione di maggior costo e' %s. \n", ElencoPrestazioni[max].cognome_cliente);
    }
    int caricaDati(prestazione ElencoPrestazioni[], char file[]){
    FILE *fp;
    int tot=0;
    int costo_max=0;
    fp=fopen(file,"r");
    if(fp==NULL){
        printf("Errore nell'apertura del file. \n");
        system ("PAUSE");
        return 0;
    }else{
    
    
            while(!feof(fp)){
                fscanf(fp,"%s",ElencoPrestazioni->codice);
                fscanf(fp,"%s",ElencoPrestazioni->tipo);
                fscanf(fp,"%d",&ElencoPrestazioni->durata);
                fscanf(fp,"%s",ElencoPrestazioni->cognome_cliente);
                fscanf(fp,"%s",ElencoPrestazioni->cognome_operatore);
                fscanf(fp,"%d",&ElencoPrestazioni->costo);
                fscanf(fp,"%s",ElencoPrestazioni->data_prox);
                ElencoPrestazioni++;
                tot++;
            }
    
    
            fclose(fp);
    }
    
    
            return tot;
    }
    void stampa(prestazione ElencoPrestazioni[], int n){
    int i;
    printf("Elenco prestazioni: \n");
    for(i=0; i<n; i++){
        printf("Prestazione %d: \n", i+1);
        printf("Codice:%s \tTipo:%s \tDurata:%d \tCognome cliente:%s \tCognome operatore:%s \tCosto:%d \tData prossimo appuntamento:%s \n",
               ElencoPrestazioni[i].codice,ElencoPrestazioni[i].tipo,ElencoPrestazioni[i].durata,ElencoPrestazioni[i].cognome_cliente,ElencoPrestazioni[i].cognome_operatore,ElencoPrestazioni[i].costo,ElencoPrestazioni[i].data_prox);
    }
    }
    int cerca(prestazione ElencoPrestazioni[], int n){
        int k;
        while(k!=EOF){
            if(k==n) return k;
            else
                k++;
            return -1;
        }
    
    
    }
    
    
    void cancellaPrestazione(prestazione ElencoPrestazioni[], int n){
    int n_prestazione;
    int cancellate=0;
    do{
        printf("Inserire un numero di prestazione: \n");
        scanf("%d", &n_prestazione);
    }while((n_prestazione<=0)||(n_prestazione>n));
    int i;
    int c=cerca(ElencoPrestazioni,n);
    for(i=0; i<n; i++){
        if(c>=0){
            i=0;
            cancellate++;
        }
    }
        printf("Sono state cancellate %d prestazioni: \n", cancellate);
        printf("Prestazione n.%d \n", n_prestazione);
    }

  5. #5
    Utente di HTML.it
    Registrato dal
    Dec 2015
    Messaggi
    11
    Quote Originariamente inviata da LeleFT Visualizza il messaggio
    Oltre a quanto detto da oregon... in che linguaggio?


    Ciao.
    Linguaggio C!

  6. #6

Tag per questa discussione

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 © 2024 vBulletin Solutions, Inc. All rights reserved.