Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
TIPO: QUANDO O PROGRAMA VAI LISTAR AS PESSOAS DO CADASTRO, ELE SEMPRE PEGA A ULTIMA PESSOA DO CADASTRO E NAO AS DUA PESSOAS DO CADASTRO , PARA LISTAR!
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
#include <conio.h>
#define TAM 2
#define clear fflush(stdin)
#define ArquivoMes "mes.dat"
typedef struct{
char nome[35];
int numero;
float area;
float valor;
}Apartamento;
int inicio;
float a=0,b=0;
void CadastrarAp(FILE *ptrfile)
{
Apartamento apartamento[TAM];
Apartamento *ptrAp;
ptrAp=&apartamento;
int i;
printf("\n*****************CADASTRO*****************\n");
fseek(ptrfile,0,SEEK_END);
for(i=0;i<TAM;i++)
{
printf("\n nome do responsavel:");
clear;
gets(apartamento[i].nome);
printf("\n numero do apartamento:");
scanf("%d",&apartamento[i].numero);
printf("\n area do apartamento:");
scanf("%f",&apartamento[i].area);
printf("\n valor a ser pago no mes:");
scanf("%f",&apartamento[i].valor);
a+=apartamento[i].area;
b+=apartamento[i].valor;
clear;
}
fwrite(ptrAp,sizeof(Apartamento),1,ptrfile);
}
void PessoaCadastro(FILE *ptrfile)
{
int i;
printf("\n**********PESSOAS CADASTRADAS************\n");
Apartamento apartamento[TAM];
Apartamento *ptrAp;
ptrAp=&apartamento;
rewind(ptrfile);
printf("\nNOME\t\t\tNUMERO\t\t\tAREA\t\t\tVALOR");
for(i=0;i<TAM;i++)
{
while(fread(ptrAp,sizeof(Apartamento),1,ptrfile))
{
printf("\n%s\t\t\t%d\t\t\t%.2f\t\t\t%.2f",apartamento[i].nome,apartamento[i].numero,apartamento[i].area,apartamento[i].valor);
}
}
}
void AreaCondominio(FILE *ptrfile)
{
Apartamento apartamento[TAM];
Apartamento *ptrAp;
ptrAp=&apartamento;
rewind(ptrfile);
printf("\n a area total do condominio eh de: %.2f",a);
}
void ValorCondominio(FILE *ptrfile)
{
Apartamento apartamento[TAM];
Apartamento *ptrAp;
ptrAp=&apartamento;
rewind(ptrfile);
printf("\n o valor total recebido pelo condominio eh de: %.2f",B);
}
int main()
{
Apartamento apartamento[TAM];
Apartamento *ptrAp;
ptrAp=&apartamento;
int opcao;
FILE *ptrfile;
if((ptrfile=fopen(ArquivoMes,"r+b"))==0)
{
if((ptrfile=fopen(ArquivoMes,"w+b"))==0)
{
printf("\n ERRO!");
exit(1);
}
}
/*
nome (do responsável)
número (do apartamento)
área (em m2 )
número de moradores
valor (a ser pago no mês)
a- Definir a estrutura acima
d- Escrever uma função que retorne a área total do condomínio.
d- Escrever uma função que retorne a valor total do condomínio.
*/
do{
printf("\n [1].......Cadastro");
printf("\n [2].......area total do condominio");
printf("\n [3].......valor total arrecadado pelo condominio");
printf("\n [4].......Mostrar pessoas cadastradas");
printf("\n [5].......sair");
printf("\n\n opcao:");
scanf("%d",&opcao);
switch (opcao){
case 1:
CadastrarAp(ptrfile);
break;
case 2:
AreaCondominio(ptrfile);
break;
case 3:
ValorCondominio(ptrfile);
break;
case 4:
PessoaCadastro(ptrfile);
break;
case 5:
opcao=0;
break;
}
}while(opcao);
fclose(ptrfile);
system("pause");
return 0;
}Carregando comentários...