Universidade Federal do Paraná
Departamento de Informática
Disciplina CI056 - Algoritmos e Estruturas de Dados II
2o Período do BCC, IBM & MI
Prof. Elias P. Duarte Jr.

Trabalho Prático 1: Listas, Filas, Pilhas

Data de Entrega (Disponibilização): 4 de outubro de 2017 (são 3 semanas de prazo, não haverá adiamento, organize-se!)

Os alunos devem informar por e-mail a URL do trabalho, usando o subject "TP-1 ALGORITMOS II 2017-2"

OBS.: O trabalho deve ser feito em dupla.

O restaurante Algorítmico não serve a quilo: os clientes escolhem itens do cardápio. O cardápio tem todos os itens disponíveis, que são descritos em uma lista. Cada item aparece na lista com um número de identificação, a descrição e o preço. Suellen, a gerente do restaurante, atende no caixa, onde os clientes fazem uma fila invariavelmente grande. Cada cliente tem um comando com a lista dos produtos consumidos. Para cada cliente atendido, Suellen informa o preço total, somando os itens do comando. Além disso, o restaurante está agraciando os clientes com um pequeno chocolate. Suellen mantém uma pilha de chocolates diversos e entrega ao cliente atendido o chocolate do topo da pilha.

Escreva um programa que implementa o sistema acima. Você deve preparar cuidadosamente o cardápio do restaurante. Encha a fila de pessoas conhecidas, cada uma com seu comando que tem uma lista dos produtos consumidos. Você deve encher a pilha com chocolates diversos. Ao final, mostre qual chocolate cada cliente ganhou, bem como quanto pagou pela refeição.

Para as implementações dos Tipos Abstratos de Dados, se a fila for em vetor, a pilha deve ser apontadores ou vice-versa. Cada dupla pode escolher a implementação que julgar mais conveniente. O programa deve ter opções para imprimir a lista, fila ou pilha a qualquer momento.

Execute testes exaustivos, mostrando que seu programa funciona nas mais diversas situações (ex. pilha vazia, fila cheia, etc etc).

ENTREGA DO TRABALHO

Deve ser construída uma página Web, que contém em documentos HTML, os seguintes itens:

  • Relatório de como foi feito o trabalho e quais foram os resultados obtidos. Use desenhos, diagramas, figuras, todos os recursos que permitam ao professor compreender como a dupla estruturou o trabalho e quais resultados obteve.
  • Código Fonte comentado. ATENÇÃO: acrescente a todo programa a terminação ".txt" para que possa ser diretamente aberto em um browser. Exemplos: lista.pas.txt ou pilha.c.txt
  • Logs de execução dos programas, que demonstrem a execução correta destes processos. Os testes devem ser exaustivos até o ponto que demonstrem com clareza a funcionalidade correta do sistema. Veja este programa exemplo que implementa a Lista em vetor para ilustrar a criação de um bom log.

    Observações:

  • Não serão aceitos trabalhos impressos, nem em meio ótico/magnético.
  • Alguns trabalhos serão defendidos no laboratório, portanto certifique-se que seu trabalho funciona aqui.

    Importante: capriche na legibilidade e organização.


    Prof. Elias P. Duarte Jr.     Departamento de Informática     UFPR