Jump to content
Fórum Script Brasil
  • 0

Ajuda urgente em Trab da Faculdade


jededaya
 Share

Question

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;

}

}

Link to comment
Share on other sites

0 answers to this question

Recommended Posts

There have been no answers to this question yet

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share



  • Forum Statistics

    • Total Topics
      150.9k
    • Total Posts
      648.8k
×
×
  • Create New...