#include<stdio.h>
#include<string.h>
FILE *fp;
int flag=0;
int scelta;
struct condominio {
char nome [20];
char cognome[20];
char via [20];
int civico ;
float importo;
int mesipagati;
};
struct condominio brozzi;
void inserimento();
void ricerca();
void calcolo();
void stampa();
void cancella();
void statistiche();
void aggiungi(char[],float,struct condominio[]);
main(){
while(flag!=1) {
printf("\n BENVENUTO NEL CONDOMINIO BROZZI");
printf("\n 1-inserisci nuovo condomino");
printf("\n 2-calcola e stampa importo di un condomino");
printf("\n 3-stampa informazioni condominio");
printf("\n 4 cancella gli appuntamenti per un determinato giorno");
scanf("%d",&scelta);
switch(scelta) {
case 1:inserimento();
break;
case 2:calcolo();
break;
case 3:stampa();
break;
case 4:cancella();
break;
default:
printf("\n comando non previsto");
break;
}
printf("\n premer 1 per terminare, 0 per continuare");
scanf("%d",&flag);
}
}
void inserimento() {
FILE*fp;
fp=fopen ("brozzi.dat","a+");
if(fp==NULL)
{
printf("\nImpossibile aprire il file");
return;
}
printf("\n inserisci nome condomino:");
scanf("%s",&brozzi.nome);
printf("\n inserisci cognome condomino");
scanf("%s",&brozzi.cognome);
printf("\n inserisci via ");
scanf("%s",&brozzi.via);
printf("\n, numero civico ");
scanf("%d",&brozzi.civico);
printf("\n , inserisci importo" );
scanf("%d" ,&brozzi.importo);
printf("\n ,inserisci mesipagati ");
scanf("%s", &brozzi.mesipagati);
fwrite(&brozzi,sizeof(struct condominio),1,fp);
fclose(fp);
}
void calcolo () {
FILE *fp;
char ricercanome[20];
char ricercacognome[20];
int importototale;
fp=fopen("brozzi.dat","r+");
fread(&brozzi,sizeof(struct condominio),1,fp);
printf("\n cerca nome");
scanf("%s",&ricercanome);
printf("\n cerca cognome");
scanf("%s",&ricercacognome);
while(fread(&brozzi,sizeof(struct condominio),1,fp)!=0){
if(strcmp(brozzi.nome,ricercanome)==0&&strcmp(broz zi.cognome,ricercacognome)==0)
{ printf("\n l'importo totale è: %f ", brozzi.mesipagati*brozzi.importo); }
fclose(fp);
}}
//void stampa con ricerca , utilizzando stringcompare su cognome via civico.
void stampa () {
FILE *fp;
FILE *fpt;
struct condominio stampa ;
char ricercacognome[20];
fp=fopen("brozzi.dat","r+");
fpt=fopen("brozzi.txt","w+");
fread(&brozzi,sizeof(struct condominio),1,fp);
fread(&stampa,sizeof(struct condominio),1,fp);
printf("\n Inserisci cognome: ");
scanf("%s",&ricercacognome);
while(!feof(fp)) {
if(ricercacognome==brozzi.cognome) {
printf("\n le informazioni presenti sono : %s ",&brozzi.cognome);
strcpy(brozzi.cognome,stampa.cognome);
strcpy(brozzi.via, stampa.via);
(brozzi.civico==stampa.civico);
fwrite(fpt,sizeof(struct condominio),1,fp);
fprintf(fpt,"%s",stampa.cognome);
fprintf(fpt,"%s",stampa.via);
fprintf(fpt,"%d",stampa.civico);
}
else {printf("\n condominio non trovato" );
}
fclose(fp);
fclose(fpt);
}}
void modifica () {
FILE*fp;
char ricercavia[20];
struct condominio modifica ;
fp=fopen("brozzi.dat","r+");
fread(&brozzi,sizeof(struct condominio),1,fp);
printf("\n inserisci via : ");
scanf("%s", &ricercavia);
while (!feof(fp)) {
if (ricercavia==brozzi.via ) {
printf("\n nome condomino attuale : %s ",&brozzi.nome);
printf("\n inserisci nuovo nome ");
scanf("%s",&modifica.nome);
strcpy(brozzi.nome,modifica.nome);
// modifica del n civico
printf("\n nome civico attuale : %d ",&brozzi.civico);
printf("\n inserisci nuovo civico ");
scanf("%s",&modifica.civico);
(brozzi.civico==modifica.civico);
fwrite(&brozzi,sizeof(struct condominio),1,fp);
}
else{ printf("\n condomino non trovato");
}
fclose(fp);
}
}
void cancella () {
FILE *fp;
char ricercacognome[20];
struct condominio cancella ;
fp=fopen("brozzi.dat","r+");
fread(&brozzi, sizeof(struct condominio),1,fp);
printf ("\n inserisci cognome: ");
scanf("%s",&ricercacognome);
while (!feof(fp)) {
if(ricercacognome==brozzi.cognome) {
printf("\n il cognome %s , civico %d ",&brozzi.cognome,&brozzi.civico);
strcpy(brozzi.cognome,cancella.cognome);
(brozzi.civico==0);
fwrite(&brozzi,sizeof(struct condominio),1,fp);
}
else { printf("\n nome non trovato ");
}
fclose(fp);
}
}
//ricerca per cognome e ordinamento in ordine alfabetico
void statistiche () {
FILE *fp;
struct condominio temp;
struct condominio condomini[100];
int i ;
int j ;
int dim;
int n;
fp=fopen("brozzi.dat","rb");
fread(&brozzi, sizeof(struct condominio),1,fp);
printf ("\n inserisci cognome: ");
scanf("%s",&condomini[i]);
for(i=0; i<dim;i++)
{
for(j=i+1; j<n; j++)
{
if(strcmp(brozzi[i].cognome,brozzi[j].cognome)==1)
{
temp=brozzi[i];
brozzi[i]=brozzi[j];
brozzi[j]=temp;
}
}
/* aggiungi mesi pagati ad un condomino (cognome,importo) */
void aggiungi(char cognome[],int importo[], struct condominio condomini [])
{
int i;
int NumeroCondomini;
int aggiornamento;
int condomini;
int cont =0;
for(i=0;i<NumeroCondomini;i++)
{
if(strcmp(cognome,condomini[i].cognome)==0 &&
strcmp(importo,condomini[i].importo)==0 )
{
condomini[i].mesipagati++;
cont = 0 ;
}
}
if(aggiornamento!=1)
{
strcpy(condomini[NumeroCondomini].cognome,cognome);
strcpy(condomini[NumeroCondomini].importo,importo);
comdomini[NumeroCondomini].mesipagati=1;
NumeroCondomini++;
}
}