Ir ao conteúdo
  • Cadastre-se
Visitante

C RESOLVIDO Fiz ate Uma parte do codigo e estou perdido ao que vou fazer agora

Recommended Posts

Visitante

image.thumb.png.ba7cbab329676773a0199a3c4cd55803.pngElaborar um algoritmo que auxilie no controle de uma fazenda de gado que possuí um total de 2000 cabeças de gado. A base de dados é formada por um conjunto de estruturas (registros) contendo os seguintes campos referente a cada cabeça de gado:

código: código da cabeça de gado,

leite: número de litros de leite produzido por semana,

alim: quantidade de alimento ingerida por semana - em quilos,

nasc: ano de nascimento,

abate: ‘N" (não) ou ‘S’ (sim).

Elaborar um programa que permita:

a) Ler a base de dados (código, leite, alim, nasc), armazenado em um vetor de estruturas.
b) Preencher o campo abate, considerando que a cabeça de gado irá para o abate caso:

tenha mais de 5 anos, ou;

produza menos de 40 litros de leite por semana, ou;

produza entre 50 e 70 litros de leite por semana e ingira mais de 50 quilos de alimento por dia.

Crie o menu de opções para:

c) Devolver a quantidade total de leite produzida por semana na fazenda.
d) Devolver a quantidade total de alimento consumido por semana na fazenda.
e) Devolver a quantidade total de leite que vai ser produzido por semana na fazenda, após o abate
f) Devolver a quantidade total de alimento que vai ser consumido por semana na fazenda, após o abate
g) Devolver número de cabeças de gado que irão para o abate.
h) Sair do programa.

 

---------------------------------------------

codigo em c

#include<stdio.h>

    

    
main(){

    struct vacas{
    int cod;
    float qtdalim;
    int ano_nas;
    char abate;
     float leite;    
     int atual;
    char op = 's';    

    };
    
    struct vacas recebe;
    recebe.abate='s';
    struct vacas vet[10];
    
     
    printf("Entre com Ano atual: \n "); scanf("%i",&vet[10].atual); fflush(stdin);
    
    do{
    
    printf("Entre com codigo do Gado: \n "); scanf("%i",&vet[10].cod); fflush(stdin);
    printf("Entre Com Ano De nascimento do Gado: \n "); scanf("%i",&vet[10].ano_nas); fflush(stdin);
    printf("Entre Com a Quantidade de Alimento : \n"); scanf("%f",&vet[10].qtdalim); fflush(stdin);
    printf("Entre com A quantidade De leite produzida Semanalmente: \n"); scanf("%f",&vet[10].leite); fflush(stdin); 
    printf("Deseja Continuar[s/n]: ");scanf("%c",&vet[10].op); fflush(stdin);
    vet[10].atual=vet[10].atual-vet[10].ano_nas;//so funciona com 10 e nao i 
     }while(vet[10].op !='n');
    for(int i=0;i<=5;i++){
    
    printf("%i",vet[10].atual); ///fazia ele parar e nao entrva no codigo 
    //fazer os validaores pare ele nao aceitar qualquer idade 
    // escrever as condiçoes de abate 
    
}
}

  

 

  • Amei 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

@back toil.     esse programa é bem extenso , então melhor ir fazendo aos poucos e testando ,  seu código está bom , mas desorganizado , então apenas ajeitei ele um pouco ,  e  ficou assim        

#include <stdio.h >
#include <ctype.h >
#include <stdlib.h>
#include <string.h>
#include <windows.h>
struct vacas{
    int   cod     ,atual,ano_nas;
    float qtd_alim,leite_p_se   ;
    char  abate   ,op           ;
};
int i,j,cont;
struct vacas vet[10];
/*             0     1    2     3   4      5      6      7         8  */
typedef enum{BLACK,BLUE,GREEN,CYAN,RED,MAGENTA,BROWN,LIGHTGRAY,DARKGRAY,
LIGHTBLUE,LIGHTGREEN,LIGHTCYAN,LIGHTRED,LIGHTMAGENTA,YELLOW,WHITE} COLORS;
/*  9         10         11        12        13         14    15      */

static int __BACKGROUND = 9/*BLACK*/;/*pode ser o numero ou o nome da cor*/
static int __FOREGROUND = LIGHTGRAY;

void textcolor (int letras, int fundo){/*para mudar a cor de fundo mude o background*/
    __FOREGROUND = letras;
    __BACKGROUND = fundo;
    SetConsoleTextAttribute (GetStdHandle (STD_OUTPUT_HANDLE),
    letras + (__BACKGROUND << 4));
}
                  /* y = linha de 0 a 24 , x = coluna de 0 a 80 */
void gotoxy(int x, int y){/*imprimir na linha e coluna desejada */
  COORD c;
  c.X = x;
  c.Y = y;
  SetConsoleCursorPosition (GetStdHandle(STD_OUTPUT_HANDLE), c);
}
int som(int f){
    Beep(f,150);/* primeiro a frquência depois o tempo de duração do som */
    return 0;
}

