Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- #define CAPACIDADE 10
- #define TAMANHO_NOME 20
- #define TAMANHO_DATA 10
- typedef struct pacote {
- int numero, cod, ano, ocupado;
- float peso;
- char nome[TAMANHO_NOME], data[TAMANHO_DATA];
- } pacote;
- void cadastra_pacote(pacote vet[]) // cadastra todos os pacotes gbl_15@hotmail.com
- {
- int num_pacote, i, opc;
- for(i=0; i<CAPACIDADE ; i++)
- {
- if(vet[i].ocupado==0)
- {
- num_pacote=i;
- i=CAPACIDADE;
- }
- }
- if(vet[num_pacote].ocupado == 0)
- {
- vet[num_pacote].ocupado = 1;
- printf("Insira o codigo do pacote:");
- scanf("%d", &opc);
- vet[num_pacote].cod=opc;
- switch(opc)
- {
- case 1:
- strcpy(vet[num_pacote].nome, "Milho");
- break;
- case 2:
- strcpy(vet[num_pacote].nome, "Feijao");
- break;
- case 3:
- strcpy(vet[num_pacote].nome, "Trigo");
- break;
- case 4:
- strcpy(vet[num_pacote].nome, "Arroz");
- break;
- case 5:
- strcpy(vet[num_pacote].nome, "Milho");
- break;
- };
- printf("Insira a data de validade do pacote: ");
- scanf("%s", vet[num_pacote].data);
- printf("Insira o ano do pacote: ");
- scanf("%d", &vet[num_pacote].ano);
- printf("Insira o peso do pacote: ");
- scanf("%f", &vet[num_pacote].peso);
- }
- printf("\n\n");
- }
- void localiza_pacote(pacote vet[])// localiza todos os pacotes
- {
- int i;
- printf("Entre com o numero do pacote: ");
- scanf("%d", &i);
- if (vet[i-1].ocupado==1)
- {
- printf("\tTipo: %s\n", vet[i-1].nome);
- printf("\tCodigo do pacote: %d\n", vet[i-1].cod);
- printf("\tAno de producao: %d\n", vet[i-1].ano);
- printf("\tData de validade: %s\n", vet[i-1].data);
- printf("\tpeso: %f quilos\n", vet[i-1].peso);
- } else
- {
- printf("\tPacote nao cadastrado.\n");
- }
- }
- void cancela_pacote(pacote vet[])
- {
- int num_pacote;
- printf("Digite o numero do pacote: ");
- scanf("%d", &num_pacote);
- if(vet[num_pacote-1].ocupado == 1)
- {
- vet[num_pacote-1].ocupado = 0;
- printf("pacote excluido com sucesso.");
- }
- else
- {
- printf("O pacote nao existe.");
- }
- printf("\n\n");
- }
- void exibir_todos(pacote vet[])// exibe todos os pacotes
- {
- int i;
- for(i=0; i<CAPACIDADE; i++)
- {
- if(vet[i].ocupado==1)
- {
- printf("\tNumero do pacote: %d",vet[i].numero);
- printf("\tTipo: %s\n", vet[i].nome);
- printf("\tCodigo do pacote: %d", vet[i].cod);
- printf("\tAno de producao: %d\n", vet[i].ano);
- printf("\tData de validade: %s\n", vet[i].data);
- printf("\tpeso: %f quilos\n\n", vet[i].peso);
- }
- else
- {
- printf("\tNumero do pacote: %d\n",vet[i].numero);
- printf("\tVazio\n\n");
- }
- }
- }
- void ordenar_pacotes(pacote vet[] , pacote ord[]) // ordena pacote pelo codigo
- {
- int i, j, num_pacote;
- num_pacote=0;
- int numero, cod, ano, ocupado;
- float peso;
- char nome[TAMANHO_NOME], data[TAMANHO_DATA];
- for(j=1; j<=5; j++)
- {
- for(i=0; i<CAPACIDADE; i++)
- {
- if(vet[i].ocupado == 1)
- {
- if(vet[i].cod == j)
- {
- ord[num_pacote].numero=vet[i].numero;
- ord[num_pacote].cod=vet[i].cod;
- strcpy(ord[num_pacote].nome, vet[i].nome);
- ord[num_pacote].ano=vet[i].ano;
- strcpy(ord[num_pacote].data, vet[i].data);
- ord[num_pacote].peso=vet[i].peso;
- num_pacote++;
- }
- }
- }
- }
- for(i=0; i<num_pacote; i++)
- {
- printf("\tNumero do pacote: %d",ord[i].numero);
- printf("\tTipo: %s\n", ord[i].nome);
- printf("\tCodigo do pacote: %d", ord[i].cod);
- printf("\tAno de producao: %d\n", ord[i].ano);
- printf("\tData de validade: %s\n", ord[i].data);
- printf("\tpeso: %f quilos\n\n", ord[i].peso);
- }
- }
- void ordenar_peso(pacote vet[])
- {
- int i, j, c, h, a;
- char s, d;
- for(i=0; i<CAPACIDADE; i++)
- {
- for(j=i; j<CAPACIDADE; j++)
- {
- if(vet[i].ocupado == 1)
- {
- if(vet[i].peso > vet[j].peso)
- {
- c=vet[i].peso;
- vet[i].peso=vet[j].peso;
- vet[j].peso=c;
- h=vet[i].cod;
- vet[i].cod=vet[j].cod;
- vet[j].cod=h;
- a=vet[i].ano;
- vet[i].ano=vet[j].ano;
- vet[j].ano=c;
- strcpy(s,vet[i].nome);
- strcpy(vet[i].nome,vet[j].nome);
- strcpy(vet[j].nome,s);
- strcpy(d,vet[i].data);
- strcpy(vet[i].data,vet[j].data);
- strcpy(vet[j].nome,d);
- }
- }
- }
- }
- for(i=0; i<CAPACIDADE; i++)
- {
- if(vet[i].ocupado == 1)
- {
- printf("\tNumero do pacote: %d",vet[i].numero);
- printf("\tTipo: %s\n", vet[i].nome);
- printf("\tCodigo do pacote: %d", vet[i].cod);
- printf("\tAno de producao: %d\n", vet[i].ano);
- printf("\tData de validade: %s\n", vet[i].data);
- printf("\tpeso: %f quilos\n\n", vet[i].peso);
- }
- }
- }
- int main()
- {
- int i, opc;
- opc = 0;
- pacote suprimentos[CAPACIDADE], ord[CAPACIDADE];
- for (i = 0; i < CAPACIDADE; i++)
- {
- suprimentos[i].ocupado = 0;
- suprimentos[i].numero = i+1;
- };
- do{
- printf("Favor digitar\n");
- printf("1 - cadastra pacote\n");
- printf("2 - localiza um pacote\n");
- printf("3 - excluir pacote\n");
- printf("4 - Exibir todos os pacotes\n");
- printf("5 - Exibe pacotes por tipo\n");
- printf("6 - Ordena os pacotes por peso\n");
- printf("7 - Sair\n");
- printf("Opcao: ");
- scanf("%d", &opc);
- switch(opc){
- case 1:
- cadastra_pacote(suprimentos);
- break;
- case 2:
- localiza_pacote(suprimentos);
- break;
- case 3:
- cancela_pacote(suprimentos);
- break;
- case 4:
- exibir_todos(suprimentos);
- break;
- case 5:
- ordenar_pacotes(suprimentos, ord);
- break;
- case 6:
- ordenar_peso(suprimentos);
- break;
- }
- } while(opc!=7);
- return 0;
- }
Add Comment
Please, Sign In to add comment