• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

spc

Trabalho escolar

2 mensagens neste tópico

oi, bom dia!

tnh um trblh pa faculdade de dev c++, k nao tou a conseguir fazer!

[table][tr][td]Desenvolver, em linguagem C, um programa para armazenar informação sobre animais

num canil. O sistema deve ter capacidade para 50 animais e deve fazer controlo sobre o

nº de animais de que há informação no sistema em cada momento.

O sistema deve armazenar a seguinte informação sobre cada animal (cão):

• Nome (15 caracteres no máximo)

• Raça (15 caracteres no máximo)

• Sexo (1 caractere que pode tomar o valor M ou F)

• Idade (int)

• Observações (25 caracteres no máximo)

O sistema deve apresentar o seguinte menu, e deve permitir a funcionalidade indicada

em cada opção:

Sistema de gestão de canil

Menu:

1- Criar novo animal

2- Alterar dados de animal

3- Consultar quantidade total de animais

4- Consultar quantidade de animais por sexo

5- Listar animais por ordem alfabética do nome

6- Listar animais por ordem decrescente de idade

7- Save - Guardar lista de animais em ficheiro

8- Load - Ler lista de animais de ficheiro

9- Sair[/table]

eu este consegui fazer:

#include <stdio.h>
#include <stdlib.h>


#define TAM 50

typedef struct ani { 
  char nome[15];
  char raca[15];
  char sexo;
  int idade;
  char observacoes[25];
} animal;

int main(int argc, char *argv[])
{
    animal canil [50];
    char nome[15];
    char raca[15];
    char sexo;
    int idade=0,i=0,j=0;
    char observacoes[15];
    char opc;
    int qtd=0,qtdM=0,qtdF=0;
    int k, min, val;
    char temp[15];
    FILE *fich;
       do{
             printf("-------------------- MENU -----------------------\n");
             printf("[1] - Criar novo animal\n");
             printf("[2] - Alterar dados de animal\n");
             printf("[3] - Consultar quantidade total de animais\n");
             printf("[4] - Consultar quantidade de animais por sexo\n");
             printf("[5] - Listar animais por ordem alfabética do nome\n");
             printf("[6] - Listar animais por ordem decrescente de idade\n");
             printf("[7] - Save - Guardar lista de animais em ficheiro\n");
             printf("[8] - Load - Ler lista de animais de ficheiro\n");
             printf("[9] - Sair\n\n\n");
             printf("OPCAO:");
             do{
                opc=getchar();
             }while(opc<49 || opc>57);
             switch(opc){
                 case'1':
                     system("cls");
                     printf("-------- CRIAR NOVO ANIMAL --------\n\n");
                     printf("Nome:");
                     scanf("%s",canil[qtd].nome);
                     printf("Raça:");
                     scanf("%s",&canil[qtd].raca);
                     do{
                     fflush(stdin);
                                   printf("Sexo:");
                                   scanf("%c",&canil[qtd].sexo);
                     }while (canil[qtd].sexo != 'f' &&  canil[qtd].sexo != 'F' && canil[qtd].sexo != 'm' && canil[qtd].sexo != 'M');
                     printf("Idade:");
                     scanf("%i",&canil[qtd].idade);
                     printf("Observacoes:");
                     scanf("%s",&canil[qtd].observacoes);
                     qtd++;
                     system("PAUSE");
                     system("cls");	
                     break;
                 case'2':
                     system("cls");
                     printf("-------- ALTERAR DADOS DE ANIMAL --------\n\n");    
                     fflush(stdin);    
                     printf("Qual o nome do animal a alterar dados:");
                     scanf("%s",nome);
                     i=0;
                     printf("%s  ---  %s\n", canil[i].nome, nome);
                     while(strcmp(canil[i].nome, nome) != 0 && i<qtd){
                          i++;
                     } 
                     printf("i = %i\n\n", i);
                     if(i < qtd){
                          fflush(stdin);
                          printf("Nome:%s\n",canil[i].nome);
                          scanf("%s",canil[i].nome);
                          printf("Raça:%s\n",canil[i].raca);
                          scanf("%s",canil[i].raca);
                          printf("Sexo:%c\n", canil[i].sexo);
                          fflush(stdin);
                          scanf("%c", &canil[i].sexo);
                          printf("Idade:%i\n",canil[i].idade);
                          scanf("%i",&canil[i].idade);
                          printf("Observacoes:%s\n",canil[i].observacoes);
                          scanf("%s",canil[i].observacoes);
                     }
                     else printf("Erro! Não existe esse animal!");
                     system("PAUSE");
                     system("cls");	
                     break;
                 case '3':
                 system("cls");
                     printf("-------- CONSULTAR QUANTIDADE TOTAIS DE ANIMAIS --------\n\n");
                     printf("Quantidade de animais: %d\n\n", qtd);
                     system("PAUSE");
                     system("cls");	
                     break;
                 case '4':
                     system("cls");
                     printf("-------- CONSULTAR QUANTIDADE DE ANIMAIS POR SEXO --------\n\n");
                      i=0;
                     while(i<qtd){
                                  if(canil[i].sexo=='m') qtdM++;
                                  else qtdF++;
                                  i++;
                                  }
                          printf("Quantidade de animais femeas: %i\n\n", qtdF);
                          printf("Quantidade de animais machos: %i\n\n", qtdM);
                     system("PAUSE");
                     system("cls");	                          
                     break;                     
                 case '5':
                system("cls");
                  printf("-------- LISTAR ANIMAIS POR ORDEM ALFABETICA  --------\n\n");     
                     for(i = 1; i < qtd; i++) 
                           for (j = 0; j < qtd -1 ; j++)
                               if(strcmp(canil[j].nome,canil[j+1].nome) > 0){   
                                   strcpy(temp,canil[j].nome);
                                   strcpy(canil[j].nome,canil[j+1].nome);
                                   strcpy(canil[j+1].nome,temp);                               
                               }
                               free(canil);
                               printf("Nomes ordenados: \n");
                               printf("     NOME    |    RACA    | SEXO | IDADE | OBSERVACOES\n");     
                               for(i = 0; i < qtd; ++i)
                               printf("%-015s %-015s %01c %02i %-020s\n",canil[i].nome,canil[i].raca,canil[i].sexo,canil[i].idade,canil[i].observacoes);   
                     system("PAUSE");
                     system("cls");	                         
                     break;   
                 case '6':
                  system("cls");
                     printf("-------- LISTAR ANIMAIS POR ORDEM DECRESCENTE DE IDADE --------\n\n");     
                          for(k=0; k < qtd; k++)
                          {
                                   min = k;
                                   for(i=k; i < qtd; i++)
                                   {
                                            if (canil[i].idade < canil[min].idade)
                                             min = i;
                                   }
                          val    = canil[k].idade;
                          canil[k].idade   = canil[min].idade;
                          canil[min].idade = val;
      
     
                          }
                          printf("\n\nArray ordenado: \n");
                          printf("IDADE   |   NOME   |   RACA   |   SEXO   | OBS\n");
                          for(j=0; j < qtd; j++)
                          {
                                   printf("%02i %s %s %c %-020s\n",canil[qtd-j-1].idade,canil[qtd-j-1].nome,canil[qtd-j-1].raca,canil[qtd-j-1].sexo,canil[qtd-j-1].observacoes);
                          }
                          system("PAUSE");
                          system("cls");	
                     break;                    
                 case '7':
                        if((fich=fopen("Gestao de Canil.txt","w"))==NULL){
                                                                       printf ("Erro na abertura do ficheiro");
                                                                       break;
                                                                       }

                        for(i=0; i<qtd; i++)
                                 fprintf(fich,"%s %s %c %d %s\n",
                                  canil[i].nome,
                                  canil[i].raca,
                                  canil[i].idade, 
                                  canil[i].sexo,
                                  canil[i].observacoes);
                          fclose(fich);
                          system("PAUSE");
                          system("cls");	
                      break;
                      case '8':
                      fich=fopen("Gestao de Canil.txt","r");
                       if(fich != NULL){
                       qtd=0;
                       while(fscanf(fich,"%s %s %c %d %s", nome, raca,&sexo,&idade, observacoes) != EOF){
                          printf("%s %s %c %d %s\n", nome, raca, sexo, idade, observacoes);
                          strcpy(canil[qtd].nome,nome);
                          strcpy(canil[qtd].raca,raca);
                          canil[qtd].idade=idade;
                          canil[qtd].sexo=sexo;
                          strcpy(canil[qtd].observacoes,observacoes);
                          printf("%s %s %c %d %s\n", canil[qtd].nome, canil[qtd].raca, canil[qtd].sexo, canil[qtd].idade, canil[qtd].observacoes);
                          qtd++;
                       }
                       fclose(fich);
                       }
                       system("PAUSE");
                       system("cls");	  
                      break;
           }
       } while(opc!='9');
  system("PAUSE");	
  return 0;
}

mas agora o professor quer que faça com funçoes!

será k me podem dar uma ajudinha?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

crias funções para por exemplo inserir os animais e para outras funcionalidades do programa.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora