Escolar Documentos
Profissional Documentos
Cultura Documentos
Paradigmas da Programação
Informatica de Sistemas
Segundo Ano
II Semestre
Elementos do Grupo:
Osvaldo Silva
Chilton Nhabanga
2
Introdução
A orientação à objectos é um modelo de análise, projeto e programação de sistemas de software
baseado na composição e interação entre diversas unidades de software chamadas de objetos.
3
Descrição:
Um sistema simples para gerenciamento de um parque de estacionamento. No sistema temos 2
entidades, o gerente e o cliente. O cliente so tem direito a ver a tabela de precos. Para evitar
fraudes e como o sistema nao permite leitura de um “read card”, o gerente e que calcula o preco
a pagar pelo cliente.
Ao aceder o sistema, temos um menu para selecao de usuario (Cliente e Gerente). O gerente tem
direito a adicionar um cliente, apagar um cliente, modificar algum dado do cliente , listar todos
cliente e calcular preco a pagar pelo cliente.
Para apagar ou alterar algum dado do cliente e Necessario ter o Numero do cliente.
- 1 hora – 100 mt
- 2 horas -180 mt
- 3 horas- 270mt
- Apartir de 4 horas- 80 mt por hora.
- Os minutos extras sao arredondados para horas, mas o gerente pode descontar se quiser.
NB: o calculo das horas nao e feito no Sistema, e o preco a pagar nao vem associado a lista
dos clientes.
Prazo: 12/11//15
Limitacoes: 0.
4
Pseudocodigo:
Inicio
Selecionar Usuario
Se 1 entao MenuCliente
Selecionar accao
Se nao sair
Se 2 entao MenuGerente
Selecionar Accao
Digitar Numero
Digitar Nome_Apelido
Digitar Marca_Modelo
Digitar Matricula
Digitar Lugar
Guardar Cliente
Digitar numero
Apaga cliente
Digitar numero
Alterar nome
5
Se 2 entao modificar marca
Digitar numero
Alterar marca
Digitar numero
Alterar matricula
Digitar numero
Alterar lugar
Listar clientes
Digitar horas
Se 1 entao 100
Se 2 entao 180
Se 3 entao 270
Se nao 80*horas
Se nao MenuGerente
Fim
6
Fluxograma
7
Código
//ficheiro cliente.java
package done;
public Cliente(String codigo,String nome, String marca, String matricula, String numero){
this.nome=nome;
this.marca=marca;
this.matricula=matricula;
this. numero=numero;
this.codigo=codigo;
public Cliente() {
this.nome=nome;
8
}
{ this.marca=marca; }
this.matricula=matricula;
this.numero=numero_lugar;
return this.nome;
{ return this.marca;
return this.matricula;
9
return this.numero;
this.codigo=this.codigo+i;
//ficheiro done.java
package done;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.nio.file.Files;
import java.util.LinkedList;
10
import java.util.StringTokenizer;
import javax.swing.JOptionPane;
static BufferedWriter b;
static BufferedReader r;
"Utilizador",
JOptionPane.YES_NO_OPTION,
JOptionPane.QUESTION_MESSAGE,
null,
options,
options[0]);
if (choice == JOptionPane.YES_OPTION)
11
{
JOptionPane.showMessageDialog(null,
else
// if(nome_cli.equals("chilton")&&senha.equals("chilton")) {
// JOptionPane.showMessageDialog(null,"Dados Incorrectos","Login",
JOptionPane.INFORMATION_MESSAGE);
//}
12
int n = JOptionPane.showOptionDialog(null,
"Menu Principal",
JOptionPane.DEFAULT_OPTION,
JOptionPane.QUESTION_MESSAGE,
null,
colours,
colours[0]);
if(colours[n]=="Adicionar"){
13
// System.out.println(cliente.getnome());
cli.addFirst(cliente);
try {
AbreEscrita("output.txt");
try {
AbreEscrita("output.txt");
EscreveObjecto(cli);
else
if (colours[n]=="Apagar"){
try {
abreFicheiro("output.txt");
try {
14
LinkedList<Cliente> a = LerCliente();
String va=pesquisa(a,apagar);
System.out.println(va);
fecha();
else
if (colours[n]=="Modificar"){
else
if (colours[n]=="Listar todos"){
try {
abreFicheiro("output.txt");
15
System.out.println(" erro na
abertura do ficheiro");
try {
String c ="Codigo-Nome-Matricula-
Marca-numero"+"\n";
LinkedList<Cliente> a = LerCliente();
for(int i=0;i<a.size();i++){
c=c+a.get(i).toname()+"\n";
JOptionPane.showMessageDialog(null,c,"Clientes Registados",
JOptionPane.INFORMATION_MESSAGE);
fecha();
System.out.println(" erro na
leitura");
16
public static void AbreEscrita(String s) throws IOException{
for(int i=0;i<l.size();i++)
{b.write(l.get(i).toString());}
b.newLine();
b.close();
try{
17
public static String lerLinha() throws IOException{return r.readLine();}
String s;
try{ do{
s=lerLinha();
if(s!=null){
String nome,marca,matricula,numero,codigo;
codigo=st.nextToken();
//e.setcodigo(cd);
18
//e.setgenero(sexo);
//e.setData_Nascimento(Data_Nascimento);
listaLida.addFirst(e);
System.out.println(listaLida.get(0).marca);
return listaLida;
for(int i=0;i<l.size();i++){
if(l.get(i).codigo==apagar )
valor=apagar; }
return valor;
19
public static void fecha(){try {
r.close();
} catch (IOException e) {
e.printStackTrace();
}}
Conclusão
Não Participei na parte prática do trabalho, como tinha me responsabilizado de fazer os outros trabalhos,
o colega Chilton Nhabanga responsabilizou-se por fazer esse trabalho.
A nota que me dou por apenas ter dado dicas de como fazer esse sistema, ter explicado a lógica do
sistema, é 11.
Quanto a nota que dou ao colega Chilton é 17 pelo excelente trabalho que fez.
20
Bibliografia
- Apontamentos e Anotações das Aulas de Programação I e II.
21