Ir ao conteúdo
  • Cadastre-se

joaovictormc

Membro Júnior
  • Posts

    3
  • Cadastrado em

  • Última visita

Reputação

2
  1. Estou aprimorando um código antigo meu e to tentando adicionar novas funções nele, exibir todos os cadastros, alterar e excluir. Só que no meio disso esbarrei em alguns problemas: 1- na hora que vou realizar cadastros e depois faço a busca específica do cadastro ele está sobrescrevendo um cadastro anterior e misturando os dados 2- minha função emitir tudo só mostra um cadastro 3- não estou entendendo como posso fazer as funções alterar e excluir O que está comentado são as coisa que não fiz ainda. Na função de emitir todas os fread comentado foram tentativas de fazer a emissão sem usar o while. Vou deixar o que já fiz aqui em baixo #include <stdio.h> #include <stdlib.h> #include <windows.h> #include <locale.h> struct carro{ char placa[10], marca[50], modelo[50], ano[10]; }; struct cliente{ struct carro y; char nome[100], CPF[20], RG[20], endereco[200]; }; struct manutencao{ char data[15], mecanico[50], itens[200], valor[50], placa[15]; }; void cabecalho(); void cadastrarCliente(struct cliente x, struct carro y); void cadastarServ(struct manutencao z, struct carro y); void buscarOrdem(struct carro y, struct cliente x, struct manutencao z); void emitirTudo(struct carro y, struct cliente x, struct manutencao z); //void alterarCad(struct carro y, struct cliente x, struct manutencao z); //void excluirOrdem(struct carro y, struct cliente x, struct manutencao z); int main() { setlocale(LC_ALL, "portuguese"); struct cliente x; struct carro y; struct manutencao z; int op, wo; do{ cabecalho(); printf("\t\t\t\t###########################################\n"); printf("\t\t\t\t##\t1 - CADASTRAR CLIENTE ##\n"); printf("\t\t\t\t##\t2 - CRIAR ORDEM DE SERVIÇO ##\n"); printf("\t\t\t\t##\t3 - BUSCAR ORDEM DE SERVIÇO ##\n"); printf("\t\t\t\t##\t4 - MAIS OPÇÕES ##\n"); printf("\t\t\t\t##\t5 - SAIR ##\n"); printf("\t\t\t\t###########################################\n"); printf("\t\t\t\t\tDIGITE UMA OPÇÂO --> "); scanf("%d", &op); switch(op) { case 1: cadastrarCliente(x, y); break; case 2: cadastrarServ(z, y); break; case 3: buscarOrdem(y, x, z); break; case 4: do { cabecalho(); printf("\t\t\t\t###########################################\n"); printf("\t\t\t\t##\t1 - EXIBIR TODAS AS ORDENS ##\n"); printf("\t\t\t\t##\t2 - ALTERAR CADASTRO ##\n"); printf("\t\t\t\t##\t3 - EXCLUIR ORDEM ##\n"); printf("\t\t\t\t##\t4 - VOLTAR ##\n"); printf("\t\t\t\t###########################################\n"); printf("\t\t\t\t\tDIGITE UMA OPÇÃO -> "); scanf("%d", &wo); switch (wo) { case 1: emitirTudo(y, x, z); break; case 2: //alterarCad(y, x, z); break; case 3: //excluirOrdem(y, x, z); break; case 4: printf("\t\t\t\t\tVOLTANDO..."); Sleep(300); break; default: printf("\t\t\t\t\tOPÇÃO INVÁLIDA!!!"); getch(); break; } } while (wo != 4); break; case 5: printf("\t\t\t\t\tSAINDO...\n"); Sleep(400); break; default: printf("\t\t\t\t\tOPÇÃO INVÁLIDA!!!"); getch(); break; } }while(op != 5); }; void cadastrarCliente(struct cliente x,struct carro y){ FILE *fp; FILE *f; fp = fopen("cliente.txt", "ab"); f = fopen("carro.txt", "ab"); if(fp == NULL){ printf("\t\t\t\t\tNÃO FOI POSSÍVEL CRIAR O ARQUIVO!!\n"); } else{ do{ cabecalho(); fflush(stdin); printf("NOME DO CLIENTE: "); gets(x.nome); printf("CPF: "); gets(x.CPF); printf("RG: "); gets(x.RG); printf("ENDEREÇO: "); gets(x.endereco); fwrite(&x, sizeof(struct cliente),1,fp); printf("INFORME A PLACA DO CARRO: "); gets(y.placa); printf("MARCA DO CARRO: "); gets(y.marca); printf("MODELO: "); gets(y.modelo); printf("ANO DE FABRICAÇÃO: "); gets(y.ano); fwrite(&y, sizeof(struct carro), 1, f); fclose(f); fclose(fp); printf("DESEJA CONTINUAR REALIZANDO CADASTROS? [ S / N ]"); }while(getch() == 's'); } } void cadastrarServ(){ FILE *fs; FILE *fp; struct manutencao z; struct carro y; char placa[15]; int tam, i, w = 0; fs = fopen("manutenção.txt", "ab"); fp = fopen("carro.txt", "r+b"); if(fs == NULL){ printf("\t\t\t\t\tNÃO FOI POSSÍVEL CRIAR O ARQUIVO!!\n"); } else{ do{ cabecalho(); fflush(stdin); printf("DIGITE A DATA DA MANUTENÇÃO: "); gets(z.data); printf("INFORME O MECÂNICO QUE FARA A MANUTENÇÃO: "); gets(z.mecanico); printf("ITENS QUE SERÃO UTILIZADOS NA MANUTEÇÃO: "); gets(z.itens); printf("VALOR TOTAL DO SERVIÇO: "); gets(z.valor); do { printf("DIGITE A PLACA: "); gets(placa); //PESQUISA DENTRO DO ARQUIVO SE A PLACA INFORMADA ESTÁ CADASTRADA fseek(fp, 0, SEEK_END); tam = ftell(fp)/sizeof(struct carro); rewind(fp); for(i = 0; i < tam; i++) { fseek(fp, i* sizeof (struct carro), SEEK_SET); fread(&y, sizeof(struct carro), 1, fp); if (strcmp(placa, y.placa)== 0) { w = 1; strcpy(z.placa, placa); } } if(w == 0) { printf("\nPLACA NÃO CADASTRADA!!\n"); } fwrite(&z, sizeof(struct manutencao), 1, fs); } while(w != 1); fclose(fp); fclose(fs); printf("DESEJA CONTINUAR REALIZANDO CADASTROS? [ S / N ]"); } while(getch() == 's'); } } void buscarOrdem(struct carro y, struct cliente x, struct manutencao z) { FILE *fp; FILE *fs; FILE *f; char placa[10]; int j, t, v = 0; fp = fopen("cliente.txt", "r+b"); fs = fopen("manutenção.txt", "r+b"); f = fopen("carro.txt", "r+b"); if(fp, fs, f == NULL) { printf("\t\t\t\t\tNÃO FOI POSSÍVEL ABRIR O ARQUIVO!!\n"); getch(); } else { cabecalho(); fflush(stdin); do { printf("DIGITE A PLACA DO CARRO: "); gets(placa); //BUSCA A ORDEM DE SERVIÇO BASEADO NA PLACA INFORMADA fseek(f, 0, SEEK_END); t = ftell(f)/sizeof(struct carro); rewind(f); for(j = 0; j < t; j++){ fseek(f, j* sizeof(struct carro), SEEK_SET); fread(&y, sizeof(struct carro), 1, f); if(strcmp(placa, y.placa)== 0){ v = 1; strcpy(y.placa, placa); //CASO A PLACA ESTIVER CADASTRADA, O PROGRAMA IRÁ IMPRIMIR printf("MODELO: %s\n", y.modelo); printf("MARCA: %s\n", y.marca); printf("ANO DE FABRICAÇÃO: %s\n", y.ano); fread(&x, sizeof(struct cliente), 1, fp); printf("NOME DO CLIENTE: %s\n", x.nome); printf("CPF: %s\n", x.CPF); printf("RG: %s\n", x.RG); printf("ENDEREÇO: %s\n", x.endereco); fread(&z, sizeof(struct manutencao), 1, fs); printf("DATA DE INÍCIO DA MANUTENÇÃO: %s\n", z.data); printf("MECÂNICO: %s\n", z.mecanico); printf("ITENS UTILIZADOS: %s\n", z.itens); printf("VALOR FINAL: %s\n",z.valor); } } if(v == 0){ printf("CARRO NÃO CADASTRADO!!\n\n"); } }while(v != 1); fclose(f); fclose(fp); fclose(fs); getch(); } } void emitirTudo(struct carro y, struct cliente x, struct manutencao z) { FILE *fp; FILE *fs; FILE *f; int retorno, cont = 0; fp = fopen("cliente.txt", "r+b"); fs = fopen("manutenção.txt", "r+b"); f = fopen("carro.txt", "r+b"); if (fp, fs, f == NULL) { printf("\t\t\t\t\tNÃO FOI POSSÍVEL ABRIR OS ARQUIVOS!!\n"); getch(); } else { retorno = fread(&x, sizeof(struct cliente), 1, fp); retorno = fread(&y, sizeof(struct carro), 1, f); retorno = fread(&z, sizeof(struct manutencao), 1, fs); while( retorno == 0 ) { system("cls"); cabecalho(); cont++; //fread(&x, sizeof(struct cliente), 1, fp); printf("NOME DO CLIENTE: %s\n", x.nome); printf("CPF: %s\n", x.CPF); printf("RG: %s\n", x.RG); printf("ENDEREÇO: %s\n", x.endereco); //fread(&y, sizeof(struct carro), 1, f); printf("PLACA DO CARRO: %s\n", y.placa); printf("MODELO: %s\n", y.modelo); printf("MARCA: %s\n", y.marca); printf("ANO DE FABRICAÇÃO: %s\n", y.ano); //fread(&z, sizeof(struct manutencao), 1, fs); printf("DATA DO INÍCIO DA MANUTENÇÃO: %s\n", z.data); printf("MECÂNICO: %s\n", z.mecanico); printf("ITENS UTILIZADOS: %s\n", z.itens); printf("VALOR FINAL: %s\n",z.valor); retorno = fread(&x, sizeof(struct cliente), 1, fp); retorno = fread(&y, sizeof(struct carro), 1, f); retorno = fread(&z, sizeof(struct manutencao), 1, fs); printf("--------------------------------------------------------------------------\n\n\n"); } fclose(fp); fclose(fs); fclose(f); getch(); } } /* void alterarCad(struct carro y, struct cliente x, struct manutencao z) { FILE *fp; FILE *fs; FILE *f; char placa[10]; int j, t, v = 0; fp = fopen("cliente.txt", "rb"); f = fopen("carro.txt", "rb"); fs = fopen("manutenção.txt", "rb"); if (fp, fs, f == NULL) { printf("\t\t\t\t\tNÃO FOI POSSÍVEL ABRIR OS ARQUIVOS!!\n"); getch(); } else { cabecalho(); fflush(stdin); do { printf("DIGITE A PLACA DO CARRO PARA ALTERAR O CADASTRO: "); gets(placa); fseek(f, 0, SEEK_END); t = ftell(f)/sizeof(struct carro); rewind(f); for(j = 0; j < t; j++){ fseek(f, j* sizeof(struct carro), SEEK_SET); fread(&y, sizeof(struct carro), 1, f); if(strcmp(placa, y.placa)== 0){ v = 1; strcpy(y.placa, placa); } } printf("DESEJA REALIZAR OUTRAS ALTERAÇÕES? [ S / N ]"); }while(getch() == 's'); } } */ void cabecalho() { system("cls"); printf("\t\t\t########################################################\n"); printf("\t\t\t## ##\n"); printf("\t\t\t## SISTEMA DE CADASTRO DE MANUTENÇÃO E VENDAS ##\n"); printf("\t\t\t## ##\n"); printf("\t\t\t########################################################\n\n"); }
  2. Por enquanto eu fiz isso ai, só q esta dando erro na hora de inserir os dados . #include <stdio.h> #include <stdlib.h> #include <math.h> #include <windows.h> #include <locale.h> typedef struct { float receita_b; float vendas_c; float imp_sob_vendas; float descontos; float receita_l; float cmv; float lucro_b; float desp_vend; float desp_adm; float lucro_op; float rec_financ; float desp_financ; float desp_n_op; float rec_n_op; float lucro_l_ir; float ir_cs; float lucro_l_ap_ir; float total; } DRE; void tabela_dre(); int main() { setlocale(LC_ALL, "portuguese"); int op, po, eu, você; do{ printf("\t\t\t\t\t1 - Balanço Patrimonial\n"); printf("\t\t\t\t\t2 - DRE\n"); printf("\t\t\t\t\t3 - Sair\n\n"); printf("\t\t\t\t\tDIGITE UMA OPÇÃO -> "); scanf("%d", &op); switch(op) { case 1: do{ printf("\t\t\t\t\t1 - Criar Balanço\n"); printf("\t\t\t\t\t2 - Emitir\n"); printf("\t\t\t\t\t3 - Retornar\n\n"); printf("\t\t\t\t\tDIGITE UMA OPÇÃO -> "); scanf("%d", &po); switch(po) { case 1: break; case 2: break; case 3: printf("\t\t\t\t\tVoltando...\n\n"); Sleep(400); break; default: printf("\t\t\t\t\tOpção Inválida! Aperte uma tecla e tente novamente\n"); getchar(); break; } }while(po != 3); break; case 2: do{ printf("\t\t\t\t\t1 - Criar DRE\n"); printf("\t\t\t\t\t2 - Emitir\n"); printf("\t\t\t\t\t3 - Retornar\n\n"); printf("\t\t\t\t\tDIGITE UMA OPÇÃO -> "); scanf("%d", &eu); switch(eu) { case 1: tabela_dre(struct dre); break; case 2: break; case 3: printf("\t\t\t\t\tVoltando...\n\n"); Sleep(400); break; default: printf("\t\t\t\t\tOpção Inválida! Aperte uma tecla e tente novamente\n"); getchar(); break; } }while(eu != 3); break; case 3: printf("\t\t\t\t\tSaindo..."); Sleep(800); break; default: printf("\t\t\t\t\tOpção Inválida! Aperte uma tecla e tente novamente\n"); getchar(); break; } }while(op != 3); } void tabela_dre() { DRE d; FILE *fs; fs = fopen("tabela DRE.txt", "ab"); if(fs == NULL) { printf("Não foi possível criar o arquivo!\n"); printf("Aperte uma tecla e tente novamente."); getchar(); } else{ cabecalho(); fflush(stdin); printf("\nDIGITE OS VALORES REFERENTES A CADA ITEM\n\n"); printf("Receita Operacional Bruta: "); scanf("%.2f", &d.receita_b); printf("Vendas canceladas: "); scanf("%.2f", &d.vendas_c); printf("Impostos sob vendas: "); scanf("%.2f", &d.imp_sob_vendas); printf("Descontos"); scanf("%.2f", &d.descontos); printf("Custo de mercadorias vendidas (CMV): "); scanf("%.2f", &d.cmv); printf("Despesas de vendas: "); scanf("%.2f", &d.desp_vend); printf("Despesas administrativas: "); scanf("%.2f", &d.desp_adm); printf("Receita financeira: "); scanf("%.2f", &d.rec_financ); printf("Receitas não operacionais: "); scanf("%.2f", &d.rec_n_op); printf("Despesas não operacionais: "); scanf("%.2f", &d.desp_n_op); printf("Despesas financeiras: "); scanf("%.2f", &d.desp_financ); //RECEITA LIQUIDA d.receita_l = d.receita_b - d.vendas_c - d.imp_sob_vendas - d.descontos; //LUCRO BRUTO d.lucro_b = d.receita_l - d.cmv; //LUCRO LIQUIDO ANTES DO IR/CS d.lucro_l_ir = d.lucro_op + d.rec_financ + d.rec_n_op - d.desp_financ - d.desp_n_op; //LUCRO OPERACIONAL d.lucro_op = d.lucro_b - d.desp_vend - d.desp_adm; //IR/CS d.ir_cs = d.lucro_l_ir * 0.25; //LUCRO LIQUIDO APÓS O IR/CS d.lucro_l_ap_ir = d.lucro_l_ir - d.ir_cs; //TOTAL d.total = d.lucro_l_ap_ir; system("cls"); puts("\t\t\t\t####################################"); puts("\t\t\t\t## TABELA DRE ##"); puts("\t\t\t\t####################################\n\n\n"); printf("#######################################################||\n"); printf("(=) RECEITA OPERACIONAL BRUTA || %.2f ||\n", d.receita_b); printf("#######################################################||\n"); printf("\t(-) Vendas Canceladas || %.2f ||\n", d.vendas_c); printf("\t(-) Impostos sob vendas || %.2f ||\n", d.imp_sob_vendas); printf("\t(-) Descontos || %.2f ||\n", d.descontos); printf("#######################################################||\n"); printf("(=) RECEITA OPERACIONAL LIQUIDA || %.2f ||\n", d.receita_l); printf("#######################################################||\n"); printf("\t(-) Custo de Mercadorias Vendidas (CMV) || %.2f ||\n", d.cmv); printf("#######################################################||\n"); printf("(=) LUCRO BRUTO || %.2f ||\n", d.lucro_b); printf("#######################################################||\n"); printf("\t(-) Despesas de Vendas || %.2f ||\n", d.desp_vend); printf("\t(-) Despesas Administrativas || %.2f ||\n", d.desp_adm); printf("#######################################################||\n"); printf("(=) LUCRO OPERACIONAL || %.2f ||\n", d.lucro_op); printf("#######################################################||\n"); printf("\t(+) Receita Financeira || %.2f ||\n", d.rec_financ); printf("\t(+) Receitas Não Operacionais || %.2f ||\n", d.rec_n_op); printf("\t(-) Despesas Não Operacionais || %.2f ||\n", d.desp_n_op); printf("\t(-) Despesas Financeiras || %.2f ||\n", d.desp_financ); printf("#######################################################||\n"); printf("(=) LUCRO LIQUIDO ANTES DO IR/CS || %.2f ||\n", d.lucro_l_ir); printf("#######################################################||\n"); printf("\t(-) IR/CS || %.2f ||\n", d.ir_cs); printf("#######################################################||\n"); printf("(=) LUCRO LIQUIDO APÓS O IR/CS || %.2f ||\n", d.lucro_l_ap_ir); printf("#######################################################||\n"); printf("################################ TOTAL || %.2f ||\n", d.total); printf("#######################################################||\n"); fwrite(&d, sizeof(DRE), 1, fs); } fclose(fs); } chapiusk chapiusk 7 horas atrás @devair1010 Por enquanto eu fiz isso ai, só q esta dando erro na execução #include <stdio.h> #include <stdlib.h> #include <math.h> #include <windows.h> #include <locale.h> typedef struct { float receita_b; float vendas_c; float imp_sob_vendas; float descontos; float receita_l; float cmv; float lucro_b; float desp_vend; float desp_adm; float lucro_op; float rec_financ; float desp_financ; float desp_n_op; float rec_n_op; float lucro_l_ir; float ir_cs; float lucro_l_ap_ir; float total; } DRE; void tabela_dre(); int main() { setlocale(LC_ALL, "portuguese"); int op, po, eu, você; do{ printf("\t\t\t\t\t1 - Balanço Patrimonial\n"); printf("\t\t\t\t\t2 - DRE\n"); printf("\t\t\t\t\t3 - Sair\n\n"); printf("\t\t\t\t\tDIGITE UMA OPÇÃO -> "); scanf("%d", &op); switch(op) { case 1: do{ printf("\t\t\t\t\t1 - Criar Balanço\n"); printf("\t\t\t\t\t2 - Emitir\n"); printf("\t\t\t\t\t3 - Retornar\n\n"); printf("\t\t\t\t\tDIGITE UMA OPÇÃO -> "); scanf("%d", &po); switch(po) { case 1: break; case 2: break; case 3: printf("\t\t\t\t\tVoltando...\n\n"); Sleep(400); break; default: printf("\t\t\t\t\tOpção Inválida! Aperte uma tecla e tente novamente\n"); getchar(); break; } }while(po != 3); break; case 2: do{ printf("\t\t\t\t\t1 - Criar DRE\n"); printf("\t\t\t\t\t2 - Emitir\n"); printf("\t\t\t\t\t3 - Retornar\n\n"); printf("\t\t\t\t\tDIGITE UMA OPÇÃO -> "); scanf("%d", &eu); switch(eu) { case 1: tabela_dre(struct dre); break; case 2: break; case 3: printf("\t\t\t\t\tVoltando...\n\n"); Sleep(400); break; default: printf("\t\t\t\t\tOpção Inválida! Aperte uma tecla e tente novamente\n"); getchar(); break; } }while(eu != 3); break; case 3: printf("\t\t\t\t\tSaindo..."); Sleep(800); break; default: printf("\t\t\t\t\tOpção Inválida! Aperte uma tecla e tente novamente\n"); getchar(); break; } }while(op != 3); } void tabela_dre() { DRE d; FILE *fs; fs = fopen("tabela DRE.txt", "ab"); if(fs == NULL) { printf("Não foi possível criar o arquivo!\n"); printf("Aperte uma tecla e tente novamente."); getchar(); } else{ cabecalho(); fflush(stdin); printf("\nDIGITE OS VALORES REFERENTES A CADA ITEM\n\n"); printf("Receita Operacional Bruta: "); scanf("%.2f", &d.receita_b); printf("Vendas canceladas: "); scanf("%.2f", &d.vendas_c); printf("Impostos sob vendas: "); scanf("%.2f", &d.imp_sob_vendas); printf("Descontos"); scanf("%.2f", &d.descontos); printf("Custo de mercadorias vendidas (CMV): "); scanf("%.2f", &d.cmv); printf("Despesas de vendas: "); scanf("%.2f", &d.desp_vend); printf("Despesas administrativas: "); scanf("%.2f", &d.desp_adm); printf("Receita financeira: "); scanf("%.2f", &d.rec_financ); printf("Receitas não operacionais: "); scanf("%.2f", &d.rec_n_op); printf("Despesas não operacionais: "); scanf("%.2f", &d.desp_n_op); printf("Despesas financeiras: "); scanf("%.2f", &d.desp_financ); //RECEITA LIQUIDA d.receita_l = d.receita_b - d.vendas_c - d.imp_sob_vendas - d.descontos; //LUCRO BRUTO d.lucro_b = d.receita_l - d.cmv; //LUCRO LIQUIDO ANTES DO IR/CS d.lucro_l_ir = d.lucro_op + d.rec_financ + d.rec_n_op - d.desp_financ - d.desp_n_op; //LUCRO OPERACIONAL d.lucro_op = d.lucro_b - d.desp_vend - d.desp_adm; //IR/CS d.ir_cs = d.lucro_l_ir * 0.25; //LUCRO LIQUIDO APÓS O IR/CS d.lucro_l_ap_ir = d.lucro_l_ir - d.ir_cs; //TOTAL d.total = d.lucro_l_ap_ir; system("cls"); puts("\t\t\t\t####################################"); puts("\t\t\t\t## TABELA DRE ##"); puts("\t\t\t\t####################################\n\n\n"); printf("#######################################################||\n"); printf("(=) RECEITA OPERACIONAL BRUTA || %.2f ||\n", d.receita_b); printf("#######################################################||\n"); printf("\t(-) Vendas Canceladas || %.2f ||\n", d.vendas_c); printf("\t(-) Impostos sob vendas || %.2f ||\n", d.imp_sob_vendas); printf("\t(-) Descontos || %.2f ||\n", d.descontos); printf("#######################################################||\n"); printf("(=) RECEITA OPERACIONAL LIQUIDA || %.2f ||\n", d.receita_l); printf("#######################################################||\n"); printf("\t(-) Custo de Mercadorias Vendidas (CMV) || %.2f ||\n", d.cmv); printf("#######################################################||\n"); printf("(=) LUCRO BRUTO || %.2f ||\n", d.lucro_b); printf("#######################################################||\n"); printf("\t(-) Despesas de Vendas || %.2f ||\n", d.desp_vend); printf("\t(-) Despesas Administrativas || %.2f ||\n", d.desp_adm); printf("#######################################################||\n"); printf("(=) LUCRO OPERACIONAL || %.2f ||\n", d.lucro_op); printf("#######################################################||\n"); printf("\t(+) Receita Financeira || %.2f ||\n", d.rec_financ); printf("\t(+) Receitas Não Operacionais || %.2f ||\n", d.rec_n_op); printf("\t(-) Despesas Não Operacionais || %.2f ||\n", d.desp_n_op); printf("\t(-) Despesas Financeiras || %.2f ||\n", d.desp_financ); printf("#######################################################||\n"); printf("(=) LUCRO LIQUIDO ANTES DO IR/CS || %.2f ||\n", d.lucro_l_ir); printf("#######################################################||\n"); printf("\t(-) IR/CS || %.2f ||\n", d.ir_cs); printf("#######################################################||\n"); printf("(=) LUCRO LIQUIDO APÓS O IR/CS || %.2f ||\n", d.lucro_l_ap_ir); printf("#######################################################||\n"); printf("################################ TOTAL || %.2f ||\n", d.total); printf("#######################################################||\n"); fwrite(&d, sizeof(DRE), 1, fs); } fclose(fs); } chapiusk chapiusk 21 horas atrás @devair1010 Por enquanto eu fiz isso ai, só q esta dando erro na execução #include <stdio.h> #include <stdlib.h> #include <math.h> #include <locale.h> struct dre { float receita_b; float vendas_c; float imp_sob_vendas; float descontos; float receita_l; float cmv; float lucro_b; float desp_vend; float desp_adm; float lucro_op; float rec_financ; float desp_financ; float desp_n_op; float rec_n_op; float lucro_l_ir; float ir_cs; float lucro_l_ap_ir; float total; }; void tabela_dre(struct dre); int main() { setlocale(LC_ALL, "portuguese"); struct dre; int op, po, eu, você; do{ printf("\t\t\t\t\t1 - Balanço Patrimonial\n"); printf("\t\t\t\t\t2 - DRE\n"); printf("\t\t\t\t\t3 - Sair\n\n"); printf("\t\t\t\t\tDIGITE UMA OPÇÃO -> "); scanf("%d", &op); switch(op) { case 1: do{ printf("\t\t\t\t\t1 - Criar Balanço\n"); printf("\t\t\t\t\t2 - Emitir\n"); printf("\t\t\t\t\t3 - Retornar\n\n"); printf("\t\t\t\t\tDIGITE UMA OPÇÃO -> "); scanf("%d", &po); switch(po) { case 1: break; case 2: break; case 3: printf("\t\t\t\t\tVoltando...\n\n"); Sleep(400); break; default: printf("\t\t\t\t\tOpção Inválida! Aperte uma tecla e tente novamente\n"); getchar(); break; } }while(po != 3); break; case 2: do{ printf("\t\t\t\t\t1 - Criar DRE\n"); printf("\t\t\t\t\t2 - Emitir\n"); printf("\t\t\t\t\t3 - Retornar\n\n"); printf("\t\t\t\t\tDIGITE UMA OPÇÃO -> "); scanf("%d", &eu); switch(eu) { case 1: tabela_dre(struct dre); break; case 2: break; case 3: printf("\t\t\t\t\tVoltando...\n\n"); Sleep(400); break; default: printf("\t\t\t\t\tOpção Inválida! Aperte uma tecla e tente novamente\n"); getchar(); break; } }while(eu != 3); break; case 3: printf("\t\t\t\t\tSaindo..."); Sleep(800); break; default: printf("\t\t\t\t\tOpção Inválida! Aperte uma tecla e tente novamente\n"); getchar(); break; } }while(op != 3); } void tabela_dre(struct dre) { struct dre; FILE *fs; fs = fopen("tabela DRE.txt", "ab"); if(fs == NULL) { printf("Não foi possível criar o arquivo!\n"); printf("Aperte uma tecla e tente novamente."); getchar(); } else{ printf("\nDIGITE OS VALORES REFERENTES A CADA ITEM\n\n"); printf("Receita Operacional Bruta: "); scanf("%.2f", &receita_b); printf("Vendas canceladas: "); scanf("%.2f", &vendas_c); printf("Impostos sob vendas: "); scanf(".2f", &imp_sob_vendas); printf("Descontos"); scanf(".2f", &descontos); //CÁLCULO RECEITA LIQUIDA receita_l = receita_b - vendas_c - imp_sob_vendas - descontos; printf("Custo de mercadorias vendidas (CMV): "); scanf(".2f", &cmv); //LUCRO BRUTO lucro_b = receita_l - cmv; printf("Despesas de vendas: "); scanf(".2f", &desp_vend); printf("Despesas administrativas: "); scanf(".2f", &desp_adm); //LUCRO OPERACIONAL lucro_op = lucro_b - desp_vend - desp_adm; printf("Receita financeira: "); scanf(".2f", &rec_financ); printf("Receitas não operacionais: "); scanf(".2f", &rec_n_op); printf("Despesas não operacionais: "); scanf(".2f", &desp_n_op); printf("Despesas financeiras: "); scanf(".2f", &desp_financ); //LUCRO LIQUIDO ANTES DO IR/CS lucro_l_ir = lucro_op + rec_financ + rec_n_op - desp_financ - desp_n_op; //IR/CS ir_cs = lucro_l_ir * 0.25; //LUCRO LIQUIDO APÓS O IR/CS lucro_l_ap_ir = lucro_l_ir - ir_cs; //TOTAL total = lucro_l_ap_ir; system("cls"); printf("################################################################\n"); printf("(=) RECEITA OPERACIONAL BRUTA || %.2f ||#######\n", receita_b); printf("################################################################\n"); printf("\t\t(-) Vendas Canceladas || %.2f ||#######\n", vendas_c); printf("\t\t(-) Impostos sob vendas || %.2f ||#######\n", imp_sob_vendas); printf("\t\t(-) Descontos || %.2f ||#######\n", descontos); printf("################################################################\n"); printf("(=) RECEITA OPERACIONAL LIQUIDA || %.2f ||#######\n", receita_l); printf("################################################################\n"); printf("\t\t(-) Custo de Mercadorias Vendidas (CMV) || %.2f ||#######\n", cmv); printf("################################################################\n"); printf("(=) LUCRO BRUTO || %.2f ||#######\n", lucro_b); printf("################################################################\n"); printf("\t\t(-) Despesas de Vendas || %.2f ||#######\n", desp_vend); printf("\t\t(-) Despesas Administrativas || %.2f ||#######\n", desp_adm); printf("################################################################\n"); printf("(=) LUCRO OPERACIONAL || %.2f ||#######\n", lucro_op); printf("################################################################\n"); printf("\t\t(+) Receita Financeira || %.2f ||#######\n", rec_financ); printf("\t\t(+) Receitas Não Operacionais || %.2f ||#######\n", rec_n_op); printf("\t\t(-) Despesas Não Operacionais || %.2f ||#######\n", desp_n_op); printf("\t\t(-) Despesas Financeiras || %.2f ||#######\n", desp_financ); printf("################################################################\n"); printf("(=) LUCRO LIQUIDO ANTES DO IR/CS || %.2f ||#######\n", lucro_l_ir); printf("################################################################\n"); printf("\t\t(-) IR/CS || %.2f ||#######\n", ir_cs); printf("################################################################\n"); printf("(=) LUCRO LIQUIDO APÓS O IR/CS || %.2f ||#######\n", lucro_l_ap_ir); printf("################################################################\n"); printf("################################## TOTAL || %.2f ||#######\n", total); printf("################################################################\n"); } fclose(fs); }
  3. Bom pessoal, tenho que fazer um programa em C que cadastre duas tabelas (uma de balanço patrimonial e outra de DRE). Só que não tenho ideia de como fazer. Segue os prints de como meu professor pediu. (ignorem o nome das empresas kkkk) Estou com dificuldade pra criar as funções pra cair nas tabelas que criei no codeblocks que nem sei se está certo

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...