You are on page 1of 9

Projeto de Processamento de

Informao (UFABC) 2015.1


Delta guas
Raul Fernandes Ribeiro
11018314
Rodrigo de Carvalho Santos
11000714

1-Descrio:
O programa tem como fim realizar o cadastro de clientes. Por
ser desenvolvido no intuito de cadastro de clientes, o programa
pretende automatizar o processo de cadastro e busca do cliente,
retornando ao atendente as informaes como endereo completo
caso o cliente j esteja cadastrado.
Alm do problema principal que buscava o cadastro de clientes,
foi acrescentado ao programa o desenvolvimento de pedidos, no qual
o cliente informa ao atendente o que deseja e o programa gera o
pedido com valor total resultante, e as informaes sobre endereo e
nome do cliente, facilitando a cpia e a passagem de informaes a
quem vai entregar o pedido.

2-Como foi Pensado?


Planejamento

Aps a idealizao do projeto, discutiu-se quais informaes


(dados) seriam teis para que pudssemos viabilizar o cadastro de
cliente. Conclui-se que com o telefone, endereo, o complementoquando necessrio- e o nome do cliente, nesta respectiva ordem,
seriam os dados necessrios capazes de individualizarem qualquer
cliente. Bastava pensar em uma maneira de guardar os dados destes
clientes em uma estrutura de dados conveniente para a situao, e
um modo de acessar esses dados e disp-los de uma forma
interessante, visando o aperfeioamento do atendimento ao cliente.
Primeiramente pensou-se o tipo de estrutura de dados que poderia
ser utilizado para armazenar os clientes cadastrados; o formato
arquivo.txt foi aquele que se revelou mais adequado as demandas
que tnhamos por ser um formato vivel para a quantidade de dados
que o problema demandava (a loja em questo possui um nmero de

clientes limitado, no necessitando criar um banco de dados


extenso), e sobretudo, de simples manipulao.
Para a disposio dos dados anteriormente destacados, decidiu-se
pelo uso do JFrame, ferramenta que atendeu as expectativas quanto
disposio dos dados em uma tela de execuo e que se mostrou
muito verstil no decorrer do desenvolvimento por oferecer muitas
opes de solues para os problemas que enfrentamos.

Construo do Algoritmo

1- Cadastrando e verificando o Cliente.


Neste seguinte passo foi pensado no modo de armazenamento das
informaes dos campos de texto utilizados no JFrame e na leitura
dessas informaes, posteriormente, no arquivo. Basicamente, foram
utilizadas importaes do Java para gravar e ler essas informaes,
como

FileReader,

FileWriter,

InputStreamReader,

PrintWriter,

BufferedReader, InputStreamReader e entre outras.


No cadastro de cliente simplesmente organizamos o cdigo para
que gravasse em um arquivo Endereo.txt, respectivamente, as
informaes do telefone, endereo, complemento e nome do cliente
inseridas nos campos de texto do JFrame, em uma linha , sempre
separando cada informao nova por um delimitador _, e sempre
separando cada cliente em uma linha diferente.
Para confrontar a existncia ou no de um cadastro no arquivo
Endereco.txt que armazenaria as informaes do cliente lanou-se um
vetor (string split) para comparar se a informao de busca de
cadastro (no caso do nosso programa, o telefone do cliente) era
compatvel com a informao de busca gravada em alguma linha do
arquivo e retornar as informaes cadastradas no JFrame, que se
encontravam distribudas no restante da linha, entre os marcadores
delimitados.
2- Realizando o pedido e calculando o valor total comprado.

Para a realizao do pedido, dado que a quantidade de produtos


no era to extensa, optou-se pelo uso de caixas de seleo, opo
do JFrame, simplificando muito a interao com o usurio uma vez
que construmos a lgica

valendo-se de condicionais, de tal modo

que bastava selecionar os produtos que o cliente deseja e as suas


quantidades, que o pedido seria armazenado em um arquivo
Pedido.txt

permitindo nos passos seguintes uma relativa facilidade

no clculo do total bem como no acesso a quais produtos foram


requisitados.
Para o clculo do total, utilizou-se semelhante estratgia a aquela
usada para a confirmao da existncia de um cadastro; buscar os
pedidos feitos e compar-los com os respectivos produtos da tabela
de preo, igualmente armazenada em um arquivo Tabela de Preco.txt,
- a opo neste ponto preterindo uma matriz justificou-se pelo
arquivo Tabela de Preco.txt ter um acesso mais simples, de tal
maneira que os proprietrios poderiam mudar os preos por
conta prpria- para assim acessar as quantidades requisitadas dos
produtos e multiplic-las com os seus respectivos preos unitrios,
retornando ao final, o total do pedido.
3- Mensagem de concluso do pedido.
Com o intuito de finalizar o atendimento, discutiu-se uma forma de
resumir as informaes geradas pelo pedido e atendimento como um
todo de um modo que assim que concludo a compra, o usurio
tivesse acesso ao nome do cliente, o seu endereo, quais produtos ele
comprou, e o total da operao.
Selecionamos o JOptionPane como ferramenta, justamente pelas
opes de mensagens encontradas, e assim, varremos todas as
informaes geradas at o instante antes da concluso do pedido
organizando as em strings que quando concatenadas, fornecem, em
uma razovel edio, o nome do cliente, seu endereo.

Fluxograma Geral:

4- Problemas Enfrentados e como foram resolvidos

manipulao

das

muitas

importaes

necessrias

na

manipulao de um arquivo.txt (BufferedReader, PrintWriter,


InputStreamReader, FileWriter, etc.) foi um grande problema no
incio, pois todo o projeto estava encadeado no cadastro de
clientes, e no seria possvel realizar tal tarefa sem o uso de
muitas das importaes mencionadas, bem como.
Todavia, com o estudo destas funes do Java, a pesquisa em
sites e fruns focados em programao, vdeos e vdeo-aulas e o
auxlio

providencial

do

professor,

ns

fomos

gradualmente

entendendo cada vez mais o que cada importao faz, porque elas
devem ser usadas em conjunto, e com xito no final do projeto
estvamos j manipulando os cdigos que as utilizam com
sucesso.

No incio do projeto, muitas vezes, ao depararmos com um


problema a ser resolvido no cadastro, comevamos a construir a
soluo como um nico cdigo, e tal estratgia se mostrou muitas
vezes ineficiente, pois chegvamos em um resultado que, quando
no entendamos o porque no funcionava , continha inmeros
erros que praticamente inutilizava o trabalho feito.
Enfrentamos essa situao comeando a tratar cada novo
problema parte por parte, uma soluo simples de cada vez, e
dessa maneira, realizamos cerca de 10 a 15 projetos que se
intitulavam rascunho ou teste, cuja nica finalidade foi a de
estudar como resolver um problema simples, e a partir da,
estend-lo para as condies do problema que tnhamos que
resolver.
Tomando essa maneira de encarar os problemas, a construo
do projeto tornou-se muito mais organizada, o planejamento muito
mais fcil e a prpria concepo das solues e cdigos mais
interessantes, um grande aprendizado.

Outro problema encontrado ao final do programa foi a forma como


o Java faz a leitura da acentuao como por exemplo o til(~), o

qual dificultava a leitura do pedido executado para a consulta na


tabela de preos. Estes problemas foram resolvidos com o auxlio
do depurador e com a retirada dos acentos dos produtos para no
causar erro na leitura.
Em uma anlise geral, a necessidade de explorar muito mais funes
disponibilizadas pelo Java, a compreenso e o discernimento de qual
funo seria mais apropriada para a situao apresentada, a
adaptao dos tpicos discutidos em aula no auxlio do projeto, alm
dos

problemas

com

lgica

do

cdigo,

foram

dificuldades

enfrentadas que novamente, sem o estudo da linguagem, a pesquisa,


no seriam resolvidos.

*Informaes Adicionais:
1. Clientes (aproximadamente): 500 clientes;
2. Lista de produtos:

Garrafo

(Bioleve);
Garrafo

(Olmpica);
Garrafo
20L

(Estncia);
Garrafo
(Bioleve);

20L
20L

10L

Ret.
Ret.
Ret.
Ret.

Garrafo

10L

Ret.

(Bioleve);
Garrafo

10L

Ret.

(Bioleve);
Galo 6,25

(Bonafont);
Galo
6,25L
(Bioleve);

Des.
Des.

Galo 1,5 L (Bonafont);

Galo 1,5L (Bioleve);

Obs.: Ret. e Des. so Retornveis e Descartveis


respectivamente.

*Layout: