Ir ao conteúdo

PerfectBurn

Membro Júnior
  • Posts

    1
  • Cadastrado em

  • Última visita

Tudo que PerfectBurn postou

  1. Tenho que criar um programa em c porém encontrei alguns problemas anexarei alguns criterios que me deram #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,lcod; float *plpreco = &Livros.preco; int *plcod = &Livros.codigo; char *pltitu = &Livros.titulo; system("cls"); printf("\n-------------------------------------------------------------------------------------------"); printf("\nTodos os livros cadastrados"); printf("\n-------------------------------------------------------------------------------------------"); FILE *pLivros; pLivros = fopen("livros.txt","r"); for(i=0;i>= *plcod;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 preco; 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++; } preco= *pend; for(contmt=0;contmt<=quant;contmt++) { preco+= preco; } Vendas.Valortotal= preco; printf("O valor total da venda é: %f",preco); 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; } Avaliação A1 - Linguagem de Programação 2020-01 - PROTOCOLO DE APRESENTAÇÃO.pdf Avaliação A1 - Linguagem de Programação 2020-01.pdf adicionado 4 minutos depois O que não funciona: 1 para registrar a venda tenho que colocar o valor total da venda que é o preço do livro vezes a quantia, porém terei varios livros registrados e para isso pensei em criar um ponteiro para o campo preço da struct e ai avançar na memoria o numero de vezes x no caso o codigo do livro, e em seguida somar seu preço n vezes até chegar ao quantia de livros que foi comprada. 2 tentei printar todos os livros cadastrados mas acaba printando endereço de memória ao envez do codigo titulo e preço. adicionado 5 minutos depois sou iniciante então devem conter diversas coisas erradas

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...