Ir para conteúdo
Fórum Script Brasil

jededaya

Membros
  • Total de itens

    1
  • Registro em

  • Última visita

Sobre jededaya

jededaya's Achievements

0

Reputação

  1. Ae galera to com um grande problema eu tenho um trabalho que deve ser entregue até quarta feira e não to conseguindo resolver, eu sei que ele não é muito dificil pra que já manja de programar, a sua descrição é um pouco extensa mas o que deve ser resolvido não é muita coisa, pois era uma prova nossa da faculdade, então quem souber e puder ajudar eu não sei nem como agradecer. abaixo a descrição do exercício e o seu código. instruçoes: instruçoes para resolver o trab codigo: #include <stdio.h>#include <stdlib.h> #include <string.h> #define MAXIMOVEIS 100 // número máximo de imóveis na lista #define MAXCOMODOS 20 // número máximo de comodos em um imóvel enum tipoc { // tipo de comodo dormitorio = 1, cozinha, banheiro, sala, garagem, outro, nulo = 0 }; typedef struct { float area; // área deste comodo enum tipoc tipo; // tipo de comodo: 1 se for dormitorio, 2 se cozinha, ... } comodo; struct imovel { char end[50]; // endereço comodo comodos[MAXCOMODOS]; // comodos do imóvel float areac; // área construída float aluguel; // valor do aluguel } info[MAXIMOVEIS]; void cria_lista(void); void insere(void); void apaga(void); void imprime(void); int menu(void); int livre(void); void imprimecomodo(comodo c); void ler_string(char palavra[100], int tamanho); void aumenta(void); void salva(void); // QUESTAO 1 void carrega(void); // QUESTAO 2 float areas(void); // QUESTAO 3 int aumentaalugueis(struct imovel *maiscaro,float taxa); // QUESTAO 4 int main(void) { int escolha; cria_lista(); for( ; ; ) { escolha = menu(); switch(escolha) { case 1: insere(); break; case 2: apaga(); break; case 3: imprime(); break; case 4: salva(); break; case 5: carrega(); break; case 6: areas(); break; case 7: aumenta(); break; case 8: exit(0); break; } } } void salva(void) { // Resolva a QUESTAO 1 aqui! } void carrega(void) { // Resolva a QUESTAO 2 aqui! } float areas(){ // Resolva a QUESTAO 3 aqui! } int aumentaalugueis(struct imovel * maiscaro,float taxa){ // Resolva a QUESTAO 4 aqui! } void aumenta(void){ float taxa; int cont; struct imovel x; printf("Aumento dos aluguéis!\n"); printf("Digite a taxa (%%) do reajuste: "); scanf("%f",&taxa); cont = aumentaalugueis(&x,taxa); printf("%d alugueis reajustados com sucesso!\n",cont); printf("-- O aluguel mais caro é %.2f\n",x.aluguel); printf("-- Endereco: %s\n",x.end); } void cria_lista(void) { int i; for( i=0; i<MAXIMOVEIS; i++) info.end[0]=''; // endereço = '' usado para representar nenhum imovel // válido cadastrado nessa posição da lista } int menu(void) { int c=0; do { printf("\n-- MENU:\n"); printf("\t 1. Inserir um imovel\n"); printf("\t 2. Excluir um imovel\n"); printf("\t 3. Listar imoveis cadastrados\n"); printf("\t 4. Salvar dados (questao 1)\n"); printf("\t 5. Carregar dados (questao 2)\n"); printf("\t 6. Calcular areas (questao 3)\n"); printf("\t 7. Reajustar alugueis (questao 4)\n"); printf("\t 8. Sair\n"); printf("-- Digite sua escolha: "); scanf("%d", &c); } while(c<=0 || c>8); getchar(); return c; } void ler_string(char palavra[100], int tamanho) { int i = 0; char c; c = getchar(); while ((c != '\n') && (i < tamanho)) { palavra[i++] = c; c = getchar(); } palavra = ''; if (c != '\n') { c = getchar(); while((c != '\n') && (c != EOF)) { c = getchar(); } } } void insere(void) { int posicao; int c,i; posicao=livre(); if(posicao == -1) { printf("\nEstrutura Cheia!!"); return; } printf("-- Imovel %d:\n", posicao); printf("\t Endereco: "); ler_string(info[posicao].end, 50); printf("\t Número de Comodos (0-%d): ",MAXCOMODOS); scanf("%d", &c); for(i = 0;i<c;i++){ // lê comodos válidos printf("Comodo %d TIPO:\n",i+1); printf("\t 1. Dormitorio\n"); printf("\t 2. Cozinha\n"); printf("\t 3. Banheiro\n"); printf("\t 4. Sala\n"); printf("\t 5. Garagem\n"); printf("\t 6. Outro\n"); printf("-- Digite sua escolha: "); scanf("%d", &info[posicao].comodos.tipo); printf("-- Digite a AREA (m2) do comodo %d: ",i+1); scanf("%f", &info[posicao].comodos.area); } for(i=c;i<MAXCOMODOS;i++){ info[posicao].comodos.tipo = 0; // atribui nulo aos comodos restantes } printf("-- Digite o valor do aluguel do imovel %d: ",posicao); scanf("%f", &info[posicao].aluguel); } int livre(void) { int i; for( i=0; info.end[0] && i< MAXIMOVEIS; i++); if( i == MAXIMOVEIS ) return -1; return i; } void apaga(void) { int posicao; printf("Número do Registro: "); scanf("%d",&posicao); if(posicao >=0 && posicao < MAXIMOVEIS) info[posicao].end[0]=''; } void imprime(void) { int i,j; for( i=0; i < MAXIMOVEIS; i++) if(info.end[0] != '') { printf("-- Imovel %d:\n", i); printf("\t Endereco: %s\n", info.end); printf("\t Area construida: %.2f\n", info.areac); printf("\t COMODOS:\n"); for(j = 0;j<MAXCOMODOS;j++){ imprimecomodo(info.comodos[j]); } printf("\t Aluguel: %.2f\n", info.aluguel); } } void imprimecomodo(comodo c){ switch(c.tipo){ case 1: printf("\t -- Dormitorio (%.2fm2)\n",c.area); break; case 2: printf("\t -- Cozinha(%.2fm2)\n",c.area); break; case 3: printf("\t -- Banheiro(%.2fm2)\n",c.area); break; case 4: printf("\t -- Sala(%.2fm2)\n",c.area); break; case 5: printf("\t -- Garagem(%.2fm2)\n",c.area); break; case 6: printf("\t -- Outro(%.2fm2)\n",c.area); break; } }
×
×
  • Criar Novo...