Ir para conteúdo
Fórum Script Brasil
  • 0

Ajuda urgente em Trab da Faculdade


jededaya

Pergunta

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 para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...