void cadastrar(){
    textcolor(14,0);
    system("cls");
    printf("    Cadastrando\n\n");
    do{
        printf("Entre com codigo do Gado -------------: ");
        fflush(stdin);
        scanf("%d",&vet[cont].cod);
        printf("Entre Com Ano De nascimento do Gado --: ");
        fflush(stdin);
        scanf("%d",&vet[cont].ano_nas);
        printf("Entre Com a Quantidade de Alimento ---: ");
        fflush(stdin);
        scanf("%f",&vet[cont].qtd_alim);
        printf("A quantidade De leite por Semanalmente: ");
        fflush(stdin);
        scanf("%f",&vet[cont].leite_p_se);
        printf("Deseja Continuar  [  S / N  ] --------: ");
        fflush(stdin);
        scanf("%c",&vet[cont].op);
        vet[cont].atual=vet[cont].atual-vet[cont].ano_nas;/*//so funciona com 10 e nao i*/
        if(cont < 10)cont++;
        som(500);
    }while(toupper(vet[cont-1].op) !='N');
}

int main(){
    struct vacas recebe;
    recebe.abate='s';
    recebe.op='s';
    int op;
    textcolor(14,0);
    system("cls");
    printf("Entre com Ano atual ------------------: ");
    fflush(stdin);
    scanf("%d",&vet[cont].atual);
    do{
        system("cls");
        textcolor(10,0);
        for(i=0;i<52;i++){
            gotoxy(i+8,00);printf("%c",205);
            gotoxy(i+8,10);printf("%c",205);
            gotoxy(i+8,12);printf("%c",205);
            if(i<13){
                gotoxy( 8,i);printf("%c",186);
                gotoxy(60,i);printf("%c",186);
            }
        }
        gotoxy( 8,00);printf("%c",201);
        gotoxy( 8,12);printf("%c",200);
        gotoxy(60,00);printf("%c",187);
        gotoxy(60,12);printf("%c",188);
        gotoxy( 8,10);printf("%c",204);
        gotoxy(60,10);printf("%c",185);
        textcolor(14,0);
        gotoxy(10, 2);printf("0 - Sair Do Programa");
        gotoxy(10, 3);printf("1 - cadastrar");
        gotoxy(10, 4);printf("2 - mostrar total de leite por semana");
        gotoxy(10, 5);printf("3 - mostrar total alimento por semana");
        gotoxy(10, 6);printf("4 - mostrar total leite por semana apos abate");
        gotoxy(10, 7);printf("5 - mostrar total alimento por semana apos abate");
        gotoxy(10, 8);printf("6 - mostrar total gado para abate");
        textcolor(11,0);
        for(i=0;i<7;i++){
            gotoxy(10,i+2);
            printf("%c",i+48);
        }
        gotoxy(10,11);printf("Escolha Uma Opcao : ");
        scanf("%d",&op);
        switch(op){
        case 0:
            textcolor(14,0);
            gotoxy(10,14);
            printf("Saindo Do Programa . . . !\n\n");
            Sleep(100);
            som(400);
            Sleep(200);
            textcolor(7,0);
            exit(0);
        case 1:
            cadastrar();
            break;
        default:
            printf("Opcao Invalida . . . !");
            Sleep(1000);
        }
    }while(op!=0);
    printf("\n");
    textcolor(10,0);
    for(i=0;i<cont;i++){
        printf("Ano Atual ----> %d",vet[i].atual); /*///fazia ele parar e nao entrva no codigo*/
        /*//fazer os validaores pare ele nao aceitar qualquer idade
        // escrever as condiçoes de abate*/
    }
    textcolor(7,0);
    printf("\n\n");
    return 0;
}

:

  • Curtir 1
  • Amei 1

Compartilhar este post


