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

Ozie

Pergunta

Fiz esse código aqui, porém se eu cadastrar o mesmo código ele não informa código já existente. 

Não consigo identificar o problema, pois a função já foi criada...

#include <stdlib.h>
#include <string.h>
#include <stdio.h>
#define TAM 100

int i_cad;


struct soft{
int codigo;
char nome[TAM];
float versao;
int ano;
char function[TAM];
char tam[TAM];
} vet_cadastro[TAM];


int cadastrar(struct soft vet_cadastro[TAM], int codigo);
void consult(struct soft vet_cadastro[TAM]);
int alterar(struct soft vet_cadastro[TAM]);
struct soft vet_cadastro[TAM];
int check_cod(int cod);

int main(int argc, char *argv[]) {
	
	struct soft vet_cadastro[TAM];	
	char Chave1[10], Chave2[10];
	int x, a=1, b=1, cont;
	int m;
	char call;
	int retorno;
	int n;
	int codigo;
	char v1;
	m = 0;

	
	printf("\n                       --------Bem-Vindo--------\n\n");
	printf("\n\t\t  ** BIBLIOTECA DE SOFTWARE LIVRE **");
	
do{
		printf("\n\nChave1:  ");
		gets(Chave1);
		fflush(stdin);
		printf("\nChave2:  ");
		gets(Chave2);
		fflush(stdin);
		a = strcmp(Chave1, "l");
		b = strcmp(Chave2, "d");
			
		if (a != 0 || b != 0)
			printf("\n                       Chave Incorreta\n\n                   ----Tente Novamente----");
			
	
	}while(a != 0 || b != 0);
	
	
			printf("\n                          ----Login Efetuado----\n\n");
			getch();
		
        system("cls");
      	  
      	
			 	
	do{
		
		
		printf("\n\nEscolha uma das opcoes abaixo: \n\n");
		printf("1- Cadastrar SOFTWARE \n2- Consultar SOFTWARE \n3- Alterar cadastro \n4- Sair <- \n");
		printf("\nOpcao: ");
		fflush(stdin);
		scanf("%d", &m);
		
		switch(m){
			case 1: 
				system("cls");
				
			printf("\nEntre com a Palavra-Chave(Numeros): ");
			scanf("%d", &codigo);
			
			retorno = check_cod(codigo);
			
		if ( retorno == 1 ){
			cadastrar(vet_cadastro,codigo);
			system("cls");
		
		}else {
			printf("Palavra-Chave já existente !");
			getch();
				
		}break;
					
			case 2:
					system("cls");
					consult(vet_cadastro);
					getch();
					system("cls");		
					break;
					
				case 3:
					system("cls");
				 	
                    alterar(vet_cadastro);
                    system("cls");
                    break;
				
				case 4:
					system("cls");
					printf("\n\n\t\t\t\t** ADEUS ! **\n\n");
					getch();
					break;
					
				default:
					system("cls");
			    	printf("\n\nOpcao Invalida\n\n");
					break;	
															
			}
			}while(m != 4);
		
	
	return 0;
}


int cadastrar(struct soft vet_cadastro[TAM], int codigo){
	
	int retorno;
	
	if(i_cad > 100)return 0;
	char call;
//	do{
		
			vet_cadastro[i_cad].codigo == codigo;
		
			
			fflush(stdin);
			printf("\nNome do SOFTWARE: ");
			gets(vet_cadastro[i_cad].nome);
			fflush(stdin);
			printf("Versao: ");
			scanf("%f", &vet_cadastro[i_cad].versao);
			fflush(stdin);
			printf("Ano: ");
			scanf("%d", &vet_cadastro[i_cad].ano);
			fflush(stdin);
			printf("Funcionalidade: ");
			gets(vet_cadastro[i_cad].function);
			fflush(stdin);
			printf("Tamanho: ");
			gets(vet_cadastro[i_cad].tam);
			fflush(stdin);

			i_cad++;
			
			
			

	/*	printf("\nDeseja continuar cadastrando ? [s] - sim / [n] - não :  ");
		scanf("%c", &call);
		system("cls");
		fflush(stdin);


	}while (call == 's' && call != 'n'); */
	}

void consult(struct soft vet_cadastro[TAM]){
	
	int codigo;
	int i = 0;
	
	printf("\nEntre com a Palavra-Chave(Numeros): ");
	scanf("%d",&codigo);
	
	for ( i = 0; i < TAM; i++ )
    {
        if (vet_cadastro[i].codigo == codigo)
        {
                  
                printf("\n Nome: %s", vet_cadastro[i].nome);
                printf("\n Versao: %f", vet_cadastro[i].versao);
                printf("\n Ano: %d", vet_cadastro[i].ano);
                printf("\n Funcionalidade: %s", vet_cadastro[i].function);
                printf("\n Tamanho: %s", vet_cadastro[i].tam);
      return;  
	        	
	}else
{
	printf("\n\n\t    Palavra-Chave não cadastrada !");
	return;
}
}
}

int alterar(struct soft vet_cadastro[TAM]){
	
	int codigo;
	int cont;
	
	if(cont > 100)return 0;
	
	
		printf("\nEntre com a Palavra-Chave de cadastro: \n");
        scanf("%d",&codigo);
        
    for(cont=0; cont < 100; cont++){
        
     	if(vet_cadastro[cont].codigo == codigo){		

			fflush(stdin);
			printf("\nNome do SOFTWARE: ");
			gets(vet_cadastro[cont].nome);
			fflush(stdin);
			printf("Versao: ");
			scanf("%f", &vet_cadastro[cont].versao);
			fflush(stdin);
			printf("Ano: ");
			scanf("%d", &vet_cadastro[cont].ano);
			fflush(stdin);
			printf("Funcionalidade: ");
			gets(vet_cadastro[cont].function);
			fflush(stdin);
			printf("Tamanho: ");
			gets(vet_cadastro[cont].tam);
			fflush(stdin);
			
			break;		

	}
	
}

}

int check_cod(int cod){
	
	int i = 0;
			
	
	for ( i = 0; i < TAM; i++ )
    {
        if (vet_cadastro[i].codigo == cod)
        	return 0;
               	
} 
        	return 1;
	
}

 

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...