perillitommaso (Normal User)
Pro
Messaggi: 186
Iscritto: 28/01/2014
|
Codice sorgente - presumibilmente C# |
void menu();//procedura menu int choose();//procedura scelta void gestione(int *c,int scelta,t_Dati *datianagrafici[]);//procedura che gestisce la banca dati void inserisci_dati(int *c,t_Dati *datianagrafici[]);//procedura che inserisci i dati dei clienti nella banca dati void ricerca_cognome(int *c,t_Dati *datianagrafici[]);//procedura che ricerca un cliente in base al cognome /*Programma Principale*/ int main(int argc,char ** argv) { t_Dati datianagrafici[max];//array di record int scelta;//variabile scelta int c=0;//contatore dei clienti inseriti printf("\t\t\t--BANCA DATI STUDIO DENTISTICO--"); printf("\t\t\tPROGRAMMA REALIZZATO DA TOMMASO PERILLI"); do{ menu();//procedura menu scelta = choose();//procedura scelta gestione(&c,scelta,&datianagrafici );//procedura che gestisce la banca dati system("cls");//cancella lo schermo }while(scelta!=3);//cicla fin quando non usciamo 3=exit printf("\t\t\tPROGRAMMA REALIZZATO DA TOMMASO PERILLI"); system("PAUSE"); return(0); }
|
ho messo solo un pezzo di codice perchè mi sembra inutile inserirlo tutto dato che l'errore è presente solo in questo pezzo. Innanzitutto datianagrafici è un array di record, voglio passarlo per riferimento ma mi da errore:
cannot convert `t_Dati (*)[100]' to `t_Dati**' for argument `3' to `void gestione(int*, int, t_Dati**)' ù
qualcuno potrebbe darmi una mano? grazie
|
|
nessuno (Normal User)
Guru^2
Messaggi: 6402
Iscritto: 03/01/2010
|
Dovrebbe essere
void gestione(int *c, int scelta, t_Dati *datianagrafici);
e quindi la chiamata
gestione(&c, scelta, datianagrafici);
Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità. |
|
perillitommaso (Normal User)
Pro
Messaggi: 186
Iscritto: 28/01/2014
|
Ho provato ma nulla, stesso errore
|
|
perillitommaso (Normal User)
Pro
Messaggi: 186
Iscritto: 28/01/2014
|
il problema sembra scomparire quando tolgo dal prototipo l' "*" diventando così:
void gestione(int *c, int scelta, t_Dati datianagrafici);
ma sembra che poi cambi proprio il senso, giusto?
mentre quando vado poi a sviluppare la procedura, è così:
void gestione(int *c, int scelta, t_Dati *datianagrafici){
----
return;
}
|
|
nessuno (Normal User)
Guru^2
Messaggi: 6402
Iscritto: 03/01/2010
|
Cosa è t_Dati ? Se non lo mostri non si può capire ...
Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità. |
|
perillitommaso (Normal User)
Pro
Messaggi: 186
Iscritto: 28/01/2014
|
Codice sorgente - presumibilmente C++ |
#include <stdio.h> #include <stdlib.h> #include <string.h> #define max 100 /*Variabili Globali*/ //Record contenente i campi per l'importo typedef struct recImporti { float importo1; float importo2; float importo3; }t_Importo; //Record contenente i campi per le prestazioni typedef struct recPrestazioni { char Prestazioni1[20]; char Prestazioni2[20]; char Prestazioni3[20]; }t_Prestazioni; //Record contenente i campi per la data di nascita typedef struct recDatidiNascita { int Giorno; char Mese[10]; int Anno; }t_Data; //record contenente i dati anagrafici RECORD PRINCIPALE typedef struct recDatiAnagrafici { char Nome [12]; char Cognome [12]; char Telefono [9]; t_Data Nascita;//record nascita composto da 3 campi t_Prestazioni prestazioni;//record prestazioni composto da 3 campi t_Importo importo;//record importo composta da 3 campi }t_Dati; /*Prototipi Procedure*/ void menu();//procedura menu int choose();//procedura scelta void gestione(int *c,int scelta,t_Dati *datianagrafici[]);//procedura che gestisce la banca dati void inserisci_dati(int *c,t_Dati *datianagrafici[]);//procedura che inserisci i dati dei clienti nella banca dati void ricerca_cognome(int *c,t_Dati *datianagrafici[]);//procedura che ricerca un cliente in base al cognome /*Programma Principale*/ int main(int argc,char ** argv) { t_Dati datianagrafici[max];//array di record int scelta;//variabile scelta int c=0;//contatore dei clienti inseriti printf("\t\t\t--BANCA DATI STUDIO DENTISTICO--"); printf("\t\t\tPROGRAMMA REALIZZATO DA TOMMASO PERILLI"); do{ menu();//procedura menu scelta = choose();//procedura scelta gestione(&c,scelta,&datianagrafici);//procedura che gestisce la banca dati system("cls");//cancella lo schermo }while(scelta!=3);//cicla fin quando non usciamo 5=exit printf("\t\t\tPROGRAMMA REALIZZATO DA TOMMASO PERILLI"); system("PAUSE"); return(0); }
|
adesso è più chiaro?
|
|
nessuno (Normal User)
Guru^2
Messaggi: 6402
Iscritto: 03/01/2010
|
Ti confermo che deve essere così
void gestione(int *c, int scelta, t_Dati *datianagrafici);
e la chiamata
gestione(&c, scelta, datianagrafici);
Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità. |
|
perillitommaso (Normal User)
Pro
Messaggi: 186
Iscritto: 28/01/2014
|
Postato originariamente da nessuno:
Ti confermo che deve essere così
void gestione(int *c, int scelta, t_Dati *datianagrafici);
e la chiamata
gestione(&c, scelta, datianagrafici);
|
Ok ho risolto, penso che mi provocavano fastidio le parentesi []
comunque, esiste un modo per stampare un record in una botta sola? senza scrivere esplicitamente tutti i campi? |
|
nessuno (Normal User)
Guru^2
Messaggi: 6402
Iscritto: 03/01/2010
|
Scusami ma io ti avevo già detto nella prima risposta di togliere le parentesi quadre ...
No non puoi visualizzare tutta la struttura
Ultima modifica effettuata da nessuno il 25/10/2014 alle 18:05
Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità. |
|