Untitled
unknown
plain_text
4 years ago
9.7 kB
3
Indexable
#include <stdio.h> #include <string.h> #include <stdlib.h> typedef struct { char rua[50]; int numero; char bairro[50]; }Endereco; typedef struct { char telefone[15]; char nome[50]; Endereco endereco; }Pessoa; typedef struct { Pessoa pessoa; }Cliente; typedef struct { Pessoa pessoa; int cod_motoqueiro; }Motoqueiro; typedef struct { int cod_pizza; char nome_pizza[50]; float preco; }Pizza; typedef struct { int cod_pedido; char telefone_cliente[50]; int cod_pizza; int cod_motoqueiro; int situacao; }Pedido; int cadastro_cliente(Cliente* vetor_cliente, int tam); int cadastro_motoqueiro(Motoqueiro* vetor_motoqueiro, int tam); int cadastro_pizza(Pizza* vetor_pizza, int tam); int cadastro_pedido(Pedido* vetor_pedido, Cliente* vetor_clientes, Pizza* vetor_pizza, int tam, int tam_cliente, int tam_pizza); int despacho_pizza(Pedido* pedido, Motoqueiro* vetor_motoqueiro, int tam_pedido, int tam_motoqueiro); int recebe_pizza(Pedido* vetor_pedido, int tam); int situacao_pedido(Pedido* vet_pedido, int tam); int pedidos_clientes(Pedido* vet_pedido, Cliente* vet_cliente, int tam, int tam_cliente); int pedidos_motoqueiros(Pedido* vet_pedido, Motoqueiro* vet_motoqueiro, int tam, int tam_motoqueiro); int main(){ int opcao = 1, qnt_clientes = 0, qnt_motoqueiro = 0, qnt_pizza = 0, qnt_pedido = 0; Cliente clientes[5]; Motoqueiro motoqueiros[2]; Pizza pizzas[3]; Pedido pedidos[6]; /*printf("1)Cadastra Cliente\n"); printf("2)Cadastra Motoboy\n"); printf("3)Cadastra pizza\n"); printf("4)Cadastra pedido\n"); printf("5)Despacha pizza\n"); printf("6)Recebe pizza\n"); printf("7)Pedidos por situacao\n"); printf("8)Pedidos por cliente\n"); printf("9)Motoqueiros entregas\n"); printf("0)Sair\n"); printf("Digite um numero do menu: ");*/ while(opcao != 0){ scanf("%d", &opcao); switch(opcao){ case 1: if(cadastro_cliente(clientes, qnt_clientes) == 0){ qnt_clientes++; printf("Cliente cadastrado com sucesso\n"); } break; case 2: if(cadastro_motoqueiro(motoqueiros, qnt_motoqueiro) == 0){ qnt_motoqueiro++; printf("Motoqueiro cadastrado com sucesso\n"); } break; case 3: if(cadastro_pizza(pizzas, qnt_pizza) == 0){ qnt_pizza++; printf("Pizza cadastrada com sucesso\n"); } break; case 4: if(cadastro_pedido(pedidos, clientes, pizzas, qnt_pedido, qnt_clientes, qnt_pizza) == 0){ qnt_pedido++; printf("Pedido cadastrado\n"); } break; case 5: despacho_pizza(pedidos, motoqueiros, qnt_pedido, qnt_motoqueiro); break; case 6: recebe_pizza(pedidos, qnt_pedido); break; case 7: situacao_pedido(pedidos, qnt_pedido); break; case 8: pedidos_clientes(pedidos, clientes, qnt_pedido, qnt_clientes); break; case 9: pedidos_motoqueiros(pedidos, motoqueiros, qnt_pedido, qnt_motoqueiro); break; default: printf("Opcao invalida\n"); break; } fflush(stdin); } printf("Encerrando sistema"); return 0; } int cadastro_cliente(Cliente* vetor_cliente, int tam){ int max = 5; if(tam == max){ printf("Numero maximo de clientes cadastrados\n"); return 1; } char telefone_cliente[50]; scanf(" %[^\n]%*c", telefone_cliente); int i; for(i=0; i<tam; i++){ if(strcmp(telefone_cliente, vetor_cliente[i].pessoa.telefone) == 0){ printf("Cliente ja cadastrado\n"); return 1; } } strcpy(vetor_cliente[tam].pessoa.telefone, telefone_cliente); scanf(" %[^\n]%*c", vetor_cliente[tam].pessoa.nome); scanf(" %[^\n]%*c", vetor_cliente[tam].pessoa.endereco.rua); scanf(" %d", &vetor_cliente[tam].pessoa.endereco.numero); scanf(" %[^\n]%*c", &vetor_cliente[tam].pessoa.endereco.bairro); return 0; } int cadastro_motoqueiro(Motoqueiro* vetor_motoqueiro, int tam){ int max = 2; if(tam == max){ printf("Numero maximo de motoqueiros cadastrados\n"); return 1; } int cod_motoqueiro; scanf(" %d", &cod_motoqueiro); int i; for(i = 0; i < tam; i++){ if(cod_motoqueiro == vetor_motoqueiro[i].cod_motoqueiro){ printf("Motoqueiro ja cadastrado\n"); return 1; } } vetor_motoqueiro[tam].cod_motoqueiro = cod_motoqueiro; scanf(" %[^\n]%*c", vetor_motoqueiro[tam].pessoa.telefone); scanf(" %[^\n]%*c", vetor_motoqueiro[tam].pessoa.nome); scanf(" %[^\n]%*c", vetor_motoqueiro[tam].pessoa.endereco.rua); scanf(" %d", &vetor_motoqueiro[tam].pessoa.endereco.numero); scanf(" %[^\n]%*c", &vetor_motoqueiro[tam].pessoa.endereco.bairro); return 0; } int cadastro_pizza(Pizza* vetor_pizza, int tam){ int max = 3; if(tam == max){ printf("Numero maximo de pizzas cadastrados\n"); return 1; } int cod_pizza; scanf("%d", &cod_pizza); int i; for(i=0; i<tam; i++){ if(vetor_pizza[i].cod_pizza == cod_pizza){ printf("Pizza ja cadastrada\n"); return 1; } } vetor_pizza[tam].cod_pizza = cod_pizza; scanf(" %[^\n]%*c", vetor_pizza[tam].nome_pizza); scanf("%.2f", &vetor_pizza[tam].preco); return 0; } int cadastro_pedido(Pedido* vetor_pedido, Cliente* vetor_clientes, Pizza* vetor_pizza, int tam, int tam_cliente, int tam_pizza){ int max = 6; if(tam == max){ printf("Numero maximo de pedidos realizados\n"); return 1; } int i, aux = 1, cod_pizza; char telefone_cliente[50]; scanf(" %[^\n]%*c", telefone_cliente); for(i = 0; i < tam_cliente; i++) { if(strcmp(vetor_clientes[i].pessoa.telefone, telefone_cliente) == 0){ aux = 0; } } if(aux == 1){ printf("Cliente nao encontrado\n"); return 1; } strcpy(vetor_pedido[tam].telefone_cliente, telefone_cliente); aux = 1; scanf(" %d", &cod_pizza); for(i = 0; i < tam_pizza; i++) { if(vetor_pizza[i].cod_pizza == cod_pizza){ aux = 0; } } if(aux == 1){ printf("Pizza nao cadastrada\n"); return 1; } vetor_pedido[tam].cod_pizza = cod_pizza; vetor_pedido[tam].situacao = 1; vetor_pedido[tam].cod_motoqueiro = 0; vetor_pedido[tam].cod_pedido = tam; return 0; } int despacho_pizza(Pedido* pedido, Motoqueiro* vetor_motoqueiro, int tam_pedido, int tam_motoqueiro){ int cod_pedido, aux = 1, i; scanf("%d", &cod_pedido); for(i = 0; i < tam_pedido; i++){ if(pedido[i].cod_pedido == cod_pedido){ aux = 0; } } if(aux == 1){ printf("Pedido nao encontrado\n"); return 1; } if(pedido[cod_pedido].situacao == 1){ int cod_motoquerio; scanf("%d", &cod_motoquerio); aux = 1; for(i = 0; i < tam_motoqueiro; i++){ if(vetor_motoqueiro[i].cod_motoqueiro == cod_motoquerio){ aux = 0; } } if(aux == 1){ printf("Motoqueiro nao encontrado\n"); return 1; } pedido[cod_pedido].situacao = 2; printf("Despachando pedido\n"); } else if(pedido[cod_pedido].situacao == 2){ printf("Pedido ja despachado\n"); return 1; } else if(pedido[cod_pedido].situacao == 3){ printf("Pedido ja entregue\n"); return 1; } } int recebe_pizza(Pedido* vetor_pedido, int tam) { int codigo_pedido, i, aux = 1; scanf("%d", &codigo_pedido); for(i = 0; i < tam; i++){ if(vetor_pedido[i].cod_pedido == codigo_pedido){ aux = 0; } } if(aux == 1){ printf("Pedido nao encontrado\n"); return 1; } if(vetor_pedido[codigo_pedido].situacao == 3){ printf("Entrega ja realizada\n"); return 1; } vetor_pedido[codigo_pedido].situacao = 3; printf("Pedido entregue\n"); return 0; } int situacao_pedido(Pedido* vet_pedido, int tam){ int cod_situacao, i, aux = 1; scanf("%d", &cod_situacao); if(cod_situacao != 1 || cod_situacao != 2 || cod_situacao != 3){ printf("Opcao invalida\n"); } for(i = 0; i < tam; i++){ if(vet_pedido[i].situacao == cod_situacao){ printf("Pedido: %d\n", vet_pedido[i].cod_pedido); printf("Cliente: %s\n", vet_pedido[i].telefone_cliente); printf("Pizza: %d\n", vet_pedido[i].cod_pizza); printf("Motoq: %d\n", vet_pedido[i].cod_motoqueiro); aux = 0; } } if(aux == 1){ printf("Sem itens nessa situacao\n"); return 1; } return 0; } int pedidos_clientes(Pedido* vet_pedido, Cliente* vet_cliente, int tam, int tam_cliente){ int i, aux = 1; char telefone[50]; scanf(" %[^\n]%*c", telefone); for(i = 0; i < tam; i++){ if(strcmp(vet_cliente[i].pessoa.telefone, telefone) == 0) { aux = 0; } } if(aux == 1){ printf("Cliente nao encontrado\n"); return 1; } aux = 1; for(i = 0; i < tam; i++){ if(strcmp(vet_pedido[i].telefone_cliente, telefone) == 0){ printf("Pedido: %d\n", vet_pedido[i].cod_pedido); printf("Situacao: %d\n", vet_pedido[i].situacao); printf("Pizza: %d\n", vet_pedido[i].cod_pizza); printf("Motoq: %d\n", vet_pedido[i].cod_motoqueiro); aux = 0; } } if(aux == 1){ printf("Cliente sem pedidos\n"); return 1; } return 0; } int pedidos_motoqueiros(Pedido* vet_pedido, Motoqueiro* vet_motoqueiro, int tam, int tam_motoqueiro){ int cod_motoqueiro, i, aux = 1; scanf(" %d", cod_motoqueiro); for(i = 0; i < tam; i++){ if(vet_motoqueiro[i].cod_motoqueiro == cod_motoqueiro) { aux = 0; } } if(aux == 1){ printf("Motoqueiro nao encontrado\n"); return 1; } aux = 1; for(i = 0; i < tam; i++){ if(vet_pedido[i].cod_motoqueiro == cod_motoqueiro){ printf("Pedido: %d\n", vet_pedido[i].cod_pedido); printf("Situacao: %d\n", vet_pedido[i].situacao); aux = 0; } } if(aux == 1){ printf("Motoqueiro sem pedidos\n"); return 1; } return 0; }
Editor is loading...