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

boa noite fiz esse exercício e não está certo pode me ajudar por favor  


lucas costa da cruz

Pergunta

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");
    }
}

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

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,5k
×
×
  • Criar Novo...