Escolar Documentos
Profissional Documentos
Cultura Documentos
FACULDADE DE ENGENHARIA
2.º Ano
4.º Grupo
Discentes: Docentes:
Munezero, Ivan
2. Objectivos..................................................................................................................2
3. Descrição do problema...............................................................................................2
4. Algoritmo...................................................................................................................3
5. Análise do problema..................................................................................................4
6. Fluxograma................................................................................................................4
8. Código do projecto.....................................................................................................7
1.1. Introdução
No âmbito do emprego das faculdades e habilidades adquiridas na disciplina de POO I,
é desenvolvido o trabalho que aborda a realização de um Sistema de Gestao de
Impostos. Para o desenvolvimento deste foi realizada uma pesquisa com base em
entrevistas, documentos (relatórios e formulários) com abordagem do assunto em
questão.
1
2.1. Objectivos
2.1. Objectivos gerais
Desenvolver um sistema que foca a gestão dos pagamentos de impostos.
Este trabalho terá como foco principal os impostos autárquicos que são:
2
4.1. Algoritmo
1. Ler dados do contribuinte num ficheiro de texto já existente onde por sua vez o
mesmo contem todos dados dos contribuintes registados;
2. Digitar o código do contribuinte que deseja efectuar o pagamento do imposto;
3. Depois do passo anterior, verificar se o código do contribuinte existe no ficheiro
de texto dos contribuintes registados;
4. Caso não exista exibe uma mensagem com a negação da existência do
contribuinte no ficheiro e exibe também a lista de todos os contribuintes;
5. Depois do passo anterior, caso exista o código do contribuinte, por sua vez o
usuário será lhe questionado pelo programa qual imposto deseja pagar (O
contribuinte só ira pagar no máximo 3 impostos diferentes);
6. Depois do passo anterior, o usuário será questionado se o contribuinte deseja
efectuar pagamento de um imposto diferente do pagamento do imposto anterior;
7. Após o término do processo do pagamento serão exibido na tela os impostos que
o contribuinte corrente efectuou;
8. Depois do passo anterior, o programa voltara para o passo numero 2 caso não
haja um novo contribuinte para efectuar pagamento de imposto, fim de
operação.
3
5.1. Análise do problema
6.1. Fluxograma
4
5
7.1. Diagrama de classes (Sem relacionamentos entre classes)
6
8.1. Código do projecto
//Classe Contribuinte
import java.io.*;
public class Contribuinte {
private int codigo;
private String nome;
private Endereco end;
private Contacto con;
private Validacoes val;
7
}
public String toString ()
{
return codigo+";"+nome+";"+end.toString()+";"+con.toString();
}
}
//Classe Imposto
import java.io.*;
public class Imposto {
private int numero;
private String descricao;
private double valor;
private Validacoes val;
op = val.validarInt (1,6,msg);
switch (op){
case 1: {
numero = 1;
8
descricao = "Imposto Pessoal Autarquico (IPA)";
valor = 295;
break;
}
case 2: {
numero = 2;
descricao = "Imposto Autarquico de Veiculos (IAV)";
valor = 400;
break;
}
case 3: {
numero = 3;
descricao = "Taxa de Radio Difusao (TRD)";
valor = 150;
break;
}
}
}
public String getDescricao() {
return descricao;
}
public double getValor (){
return valor;
}
public String toString (){
return numero+";"+descricao+";"+valor;
}
}
//Classe Endereço
import java.io.*;
9
public class Endereco {
private String provincia, cidade, bairro;
private Validacoes val;
//Classe Contacto
import java.io.*;
public class Contacto {
10
private int telefone;
private String email;
private Validacoes val;
11
valor = v;
}
public String getNome() {
return nome;
}
public double getValor() {
return valor;
}
public String toString () {
return codigo+";"+nome+";"+desc+";"+valor;
}
}
//Classe Validacoes
import java.io.*;
import java.util.StringTokenizer;
public class Tarefas {
private int cont, contAux;
private Contribuinte c[];
private Validacoes val;
public Tarefas () {
cont = 0;
contAux = 0;
c = new Contribuinte [100];
val = new Validacoes ();
}
br.close();
try {
14
//Procurando a existencia de Contribuinte com o codigo dado
indice = verificaContribuinte (cod, c);
if (indice != -1) {
do
{
int cdg = c [indice].getCodigo();
String nom = c [indice].getNome ();
Imposto i = new Imposto ();
} else
System.out.println("O contribuinte com codigo "+cod+" nao esta registado!");
ob.close();
} catch (IOException io) {
System.out.println(io.getMessage());
}
}
try {
//Bloco de Instrucoes para exibicao dos Contribuintes
if (op == 1) {
fich = "Contribuinte.txt";
String linha = "";
linha = br.readLine();
while (linha != null) {
16
String nome = tk.nextToken();
linha = br.readLine();
contAux++;
}
br.close();
}
//Bloco de Instrucoes para Exibicao de Pagamentos de Impostos Realizados
if (op == 2) {
fich = "Imposto.dat";
PagImposto pg [] = new PagImposto [100];
17
String msg = "";
pg = (PagImposto []) os.readObject();
fich = "Imposto.dat";
PagImposto pg [] = new PagImposto [100];
//Classe Menu
public class Menu {
private Tarefas t;
private Validacoes val;
public Menu () {
t = new Tarefas ();
val = new Validacoes ();
seleciona ();
}
//Metodo para Selecao das Operacoes
public void seleciona () {
int op;
do
19
{
op = val.validarInt (1,4,"\nQue Operacao deseja realizar: \n\t1 - Ler Dados dos
Contribuintes Registados\n\t2 - Pagar Impostos"
+ " \n\t3 - Visualizar\n\t4 - Sair");
switch (op) {
case 1: { registar (); break; }
case 2: { pagar (); break; }
case 3: { visualizar (); break; }
case 4: { System.out.println(); break; }
}
}
while (op != 4);
}
//Metodo para registar Clientes (Dados do Ficheiro)
public void registar () {
t.LerContribuinte();
}
//Classe Executavel
import java.io.*;
20
public class Executavel {
public static void main(String[] args) throws IOException
{
//Chamada do Menu
Menu m = new Menu ();
}
}
21