Jump to content

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


lucas costa da cruz
 Share

Recommended Posts

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 to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...