Boa tarde pessoal. Sou novo aqui e também em programação estou apreendendo.
Pela quantidade post que encontrei aqui estou certo que aqui tem vários expert na programação e também a linguagem java. tenho esse trabalho e preciso de ajuda.
Não sei onde começar.
Pretende-se implementar um programa para manter os registos telefónicos dos
clientes de uma empresa de telecomunicações e produzir a devida faturação.
Para isso, o programa deverá manipular dois tipos essenciais de registos
(Classe): Cliente e Chamada.
1- Os registos Cliente e Chamada deverão conter a seguinte informação,
respetivamente:
Class Cliente:
nome;
nº cliente;
morada;
nº de telefone (String);
lista de chamadas.
Class Chamada:
nº de telefone destino;
tipo de chamada(F-fixo, I-internacional, T-telemóvel);
tempo, em minutos (valor real).
2- O programa deverá possibilitar as seguintes operações, através de um
menu:
inserir um novo cliente;
remover um cliente existente;
alterar os dados de um cliente;
pesquisar clientes por nº de cliente;
pesquisar clientes por qualquer termo do seu nome;
inserir uma chamada na lista de chamadas de um cliente;
imprimir os dados de um cliente;
construir e imprimir a fatura de um dado cliente, tendo em conta o seguinte preçário:
chamada telefone fixo = 2.5 dobras / min
chamada internacional = 10.4 dobras / min
chamada para telemóvel = 1.25 dobras / min
exportar a fatura de um dado cliente para um ficheiro de texto ##
Fiz desse geito não sei se poderiam me ajudar a melhorar?
Essa é a class chamada.
public class Chamada {
private String telefone;
char tipo;
double minutos;
public Chamada(String telefone ,char tipo,int minutos) {
this.telefone=telefone;
this.tipo=tipo;
this.minutos=minutos;
}
public void setTelefone(String telefone) {
telefone=telefone;
}
public String getTelefone() {
return telefone;
}
public void tipoChamada(char tipo) {
tipo=tipo;
}
public char getTipo() {
return tipo;
}
public void minutos(int minutos) {
minutos=minutos;
}
public double getMinutos() {
return minutos;
}
}
e essa é a classe cliente.
public class Cliente {
// os atributos da Class
private String nome;
private int numero;
private String morada;
private String telefone;
Chamada[] cliente;
private int registo_chamadas = 0;
public Cliente() {
}
public Cliente(String nome, int numero, String morada, String telefone) {
this.nome = nome;
this.numero = numero;
this.morada = morada;
this.telefone = telefone;
this.cliente = new Chamada[100];
}
// os Guets e sets
public String getNome() {
return nome;
}
public int getNumero() {
return numero;
}
public String getMorada() {
return morada;
}
public String getTelefone() {
return telefone;
}
public void setNome(String novo_nome) {
nome = novo_nome;
}
public void setMorada(String nova_morada) {
morada = nova_morada;
}
public void setTelefone(String novo_telefone) {
telefone = novo_telefone;
}
public void setChamada(Chamada chamada) {
cliente = new Chamada[registo_chamadas++];
}
}
E essa é a class menu.
public class Menu {
static Scanner entrada= new Scanner(System.in);
static Cliente[] guardarCliente= new Cliente[500];
static Chamada[] guardarchamada= new Chamada[500];
static int numero=0; static String nome,morada,telefone;
static int pesquisa=0;
public static void main(String[] args) {
System.out.println("Escolha uma opção");
int escolha=0;
do {
menu();
escolha=entrada.nextInt();
entrada.nextLine();
switch(escolha) {
case 1:
cadastro() ;
break;
case 2:
remover();
break;
case 3:
alterarDados();
break;
case 4:
pesquisarClientePeloNumero();
break;
case 5:
pesquisarClienteNome();
break;
case 6:
break;
case 7:
pesquisarClienteTelefone(pesquisa);
break;
case 8:
break;
case 9:
break;
}
}while(escolha!=10);
}
public static void menu() {
System.out.println(" CADASTRO DO CLIENTE");
System.out.println(" 1-Insere cliente ");
System.out.println(" 2-Apagar cliente ");
System.out.println(" 3-Editar os dados de cliente ");
System.out.println(" 4-Pesquisar cliente por numero ");
System.out.println(" 5-Pesquisar cliente por qual quer termo do seu nome");
System.out.println(" 6-Inserir uma chamada ");
System.out.println(" 7-Pesquisar cliente por telefone ");
System.out.println(" 8-Imprir fatura ");
System.out.println(" 9-Exportar a fatura de um dado cliente para um ficheiro de texto");
System.out.println(" 10-Terminar");
}
public static void cadastro() {
inserirNome();
inserirTelefone();
inserirMorada();
System.out.println("O cliente foi cadastrado com os seguintes dados");
guardarCadastro();
}
public static void inserirNome() {
int guardarNome=0;
System.out.print("Nome do clinte: ");
nome=entrada.nextLine();
guardarNome++;
}
public static void inserirTelefone() {
int gTelefone=0;
System.out.print("Numero de telefone: ");
telefone = entrada.nextLine();
while (gTelefone < telefone.length() || telefone.length() != 7) {
if (telefone.charAt(gTelefone)>='0'&&telefone.charAt(gTelefone)<='9'&&telefone.length()==15)
gTelefone++;
else if ((telefone.charAt(gTelefone)>='0'&&telefone.charAt(gTelefone) <='9')
||telefone.length()!=15) {
System.out.println("O telefone tem apenas 15 dígitos");
telefone = entrada.nextLine();
}
else {
System.out.println("O número de telefone cotem somente dígitos");
gTelefone = 0;
telefone = entrada.nextLine();
}
}
}
public static void inserirMorada() {
int guardarMorada=0;
System.out.print("Insira a morada do cliente: ");
morada=entrada.nextLine();
guardarMorada++;
}
public static void guardarCadastro() {
Cliente cliente = new Cliente(nome, numero+1, morada, telefone);
guardarCliente[numero++] = cliente;
imprimirdados(numero-1);
}
public static void imprimirdados(int pesquisa) {
System.out.println("Nome do cliente: "+guardarCliente[pesquisa].getNome());
System.out.println("Número do cliente: "+guardarCliente[pesquisa].getNumero());
System.out.println("Morada do cliente: "+guardarCliente[pesquisa].getMorada());
System.out.println("Telefone do cliente: "+guardarCliente[pesquisa].getTelefone());
}
public static void alterarDados() {
System.out.println("Qual é o número do cliente que pretendes alterar os seus dados?");
pesquisa = entrada.nextInt() -1;
System.out.println("Insira os novos dados do cliente");
entrada.nextLine();
inserirNome();
inserirTelefone();
inserirMorada();
guardarCliente[pesquisa].setNome(nome);
guardarCliente[pesquisa].setTelefone(telefone);
guardarCliente[pesquisa].setMorada(morada);
}
public static void pesquisarClientePeloNumero() {
System.out.println("Qual é o número do cliente para o pesquiusar");
pesquisa = entrada.nextInt()-1;
if(pesquisa<numero) {
System.out.println("OS dados do cliente a pesquisar");
imprimirdados(pesquisa);
}
else {
System.out.println("O cliente cujo o numero é este não existe");
}
}
public static void pesquisarClienteTelefone(int pesquisa) {
String telefo="";
System.out.println("Digite o numero do Cliete");
telefo=entrada.nextLine();
for(pesquisa=0;pesquisa<numero;pesquisa++) {
if((guardarCliente[pesquisa].getTelefone().equals(telefo)))
imprimirdados(pesquisa);
else
System.out.println("Este cliente não existe");
}
}
public static void pesquisarClienteNome() {
String nom="";
System.out.println("Digite o nome do Cliete para o pesquisar");
nom=entrada.nextLine();
for(pesquisa=0;pesquisa<numero;pesquisa++) {
if((guardarCliente[pesquisa].getNome().equals(nom)))
imprimirdados(pesquisa);
else
System.out.println("Este cliente não existe");
}
}
public static void remover() {
System.out.println("Insira o numero do cliente para remover");
pesquisa = entrada.nextInt() -1;
if(pesquisa<numero) {
Cliente cliente = new Cliente(nome, numero+1, morada, telefone);
guardarCliente[numero-1] = cliente;
System.out.println("Cliente removido");
numero--;
}
else {
System.out.println("O cliente enexiste");
}
}
public static void inserirChamada() {
}
}
Quero ajuda para poder terminar o metudo inserirChamada. que não estou a ver como estou com muito receio.