Dovrei scrivere un programma C per la gestione dell’archivio dei soci di un club di macchine d'epoca. In particolare, i dati da mantenere per ciascun associato sono i seguenti:Cognome (stringa di massimo 20 caratteri, può contenere spazi al suo interno),Nome (stringa di massimo 20 caratteri, può contenere spazi al suo interno),Codice fiscale,Indirizzo e-mail,Vetture possedute.Ogni vettura è caratterizzata da:Marca,modello,anno di produzione.definire le seguenti funzioni:Socio: funzione che ha come parametri i dati di una persona e li inserisce nella struttura dati atta a memorizzarli: essa deve leggere le informazioni da standard input ed inserirle in modo ordinato rispetto al cognome e nome; Email: funzione che, accettando in ingresso un modello di vettura ed un periodo temporale definito da due anni, visualizzi su standard output gli indirizzi e-mail di tutti i soci che possiedono una vettura del tipo definito e prodotta nel periodo dato in input;Vettura:funzione che accettando in ingresso il codice fiscale di un socio, permette di aggiungere una vettura a lui associata; main: all’interno del main predisporre un opportuno menu che permetta di scegliere e far eseguire le diverse funzioni implementate.
Allora inizio cosi:
è giusto? come scrivo le altre 2 funzioni? vi ringrazio in anticipo buona giornata[CODE]codice:#include <stdio.h> #include <stdlib.h> #include <string.h> #define MAX 21 typedef struct *lpointer; typedef struct { char marca [MAX]; char modello [MAX]; int anno; }vet; typedef struct { char cognome [MAX]; char nome [MAX]; codfis [MAX]; email [MAX]; vet auto; lpointer next; }user; lpointer entryp=NULL void socio(); void email(); void vettura (); void aggiungi(lpointer pn); lpointer* cerca (lpointer* inizio, char us); void inserisci(*lpointer*pins,lpointer pnodo); main (){ int scelta; for(;; ) { printf("\nMenù archivio soci"); printf("n1) Aggiunta di un socio "); printf("n2) Email soci che possiedono una vettura specifica"); printf("n3) Aggiunta vettura socio "); prinft("n0) Fine"); printf("\nScelta operazione (1,2,3,0) "); scanf("%d", &scelta) if(!scelta) break; switch (scelta) { case 1: socio (); break; case 2: email(): break; case 3: vettura (); } } return 0; } void socio () { lpointer nuovo; nuovo=(lpointer) malloc (size of (user)); if (nuovo==NULL){ printf ("\nMemoria insufficente"); }else{ printf("\nInserimento nuovo Socio"); printf ("\nInserisci nome : ); gets(nuovo->nome); printf(\nInserisci cognome : ) gets(nuovo->cognome); prinf(\nInserisci email : ); gets(nuovo->email); printf(\nInserisci codice fiscale : ); gets(nuovo->codfis); printf(\nInserisci vettura : ); adesso come inserisco la vettura? poi continuando aggiungi(nuovo); } } void aggiungi(lpointer pn) { lpointer *posins; posins=cerca(&entryp,pn->cognome); inserisci(posins,pn); lpointer* cerca(lpointer*inizio, char us) if(*inizio==NULL) return inizio; if(strcmp((*inizio)->cognome,us)>0)) return inizio; inizio=cerca (&((*inizio)->next),us); return inizio; } void inserisci(*lpointer*pins,lpointer pnodo){ pnodo->next=*pins; *pins=pnodo; }

Rispondi quotando