Link para o post
Compartilhar em outros sites
  • Autor do tópico
  •    2
    Visitante
    32 minutos atrás, devair1010 disse:

    @back toil.     esse programa é bem extenso , então melhor ir fazendo aos poucos e testando ,  seu código está bom , mas desorganizado , então apenas ajeitei ele um pouco ,  e  ficou assim        

    
    #include <stdio.h >
    #include <ctype.h >
    #include <stdlib.h>
    #include <string.h>
    #include <windows.h>
    struct vacas{
        int   cod     ,atual,ano_nas;
        float qtd_alim,leite_p_se   ;
        char  abate   ,op           ;
    };
    int i,j,cont;
    struct vacas vet[10];
    /*             0     1    2     3   4      5      6      7         8  */
    typedef enum{BLACK,BLUE,GREEN,CYAN,RED,MAGENTA,BROWN,LIGHTGRAY,DARKGRAY,
    LIGHTBLUE,LIGHTGREEN,LIGHTCYAN,LIGHTRED,LIGHTMAGENTA,YELLOW,WHITE} COLORS;
    /*  9         10         11        12        13         14    15      */
    
    static int __BACKGROUND = 9/*BLACK*/;/*pode ser o numero ou o nome da cor*/
    static int __FOREGROUND = LIGHTGRAY;
    
    void textcolor (int letras, int fundo){/*para mudar a cor de fundo mude o background*/
        __FOREGROUND = letras;
        __BACKGROUND = fundo;
        SetConsoleTextAttribute (GetStdHandle (STD_OUTPUT_HANDLE),
        letras + (__BACKGROUND << 4));
    }
                      /* y = linha de 0 a 24 , x = coluna de 0 a 80 */
    void gotoxy(int x, int y){/*imprimir na linha e coluna desejada */
      COORD c;
      c.X = x;
      c.Y = y;
      SetConsoleCursorPosition (GetStdHandle(STD_OUTPUT_HANDLE), c);
    }
    int som(int f){
        Beep(f,150);/* primeiro a frquência depois o tempo de duração do som */
        return 0;
    }
    
    void cadastrar(){
        textcolor(14,0);
        system("cls");
        printf("    Cadastrando\n\n");
        do{
            printf("Entre com codigo do Gado -------------: ");
            fflush(stdin);
            scanf("%d",&vet[cont].cod);
            printf("Entre Com Ano De nascimento do Gado --: ");
            fflush(stdin);
            scanf("%d",&vet[cont].ano_nas);
            printf("Entre Com a Quantidade de Alimento ---: ");
            fflush(stdin);
            scanf("%f",&vet[cont].qtd_alim);
            printf("A quantidade De leite por Semanalmente: ");
            fflush(stdin);
            scanf("%f",&vet[cont].leite_p_se);
            printf("Deseja Continuar  [  S / N  ] --------: ");
            fflush(stdin);
            scanf("%c",&vet[cont].op);
            vet[cont].atual=vet[cont].atual-vet[cont].ano_nas;/*//so funciona com 10 e nao i*/
            if(cont < 10)cont++;
            som(500);
        }while(toupper(vet[cont-1].op) !='N');
    }
    
    int main(){
        struct vacas recebe;
        recebe.abate='s';
        recebe.op='s';
        int op;
        textcolor(14,0);
        system("cls");
        printf("Entre com Ano atual ------------------: ");
        fflush(stdin);
        scanf("%d",&vet[cont].atual);
        do{
            system("cls");
            textcolor(10,0);
            for(i=0;i<52;i++){
                gotoxy(i+8,00);printf("%c",205);
                gotoxy(i+8,10);printf("%c",205);
                gotoxy(i+8,12);printf("%c",205);
                if(i<13){
                    gotoxy( 8,i);printf("%c",186);
                    gotoxy(60,i);printf("%c",186);
                }
            }
            gotoxy( 8,00);printf("%c",201);
            gotoxy( 8,12);printf("%c",200);
            gotoxy(60,00);printf("%c",187);
            gotoxy(60,12);printf("%c",188);
            gotoxy( 8,10);printf("%c",204);
            gotoxy(60,10);printf("%c",185);
            textcolor(14,0);
            gotoxy(10, 2);printf("0 - Sair Do Programa");
            gotoxy(10, 3);printf("1 - cadastrar");
            gotoxy(10, 4);printf("2 - mostrar total de leite por semana");
            gotoxy(10, 5);printf("3 - mostrar total alimento por semana");
            gotoxy(10, 6);printf("4 - mostrar total leite por semana apos abate");
            gotoxy(10, 7);printf("5 - mostrar total alimento por semana apos abate");
            gotoxy(10, 8);printf("6 - mostrar total gado para abate");
            textcolor(11,0);
            for(i=0;i<7;i++){
                gotoxy(10,i+2);
                printf("%c",i+48);
            }
            gotoxy(10,11);printf("Escolha Uma Opcao : ");
            scanf("%d",&op);
            switch(op){
            case 0:
                textcolor(14,0);
                gotoxy(10,14);
                printf("Saindo Do Programa . . . !\n\n");
                Sleep(100);
                som(400);
                Sleep(200);
                textcolor(7,0);
                exit(0);
            case 1:
                cadastrar();
                break;
            default:
                printf("Opcao Invalida . . . !");
                Sleep(1000);
            }
        }while(op!=0);
        printf("\n");
        textcolor(10,0);
        for(i=0;i<cont;i++){
            printf("Ano Atual ----> %d",vet[i].atual); /*///fazia ele parar e nao entrva no codigo*/
            /*//fazer os validaores pare ele nao aceitar qualquer idade
            // escrever as condiçoes de abate*/
        }
        textcolor(7,0);
        printf("\n\n");
        return 0;
    }

    :

    obrigado pela ajuda ,estou aprendendo c , e nao conhecia bem a linguagem pois eu trabalho com infraestrutura e quase nao tem programaçao ... valeu

    • Obrigado 1

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    Crie uma conta ou entre para comentar

    Você precisar ser um membro para fazer um comentário

    Criar uma conta

    Crie uma nova conta em nossa comunidade. É fácil!

    Crie uma nova conta

    Entrar

    Já tem uma conta? Faça o login.

    Entrar agora





    Sobre o Clube do Hardware

    No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações 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

    ×