lucas costa da cruz Postado Dezembro 13, 2021 Compartilhar Postado Dezembro 13, 2021 boa noite fiz esse exercício e não está certo pode me ajudar por favor 1- Inserir dados da consulta; a. Iniciar atendimento; 2- Exibir consultas; 3- Consultar atendimentos; 4- Finalizar programa. O programa deve funcionar da seguinte maneira. Quando um cliente chega na veterinária, o atendente antes de iniciar o atendimento insere os dados dele no sistema e logo após inserir os dados é apresentado a opção de iniciar o atendimento. Os dados devem ficar em um arquivo binário e servirá para todos que forem atendidos na veterinária, já o atendimento deve ser um arquivo de texto, gerado com o nome do animal + o nome do dono. Ao finalizar a entrada dos dados de atendimento, que deve ser um arquivo de texto para cada atendimento, o sistema retorna para o menu. O arquivo de texto do atendimento, pode ser feito com a inserção de várias linhas de texto até que o veterinário não queira mais inserir texto finalizando o arquivo, este não poderá ser reaberto. A opção Exibir consultas, apresenta todos as consultas cadastradas. A opção Consultar atendimentos, permite que o usuário digite o nome do animal+dono e seja feita a busca pelo arquivo. #include <stdio.h> #include <stdlib.h> #include <string.h> #include <locale.h> typedef struct { char nome1[100]; char nome2[100]; int data1, data2; float valor; } clinica; void menu(); void Inserirdadosdaconsulta(); void escreverdadosarquivo(); void carregararquivo(); void Exibirconsultas(); void Finalizarprograma(); void Consultaratendimentos(); void Iniciaratendimento(); int cont=0; FILE *arquivo; animal_+_dono f[1000]; animal_+_dono F; int main () { char opc; setlocale(LC_ALL,"Portuguese"); do { fflush(stdin); menu(); fflush(stdin); printf("\nDeseja continuar: s/n?"); scanf("%c",&opc); } while (opc != 'n'); return 0; } void Inserirdadosdaconsulta() { printf("Para finalizar o cadastro clica ponto:\n"); while (1) { fflush(stdin); printf("\nNome1? "); gets(f[cont].nome1); if ( !strcmp(f[cont].nome1,".") ) break; printf("\nNome2? "); gets(f[cont].nome2); if ( !strcmp(f[cont].nome2,".") ) break; printf("\nData1? "); scanf("%i",&f[cont].data1); printf("\nData2? "); scanf("%i",&f[cont].data2); printf("\nValor? "); scanf("%f",&f[cont].valor); cont++; } Finalizarprograma(); } void Exibirconsultas() { for (int i = 0; i < cont; i++) { printf("%i\t%s\t%7.2f\n", f[i].data1, f[i].data2, f[i].nome1, f[i].nome2, f[i].valor); } Finalizarprograma(); } void escreverdadosarquivo(){ if ( (arqv = fopen("dados.x","wb"))== NULL ) { printf("Arquivo não pode ser criado\n"); exit(1); } for (int i = 0; i < cont; i++) { fwrite(&f[i],sizeof(animal+dono),1,arqv); } printf("Dados digitados com sucesso!\n"); fclose(arqv); } Finalizarprograma(); } void carregararquivo(){ if ( (arqv = fopen("dados.x","r"))== NULL ) { printf("O arquivo não pode ser aberto\n"); exit(1); } // limpeza de todos os itens dentro da memória antes de carregar os dados do arquivo memset(f, 0, sizeof(f)); cont = 0; while (1) { fread(&F,sizeof(animal+dono),1,arqv); if ( feof(arqv) ) break; f[cont] = F; cont++; } printf("Abertura dos dados na memória com sucesso!"); fclose(arqv); } Iniciaratendimento(); while (1) { fread(&F,sizeof(animal+dono),1,arqv); if ( feof(arqv) ) break; } } fclose(arqv); printf("\n %i\t %s\t %7.2f", f.data1, f.data2, f.nome1, f.nome2, f.valor); } printf("Arquivo não pode ser aberto\n"); exit(1); } } void Consultaratendimentos(){ char nome1[100]; char nome2[100]; animal+dono aux[100]; int i = 0; fflush(stdin); printf("Digite o atendimento que você quer consultar?"); gets(nome1); printf("Digite o atendimento que você quer consultar?"); gets(nome2); Iniciaratendimento(); while (1) { fread(&F,sizeof(animal+dono),1,arqv); if ( feof(arqv) ) break; if (strstr(F.nome1, F.nome2, nome) != NULL) { aux[i] = F; i++; } } fflush(stdin); for (int x = 0; x < i; x++){ printf("\n %i\t %s\t %7.2f", aux[x].data1, aux[x].data2, aux[x].nome1, aux[x].nome2, aux[x].valor); } fclose(arqv); } void Iniciaratendimento() { if ( (arqv = fopen("dados.x","r")) == NULL ) { printf("Não foi possível abrir o arquivo!!\n"); exit(1); } } void Finalizarprograma() { fclose(arqv); } void menu() { int opc; printf("\n1- Inserir dados da consulta"); printf("\na.- Iniciar atendimento"); printf("\n2- Exibir consultas"); printf("\n3- Consultar atendimentos"); printf("\n4- Finalizar programa"); printf("\nEscolha sua opcao: "); scanf("%d",&opc); switch (opc) { case 1: Inserirdados(); break; case 2: Iniciaratendimento(); break; case 3: Exibirconsultas(); break; case 4: Consultaratendimentos(); break; case 5: Finalizarprograma(); break; default: printf("\nOpcao inválida"); } } Citar Link para o comentário Compartilhar em outros sites More sharing options...
Administradores Fernando Mercês Postado Dezembro 14, 2021 Administradores Compartilhar Postado Dezembro 14, 2021 Oi lucas. O que acontece quando você tenta usar? Qual requisito que não funciona? ? Citar Link para o comentário Compartilhar em outros sites More sharing options...
Posts Recomendados
Participe da conversa
Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.