Na void chamada Registro Venda preciso printar o valor total da venda só que ele não realiza, o programa foi criado de acordo com requisitos do meu professor e ainda não está pronto se puderem ajuda.
#include <stdio.h>
#include <stdlib.h>
#include <locale.h>
#include <string.h>
#include <conio.h>
typedef struct {
int codigo;
char titulo[100];
float preco;
}LIVRO;
//-----------------------------------------------------------------------------------------------------------------
typedef struct {
int Codvenda;
int Codlivro;
char data[11];
int qtd;
float Valortotal;
}VENDA;
//------------------------------------------------------------------------------------------------------------------
int pos_lv()
{
LIVRO livros;
int qnt = 0;
FILE *pLivros;
pLivros = fopen("livros.txt","r");
fread(&livros, sizeof(LIVRO), 1, pLivros);
while(!feof(pLivros))
{
fread(&livros, sizeof(LIVRO), 1, pLivros);
qnt+=1;
}
fclose(pLivros);
return qnt;
}
int pos_vd()
{
VENDA Vendas;
int qnt = 0;
FILE *pVendas;
pVendas = fopen("vendas.txt","r");
fread(&Vendas,sizeof(VENDA),1,pVendas);
while(!feof(pVendas))
{
fread(&Vendas,sizeof(VENDA),1,pVendas);
qnt +=1;
}
fclose(pVendas);
return qnt;
}
//------------------------------------------------------------------------------------------------------------------
void Cadastrarlivros()
{
LIVRO Livros;
system("cls");
printf("\n------------------------------------------------------------------------------");
printf("\n Cadastro de livros");
printf("\n------------------------------------------------------------------------------");
Livros.codigo = pos_lv() + 1;
printf("\n Código: %d", Livros.codigo);
fflush(stdin);
printf("\n Título: ");
gets(Livros.titulo);
printf(" Preço: ");
scanf("%f",&Livros.preco);
FILE *pLivros;
pLivros = fopen("livros.txt","a");
fwrite(&Livros, sizeof(LIVRO), 1, pLivros);
fclose(pLivros);
}
void mostratodososlivros()
{
LIVRO Livros;
int i;
//float *plpreco = Livros.preco;
int *plcod;
char *pltitu = Livros.titulo;
system("cls");
printf("\n-------------------------------------------------------------------------------------------");
printf("\nTodos os livros cadastrados");
printf("\n-------------------------------------------------------------------------------------------");
FILE *pLivros;
pLivros = fopen("livros.txt","r");
//for(lcod=Livros.codigo,i=0,i!=lcod,i++)
//{
//printf("\nCódigo do Livros:%d",plcod);
//printf("\nTítulo..........:%d",pltitu);
// printf("\nPreço...........:%d",plpreco);
// plcod++,pltitu++, plpreco++;
//}
fclose(pLivros);
}
//------------------------------------------------------------------------------------------------------------------
void registrovenda()
{
LIVRO Livros;
VENDA Vendas;
float* pend;
float pLpreco;
int quant,cont,contmt,codrec,plcod;
system("cls");
printf("\n------------------------------------------------------------------------------");
printf("\n Registro de vendas");
printf("\n------------------------------------------------------------------------------");
Vendas.Codvenda = pos_vd() +1;
printf("\n Código da venda: %d", Vendas.Codvenda);
fflush(stdin);
printf("\n Digite o código do livro:");
scanf("%d", &Vendas.Codlivro, &codrec);
fflush(stdin);
printf("\n Digite a data da venda: ");
gets(Vendas.data);
puts(" Digite a quantidade de Livros: ");
scanf("%d",&Vendas.qtd, &quant);
pend = &Livros.preco;
codrec = codrec-1;
for(cont= 0;cont>=codrec;cont++)
{
pend++;
}
pLpreco=(*pend);
for(contmt=0;contmt<=quant;contmt++)
{
pLpreco+=pLpreco;
}
Vendas.Valortotal=(pLpreco);
printf("O valor total da venda é: %f",pLpreco);
FILE *pVendas;
pVendas = fopen("vendas.txt","a");
fwrite(&Vendas, sizeof(VENDA), 1, pVendas);
fclose(pVendas);
}
void mostratodasasvendas()
{
VENDA Vendas;
char conteudo[100];
system("cls");
printf("\n-------------------------------------------------------------------------------------------");
printf("\nDados de todas as vendas realizadas");
printf("\n-------------------------------------------------------------------------------------------");
FILE *pVendas;
pVendas = fopen("vendas.txt","r");
fread(&conteudo, sizeof(char), 100, pVendas);
printf("\nO CONTEÚDO DO ARQUIVO É:\n %s \n", conteudo);
fclose(pVendas);
}
void sair()
{
return;
}
void menu()
{
int opsel;
setlocale(LC_ALL, “Portuguese”);
printf("---------------------------------------------------------------------------------");
printf("\n MENU DE OPÇÕES DO SISTEMA");
printf("\n---------------------------------------------------------------------------------");
printf("\n [1] Cadastrar livros");
printf("\n [2] Mostrar todos os dados de um livro pelo título");
printf("\n [3] Consultar todos os dados de todos os livros");
printf("\n [4] Registro de vendas");
printf("\n [5] Consultar todos os dados de uma venda por título do livro");
printf("\n [6] Consultar todos os dados de uma venda por período e valor total recebido");
printf("\n [7] Mostrar todos os dados de todas as vendas realizadas");
printf("\n [8] Sair\n");
printf(“Opção selecionada:”);
scanf("%d", &opsel);
//Analisa o número digitadodvendao e abre a função correspondente
switch(opsel)
{
case 1:
Cadastrarlivros();
break;
case 3:
mostratodososlivros();
break;
case 4:
registrovenda();
break;
case 7:
mostratodasasvendas();
break;
case 8:
sair();
break;
default:
printf(“Opção não encontrada.”);
}
}
int main()
{
menu();
return 0;
}