Ciao a tutti... ho provato ad iniziare un esercizio.... pero' quando mi chiede nome file e scrivo il nome mi da errore perchè file non esiste ma io il file l'ho creato... forse l'ho creato male.. qualke d'uno puo' spiegarmi come faccio a crearlo?... vi ringrazio!!! Ciao ciao
Cmq l'es è questo....
Su un file di testo sono memorizzati il nome di un comune, il numero totale degli occupati e il numero dei lavoratori del settore agricolo.Gestire attraverso un menu' le seguenti possibilità:Aggiunta di un comune,Modifica dei dati di un comune, Ordinamento dell'elenco in ordine alfabetico, Stampa del nome del comune con il maggior numero degli abitanti occupati.
Nota:Caricare il contenuto del file in tabella, salvare il tutto alla fine.
#include<stdio.h>
#include<stdlib.h>
#define NOMAX 7+1 //NUMERO MAX CARATTERE NOME COMUNE
#define NMAX 10 //NUMERO MASSIMO ELEMENTI IN TABELLA
typedef struct
{
char Nome[NOMAX]; //nome comune
int No; //numero occupanti
int Na; //numero lavoratori settore agricolo
}TCOMUNE;
/* Prototipi funzioni */
void Leggi(TCOMUNE Com[], int *pN);
void ScriviMenu();
int LeggiN();
void Aggiungi(TCOMUNE Com[], int *pN);
void Modifica(TCOMUNE Com[], int N);
void Cancella(TCOMUNE Com[], int *pN);
void Ordina(TCOMUNE Com[], int N);
int CercaMax(TCOMUNE Com[],int N,int *pmax);
void main()
{
TCOMUNE Com[NOMAX];
int N=0;
int scelta;
int max;
Leggi(Com,&N);
do
{
ScriviMenu();
scelta=LeggiN("scelta:,1,NMAX");
switch(scelta)
{
case'0':printf("Elaborazione Terminata\n");
break;
case'1':Aggiungi(Com,&N);
break;
case'2':Modifica(Com,N);
break;
case'3':Cancella(Com,&N);
break;
case'4':Ordina(Com,N);
break;
case'5':max=CercaMax(Com,N,&max);
break;
default:printf("Scelta errata\n");
}
}while(scelta!=0);
}
void Leggi(TCOMUNE Com[], int *pN)
{
char nfilin[NOMAX];
FILE *filin;
printf("Nome file:");
fflush(stdin);
gets(nfilin);
if((filin=fopen("nfilin","r"))==NULL)
printf("Errore\n");
{
exit(55);
}
while(!feof(filin)&&*pN<NMAX)
{
fflush(filin);
fscanf(filin,"%s,%d,%d",Com[*pN].No,Com[*pN].Na);
(*pN)++;//incremento
}
fclose(filin);
}
int LeggiN()
{
int N;
do
{
printf("Scelta:");
scanf("%d",&N);
}while(N<0||N>5);
return N;
}
void ScriviMenu()
{
printf("1 - Aggiungere un comune:");
printf("2 - Modificare dati di un comune:");
printf("3 - Cancellare un comune:");
printf("4 - Ordinare l'elenco in ordine alfabetico:");
printf("5 - Stampare il nome del comune con maggior numero degli abitanti occupati:");
printf("0 - Esci\n\n");
}
void Aggiungi(TCOMUNE Com[], int *pN)
{
if(*pN<NMAX)
{
printf("Dammi il nome:");
fflush(stdin);
gets(Com[*pN].Nome);
printf("Dammi il numero degli occupati:");
scanf("%d",&*pN);
printf("Dammi il numero degli occupati nel settore agricolo");
scanf("%d",&*pN);
}
else
printf("Tabella piena");
}
void Modifica(TCOMUNE Com[], int N)
{}
void Cancella(TCOMUNE Com[], int *pN)
{}
void Ordina(TCOMUNE Com[], int N)
{}
int CercaMax(TCOMUNE Com[],int N,int *pmax)
{
return 0;
}
GRAZIE!!!
Alessia