Buscar

EP 14-A2 de Introdução à Programação 2016_01 Nota 100

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);
 }
 }
}

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Outros materiais