Ir para conteúdo
jo2955

como fazer cadastros linguagem c

Recommended Posts

Gente podem me ajudar ! não to conseguindo fazer pra cadastrar as estacoes!
Uma indústria de confecção deseja cadastrar os dados de seus estilistas e as roupas que eles criam. Para isso decidiu cadastrar
as seguintes informações:
 Estilista: código do estilista, nome, salário.
 Roupa: código da roupa, descrição, código do estilista que desenhou a roupa, código da estação, ano.
 Estação: código da estação, nome.
olha o que eu fiz por favor me ajudem !

 

#include<stdio.h>
#include<string.h>
#define n 2
typedef struct {
int codigo;
char nome[50];
float salario;
} Estilista;
typedef struct {
int codigo;
char descricao[50];
int estilista;
int estacao;
int ano;
} Roupa;
typedef struct {
char nome[50];
int codigo;
} Estacao;
int i, cadastro, consulta;
int roupas_primavera, roupas_outono;
char nome[50];
Estilista estilistas[3];
Estacao estacoes[4];
Roupa roupas[20];
main()
{
for(i=0; i<n; i++)
{
printf("Nome do estilista :\n");
scanf("%s", &nome);
strcpy(estilistas.nome,nome);
printf (" \n Codigo do estilista : ");
scanf("%d", &estilistas.codigo);
printf("\n Digite o salario do estilista %s que possui o codigo %d :\n", estilistas.nome, estilistas.codigo);
scanf("%f", &estilistas.salario);
}
//(* Agora serão castradas o código das estações do ano *)
// quero ajuda nessa parte pra cadastrar a estacao.
strcpy(estacoes[0].nome,"1");
estacoes[0].codigo=1;
strcpy(estacoes[1].nome,"2");
estacoes[1].codigo=2;

strcpy(estacoes[2].nome,"3");
estacoes[2].codigo=3;
strcpy(estacoes[3].nome,"4");
estacoes[3].codigo=4;
for (i=0;i<n ;i++)
{
roupas.codigo=0;
}
i=0;
roupas_primavera=0;
roupas_outono=0;
// cadastro da roupa
while( i < 2)
{
printf("---------------------------------------------------------------------------------------------\n\n\n");
printf("--CADASTRO DAS ROUPAS--: \n");
printf("Digite o codigo da estacao:\n");
printf("1- Primavera\n");
printf("2- Verao\n"); 
printf("3- Outono \n");
printf("4-Inverno\n"); 
scanf("%d", &cadastro);
//(* Verifica se valor digitado é de alguma estação cadastrada *)
//(* Verifica também se não ultrapassou o limite para cadastro de roupas de determinada estação *)
if(((cadastro == 1) && (roupas_primavera >0)) || ((cadastro == 4) && (roupas_outono >0)))
{
roupas.estacao=cadastro;
printf("Codigo do estilista que desenhou a roupa:\n");
scanf("%d", &cadastro);
//(* Verifica se valor digitado é de algum estilista cadastrado *)
if((cadastro == estilistas[0].codigo) || (cadastro == estilistas[1].codigo) || (cadastro == estilistas[2].codigo) || (cadastro == estilistas[3].codigo|| (cadastro == estilistas[4].codigo)))
{
roupas.estilista=cadastro;
if(roupas.estacao==estacoes[0].codigo)
{
roupas_primavera=roupas_primavera+1;
}
else
{
roupas_outono=roupas_outono+1;
}
//(*Realiza o cadastro das informações sobre a roupa. *)
roupas.codigo=i;
printf("\n Descrição da roupa:\n");
scanf("%s", nome);
strcpy(roupas.descricao,nome);
printf("\n Ano de criação da roupa:\n");
scanf("%d", &roupas.ano);
i=i+1;
}
else //(*Caso valor não existe *)
printf("\n Estilista / Roupa não cadastrado.\n");
}
else //(*Caso valor não existe *)
{
printf("\n Estacao/Roupa não cadastrada.\n");
}
}

//(*Será exibido todas as roupas de determinada estação que foram cadastradas: *)
printf("\n Roupas e qual estacao foi feita :\n");
printf("1. Primavera-Verão\n");
printf("2. Outono-Inverno\n");
scanf("%d", &consulta);
for (i=0;i<4;i++)
{
if(roupas.estacao == consulta)
{
printf("--------------------------------------------\n");
printf("Código da roupa: %d\n", roupas.codigo);
printf("Estilista criador: %s\n", estilistas[roupas.estilista].nome);
printf("Ano de criação: %d\n", roupas.ano);
printf("Descrição da roupa: %s", roupas.descricao);
}
}
return 0;
}

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Na rotina de leitura e armazenamento dos estilistas falta o índice do vetor de estilistas e o mesmo acontece toda vez que o programa acessa o vetor de roupas ou seja, falta o índice que indica a posição de cada roupa na memória. 

estilistas . nome

fica:

estilistas[i]. nome

é

roupas.codigo

fica

roupas[i].codigo

No cadastro das roupas ao tentar cadastrar ele sempre diz "Estação/Roupa não cadastrada" por que as variáveis roupas_primavera e
roupas_outono foram inicializadas e sempre serão iguais a 0 fazendo com que o teste condicional que verifica a estação digitada sempre dê falso e a variável i nunca seja incrementada entrando em um loop infinito que faz com que o programa volte sempre no mesmo menu de cadastro de roupas e nunca avance adiante não importa o valor que se digite. Nesse caso o erro não é no cadastro das estações pois essas foram cadastradas corretamente.

Compartilhar este post


Link para o post
Compartilhar em outros sites
Visitante
Este tópico está impedido de receber novos posts.

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.