Ir ao conteúdo
  • Cadastre-se

Diego Jesus_725124

Membro Júnior
  • Posts

    1
  • Cadastrado em

  • Última visita

Reputação

0
  1. OLÁ galera , estou fazendo esse código só que dar erro, quando vai cadastrar outro medicamento e listar todos os códigos , alguém poderia min ajudar ai??? #include <stdio.h> #include <stdlib.h> #include <string.h> #define aaa 100; typedef struct medicamento{ int dada; int codigo[20]; int quantidade[20]; int peso[20]; char nome[20]; char fabricante[15]; char STATUS_generico[20]; char STATUS_tarjapreta[20]; char OUTRAS_INFORMACAO [20]; } Medicamento; void cadastra_medicamento(Medicamento *lista); void consulta_medicamento (Medicamento *lista); void carregar_arquivo(Medicamento *lista); void atualizacao_medicamento (Medicamento *lista); void remocao_medicamento (Medicamento *lista); void salvar_arquivo (Medicamento *lista); void imprimir_menu (); void inicializar_vetor (Medicamento *lista); int main () { int opcao=1; Medicamento hospital[100]; inicializar_vetor (hospital); while(opcao != 0){ imprimir_menu(); scanf("%d",&opcao); switch (opcao){ case 0: //sair break; case 1: //cadastrar medicamento cadastra_medicamento(hospital); break; case 2: // remover medicamento remocao_medicamento(hospital); break; case 3: //consultar medicamento consulta_medicamento(hospital); break; case 4: //atualizar //atualizacao_medicamento(hospital); //break; default: printf ("Opcao invalida\n"); break; } } system("pause"); return 0; } void cadastra_medicamento( Medicamento *lista){ int x=1; int i=0, posicao_livre; while(lista.dada != -1){ i++; posicao_livre = i; } fflush(stdin); getchar(); system("cls"); puts("__________________________________________________________________"); puts("\t\tCADASTRO DE MEDICAMENTO"); puts("__________________________________________________________________"); printf("\n Informe o nome do medicamento: "); lista[posicao_livre].dada = posicao_livre +1; gets(lista[posicao_livre].nome); printf(" \n PESO :"); scanf("%d",lista[posicao_livre].peso); printf("\n codigo : "); scanf("%d",lista[posicao_livre].codigo); printf(" \n quantidades em caixas : "); scanf("%d", lista[posicao_livre].quantidade); printf(" \nFabricante : "); scanf("%s",lista[posicao_livre].fabricante); printf("\n statusTarjaPreta : "); scanf("%s",lista[posicao_livre].STATUS_tarjapreta); printf("\n statusGenerico \n: "); scanf("%s",lista[posicao_livre].STATUS_generico); printf(" \n outras informacao : "); scanf("%s",lista[posicao_livre].OUTRAS_INFORMACAO); posicao_livre++; puts("\n\n----->MEDICAMENTO CADASTRADO com sucesso-----\n"); puts("\n\nTecle enter para sair..."); } void inicializar_vetor(Medicamento *lista){ register int i; register int j; FILE *arquivo; arquivo = fopen("dados.txt","rb"); if(arquivo == NULL){ for(i=0; i < 100; i++){ for (j=0;j<20;j++){ lista.peso[j]='\0'; /* Limpa o espaço na memória do i */ lista.quantidade[j]='\0'; lista.codigo[j]='\0'; lista.dada = -1; lista.nome[j]='\0'; lista.fabricante[j]='\0'; lista.OUTRAS_INFORMACAO[j]='\0'; //lista.peso = -1; lista.STATUS_generico[j]='\0'; lista.STATUS_tarjapreta[j]='\0'; } } fclose(arquivo); }else{ fclose(arquivo); carregar_arquivo(lista); } } void salvar_arquivo (Medicamento *lista){ FILE *a; a = fopen("dados.txt","wb"); if(a != NULL){ fwrite(lista, sizeof(Medicamento),100, a); }else{ printf("erro ao escrever arquivo"); } fclose(a); } void consulta_medicamento (Medicamento *lista){ int i,op,posicao_livre; int codigo2[4]; char nome_medicamento[30]; puts("__________________________________________________________________"); printf("\t\tCONSULTAR"); puts("\n__________________________________________________________________"); printf("\nCodigo | NOME DO MEDICAMENTO| "); printf("\n__________________________________________________________________"); fflush(stdin); for(i = 0; i < 100 ; i++) { if(lista.dada != -1) { printf(" %d %s", lista.codigo, lista.nome); puts("\n__________________________________________________________________"); } } printf("\n1- para consultar por CODIGO acima "); printf("\n2- para consultar por NOME acima "); printf("\n3- buscar rapida por inicias"); switch (op){ case 1: { printf(" informe o código do medicamento"); scanf("%d",&codigo2); for( i=0;i<100;i++){ // isso para comparar caso positivo mostra{ if((lista.codigo)== (codigo2)) { puts("\n__________________________________________________________________"); printf(" nome do medicamento %c =>\n ",lista.nome); printf(" PESO %d\n",lista.peso); printf(" quantidades em caixas %d\n",lista.quantidade); printf("fabricante %c ",lista.fabricante); printf("statusTarjaPreta %c \n: ",lista.STATUS_tarjapreta); printf("statusGenerico \n:%c ",lista.STATUS_generico); printf("outras informacao %c:",lista.OUTRAS_INFORMACAO); puts("\n__________________________________________________________________"); } else { printf(" codigo digitado errado"); } } }break; case 2: { printf(" informe o nome do medicamento "); scanf("%c",&nome_medicamento); for(i=0;i<100;i++){ if(strcmp(lista.nome,nome_medicamento)==0){ puts("\n__________________________________________________________________"); printf(" nome do medicamento %c =>\n ",lista.nome); printf(" PESO %d\n",lista.peso); printf(" quantidades em caixas %d\n",lista.quantidade); printf("fabricante %c ",lista.fabricante); printf("statusTarjaPreta %c \n: ",lista.STATUS_tarjapreta); printf("statusGenerico \n:%c ",lista.STATUS_generico); printf("outras informacao %c:",lista.OUTRAS_INFORMACAO); puts("\n__________________________________________________________________"); } else { printf( " nome nao encontrado "); } } }break; case 3: { printf(" informe as iniciais"); }break; default: break; } } void remocao_medicamento (Medicamento *lista){ int op,codigo2,indice_medicamento,i; char nome_medicamento[35]; puts("\n__________________________________________________________________"); printf(" \t\tREMOCAO "); printf("\nCodigo | NOME DO MEDICAMENTO| "); printf("\n__________________________________________________________________"); for(i = 0; i < 100 ; i++) { printf("%d %c",lista.codigo,lista.nome); puts("\n__________________________________________________________________"); puts("\n\n"); } printf("1- REMOVER por CODIGO "); printf("2- REMOVER por NOME "); printf("3- buscar rapida por inicias"); switch (op){ case 1: { printf("informe o código"); scanf("%d",&codigo2); for( i=0;i<100;i++){ // isso para comparar caso positivo mostra{ if((lista.codigo)== (codigo2)){ printf("Remova o MEDICAMENTO [%s]: ", lista.nome); for(i = 0; i < 100; i++) { lista = lista[i+1]; } indice_medicamento--; } puts("\n\n----->Paciente removido com sucesso-----\n"); puts("\n\nTecle enter para sair..."); } }break; case 2: { printf("\nDigite o Nome do MEDICAMENTO que deve ser Removido: "); scanf("%s",&nome_medicamento); puts("\n__________________________________________________________________"); /*if(lista_paciente[indice_paciente].nome != temp) { puts("Paciente nao cadastrado!!!"); break; }*/ for(i = 0; i < 100; i++) { if(strcmpi(lista.nome,nome_medicamento)==0) { printf("Remova o Paciente [%s]: ", lista.nome); scanf("%s",&nome_medicamento); if(strlen(nome_medicamento) > 0) { strcpy(lista.nome, nome_medicamento); } for(i = 1; i < 100; i++) { lista = lista[i+1]; } i--; } puts("\n\n----->Paciente removido com sucesso-----\n"); puts("\n\nTecle enter para sair..."); } } break; } } void imprimir_menu (){ system("cls"); puts("__________________________________________________________________"); puts("\t\tSISTEMA DE MEDICAMENT0\n"); printf("1- cadastramento medicamento\n"); printf("2-REMOCAO DE MEDICAMENTO\n"); printf("3-consultar\n"); printf("4- atualizaçao\n"); printf("5- carregar arquivo\n"); printf("6-salvar arquivo\n"); printf("0 - sair\n\n"); puts("__________________________________________________________________"); } void carregar_arquivo(Medicamento *lista){ FILE *a; a = fopen("dados.txt","rb"); if(a != NULL){ fread(lista, sizeof(Medicamento), 100, a); }else{ printf("erro ao ler arquivo"); } fclose(a); }

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!