Newsgroup: it.comp.java
Titolo: esercizio sui conti correnti

Ho da svolgere tale esercizio(calclate che sono arrivato-nelllo
studio-agli array e ai vettori per cui non posso usare soluzioni +
avanzate):
La banca talDeiTali può gestire fino a 30 clienti che abbiano aperto un
conto.
Progettare un programma che faccia la gestione dei conti correnti.
Ogni cliente ha un nome, un telefono e un saldo e puo' fare depositi e
prelievi.Fornire dei messaggi di errore per le transazioni non valide.
Fornire anche un metodo per aggiungere un tot x cento di interesse annuo a
tutti i conti correnti.
Dunque pensavo di fare qualcosa del genere(mancano unpo' di dettagli e
magari ci sono degli errori di implementazione):
una classe Cliente:
public class Cliente
{
 private int tel;
 private int saldo;
 private String nome;
	 public Cliente (int num, String stringaNome, int saldoIniziale)
	 {	tel=num;
	 	saldo = saldoIniziale;
	 	nome = stringaNome;
	 }
 
	 public void deposito (int ammontare)
	 {
	 	saldo += ammontare;
	 }
 
	 public void prelievo (int ammontare)
	 {	
	 	if(ammontare>saldo)
	 		..eventuale avviso(System.out...)
	 	else
	 		saldo -= ammontare;
	 }
	 public void aggiungiInteresse (double percentuale)
	 {	
	 		saldo = saldo*(int)percentuale;//da sistemare
	 }
 
}
e una classe Banca:
public class Banca
{
	private Cliente[] clientiBanca=new Cliente[30];
	private int count;
	private String nome;
 
 
	public void aggiungCliente(int num, String stringaNome, int saldoIniziale)
	{
		if(count>29)
			..eventuale avviso(System.out...)
		else
		{ clientiBanca[count]=newCliente(num,stringaNome,saldoIniziale);
			count++;
		}
	}
	public void deposito (int idCliente,int ammontare)
	 {
		if(clientiBanca[idCliente]!=null)
			clientiBanca[idCliente].deposito(ammontare);
		else
	 		...eventuale avviso(System.out...)
	 }
 
	 public void prelievo (int idCliente,int ammontare)
	 {	
	 	if(clientiBanca[idCliente]!=null)
	 		clientiBanca[idCliente].prelievo(ammontare);
	 	else
	 	    ..eventuale avviso(System.out...)
	 }
 
	 public void aggiungInteresse (double percent)//da sistemare
	 {	
	 	for(int k=0;k<count;k++)
	 		clientiBanca[k].aggiungiInteresse(percent);
	 }	 
}
poi dalla classe GestioneConti svolgo le varie operazioni.
Volevo qualche suggerimento(senza possibilmente massacrarmi e tenendo
conto delle mie conoscenze).
Grazie
Ciao
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

mi son dimenticato di dire che nella classe GestioneConti (dove si trova
il metodo main) istanzio un oggetto della classe Banca e applico i vari
metodi relativi appunto all'apertura dei conti di nuovi clienti, ai
depositi, all'aumento dei conti tramite interesse, ai prelievi ecc.
grazie e scusate per la lunghezza del post


Ho dato una occhiata.
Io avrei affrontato il problema in modo leggermente diverso, dando la 
responsabilità di sapere quanto denaro ha solo alla banca e non al cliente.
Ciò significa che il cliente NON ha alcuna informazione su quanto denaro ha 
depositato in banca, ma può saperlo senza problemi, chiedendoglielo (ovvero 
nella classe Cliente c'è un metodo del tipo: double richiediScontrino(Banca 
miaBanca) )
I metodi della banca vanno bene, ma dovrebbero accettare come argomenti un 
oggetto Cliente piuttosto che un numero che indica la posizione nell'array!
Ad esempio: public void prelievo (Cliente unCliente, int ammontare)
La classe che conterrà il main istanzierà un certo numero di clienti, una 
banca, e assegnerà quella banca a ogni cliente. Inoltre l'interesse deve 
essere aggiunto al conto di ogni cliente, e questo può farlo solo la banca.
So di non essere stato molto concreto, ma forse ti ho dato degli spunti...
Saluti,
Tommaso 

 Tommaso


 Inoltre l'interesse deve essere aggiunto al conto di ogni cliente, e questo
può farlo solo la banca.
Si ok puo' farlo solo la banca ma ci deve essere un metodo della classe
Cliente che va a moltiplicare il saldo per gli interessi.
A me sembrava cmq + semplice la mia soluzione anche perchè mettendomi
nell'otttica di una banca che deve gestire dei clienti(almeno cosi ho
interpretato l'esercizio) mi sembrava giusto(nel main) istanziare solo
l'oggetto banca e usare solo dei suoi metodi.
In caso tu la pensassi diversamente mi daresti qualche ragione(anche
supersintetica)
Grazie ancora


 avanzate):
Mi sembra a posto.
Ciao
-- 
chi sono e soprattutto chi non sono:
http://www.ilnomedeldominio.it
un piccolo programma per studenti universitari:
http://inutility.ilnomedeldominio.it/imsv/

 Grazie ancora
Quella che hai postato mi sembra una buona soluzione, e se pensi sia la piů 
semplice č anche la migliore ;-)
L'unica cosa che proprio non mi piace č che il cliente ha dei metodi che 
permettono di modificare il suo conto...
non sembra logicamente inaccepibile. Ad esempio potrebbe possedere una 
classe "conto" su cui fare queste operazioni, ma
forse sarebbe solo speculazione per un esercizio.
Bravo comunque !
Tommaso 

 semplice è anche la migliore ;-)
ma intendi la mia prima soluzione vero???
cmq grazie(anche a matish anche se la sua mi sembrava unpo' una presa per
il....)


 permettono di modificare il suo conto...
Scusa, ma quello non è il cliente, è un oggetto Cliente all'interno
dell'applicazione, non è la stessa cosa :) Mi pare giusto che il saldo,
essendo una cosa che riguarda il cliente sia nella classe Cliente. Non è
come dare la possibilità ad una persona fisica di modificare il proprio
conto in banca ;)
Altrimenti l'oggetto Banca dovrebbe avere 30 riferimenti ai clienti e 30
riferimenti ai loro conti... non mi pare il massimo.


 riferimenti ai loro conti... non mi pare il massimo.
Basterebbero 30 riferimenti a oggetti di classe "Conto". Tale classe 
mantiene un riferimento sia al cliente che ai suoi danari.
Il cliente chiede alla banca di depositare o prelevare, la banca manipola i 
conti, i conti si aggiornano.
Poi č vero che un cliente nel mondo reale e uno di una applicazione java non 
devono coincidere; semplicemente mi sembrava
piů comprensibile dal punto di vista dello sviluppatore.
D'altra parte sono osservazioni che si basano molto su un gusto personale 
;-)
Saluti,
Tommaso Torti