Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdlib.h>
- #include <stdio.h>
- #include <string.h>
- #include <conio.h>
- #include <time.h>
- typedef struct humano{
- char nome[20], rua[50], email[40],cpf[12],tel[12];
- int codigo, qcompras, ncompra[100];
- float preco, precototal;
- }pessoa;
- typedef struct prudutos{
- char nome[20], marca[20];
- int codigo, estoque;
- float preco;
- }peca;
- typedef struct venda{
- peca produtos[50];
- float qp;
- int pecax;
- int pAtual;
- int codigo;
- int codpes;
- pessoa cliente;
- float total;
- }venda;
- void pass();
- void menuCliente(pessoa *clientes, int *cAtual);
- void preencheCliente(pessoa *clientes, int *cAtual);
- void alterarCliente(pessoa *clientes, int *cAtual);
- void excluirCliente(pessoa *clientes, int *cAtual);
- int buscaCodigoCliente(pessoa *clientes, int *cAtual);
- void menuEstoque(peca *pecas, int *pAtual);
- void preencheProduto(peca *pecas, int *pAtual);
- void alterarProduto(peca *pecas, int *pAtual);
- void excluirProduto(peca *pecas, int *pAtual);
- int buscaPProduto(peca *pecas, int *pAtual);
- void menuMovimentar(pessoa *clientes, int *cAtual, peca *pecas, int *pAtual, venda *vendas,int *vAtual);
- void venderProduto(pessoa *clientes, int *cAtual, peca *pecas, int *pAtual, venda *vendas,int *vAtual);
- void menuVendas();
- void Venda();
- void mostrarCliente(pessoa*p, int *max);
- void menu(pessoa *clientes, peca *pecas, venda *vendas);
- void menuRelatorio(pessoa *clientes, int *cAtual, peca *pecas, int *pAtual, venda *vendas,int *vAtual);
- void relatorioClienteCad(pessoa *clientes, int *cAtual, peca *pecas, int *pAtual, venda *vendas, int *vAtual);
- void relatorioClienteEsp(pessoa *clientes, int *cAtual, peca *pecas, int *pAtual, venda *vendas, int *vAtual);
- void reporProduto(peca *pecas, int *pAtual);
- void salva(pessoa *clientes, int *cAtual, peca *pecas, int *pAtual, venda *vendas, int *vAtual,int *sAtual);
- void atualiza(int *cAtual, int *pAtual, int *vAtual, int *sAtual);
- void zerar(int * cAtual, int *pAtual, int *vAtual, int *sAtual);
- int verificaCpf(char*cpf);
- int verificaTel(char*tel);
- int main () {
- peca pecas[100];
- pessoa clientes[100];
- venda vendas[100];
- menu(&clientes[0],&pecas[0],&vendas[0]);
- system("pause");
- }
- void pass(){
- char tentativa[7], user[20], auxuser, opsair;
- int verifica,verificaa=0,i;
- do{
- system("cls");
- printf("\n\n\n\n\n\n\n °\n");
- printf(" ° LOGIN: ");
- fflush(stdin);
- user[0] = getch();
- if(user[0] == 27){
- system("cls");
- printf("\n\n\n\n\n\n\n °\n");
- printf(" ° ENCERRANDO...\n");
- exit(0);
- }
- else{
- printf("%c", user[0]);
- fflush(stdin);
- auxuser = user[0];
- fflush(stdin);
- gets(user);
- verificaa = strcmp(user,"iegofernando5672");
- if(verificaa != 0){
- printf(" ° Login incorreto!");
- getch();
- }
- else{
- }
- }
- }while(verificaa!=0 || opsair == '2');
- do{
- system("cls");
- printf("\n\n\n\n\n\n\n ° LOGIN: %c%s\n", auxuser, user);
- printf(" ° SENHA: ");
- fflush(stdin);
- for(i=0;i<6; i++){
- fflush(stdin);
- tentativa[i] = getch();
- printf("*");
- }
- if(strcmp(tentativa,"961100")){
- printf("\n ° Senha incorreta ");
- verifica = 1;
- getch();
- }
- else{
- printf("\n ° Pressione qualquer tecla para continuar\n ");
- verifica=0;
- getch();
- }
- system("cls");
- }while(verifica==1);
- }
- void menu(pessoa *clientes, peca *pecas, venda *vendas){
- unsigned short ntSleepTmp;
- unsigned short shPercent = 0;
- unsigned short a = 0;
- pass();
- FILE *fp;
- FILE *hr;
- FILE *cl;
- FILE *pr;
- FILE *vend;
- fp = fopen("dados.txt", "r");
- hr = fopen("hora.txt","r");
- cl = fopen("clientes.txt", "r");
- pr = fopen("produtos.txt", "r");
- vend = fopen("vendas.txt", "r");
- int i,j;
- char opc, op1;
- int cli = 0, *cAtual = &cli;
- int pec = 0, *pAtual = &pec;
- int ven = 0, *vAtual = &ven;
- int sal = 0, *sAtual = &sal;
- fscanf(fp, "%d", cAtual);
- fscanf(fp, "%d", pAtual);
- fscanf(fp, "%d", vAtual);
- fscanf(fp, "%d", sAtual);
- for(i=0;i<*cAtual;i++){
- fscanf(cl, "%[^\n]%*c", &clientes[i].nome);
- fscanf(cl, "%[^\n]%*c", &clientes[i].rua);
- fscanf(cl, "%[^\n]%*c", &clientes[i].email);
- fscanf(cl, "%[^\n]%*c", &clientes[i].cpf);
- fscanf(cl, "%[^\n]%*c", &clientes[i].tel);
- fscanf(cl, "%d%*c", &clientes[i].codigo);
- fscanf(cl, "%d%*c", &clientes[i].qcompras);
- fscanf(cl, "%f%*c", &clientes[i].preco);
- fscanf(cl, "%f%*c", &clientes[i].precototal);
- if (clientes[i].qcompras == 0){
- }
- else{
- for(j=0;j<clientes[i].qcompras;j++){
- fscanf(cl, "%d%*c", &clientes[i].ncompra[j]);
- }
- }
- }
- fclose(cl);
- for(i=0;i<*pAtual;i++){
- fscanf(pr, "%[^\n]%*c", &pecas[i].nome);
- fscanf(pr, "%[^\n]%*c", &pecas[i].marca);
- fscanf(pr, "%f%*c", &pecas[i].preco);
- fscanf(pr, "%d%*c", &pecas[i].estoque);
- fscanf(pr, "%d%*c", &pecas[i].codigo);
- }
- fclose(pr);
- for(i=0;i<*vAtual;i++){
- fscanf(vend, "%d", &vendas[i].cliente);
- fscanf(vend, "%d", &vendas[i].codigo);
- fscanf(vend, "%d", &vendas[i].codpes);
- fscanf(vend, "%f", &vendas[i].qp);
- }
- fclose(vend);
- const int vp = *sAtual-1;
- int hora[*sAtual], min[*sAtual], sec[*sAtual], dia[*sAtual], mes[*sAtual], ano[*sAtual];
- for(i=0;i<*sAtual;i++){
- fscanf(hr, "%d", &hora[i]);
- fscanf(hr, "%d", &min[i]);
- fscanf(hr, "%d", &sec[i]);
- fscanf(hr, "%d", &dia[i]);
- fscanf(hr, "%d", &mes[i]);
- fscanf(hr, "%d", &ano[i]);
- }
- do{
- system("cls");
- printf("°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°\n");
- printf("° °\n");
- printf("° GERENCIAMENTO LOJA DE MATERIAL DE CONSTRUCOES - MENU PRINCIPAL [S] - SALVAR NO ARQUIVO [H] - HISTORICO °\n");
- printf("°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°\n");
- printf("° ° ° ° ° ° °\n");
- printf("° [1] MENU CLIENTE ° [2] MOVIMENTACAO ° [3] MENU PRODUTOS ° [4] RELATORIOS ° [5] AJUDA ° [ESC] LOGOUT °\n");
- printf("° ° ° ° ° ° °\n");
- printf("°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°\n");
- printf("°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°° Qtd de clientes: %d - Qtd de prdutos: %d - Qtd de vendas: %d °\n", *cAtual, *pAtual, *vAtual);
- printf("°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°\n");
- if(vp==-1){
- printf("\nNao existem dados gravados neste software.\n");
- }
- else{
- printf("Salvo e finalizado por ultimo as: %02d:%02d:%02d - %02d/%02d/%d\n",hora[vp],min[vp],sec[vp],dia[vp],mes[vp],ano[vp]);
- }
- fflush(stdin);
- opc = getch();
- switch(opc){
- case '1':
- menuCliente(clientes, &cli);
- break;
- case '2':
- if(*cAtual == 0){
- printf("Erro! Nao ha cadastros de cliente.\n");
- printf("[1] - Cadastrar cliente\n");
- printf("[2] - Agora nao\n");
- fflush(stdin);
- opc = getch();
- if (opc == '1'){
- menuCliente(clientes, &cli);
- }
- }
- if(*pAtual == 0){
- printf("Erro! Nao ha cadastros de produtos.\n");
- printf("[1] - Cadastrar produto\n");
- printf("[2] - Agora nao\n");
- fflush(stdin);
- opc = getch();
- if (opc == '1'){
- menuEstoque(pecas,&pec);
- }
- }
- else{
- menuMovimentar(clientes,cAtual,pecas,pAtual,vendas,vAtual);
- }
- break;
- case '3':
- menuEstoque(pecas,&pec);
- break;
- case '4':
- menuRelatorio(clientes,cAtual,pecas,pAtual,vendas,cAtual);
- break;
- case '5':
- printf("\nAJUDA:\n Neste menu fica disponivel de maneira ampla todas as funcionalidades do menu. Ficam disponiveis as opcoes para: cadastrar\ncliente, movimentar as partes financeiras da organizacao, cadastrar produtos no estoque, gerar relatorios gerais. Logo em cima, temos\ncomo salvar no arquivo e consultar o hitorico.");
- getch();
- break;
- case 's':
- while( shPercent < 100)
- {
- while(ntSleepTmp += 3000);
- printf("\r");
- shPercent += 2;
- for(a = 0; a < shPercent/2;a++ )
- printf("%c", 178);
- printf("%d%%", shPercent);
- }
- salva(clientes,cAtual,pecas,pAtual,vendas,vAtual,sAtual);
- break;
- case 'h':
- printf("Historico:\n");
- atualiza(cAtual,pAtual,vAtual,sAtual);
- break;
- case 27:
- pass();
- break;
- default:
- printf("OPCAO INVALIDA!!\n");
- getch();
- }
- }while(opc != -1);
- fclose(fp);
- fclose(hr);
- }
- void atualiza(int *cAtual, int *pAtual, int *vAtual, int *sAtual){
- FILE *hr;
- int hora[*sAtual], min[*sAtual], sec[*sAtual], dia[*sAtual], mes[*sAtual], ano[*sAtual],i;
- int aux;
- char op;
- hr = fopen("hora.txt","r");
- for(i=0;i<*sAtual;i++){
- fscanf(hr, "%d", &hora[i]);
- fscanf(hr, "%d", &min[i]);
- fscanf(hr, "%d", &sec[i]);
- fscanf(hr, "%d", &dia[i]);
- fscanf(hr, "%d", &mes[i]);
- fscanf(hr, "%d", &ano[i]);
- }
- fclose(hr);
- if(*sAtual <10){
- printf("Historico somente exibido apos 10 salvos!");
- }
- else{
- for(i=*sAtual-1;i>*sAtual-10;i--){
- printf("Salvo as: %02d:%02d:%02d - %02d/%02d/%d\n",hora[i],min[i],sec[i],dia[i],mes[i],ano[i]);
- }
- printf("\n[Z] - ZERAR");
- fflush(stdin);
- op = getch();
- if(op == 'z' || op == 'Z'){
- printf("Deseja zerar os contadores?\n");
- printf("[1] - Sim\n");
- printf("[2] - Nao\n");
- fflush(stdin);
- op = getch();
- if(op == '1'){
- *sAtual = 0;
- zerar(cAtual,pAtual,vAtual,sAtual);
- }
- }
- }
- getch();
- }
- void salva(pessoa *clientes, int *cAtual, peca *pecas, int *pAtual, venda *vendas, int *vAtual, int *sAtual){
- int i,j;
- FILE *cl;
- cl = fopen("clientes.txt","w");
- for(i=0;i<*cAtual;i++){
- fprintf(cl, "%s\n", clientes[i].nome);
- fprintf(cl, "%s\n", clientes[i].rua);
- fprintf(cl, "%s\n", clientes[i].email);
- fprintf(cl, "%s\n", clientes[i].cpf);
- fprintf(cl, "%s\n", clientes[i].tel);
- fprintf(cl, "%d\n", clientes[i].codigo);
- fprintf(cl, "%d\n", clientes[i].qcompras);
- fprintf(cl, "%f\n", clientes[i].preco);
- fprintf(cl, "%f\n", clientes[i].precototal);
- for(j=0;j<clientes[i].qcompras;j++){
- fprintf(cl, "%d\n", clientes[i].ncompra[j]);
- }
- }
- fclose(cl);
- FILE *pr;
- pr = fopen("produtos.txt", "w");
- for(i=0;i<*pAtual;i++){
- fprintf(pr, "%s\n", pecas[i].nome);
- fprintf(pr, "%s\n", pecas[i].marca);
- fprintf(pr, "%f\n", pecas[i].preco);
- fprintf(pr, "%d\n", pecas[i].estoque);
- fprintf(pr, "%d\n", pecas[i].codigo);
- }
- fclose(pr);
- FILE *vend;
- vend = fopen("vendas.txt", "w");
- for(i=0;i<*vAtual;i++){
- fprintf(vend, "%d\n", vendas[i].cliente);
- fprintf(vend, "%d\n", vendas[i].codigo);
- fprintf(vend, "%d\n", vendas[i].codpes);
- fprintf(vend, "%f\n", vendas[i].qp);
- }
- fclose(vend);
- FILE *fp;
- fp = fopen("dados.txt", "w");
- *sAtual = *sAtual +1;
- fprintf(fp, "%d\n", *cAtual);
- fprintf(fp, "%d\n", *pAtual);
- fprintf(fp, "%d\n", *vAtual);
- fprintf(fp, "%d\n", *sAtual);
- printf("\nDados gravados!");
- fclose(fp);
- FILE *hr;
- hr = fopen("hora.txt","a");
- struct tm *local;
- time_t t;
- t= time(NULL);
- local=localtime(&t);
- int hora=0, min=0, sec=0, dia=0, mes=0, ano=0;
- hora=local->tm_hour;
- min=local->tm_min;
- sec=local->tm_sec;
- dia=local->tm_mday;
- mes=local->tm_mon+1;
- ano=local->tm_year+1900;
- printf(" Salvo: %02d:%02d:%02d - %02d/%02d/%d\n",hora,min,sec,dia,mes,ano);
- fprintf(hr, "%d ", hora);
- fprintf(hr, "%d ", min);
- fprintf(hr, "%d ", sec);
- fprintf(hr, "%d ", dia);
- fprintf(hr, "%d ", mes);
- fprintf(hr, "%d\n", ano);
- fclose(hr);
- getch();
- }
- void zerar(int * cAtual, int *pAtual, int *vAtual, int *sAtual){
- pass();
- FILE *fp;
- fp = fopen("dados.txt", "w");
- fprintf(fp, "%d\n", 0);
- fprintf(fp, "%d\n", 0);
- fprintf(fp, "%d\n", 0);
- fprintf(fp, "%d\n", 0);
- *cAtual = 0;
- *pAtual = 0;
- *vAtual = 0;
- *sAtual = 0;
- fclose(fp);
- FILE *hr;
- hr = fopen("hora.txt", "w");
- fclose(hr);
- printf("\nCONTADORES ZERADOS COM SUCESSO!");
- getch();
- }
- void menuMovimentar(pessoa *clientes, int *cAtual, peca *pecas, int *pAtual, venda *vendas, int *vAtual){
- char opc, i;
- do{
- system("cls");
- printf("°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°\n");
- printf("° °\n");
- printf("° MENU MOVIMENTAR [C] - LISTAR CLIENTES [P] - LISTAR PRODUTOS °\n");
- printf("° °\n");
- printf("°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°\n");
- printf("° ° ° ° °\n");
- printf("° [1] VENDER PRODUTO ° [2] CARRINHO ° [3] AJUDA ° [ESC] MENU PRINCIPAL °\n");
- printf("° ° ° ° °\n");
- printf("°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°\n");
- opc = getch();
- fflush(stdin);
- switch(opc){
- case '1':
- venderProduto(clientes,cAtual,pecas,pAtual,vendas,vAtual);
- break;
- case '2':
- relatorioClienteEsp(clientes,cAtual,pecas,pAtual,vendas,vAtual);
- break;
- case '3':
- printf("\nNeste menu sao feitas todas as transacoes da organizacao");
- break;
- case 'c':
- for(i = 0; i < *cAtual; i++){
- if(clientes[i].codigo != 0){
- printf("Codigo: %d -", clientes[i].codigo);
- printf(" Nome: %s\n", clientes[i].nome);
- }
- }
- getch();
- break;
- case 'p':
- for (i=0;i<*pAtual;i++){
- if (pecas[i].codigo == 0){
- }
- else{
- printf("Codigo: %d - Nome: %s - Marca: %s - Estoque: %d - Preco: R$ %.2f \n", pecas[i].codigo, pecas[i].nome, pecas[i].marca, pecas[i].estoque, pecas[i].preco);
- }
- }
- getch();
- break;
- case 27:
- break;
- default:
- printf("OPCAO INVALIDA!!\n");
- getch();
- break;
- }
- }while(opc != 27);
- }
- void venderProduto(pessoa *clientes, int *cAtual, peca *pecas, int *pAtual, venda *vendas, int *vAtual){
- int codpp = buscaPProduto(pecas,pAtual);
- int codcli = 0;
- float quant;
- char opr;
- if(pecas[codpp].estoque <= 0){
- printf("NAO HA PECAS NO ESTOQUE!");
- getch();
- }
- else{
- if(codpp == -1){
- printf("NAO HA PRODUTO COM O CODIGO ESPECIFICADO!\n");
- getch();
- }
- else{
- printf("\n");
- codcli = buscaCodigoCliente(clientes,cAtual);
- if(codcli == -1){
- printf("NAO HA CLIENTE COM O CODIGO ESPECIFICADO!");
- getch();
- }
- else{
- printf("\n");
- printf("Digite a quantidade: ");
- scanf("%f",&quant);
- if (quant <= 0){
- printf("NAO PERMITIDO VALOR NEGATIVO!\n");
- getch();
- }
- else if(quant > pecas[codpp].estoque){
- printf("ERRO! QUANTIDADE MAIOR QUE O VALOR DO ESTOQUE.\n");
- getch();
- }
- else{
- vendas[*vAtual].total = pecas[codpp].preco * quant;
- vendas[*vAtual].qp = quant;
- vendas[*vAtual].cliente = clientes[codcli];
- vendas[*vAtual].produtos[vendas[*vAtual].pAtual] = pecas[codpp];
- vendas[*vAtual].produtos[vendas[*vAtual].pAtual].estoque = quant;
- pecas[codpp].estoque = pecas[codpp].estoque - quant;
- vendas[*vAtual].codigo = *vAtual;
- clientes[codcli].preco = clientes[codcli].preco + vendas[*vAtual].total;
- clientes[codcli].ncompra[clientes[codcli].qcompras] = *vAtual;
- clientes[codcli].qcompras = clientes[codcli].qcompras + 1;
- vendas[*vAtual].pecax = codpp;
- vendas[*vAtual].codpes = 3000 + *vAtual;
- clientes[codcli].precototal = clientes[codcli].precototal + vendas[*vAtual].total;
- printf("\n");
- printf("O total da venda efetuada foi:R$ %.2f \n", vendas[*vAtual].total);
- printf("O codigo da venda efetuada foi: %d\n", vendas[*vAtual].codpes);
- *vAtual += 1;
- printf("\n\nRelatorio de compra:\n");
- printf("E - Emitir\n");
- printf("Enter - Nao emitir\n");
- opr = getch();
- if(opr == 27){
- }
- else if(opr == 'e'){
- struct tm *local;
- time_t t;
- t= time(NULL);
- local=localtime(&t);
- int hora=0, min=0, sec=0, dia=0, mes=0, ano=0;
- hora=local->tm_hour;
- min=local->tm_min;
- sec=local->tm_sec;
- dia=local->tm_mday;
- mes=local->tm_mon+1;
- ano=local->tm_year+1900;
- FILE *re;
- re = fopen("relatorio.doc", "w");
- printf("\nAguarde a emissao...\n");
- printf("\nPara continuar a usar a aplicacao, feche o relatorio.");
- char emit[60] = "LOJA DE MATERIAL DE CONSTRUCOES SOUSA LTDA.";
- char emit111[80] = " \t\t -----------------------------------------";
- char emit1[80] = "\t\t|EMISSAO DE NOTA FISCAL REFERENTE A COMPRA|";
- char emit2[20] = "Nome: ";
- char emit3[20] = "Endereco: ";
- char emit4[20] = "CPF: ";
- char emit5[20] = "Telefone: ";
- char emit51[20] = "E-mail: ";
- char emit6[20] = "COMPRA";
- char emit7[20] = "Marca: ";
- char emit8[20] = "Preco: ";
- char emit9[20] = "Quantidade: ";
- char emit10[20] = "Total a pagar: ";
- char emit11[40] = "Agradecemos a preferencia";
- char emit12[80] = "Software desenvolvido por Diego Fernando - www.facebook.com/dieguinhofernando";
- char emit13[80] = "Dados pessoais";
- char emit14[200] = "__________________________________________________________";
- fprintf(re, "\t\t%s\n\n", emit);
- fprintf(re, "\n\n%s", emit111);
- fprintf(re, "\n%s", emit1);
- fprintf(re, "\n%s", emit111);
- fprintf(re, "\n\n\n\n\t\t\t\t%s", emit13);
- fprintf(re, "\n%s", emit14);
- fprintf(re, "\n%s", emit2);
- fprintf(re, "%s", clientes[codcli].nome);
- fprintf(re, "\n%s", emit3);
- fprintf(re, "%s", clientes[codcli].rua);
- fprintf(re, "\n%s", emit5);
- fprintf(re, "%s", clientes[codcli].tel);
- fprintf(re, "\n%s", emit51);
- fprintf(re, "%s", clientes[codcli].email);
- fprintf(re, "\t\t\t\t%s", emit4);
- fprintf(re, "%s", clientes[codcli].cpf);
- fprintf(re, "\n%s", emit14);
- fprintf(re, "\n\n\n\n\t\t\t\tDados da compra");
- fprintf(re, "\n%s", emit14);
- fprintf(re, "\nData de emissao: ");
- fprintf(re, "%02d:%02d:%02d - %02d/%02d/%d", hora, min, sec, dia, mes, ano);
- fprintf(re, "\nProduto: ");
- fprintf(re, "%s", pecas[codpp].nome);
- fprintf(re, "\t\t\t\tMarca: ");
- fprintf(re, "%s", pecas[codpp].marca);
- fprintf(re, "\nQuantidade: ");
- fprintf(re, "%1.f", quant);
- fprintf(re, "\t\t\t\t\tPreco: ");
- fprintf(re, "R$ ");
- fprintf(re, "%.2f", pecas[codpp].preco);
- fprintf(re, "\nTOTAL A PAGAR: ");
- fprintf(re, "R$ ");
- fprintf(re, "%.2f", quant*pecas[codpp].preco);
- fprintf(re, "\t\t\tCodigo da venda: ");
- fprintf(re, "%d", vendas[*vAtual-1].codpes);
- fprintf(re, "\n%s", emit14);
- fprintf(re, "\n\n\n\n\n\n\n\n\n\n\n\nAgradecemos a preferencia\n");
- fprintf(re, "Software desenvolvido por Diego Fernando\nhttp://www.facebook.com/dieguinhofernando");
- fclose(re);
- system("relatorio.doc");
- getch();
- }
- }
- }
- }
- }
- }
- int buscaPProduto(peca *pecas, int *pAtual){
- int i, cod = -1;
- printf("Digite o codigo que deseja buscar: ");
- fflush(stdin);
- scanf("%d",&cod);
- if(cod == 0){
- }
- else{
- for(i = 0; i < *pAtual; i++){
- if(pecas[i].codigo == cod){
- printf("Produto encontrado!\n");
- printf("Codigo: %d - Nome: %s - Marca: %s - Estoque: %d\n", pecas[i].codigo, pecas[i].nome, pecas[i].marca, pecas[i].estoque);
- return i;
- getch();
- }
- }
- }
- cod = -1;
- return cod;
- }
- void menuEstoque(peca *pecas, int *pAtual){
- char opc;
- int i;
- do{
- system("cls");
- printf("°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°\n");
- printf("° °\n");
- printf("° MENU PRODUTO [L] - LISTAR °\n");
- printf("° °\n");
- printf("°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°\n");
- printf("° ° ° ° ° ° °\n");
- printf("° [1] CADASTRAR PRODUTO ° [2] REPOR ° [3] ALTERAR CADASTRO ° [4] EXCLUIR CADASTRO ° [5] AJUDA ° [ESC] SAIR °\n");
- printf("° ° ° ° ° ° °\n");
- printf("°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°\n");
- opc = getch();
- fflush(stdin);
- switch(opc){
- case '1':
- preencheProduto(pecas,pAtual);
- break;
- case '2':
- reporProduto(pecas, pAtual);
- break;
- case '3':
- alterarProduto(pecas, pAtual);
- break;
- case '4':
- excluirProduto(pecas, pAtual);
- break;
- case '5':
- break;
- case 'l':
- for (i=0;i<*pAtual;i++){
- if (pecas[i].codigo == 0){
- }
- else{
- printf("Codigo: %d - Nome: %s - Marca: %s - Estoque: %d - Preco: R$ %.2f\n", pecas[i].codigo, pecas[i].nome, pecas[i].marca, pecas[i].estoque, pecas[i].preco);
- }
- }
- getch();
- break;
- case 27:
- break;
- default:
- printf("OPCAO INVALIDA!!");
- getch();
- break;
- }
- }while(opc != 27);
- }
- void alterarProduto(peca *pecas, int *pAtual){
- if(*pAtual == 0){
- printf("Erro! Nao ha cadastros de produtos.\n");
- getch();
- }
- else{
- int busca = buscaPProduto(pecas,pAtual);
- if (busca == -1){
- printf("\nPRODUTO NAO EXISTENTE!");
- getch();
- }
- else{
- char op;
- printf("Codigo: %d\n", busca);
- printf("Alterar:\n");
- printf("[1] - Nome: %s\n", pecas[busca].nome);
- printf("[2] - Marca: %s\n", pecas[busca].marca);
- printf("[3] - Preco: R$ %.2f \n", pecas[busca].preco);
- printf("[Enter] - Alteracoes concluidas.\n\n");
- do{
- fflush(stdin);
- op = getch();
- switch(op){
- case '1':
- printf("Digite novo nome: ");
- fflush(stdin);
- gets(pecas[busca].nome);
- strupr(pecas[busca].nome);
- break;
- case '2':
- printf("Digite nova marca: ");
- fflush(stdin);
- gets(pecas[busca].marca);
- strupr(pecas[busca].marca);
- break;
- case '3':
- printf("Digite novo preco: ");
- fflush(stdin);
- scanf("%f", &pecas[busca].preco);
- case 13:
- break;
- default:
- printf("OPCAO INVALIDA!\n");
- getch();
- }
- printf("\nALTERACOES CONCLUIDAS");
- }while(op != 13);
- }
- }
- }
- void excluirProduto(peca *pecas, int *pAtual){
- if(*pAtual == 0){
- printf("Erro! Nao ha cadastros de produtos.\n");
- getch();
- }
- else{
- int busca = buscaPProduto(pecas,pAtual);
- if (busca == -1){
- printf("\nPRODUTO NAO EXISTENTE!");
- getch();
- }
- else{
- pecas[busca].codigo = 0;
- printf("\nPRODUTO EXCLUIDO COM SUCESSO!");
- getch();
- }
- }
- }
- void preencheProduto(peca *pecas, int *pAtual){
- static int aumenta = 2000;
- printf("Digite nome: ");
- fflush(stdin);
- gets(pecas[*pAtual].nome);
- strupr(pecas[*pAtual].nome);
- printf("Digite marca: ");
- fflush(stdin);
- gets(pecas[*pAtual].marca);
- strupr(pecas[*pAtual].marca);
- printf("Digite o preco: ");
- scanf("%f", &pecas[*pAtual].preco);
- printf("Digite a quantidade em estoque: ");
- scanf("%d",&pecas[*pAtual].estoque);
- pecas[*pAtual].codigo = aumenta+*pAtual;
- printf("CADASTRO EFETUADO COM SUCESSO!\n");
- printf("O codigo do produto eh: %d\n",pecas[*pAtual].codigo);
- *pAtual += 1;
- getch();
- }
- void reporProduto(peca *pecas, int *pAtual){
- int busca,i ;
- char op;
- float qr;
- if(*pAtual == 0){
- printf("Erro! Nao ha cadastros de produtos.\n");
- getch();
- }
- else{
- do{
- system("cls");
- printf("°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°\n");
- printf("° °\n");
- printf("° MENU PRODUTO [L] - LISTAR °\n");
- printf("° °\n");
- printf("°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°\n");
- printf("° ° ° ° ° ° °\n");
- printf("° [1] CADASTRAR PRODUTO ° [2] REPOR ° [3] ALTERAR CADASTRO ° [4] EXCLUIR CADASTRO ° [5] AJUDA ° [ESC] SAIR °\n");
- printf("° ° ° ° ° ° °\n");
- printf("°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°\n");
- printf("REPOR ESTOQUE:\n\n");
- printf("[1] - Busca por codigo\n[2] - Listar todos\n[3] - Voltar\n");
- fflush(stdin);
- op = getch();
- switch(op){
- case '1':
- busca = buscaPProduto(pecas,pAtual);
- if (busca != -1){
- printf("Digite a quantidade para reposicao: ");
- scanf("%f", &qr);
- if (qr <= 0){
- printf("\nENTRADA INVALIDA! SO EH PERMITIDO VALORES POSITIVOS.\n");
- getch();
- }
- else{
- pecas[busca].estoque = pecas[busca].estoque + qr;
- printf("Estoque atualizado:\nCodigo: %d - Nome: %s - Marca: %s - Estoque: %d\n", pecas[busca].codigo, pecas[busca].nome, pecas[busca].marca, pecas[busca].estoque);
- getch();
- }
- }
- break;
- case '2':
- for (i=0;i<*pAtual;i++){
- if (pecas[i].codigo == 0){
- }
- else{
- printf("Codigo: %d - Nome: %s - Marca: %s - Estoque: %d\n", pecas[i].codigo, pecas[i].nome, pecas[i].marca, pecas[i].estoque);
- }
- }
- getch();
- break;
- case '3':
- break;
- default:
- printf("\nOPCAO INVALIDA!!");
- getch();
- }
- }while(op != '3');
- }
- }
- int buscaCodigoCliente(pessoa *clientes, int *cAtual)
- {
- int i, busca = -1;
- printf("Digite o codigo do cliente a ser pesquisado: ");
- scanf("%d",&busca);
- if(busca == 0){
- }
- else{
- for(i = 0; i < *cAtual; i++){
- if(busca == clientes[i].codigo){
- printf("Cadastro encontrado!\n");
- printf("Nome: %s - Codigo: %d - Busca: %d\n", clientes[i].nome, clientes[i].codigo, busca);
- return i;
- }
- }
- }
- busca = -1;
- return busca;
- }
- void menuCliente(pessoa *clientes, int *cAtual)
- {
- int opc, i;
- do{
- system("cls");
- printf("°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°\n");
- printf("° °\n");
- printf("° MENU CLIENTE [L] - LISTAR °\n");
- printf("° °\n");
- printf("°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°\n");
- printf("° ° ° ° ° °\n");
- printf("° [1] CADASTRAR CLIENTE ° [2] ALTERAR CADASTRO ° [3] EXCLUIR CADASTRO ° [4] AJUDA ° [ESC] MENU PRINCIPAL °\n");
- printf("° ° ° ° ° °\n");
- printf("°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°\n");
- fflush(stdin);
- opc = getch();
- switch(opc){
- case '1':
- preencheCliente(clientes,cAtual);
- break;
- case '2':
- alterarCliente(clientes,cAtual);
- break;
- case '3':
- excluirCliente(clientes, cAtual);
- break;
- case '4':
- printf("O menu cliente realiza todas as operacoes relacionadas a freguesia da loja.");
- getch();
- break;
- case 'l':
- for(i = 0; i < *cAtual; i++){
- if(clientes[i].codigo != 0){
- printf("Codigo: %d -", clientes[i].codigo);
- printf(" Nome: %s -", clientes[i].nome);
- printf(" Arrecadado total: R$ %.2f\n", clientes[i].precototal);
- }
- }
- getch();
- break;
- case 27:
- break;
- default:
- printf("OPCAO INVALIDA!!\n");
- getch();
- break;
- }
- }while(opc != 27);
- }
- void preencheCliente(pessoa *clientes, int *cAtual){
- char cpf[11];
- char tel[15];
- printf("Nome: ");
- fflush(stdin);
- gets(clientes[*cAtual].nome);
- strupr(clientes[*cAtual].nome);
- printf("Endereco: ");
- fflush(stdin);
- gets(clientes[*cAtual].rua);
- strupr(clientes[*cAtual].rua);
- printf("E-mail: ");
- fflush(stdin);
- gets(clientes[*cAtual].email);
- do{
- printf("Digite CPF (apenas numeros): ");
- fflush(stdin);
- scanf("%s",&cpf);
- }while(!verificaCpf(cpf));
- strcpy(clientes[*cAtual].cpf, cpf);
- do{
- printf("Digite telefone (apenas numeros): ");
- fflush(stdin);
- scanf("%s",&tel);
- }while(!verificaTel(tel));
- strcpy(clientes[*cAtual].tel, tel);
- clientes[*cAtual].codigo = 1000 + *cAtual;
- printf("CADASTRO EFETUADO COM SUCESSO!\n");
- printf("O codigo do cliente eh: %d\n",clientes[*cAtual].codigo);
- *cAtual += 1;
- getch();
- }
- int verificaCpf(char*cpf){
- int i,j;
- char mi[27] = "abcdefghijklmnopqrstuvwxyz";
- char mai[27] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
- if(strlen(cpf) != 11)
- return 0;
- for(i = 0; cpf[i] != '\0'; i++){
- for(j = 0; mi[j] != '\0'; j++){
- if(cpf[i] == mi[j] || cpf[i] == mai[j])
- return 0;
- }
- }
- return 1;
- }
- int verificaTel(char*tel){
- int i,j;
- char mi[27] = "abcdefghijklmnopqrstuvwxyz";
- char mai[27] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
- if(strlen(tel) < 8)
- return 0;
- for(i = 0; tel[i] != '\0'; i++){
- for(j = 0; mi[j] != '\0'; j++){
- if(tel[i] == mi[j] || tel[i] == mai[j])
- return 0;
- }
- }
- return 1;
- }
- void alterarCliente(pessoa *clientes, int *cAtual){
- char op2;
- int i;
- fflush(stdin);
- int busca = buscaCodigoCliente(clientes,cAtual);
- if (busca == -1){
- printf("\nCODIGO INEXISTENTE!");
- getch();
- }
- else{
- char op;
- printf("Codigo: %d\n", busca);
- printf("Alterar:\n");
- printf("[1] - Nome: %s\n", clientes[busca].nome);
- printf("[2] - Endereco: %s\n", clientes[busca].rua);
- printf("[3] - CPF: %s\n", clientes[busca].cpf);
- printf("[4] - Telefone: %s\n", clientes[busca].tel);
- printf("[Enter] - Alteracoes concluidas.\n\n");
- do{
- op = getch();
- switch(op){
- case '1':
- printf("Digite novo nome: ");
- fflush(stdin);
- gets(clientes[busca].nome);
- strupr(clientes[busca].nome);
- break;
- case '2':
- printf("Digite novo endereco: ");
- fflush(stdin);
- gets(clientes[busca].rua);
- strupr(clientes[busca].rua);
- break;
- case '3':
- printf("Digite novo CPF: ");
- fflush(stdin);
- gets(clientes[busca].cpf);
- break;
- case '4':
- printf("Digite novo telefone: ");
- fflush(stdin);
- gets(clientes[busca].tel);
- break;
- case 13:
- break;
- default:
- printf("OPCAO INVALIDA!\n");
- getch();
- }
- printf("\nALTERACOES CONCLUIDAS");
- }while(op != 13);
- }
- }
- void menuRelatorio(pessoa *clientes, int *cAtual, peca *pecas, int *pAtual, venda *vendas, int *vAtual){
- int i, busca;
- char op,op1;
- do{
- system("cls");
- printf("°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°\n");
- printf("° °\n");
- printf("° MENU RELATORIOS °\n");
- printf("° °\n");
- printf("°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°\n");
- printf("° ° ° ° ° °\n");
- printf("° [1] DADOS DE TODOS ° [2] DADOS DE UM ° [3] DADOS DE TODOS ° [4] DADOS DE UM ° [ESC] SAIR °\n");
- printf("° OS CLIENTES ° CLIENTE ° OS PRODUTOS ° PRODUTO ESPECIFICO ° °\n");
- printf("° ° ° ° ° °\n");
- printf("°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°\n");
- fflush(stdin);
- op = getch();
- switch(op){
- case '1':
- printf("\nListado por ordem de cadastro\n");
- relatorioClienteCad(clientes,cAtual,pecas,pAtual,vendas,cAtual);
- break;
- case '2':
- relatorioClienteEsp(clientes,cAtual,pecas,pAtual,vendas,cAtual);
- break;
- case '3':
- for (i=0;i<*pAtual;i++){
- if (pecas[i].codigo == 0){
- }
- else{
- printf("Codigo: %d - Nome: %s - Marca: %s - Estoque: %d - Preco: R$ %.2f\n", pecas[i].codigo, pecas[i].nome, pecas[i].marca, pecas[i].estoque, pecas[i].preco);
- }
- }
- getch();
- break;
- case '4':
- buscaPProduto(pecas,pAtual);
- if (busca == -1){
- printf("\nPRODUTO NAO EXISTENTE!");
- getch();
- }
- getch();
- break;
- case 27:
- break;
- default:
- printf("OPCAO INVALIDA!!");
- getch();
- }
- }while(op != 27);
- }
- void relatorioClienteCad(pessoa *clientes, int *cAtual, peca *pecas, int *pAtual, venda *vendas, int *vAtual){
- int i,j;
- printf("Clientes:\n\n");
- for(i = 0; i < *cAtual; i++){
- if(clientes[i].codigo != 0){
- printf("Codigo: %d -", clientes[i].codigo);
- printf(" Nome: %s - ", clientes[i].nome);
- printf(" Qtd. de vendas: %d - ", clientes[i].qcompras);
- printf(" Total gasto: R$ %.2f \n", clientes[i].precototal);
- }
- }
- getch();
- }
- void relatorioClienteEsp(pessoa *clientes, int *cAtual, peca *pecas, int *pAtual, venda *vendas, int *vAtual){
- int busc = buscaCodigoCliente(clientes,cAtual),a,j,i;
- if(busc == -1){
- printf("\nCADASTRO NAO EXISTE!");
- getch();
- }
- else{
- printf("\nCodigo: %d\n", clientes[busc].codigo);
- printf("Nome: %s\n", clientes[busc].nome);
- printf("Endereco: %s\n", clientes[busc].rua);
- printf("E-mail: %s\n", clientes[busc].email);
- printf("CPF: %s\n", clientes[busc].cpf);
- printf("Telefone: %s\n\n", clientes[busc].tel);
- printf("Compras deste cliente:\n\n");
- if(clientes[busc].qcompras == 0){
- printf("NAO HA COMPRAS REGISTRADAS.\n");
- }
- else{
- for(j=0;j<clientes[busc].qcompras;j++){
- printf("Codigo da compra: %d\n", vendas[clientes[busc].ncompra[j]].codpes);
- for(i=0;i<*pAtual;i++){
- if(vendas[clientes[busc].ncompra[j]].pecax + 2000 == pecas[i].codigo){
- printf("Produto: %s\n",pecas[i].nome);
- printf("Marca: %s\n", pecas[i].marca);
- printf("Valor: R$ %.2f\n", pecas[i].preco);
- }
- }
- printf("Quantidade: %1.f\n\n", vendas[clientes[busc].ncompra[j]].qp);
- }
- printf("TOTAL GASTO: R$ %.2f\n", clientes[busc].precototal);
- }
- getch();
- }
- }
- void excluirCliente(pessoa *clientes, int *cAtual){
- int i;
- char op2;
- printf("[1] - Buscar cadastro\n");
- printf("[2] - Listar cadastros\n");
- fflush(stdin);
- op2 = getch();
- if(op2 == '1'){
- int busc=0,vazio=0;
- busc = buscaCodigoCliente(clientes,cAtual);
- if(busc == -1){
- printf("\nCADASTRO NAO EXISTE!");
- getch();
- }
- else{
- clientes[busc].codigo = vazio;
- printf("\nCADASTRO EXCLUIDO COM SUCESSO!");
- getch();
- }
- }
- else if (op2 == '2'){
- for(i = 0; i < *cAtual; i++){
- if(clientes[i].codigo != 0){
- printf("Codigo: %d -", clientes[i].codigo);
- printf(" Nome: %s\n", clientes[i].nome);
- }
- }
- getch();
- }
- }
- void mostrarCliente(pessoa*p, int *atual){
- int i;
- printf("Exibicao do cadastro:\n\n");
- for(i = 0; i < *atual; i++){
- printf("Codigo: %d\n", p[i].codigo);
- printf("Nome: %s\n", p[i].nome);
- printf("Endereco: %s\n", p[i].rua);
- printf("%d\n",*atual);
- printf("E-mail: %s\n", p[i].email);
- printf("CPF: %s\n", p[i].cpf);
- printf("Telefone: %s\n\n", p[i].tel);
- }
- getch();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement