Salve a tutti. Sono nuovo nel forum.
Da poco più di un mese ho iniziato a studiare elementi base (non in modo approfondito perché non mi serve) su come creare un programma in C, e uso come programma DevC++.
Ieri ho voluto iniziare a provare la creazione di un programmino, e anche se mi sono aiutato con qualche esercizio quasi identico già svolto, non riesco ad andare avanti perché mi dà errore e non riesco a capire il perché.
Il testo dell'esercizio è il seguente: "L'agenzia delle entrate vuole informatizzare l'elenco dei contribuenti, registrando nome, cognome, codice fiscale e indirizzo. Tali informazioni devono essere conservate in un file, sul quale deve essere possibile effettuare delle ricerche ed aggiornare i redditi dei contribuenti".
Inoltre:
1-L'autore deve predisporre una struttura con i campi nome e cognome, e deve immettere i propri dati in una variabile tramite la quale essi vanno stampati a schermo;
2-Richiedere l'inserimento dei dati riguardanti il nuovo individuo e conservarli nella memoria RAM, e aggiungere ad un file con un nome prefissato (io ho scritto registro_cont.txt) i dati del nuovo individuo;
3-Calcola il reddito medio degli individui presenti nell'elenco.
Io sono rimasto fermo al punto 2. Di seguito metto il mio codice così vedete se riuscite a capire qual è l'errore che ho commesso. Preciso che voglio creare questo programma nel modo più semplice possibile, con il minimo indispensabile.
------------------------Inizio Codice-----------------------
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define FILE_PRED "registro_cont.txt"
int main(int argc, char *argv[])
{
struct studente { //Stampa i dati dell'autore
char nome[15];
char cognome[15];
} io={"Pinco","Pallino"};
printf(" Autore del programma:\n");
printf("------------------------------\n");
printf(" Nome: %s\n Cognome: %s\n",io.nome,io.cognome);
printf("------------------------------\n\n");
//INIZIO DEL PROGRAMMA VERO E PROPRIO
struct elenco {
char nome[25];
char cognome[25];
char codice_fiscale[16];
char indirizzo[30];
};
struct elenco registro_cont[100];
int s, n=0;
int inserisci (struct elenco registro_cont[100], int n);
int salva (struct elenco registro_cont[100], int n);
do {
printf("Scegli dall'elenco l'opzione che desideri fare.\n");
printf(" 1: Aggiungere nuovo individuo\n");
printf(" 2: \n");
printf(" 3: \n");
printf(" 0: Uscita\n");
scanf("%d", &s);
switch(s){
case 1:{n=inserisci(registro_cont,n);
break;}
case 2:{
break;}
case 3:{
break;}
case 0:{exit(0);
break;}
}
}
while(s!=0);
system("pause");
return 0;
}
int inserisci (struct elenco registro_cont[100],int n) { //Quando compilo mi da errore in questa riga
if (n==100)
printf("Non puoi aggiungere altri individui\n");
else {
printf("Inserisci nome: ");
scanf("%s\n",registro_cont[n].nome);
printf("Inserisci cognome: ");
scanf("%s\n",registro_cont[n].cognome);
printf("Inserisci codice fiscale; ");
scanf("%s\n",registro_cont[n].codice_fiscale);
printf("Inserisci indirizzo: ");
scanf("%s\n",registro_cont[n].indirizzo);
FILE *fp;
fp=fopen(FILE_PRED,"a");
if(fp==NULL)
printf("Impossibile salvare!\n");
else {
fprintf(fp,"%s %s %s %s\n",registro_cont[n].nome);
printf("---Salvato---");
fclose(fp);
}
}
}
---------------------------Fine Codice--------------------------
Volevo provare a mettere la sezione "int inserisci (struct elenco registro_cont[100],int n) {....}" all'interno del "case 1", ma non mi funziona. Se è possibile mi dite come si fa anche questa parte?
Grazie dell'aiuto.