Prova Final de Programação 2 (2010/1)
Autor: Hilário | Publicado: 2010-09-15T14:03:00-03:00

<!--[if gte mso 9]>           <![endif]--><!--[if gte mso 9]>     Normal   0         21         false   false   false      PT-BR   X-NONE   X-NONE                                                                                                     <![endif]--><!--[if gte mso 9]>                                                                                                                                                                                                                                                                                                                                                                                                                                   <![endif]--><!--[if gte mso 10]>   /* Style Definitions */  table.MsoNormalTable  {mso-style-name:"Tabela normal";  mso-tstyle-rowband-size:0;  mso-tstyle-colband-size:0;  mso-style-noshow:yes;  mso-style-priority:99;  mso-style-qformat:yes;  mso-style-parent:"";  mso-padding-alt:0cm 5.4pt 0cm 5.4pt;  mso-para-margin:0cm;  mso-para-margin-bottom:.0001pt;  mso-pagination:widow-orphan;  font-size:10.0pt;  font-family:"Times New Roman","serif";}  <![endif]-->  Uma loja possui um programa que mantém armazenados os produtos vendidos por ela e os clientes cadastrados. Um cliente possui os dados Nome, CPF e Endereço (todos são armazenados como Strings). Um produto possui um código (inteiro), um valor unitário (real), um nome e uma descrição (Strings). Existe um vetor com os dados de todos os clientes e um vetor com os produtos em estoque.  A loja também armazena o histórico de pedidos já realizados, ou seja, dos produtos que já foram vendidos. Cada pedido possui:  a)       Número do pedido (inteiro);  b)       Quantidade (inteiro);  c)       Índice do produto (inteiro referente à posição que o produto ocupa no vetor de produtos);  d)       Índice do cliente (inteiro referente à posição que o cliente ocupa no vetor de clientes);  e)       Status (valor lógico que, quando verdadeiro, indica que o produto já foi entregue);     Você deve criar um programa que:     - Descreva os registros “Cliente”, “Produto” e “Pedido”, explicados acima.     - Em seguida, leia um número inteiro n_prod de um arquivo binário e depois leia n_prod produtos em estoque deste mesmo arquivo e armazene-os em um vetor. Faça o mesmo para os clientes e para os pedidos: leia um número inteiro n_clientes de um arquivo binário e depois leia n_clientes clientes da loja deste mesmo arquivo e armazene-os em outro vetor; e leia um número inteiro n_pedidos de um arquivo binário e depois leia n_pedidos pedidos realizados na loja deste mesmo arquivo e armazene-os em outro vetor.      - Imprima uma tabela com o número de todos os pedidos realizados, o nome do produto vendido no pedido e o valor total do pedido.  Exemplo de saída:     1234 / Maçã Verde / R$ 4  1222 / Milho Verde / R$ 10  1223 / Caqui / R$ 4.5     - Imprima o nome do cliente que realizou a compra mais cara.     - Por fim, para ajudar o entregador da loja, imprima uma tabela com o nome do produto, a quantidade e o endereço de entrega de todos os pedidos que ainda não tiverem sido entregues.      Lembre-se que o mais avaliado será sua capacidade de abstração e de modularização.