Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <string.h>
- #include <stdlib.h>
- typedef struct _produto{
- char nome[30], data_fab[12], data_val[12], fornecedor[30];
- double val_venda;
- }Produto;
- typedef struct _compra{
- Produto produtos[20];
- double total;
- }Compra;
- typedef struct _cartao{
- int numero;
- Compra compras[20];
- double total_compras;
- }Cartao;
- typedef struct _cliente{
- char nome[30], cpf[16], telefone[17];
- Cartao cartao;
- }Cliente;
- typedef struct _estoque{
- Produto produto;
- int qtd_estoque;
- double val_aquisicao;
- }Estoque;
- Produto produto[200];
- Estoque estoque[200];
- Cliente cliente[200];
- Cartao cartoes[200];
- int nClientes=0;
- int nProdutos=0;
- int nCartoes=0;
- void cadastrar_cliente1(){
- int i;
- strncpy(cliente[0].nome, "Joao\n", 30);
- strncpy(cliente[0].cpf, "42704935262\n", 16);
- strncpy(cliente[0].telefone, "89357901\n", 17);
- cartoes[0].numero = 10101515;
- cliente[0].cartao = cartoes[0];
- nClientes++;
- strncpy(cliente[1].nome, "Maria\n", 30);
- strncpy(cliente[1].cpf, "14448887499\n", 16);
- strncpy(cliente[1].telefone, "40506694\n", 17);
- cartoes[1].numero = 10101414;
- cliente[1].cartao = cartoes[1];
- nClientes++;
- strncpy(cliente[2].nome, "Cleiton\n", 30);
- strncpy(cliente[2].cpf, "35622793610\n", 16);
- strncpy(cliente[2].telefone, "20517110\n", 17);
- cartoes[2].numero = 15152020;
- cliente[2].cartao = cartoes[2];
- nClientes++;
- strncpy(cliente[3].nome, "Neusa\n", 30);
- strncpy(cliente[3].cpf, "69276273247\n", 16);
- strncpy(cliente[3].telefone, "61775244\n", 17);
- cartoes[3].numero = 11111212;
- cliente[3].cartao = cartoes[3];
- nClientes++;
- strncpy(cliente[4].nome, "Gilberto\n", 30);
- strncpy(cliente[4].cpf, "80455816387\n", 16);
- strncpy(cliente[4].telefone, "44147635\n", 17);
- cartoes[4].numero = 22101515;
- cliente[4].cartao = cartoes[4];
- nClientes++;
- }
- void cadastrar_cliente(){
- int i, op;
- for(i=nClientes; i<200; i++){
- fflush(stdin);
- printf("Digite o nome do cliente: ");
- fgets(cliente[i].nome, 30, stdin);
- printf("Digite o CPF (somente números): ");
- fgets(cliente[i].cpf, 16, stdin);
- printf("Digite o telefone: ");
- fgets(cliente[i].telefone, 17, stdin);
- printf("Digite o numero do cartao: ");
- scanf("%d", &cartoes[i].numero);
- cliente[i].cartao = cartoes[i];
- printf("\nCadastrar outro cliente? 1- SIM 2- NAO\n");
- scanf("%d", &op);
- nClientes++;
- if(op==2) return;
- }
- }
- void cadastrar_produto1(){
- int i;
- strncpy(produto[0].nome, "Arroz\n", 30);
- strncpy(produto[0].data_fab, "05/08/17\n", 12);
- strncpy(produto[0].data_val, "11/12/17\n", 12);
- produto[0].val_venda = 8;
- strncpy(produto[0].fornecedor, "Chines\n", 30);
- estoque[0].qtd_estoque = 9;
- estoque[0].produto = produto[0];
- nProdutos++;
- strncpy(produto[1].nome, "Feijao\n", 30);
- strncpy(produto[1].data_fab, "10/07/17\n", 12);
- strncpy(produto[1].data_val, "22/11/17\n", 12);
- produto[1].val_venda = 11;
- strncpy(produto[1].fornecedor, "Robervaldo\n", 30);
- estoque[1].qtd_estoque = 18;
- estoque[1].produto = produto[1];
- nProdutos++;
- strncpy(produto[2].nome, "Macarrao\n", 30);
- strncpy(produto[2].data_fab, "11/09/17\n", 12);
- strncpy(produto[2].data_val, "01/02/18\n", 12);
- produto[2].val_venda = 5;
- strncpy(produto[2].fornecedor, "Chines\n", 30);
- estoque[2].qtd_estoque = 13;
- estoque[2].produto = produto[2];
- nProdutos++;
- strncpy(produto[3].nome, "Batata\n", 30);
- strncpy(produto[3].data_fab, "15/11/17\n", 12);
- strncpy(produto[3].data_val, "07/04/18\n", 12);
- produto[3].val_venda = 8;
- strncpy(produto[3].fornecedor, "Japa\n", 30);
- estoque[3].qtd_estoque = 28;
- estoque[3].produto = produto[3];
- nProdutos++;
- strncpy(produto[4].nome, "Coca\n", 30);
- strncpy(produto[4].data_fab, "11/12/17\n", 12);
- strncpy(produto[4].data_val, "01/02/18\n", 12);
- produto[4].val_venda = 3;
- strncpy(produto[4].fornecedor, "Japa\n", 30);
- estoque[4].qtd_estoque = 22;
- estoque[4].produto = produto[4];
- nProdutos++;
- }
- void cadastrar_produto(){
- int i, op;
- for(i=nProdutos; i<200; i++){
- fflush(stdin);
- printf("Digite o nome do produto: ");
- fgets(produto[i].nome, 30, stdin);
- printf("Digite a data de fabricacao: ");
- fgets(produto[i].data_fab, 12, stdin);
- printf("Digite a data de validade: ");
- fgets(produto[i].data_val, 12, stdin);
- printf("Digite o valor da venda: ");
- scanf("%lf", &produto[i].val_venda);
- fflush(stdin);
- printf("Digite o fornecedor: ");
- fgets(produto[i].fornecedor, 30, stdin);
- printf("Quantidade de produtos em estoque: ");
- scanf("%d", &estoque[i].qtd_estoque);
- printf("\n");
- estoque[i].produto = produto[i];
- nProdutos++;
- printf("Cadastrar outro ? 1- SIM 2- NAO"\n");
- scanf("%d", &op);
- if(op==2) return;
- }
- }
- void cadastrar_venda(){
- int i=0, op, op2, op3, op4, qty, total=0;
- char cpff[20];
- Compra compra;
- compra.total = 0;
- fflush(stdin);
- printf("Informe o CPF do cliente: ");
- fgets(cpff, 20, stdin);
- Cliente clienteAux;
- strncpy(clienteAux.nome,"NULL",30);
- for(i=0; i<nClientes; i++){
- if(strcmp(cpff, cliente[i].cpf)==0){
- clienteAux = cliente[i];
- break;
- }
- }
- if (clienteAux.nome == "NULL"){
- printf("\n----------------------\n Cliente não encontrado \n----------------------\n");
- return;
- }
- do{
- listar_produtos();
- printf("\nInforme o codigo do produto:\n");
- scanf("%d", &op);
- printf("\nQuantidade: ");
- scanf("%d", &qty);
- if(estoque[op-1].qtd_estoque < qty){
- printf("\n----------------------\n Produto indisponivel \n----------------------\n");
- return;
- }else{
- estoque[op-1].qtd_estoque -= qty;
- compra.total += (qty*estoque[op-1].produto.val_venda);
- printf("%d produtos %s com valor de R$ %.2lf foi adicionado a venda.\n", qty, produto[op-1].nome, produto[op-1].val_venda);
- printf("Valor total atual: %.2lf\n", compra.total);
- }
- printf("\n\nDeseja adicionar outro produto?\n1-SIM 2-NAO\n\n");
- scanf("%d", &op2);
- i++;
- }while(op2!=2);
- printf("\n\nForma de pagamento: 1-CARTAO 2-DINHEIRO\n\n");
- scanf("%d", &op3);
- if(op3==1){
- cliente[i-1].cartao.compras[0] = compra;
- cliente[i-1].cartao.total_compras += compra.total;
- }
- printf("\n---------------------------------\n Venda efetuada com sucesso \n---------------------------------\n\ns");
- }
- void buscar_cliente(){
- int i;
- char cpff[20];
- fflush(stdin);
- printf("Informe o CPF do cliente: ");
- fgets(cpff, 20, stdin);
- for(i=0; i<nClientes; i++){
- if(strcmp(cpff, cliente[i].cpf)==0){
- printf("\nNome = %s", cliente[i].nome);
- printf("CPF = %s", cliente[i].cpf);
- printf("Telefone = %s\n\n", cliente[i].telefone);
- return;
- }
- }
- (printf("\n--------------------\n cpf nao encontrado \n--------------------\n\n"));
- }
- void buscar_produto(){
- int i;
- char produtof[30];
- fflush(stdin);
- printf("Informe o nome do produto: ");
- fgets(produtof, 30, stdin);
- for(i=0; i<200; i++){
- if(strcmp(produtof, produto[i].nome)==0){
- printf("\nNome produto: %s", produto[i].nome);
- printf("Data de fabricacao: %s", produto[i].data_fab);
- printf("Data de validade: %s", produto[i].data_val);
- printf("Valor de venda: %.2lfR$", produto[i].val_venda);
- printf("\nFornecedor: %s\n", produto[i].fornecedor);
- return;
- }
- }
- (printf("\n------------------------\n produto nao encontrado \n------------------------\n\n"));
- }
- void adicionar_prod_estoque(){
- int op, qtd;
- listar_produtos();
- printf("Qual produto deseja adicionar unidades?\n");
- scanf("%d", &op);
- printf("Quantas unidades deseja adicionar?\n");
- scanf("%d", &qtd);
- estoque[op-1].qtd_estoque += qtd;
- }
- void listar_prod_fornecedor(){
- int i;
- char fornecedorf[30];
- fflush(stdin);
- printf("Informe o nome do fornecedor: ");
- fgets(fornecedorf, 30, stdin);
- for(i=0; i<200; i++){
- if(strcmp(fornecedorf, produto[i].fornecedor)==0){
- printf("\nNome produto: %s", produto[i].nome);
- printf("Data de fabricacao: %s", produto[i].data_fab);
- printf("Data de validade: %s", produto[i].data_val);
- printf("Valor de venda: %.2lfR$", produto[i].val_venda);
- printf("\nFornecedor: %s\n", produto[i].fornecedor);
- return;
- }
- }
- (printf("\n---------------------------\n fornecedor nao encontrado \n---------------------------\n\n"));
- }
- void listar_prod_baixa(){
- int i;
- for(i=0; i<nProdutos; i++){
- if(estoque[i].qtd_estoque < 10){
- printf("Codigo produto: %d\n", i+1);
- printf("Nome produto: %s", produto[i].nome);
- printf("Fornecedor: %s\n", produto[i].fornecedor);
- }
- }
- }
- void listar_clientes(){
- int i, codigo=0;
- for(i=0;i<nClientes;i++,codigo++){
- printf("Codigo: %d\n", codigo+1);
- printf("Nome: %sCPF: %sTelefone: %sCartao: %d\n\n", cliente[i].nome, cliente[i].cpf, cliente[i].telefone, cliente[i].cartao.numero);
- }
- }
- void listar_produtos(){
- int i;
- for(i=0; i<nProdutos; i++){
- printf("Codigo produto: %d\n", i+1);
- printf("Nome produto: %s", produto[i].nome);
- printf("Fornecedor: %s\n", produto[i].fornecedor);
- }
- }
- void listar_clientes_compra(){
- int i;
- for(i=0; i<nClientes; i++){
- if(cliente[i].cartao.total_compras > 0)
- printf("Nome: %s", cliente[i].nome);
- }
- }
- int main(void){
- int opcao;
- cadastrar_produto1();
- cadastrar_cliente1();
- do{
- printf("\tMenu de Opções:\n");
- printf("1 - Cadastrar clientes, produtos ou venda:\n");
- printf("2 - Buscar cliente:\n");
- printf("3 - Buscar produto:\n");
- printf("4 - Adicionar produto no estoque:\n");
- printf("5 - Listar produtos:\n");
- printf("6 - Listar clientes:\n");
- printf("7 - Listar clientes que efetuaram compras com cartao:\n");
- printf("0 - Sair do sistema:\n");
- printf("\n--> ");
- scanf("%d", &opcao);
- printf("\n");
- switch(opcao){
- case 1:
- do{
- printf("\tSubmenu de cadastro\n");
- printf("1 - Cadastrar cliente:\n");
- printf("2 - Cadastrar produto:\n");
- printf("3 - Cadastrar venda:\n");
- printf("0 - Voltar ao menu anterior\n");
- printf("\n--> ");
- scanf("%d", &opcao);
- printf("\n");
- switch(opcao){
- case 1:
- cadastrar_cliente();
- opcao = 0;
- break;
- case 2:
- cadastrar_produto();
- opcao = 0;
- break;
- case 3:
- cadastrar_venda();
- opcao = 0;
- break;
- case 0:
- break;
- default:
- printf("Opcao inválida\n\n");
- break;
- }
- }while(opcao != 0);
- opcao = 1;
- break;
- case 2:
- buscar_cliente();
- break;
- case 3:
- buscar_produto();
- break;
- case 4:
- adicionar_prod_estoque();
- break;
- case 5:
- do{
- printf("\tSubmenu de produtos\n");
- printf("1 - Listar produtos por fornecedor:\n");
- printf("2 - Listar produtos em baixa no estoque:\n");
- printf("0 - Voltar ao menu anterior\n");
- printf("\n--> ");
- scanf("%d", &opcao);
- printf("\n");
- switch(opcao){
- case 1:
- listar_prod_fornecedor();
- opcao = 0;
- break;
- case 2:
- listar_prod_baixa();
- opcao = 0;
- break;
- case 0:
- break;
- default:
- printf("Opcao inválida\n\n");
- break;
- }
- }while(opcao != 0);
- opcao = 5;
- break;
- case 6:
- listar_clientes();
- break;
- case 7:
- listar_clientes_compra();
- break;
- case 0:
- break;
- default:
- printf("Opção inválida\n\n");
- }
- }while(opcao != 0);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement