Baixe o app para aproveitar ainda mais
Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original
ep 14-A2/.DS_Store __MACOSX/ep 14-A2/._.DS_Store ep 14-A2/EP 14.pdf INF 01040 – Introdução à Programação Exercícios Entrega Programada 14 Introdução à Programação (INF 01040) 3 Entrega Programada 14 – A2 Descrição: Manipulando Livros Seja uma estrutura para descrever os livros de uma loja, contendo os seguintes campos: - Código: inteiro - Título: string de tamanho 15 - Autor: string de tamanho 20 - Preço: real - Data lançamento: estrutura do tipo data (a ser definida, contendo dia, mês e ano) Faça o seguinte: a) Defina as estruturas livro e data b) Escreva uma função que leia os dados de um livro e retorne uma estrutura do tipo livro c) Escreva uma função que receba uma estrutura do tipo livro e a imprima na tela d) Construa as mesmas funções descritas em (b) e (c), mas para a estrutura do tipo data e) Defina e inicialize um vetor para armazenar os dados de 10 livros. f) Solicite que o usuário digite um valor e imprima todos os livros cujo preço seja inferior ao valor digitado. Atenção: O programa deverá obrigatoriamente usar struct. A manipulação das estruturas (leitura e apresentação) deve ser feita utilizando exclusivamente as funções definidas em (b), (c) e (d). O programa deverá ser entregue pelo Moodle. Slide 1 Slide 3 __MACOSX/ep 14-A2/._EP 14.pdf ep 14-A2/ep14.c #include<stdio.h> #include<string.h> #include<stdlib.h> typedef struct { int dia; int mes; int ano; }dialancamento; typedef struct { int codigo; char titulo[16]; char autor[21]; dialancamento data; float preco; } livro; dialancamento lerdata (void) { dialancamento valores; do{ printf("Digite o dia de lancamento do livro: "); scanf("%d", &valores.dia); } while (valores.dia<1 || valores.dia>31); do{ printf("Digite o mes de lancamento do livro: "); scanf("%d", &valores.mes); }while (valores.mes<1 || valores.mes>12); do{ printf("Digite o ano de lancamento do livro: "); scanf("%d", &valores.ano); }while (valores.ano<1); return valores; } livro lerdados (void) { livro dados; printf("\n\nDigite o codigo do livro: "); scanf("%d", &dados.codigo); printf("Digite o nome do titulo do livro: "); fflush(stdin); gets(dados.titulo); printf("Digite o nome do autor do livro: "); fflush(stdin); gets(dados.autor); printf("Digite o preco do livro: "); scanf("%f", &dados.preco); dados.data = lerdata(); return dados; } void imprimedados (livro dados) { printf("\n\nO codigo do livro eh: %d", dados.codigo); printf("\nO titulo do livro eh: %s", dados.titulo); printf("\nO nome do autor eh: %s", dados.autor); printf("\nO preco do livro eh: %.2f\n", dados.preco); } void imprimedata (dialancamento valores) { printf("\nA data de lancamento eh: %d / %d / %d\n", valores.dia, valores.mes, valores.ano); } int main () { livro opcoes[10]; int i; float valormaximo; printf("\t\tMANIPULANDO LIVROS\n"); printf("\nDigitando dados de 10 livros, descubra qual voce pode comprar!\n"); for (i=0; i<10; i++) { opcoes[i] = lerdados(); } printf("\n\nDigite um valor maximo que possa ser gasto: "); scanf("%f", &valormaximo); printf("\n\nDado o valor maximo, estes sao os livros que voce pode comprar:\n"); for (i=0; i<10; i++) { if(opcoes[i].preco <valormaximo) { imprimedados (opcoes[i]); imprimedata (opcoes[i].data); } } }
Compartilhar