Olá pessoal.
Não, não quero q me façam o código, pois já tenho muita coisa feita.
Simplesmente quero algumas ajudas.
Atá fiz dois códigos diferentes mas nenhum deles tá a funcionar correctamente.
Código 1:
- Código: Seleccionar todos
package fase_1;
import java.io.*;
import java.text.DecimalFormat;
public class ContaCorrente {
/**
* @param args
*/
public static void main(String[] args) throws IOException{
// TODO Auto-generated method stub
BufferedReader ler = new BufferedReader(new InputStreamReader(System.in));
// DECLARAÇÃO DE VARIAVEIS LOCAIS PARA O MENU PRINCIPAL
String ent_opc;
int opc = 0;
System.out.println("Projecto realizado por:");
System.out.println("Bruno Jesus - nº 7192");
System.out.println("Nuno Pina - nº 6673");
System.out.println("");
System.out.println("");
System.out.println("");
System.out.println(" TESOURARIA DE CONTA CORRENTE FAMILIAR");
System.out.println(" MENU PRINCIPAL");
System.out.println("");
System.out.println("1 - Entradas");
System.out.println("2 - Saídas");
System.out.println("3 - Eliminar o último movimento");
System.out.println("4 - Saldo corrente");
System.out.println("5 - Movimentos efectuados");
System.out.println("6 - Média de gastos");
System.out.println("7 - Sair");
System.out.print("Escolher o número que corresponde à opção desejada:");
ent_opc = ler.readLine();
opc = Integer.parseInt(ent_opc);
if(opc != 1 && opc != 2 && opc != 3 && opc != 4 && opc != 5 && opc != 6 && opc != 7){
System.out.println("");
System.out.println("");
System.out.println("Opcão inválida");
System.out.print("Escolher o número que corresponde à opção desejada:");
ent_opc = ler.readLine();
opc = Integer.parseInt(ent_opc);
}
switch (opc){
case 1:menu_entradas();
break;
case 2:menu_saidas();
break;
case 3:break;
case 4:menu_saldo();
break;
case 5:break;
case 6:menu_media_gastos();
break;
case 7:break;
}
}
private static int menu_entradas() throws IOException{
BufferedReader ler = new BufferedReader(new InputStreamReader(System.in));
// DECLARAÇÃO DE VARIAVEIS LOCAIS PARA O SUBMENU ENTRADAS
String ent_salario;
double salario = 0;
String ent_juro;
double juro = 0;
String ent_outros;
double outros = 0;
String ent_opc_entradas;
int opc_entradas;
String ent_total_entradas;
double total_entradas;
do{
System.out.println("");
System.out.println("");
System.out.println("");
System.out.println("");
System.out.println(" TESOURARIA DE CONTA CORRENTE FAMILIAR");
System.out.println(" MENU ENTRADAS");
System.out.println("1 - Salário");
System.out.println("2 - Juros");
System.out.println("3 - Outros");
System.out.println("4 - Voltar ao menu principal");
System.out.print("Introduza a opção desejada:");
ent_opc_entradas = ler.readLine();
opc_entradas = Integer.parseInt(ent_opc_entradas);
}while(opc_entradas < 0 || opc_entradas > 5);
switch(opc_entradas){
case 1:System.out.print("Introduza o salário a creditar:");
ent_salario = ler.readLine();
salario = Double.parseDouble(ent_salario);
break;
case 2:System.out.println("Introduza o valor do juro:");
ent_juro = ler.readLine();
juro = Double.parseDouble(ent_juro);
break;
case 3:System.out.print("Introduza outro valor a creditar:");
ent_outros = ler.readLine();
outros = Double.parseDouble(ent_outros);
break;
case 4:main(null);
break;
}
total_entradas = salario + juro + outros;
System.out.print("TOTAL DE ENTRADAS = "+total_entradas);
return 0;
}
private static int menu_saidas() throws IOException{
BufferedReader ler = new BufferedReader(new InputStreamReader(System.in));
// DECLARAÇÃO DE VARIAVEIS LOCAIS PARA O SUBMENU SAÍDAS
String ent_casa;
double casa = 0;
String ent_carro_seg;
double carro_seg = 0;
String ent_energia_tel;
double energia_tel = 0;
String ent_alimentacao;
double alimentacao = 0;
String ent_vestuario;
double vestuario = 0;
String ent_educacao;
double educacao = 0;
String ent_outros;
double outros = 0;
String ent_opc_saidas;
int opc_saidas;
String ent_total_saidas;
double total_saidas;
System.out.println("");
System.out.println("");
System.out.println("");
System.out.println("");
System.out.println(" TESOURARIA DE CONTA CORRENTE FAMILIAR");
System.out.println(" MENU SAÍDAS");
System.out.println("1 - Casa");
System.out.println("2 - Carro / Seguros");
System.out.println("3 - Energia / Telecomunicações");
System.out.println("4 - Alimentação");
System.out.println("5 - Vestuário");
System.out.println("6 - Educação");
System.out.println("7 - Outros");
System.out.println("8 - Voltar ao menu principal");
System.out.print("Introduza a opção desejada:");
ent_opc_saidas = ler.readLine();
opc_saidas = Integer.parseInt(ent_opc_saidas);
switch(opc_saidas){
case 1:System.out.print("Introduza o valor gasto na casa:");
ent_casa = ler.readLine();
casa = Double.parseDouble(ent_casa);
break;
case 2:System.out.println("Introduza o valor gasto no carro/seguro:");
ent_carro_seg = ler.readLine();
carro_seg = Double.parseDouble(ent_carro_seg);
break;
case 3:System.out.print("Introduza o valor gasto em energia/telecomunicações:");
ent_energia_tel = ler.readLine();
energia_tel = Double.parseDouble(ent_energia_tel);
break;
case 4:System.out.print("Introduza o valor gasto na alimentação:");
ent_alimentacao = ler.readLine();
alimentacao = Double.parseDouble(ent_alimentacao);
break;
case 5:System.out.print("Introduza o valor gasto em vestuário:");
ent_vestuario = ler.readLine();
vestuario = Double.parseDouble(ent_vestuario);
break;
case 6:System.out.print("Introduza o valor gasto em educação:");
ent_educacao = ler.readLine();
educacao = Double.parseDouble(ent_educacao);
break;
case 7:System.out.print("Introduza outros gastos:");
ent_outros = ler.readLine();
outros = Double.parseDouble(ent_outros);
break;
case 8:main(null);
break;
}
total_saidas = casa + carro_seg + energia_tel + alimentacao + vestuario + educacao + outros;
System.out.print("TOTAL DE SAIDAS = "+total_saidas);
return 0;
}
private static int menu_saldo() throws IOException{
BufferedReader ler = new BufferedReader(new InputStreamReader(System.in));
// DECLARAÇÃO DE VARIAVEIS LOCAIS PARA O SUBMENU SALDO
double saldo = 0;
System.out.println("Saldo da conta corrente: "+saldo+" €");
return 0;
}
private static int menu_media_gastos() throws IOException{
BufferedReader ler = new BufferedReader(new InputStreamReader(System.in));
System.out.println(" TESOURARIA DE CONTA CORRENTE FAMILIAR");
System.out.println(" MENU MÉDIA GASTOS");
System.out.println("1 - Semanais");
System.out.println("2 - Mensais");
System.out.println("3 - Voltar ao menu principal");
return 0;
}
}
Neste código os problemas são:
-> ñ consigo ir buscar ao submenu entradas os valores das variaveis para utilizar no calculo do saldo. Alem disso, tb ñ consigo fazer um controlo de erros correcto, ñ pode permitir introduzir como opção do menu nem algarismos q ñ sejam opção nem letras. Outra coisa que tb devia fazer era, se colocarmos a opção 1 no menu principal, vai pro submenu entradas e aí escolhemos salario. O programa pede qual o valor do salario a creditar mas dp devia aparecer outra vez o submenu entradas para o utilizador escolher o que quer fazer. Isso tb ñ tá a funcionar.
Código 2:
- Código: Seleccionar todos
package fase_1;
import java.io.*;
import java.text.DecimalFormat;
public class CC1 {
/**
* @param args
*/
public static void main(String[] args) throws IOException{
// TODO Auto-generated method stub
BufferedReader ler = new BufferedReader(new InputStreamReader(System.in));
// DECLARAÇÃO DE VARIAVEIS LOCAIS PARA O MENU PRINCIPAL
String ent_opc;
int opc = 0;
String ent_opc_entradas;
int opc_entradas = 0;
String ent_opc_saidas;
int opc_saidas = 0;
String ent_salario;
double salario = 0;
String ent_juro;
double juro = 0;
String ent_outros_entradas;
double outros_entradas = 0;
String ent_total_entradas;
double total_entradas = 0;
String ent_casa;
double casa = 0;
String ent_carro_seg;
double carro_seg = 0;
String ent_energia_tel;
double energia_tel = 0;
String ent_alimentacao;
double alimentacao = 0;
String ent_vestuario;
double vestuario = 0;
String ent_educacao;
double educacao = 0;
String ent_outros_saidas;
double outros_saidas = 0;
String ent_total_saidas;
double total_saidas = 0;
double saldo = 0;
System.out.println("Projecto realizado por:");
System.out.println("Bruno Jesus - nº 7192");
System.out.println("Nuno Pina - nº 6673");
System.out.println("");
System.out.println("");
System.out.println("");
System.out.println(" TESOURARIA DE CONTA CORRENTE FAMILIAR");
System.out.println(" MENU PRINCIPAL");
System.out.println("");
System.out.println("1 - Entradas");
System.out.println("2 - Saídas");
System.out.println("3 - Eliminar o último movimento");
System.out.println("4 - Saldo corrente");
System.out.println("5 - Movimentos efectuados");
System.out.println("6 - Média de gastos");
System.out.println("7 - Sair");
System.out.print("Escolher o número que corresponde à opção desejada:");
ent_opc = ler.readLine();
opc = Integer.parseInt(ent_opc);
if(opc != 1 && opc != 2 && opc != 3 && opc != 4 && opc != 5 && opc != 6 && opc != 7){
System.out.println("");
System.out.println("");
System.out.println("Opcão inválida");
System.out.print("Escolher o número que corresponde à opção desejada:");
ent_opc = ler.readLine();
opc = Integer.parseInt(ent_opc);
}
switch (opc){
case 1:System.out.println("");
System.out.println("");
System.out.println("");
System.out.println("");
System.out.println(" TESOURARIA DE CONTA CORRENTE FAMILIAR");
System.out.println(" MENU ENTRADAS");
System.out.println("1 - Salário");
System.out.println("2 - Juros");
System.out.println("3 - Outros");
System.out.println("4 - Voltar ao menu principal");
System.out.print("Introduza a opção desejada:");
ent_opc_entradas = ler.readLine();
opc_entradas = Integer.parseInt(ent_opc_entradas);
break;
case 2:System.out.println("");
System.out.println("");
System.out.println("");
System.out.println("");
System.out.println(" TESOURARIA DE CONTA CORRENTE FAMILIAR");
System.out.println(" MENU SAÍDAS");
System.out.println("1 - Casa");
System.out.println("2 - Carro / Seguros");
System.out.println("3 - Energia / Telecomunicações");
System.out.println("4 - Alimentação");
System.out.println("5 - Vestuário");
System.out.println("6 - Educação");
System.out.println("7 - Outros");
System.out.println("8 - Voltar ao menu principal");
System.out.print("Introduza a opção desejada:");
ent_opc_saidas = ler.readLine();
opc_saidas = Integer.parseInt(ent_opc_saidas);
break;
case 3:break;
case 4:saldo = total_entradas - total_saidas;
System.out.println("Saldo da conta corrente: "+saldo+" €");
break;
case 5:break;
case 6:System.out.println(" TESOURARIA DE CONTA CORRENTE FAMILIAR");
System.out.println(" MENU MÉDIA GASTOS");
System.out.println("1 - Semanais");
System.out.println("2 - Mensais");
System.out.println("3 - Voltar ao menu principal");
break;
case 7:break;
}
switch(opc_entradas){
case 1:System.out.print("Introduza o salário a creditar:");
ent_salario = ler.readLine();
salario = Double.parseDouble(ent_salario);
System.out.print("Deseja introduzir mais valores? 1(SIM) / 0(NÃO)");
break;
case 2:System.out.println("Introduza o valor do juro:");
ent_juro = ler.readLine();
juro = Double.parseDouble(ent_juro);
break;
case 3:System.out.print("Introduza outro valor a creditar:");
ent_outros_entradas = ler.readLine();
outros_entradas = Double.parseDouble(ent_outros_entradas);
break;
case 4:break;
}
total_entradas = salario + juro + outros_entradas;
switch(opc_saidas){
case 1:System.out.print("Introduza o valor gasto na casa:");
ent_casa = ler.readLine();
casa = Double.parseDouble(ent_casa);
break;
case 2:System.out.println("Introduza o valor gasto no carro/seguro:");
ent_carro_seg = ler.readLine();
carro_seg = Double.parseDouble(ent_carro_seg);
break;
case 3:System.out.print("Introduza o valor gasto em energia/telecomunicações:");
ent_energia_tel = ler.readLine();
energia_tel = Double.parseDouble(ent_energia_tel);
break;
case 4:System.out.print("Introduza o valor gasto na alimentação:");
ent_alimentacao = ler.readLine();
alimentacao = Double.parseDouble(ent_alimentacao);
break;
case 5:System.out.print("Introduza o valor gasto em vestuário:");
ent_vestuario = ler.readLine();
vestuario = Double.parseDouble(ent_vestuario);
break;
case 6:System.out.print("Introduza o valor gasto em educação:");
ent_educacao = ler.readLine();
educacao = Double.parseDouble(ent_educacao);
break;
case 7:System.out.print("Introduza outros gastos:");
ent_outros_saidas = ler.readLine();
outros_saidas = Double.parseDouble(ent_outros_saidas);
break;
case 8:break;
}
total_saidas = casa + carro_seg + energia_tel + alimentacao + vestuario + educacao + outros_saidas;
}
}
Neste os problemas são:
-> como está estruturado de forma diferente, há erros diferentes, mas o controlo de erros e o reaparecimento dos menus tb ñ funciona. Outra coisa que me tá a baralhar é como vou trabalhar com switchs encadeados... Penso q se calhar a melhor opção é, em vez de ter switch para os submenus entradas e saidas ter if...else encadeados.
Experimentem correr os dois códigos e vêem logo o que tenho de corrigir.
Abraço