Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2007
    Messaggi
    10

    Costruttore per un conto corrente

    ciao a tutti!
    Seguendo i consigli di Xinod ho rifatto di nuovo il messaggio, rispettando le regole del forum. Inoltre, Xinod mi ha fatto notare che era meglio se postavo fin dove ero riuscita ad arrivare con l'esercizio. Premetto che è uno degli esercizi che sto facendo per prepararmi al meglio per un esame che avrò prossimamente. Be', questo e l'enunciato e di seguito fin dove sono arrivata...Spero possiate aiutarmi...
    Definire in javascript in costruttore personalizzato per conti correnti bancari. Un conto corrente bancario registra le seguenti informazione relative ad ogni operazioni: data, causale, importo.
    Il costruttore deve avere le seguenti proprietà:
    - Saldo: inizializzato a un valore definito al momento dell'attivazione del conto;
    - versamenti: numero delle operazioni con importo positivo;
    - prelievi: numero delle operazioni con importo negativo.
    Il costruttore deve avere i seguenti metodi:
    - aggiungi (d,c,i): aggiunge una operazione la cui data è d, la causale è c, l'importo è i; il metodo aggiorna il saldo e il numero dei versamenti o dei prelievi.
    -stampaVersamenti (): restituisce una stringa formata dalle informazioni relative ai versamenti effettuati;
    -stampaPrelievi (): restituisce una stringa formata dalle informazioni relative ai prelievi effetuati.

    Questo è quello che ho fatto io, ma non mi funziona (certamente!)
    var ilConto = new Conto

    function Conto(s){
    this.saldo = s;
    this.prelievi="";
    this.versamenti="";

    this.aggiungi = function(d,i,c){
    this.data = new Array();
    this.importo= new Array();
    this.causale = new Array();

    this.data[this.data.length]= d;
    this.importo[this.importo.length]= i;
    this.causale[this.causale.length ] = c;
    var m = 0
    for (var i= 0; i < this.importo.length; i++)
    if (this.importo[i] > 0)
    return m += this.importo[i]
    else return m -= this.importo[i];

    }

    this.prelievi= function (){
    var m = "";
    for(var i = 0; i< this.importo.length; i++)
    if(this.importo[i] < 0)
    m+= this.importo[i] + this.data[i] + this.causale[i];
    return m };

    this.versamenti = function (){

    var v="";

    for(var i = 0; i<this.importo.length; i++) {
    if( this.importo[i] > 0)
    v+= this.importo[i] + this.causale[i] + this.data[i];

    return v;
    }
    }

    L'ho fatto così perchè è la metodologia che usa il prof...
    Grazie in anticipo
    Joy

  2. #2
    Io l'avrei fatto cosi'

    Nei commenti le mie considerazioni
    Codice PHP:
    var ilConto = new Conto(2000);

    // Un po' di dati per fare dei test
    ilConto.aggiungi(new Date(2008112), 'causale1'100);
    ilConto.aggiungi(new Date(2008113), 'causale2'200);
    ilConto.aggiungi(new Date(2008118), 'causale3', -100);
    ilConto.aggiungi(new Date(2008125), 'causale4', -120);
    ilConto.aggiungi(new Date(200822), 'causale5'300);
    ilConto.aggiungi(new Date(200824), 'causale6'400);
    ilConto.aggiungi(new Date(200825), 'causale7'123);

    // Un paio di finestre con la stampa dei dati
    alert(ilConto.stampaVersamenti());
    alert(ilConto.stampaPrelievi());
    alert("Il saldo attuale e': " ilConto.saldo); 

    function 
    Conto(s){
        
    this.saldo s;
        
    this.prelievi=0;    //Prelievi e Versamenti contengono il numero di prelievi o versamenti. Li inizializzo a 0
        
    this.versamenti=0;
        
        
    this.stampaVersamenti="";  //Inizializzo le funzioni... non e' necessario ma se il tuo prof usa cosi'...
        
    this.stampaPrelievi="";  //Inizializzo le funzioni... non e' necessario ma se il tuo prof usa cosi'...
        
        // Questi array vanno inizializzati una volta sola e non ogni volta che aggiungi un'operazione
        // Altrimenti li svuoti ogni volta.
        // Quindi tiro fuori queste istruzioni dalla funzione aggiungi()
        
    this.data = new Array();
        
    this.importo= new Array();
        
    this.causale = new Array();
            
        
    this.aggiungi = function(d,c,i){
            
    this.data.push(d);   //La funzione push server proprio ad aggiungere un elemento in fondo all'array
            
    this.causale.push(c);
            
    this.importo.push(i);
            
    this.saldo += i;  // Aggiorno il saldo aggiungendogli l'importo
            
            // Non ho capito questo ciclo for e l'ho tolto
            //var m = 0
            //for (var i= 0; i < this.importo.length; i++)
            //if (this.importo[i] > 0)
            //    return m += this.importo[i]
            //else 
            //    return m -= this.importo[i];
            
            // se l'importo e' positivo aumento i versamenti di uno
            // altrimenti aumento i prelievi
            
    if(i>=0)
                
    this.versamenti++;
            else
                
    this.prelievi++;
        }
        
        
    this.stampaPrelievi= function (){
            var 
    "";
            for(var 
    0ithis.importo.lengthi++) {
                if(
    this.importo[i] < 0)
                    
    m+= this.importo[i] + " " this.data[i] + " "  this.causale[i] +"\n";  // Aggiunti un po' di spazi e il carattere di ritorno a capo
            
    }
            return 

        
    }
        
        
    this.stampaVersamenti = function (){
            var 
    v="";
            for(var 
    0i<this.importo.lengthi++) {
                if( 
    this.importo[i] > 0)
                    
    v+= this.importo[i] + " " this.data[i] + " "  this.causale[i] +"\n";
            }
            return 
    v;
        }


  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2007
    Messaggi
    10
    Grazie, Raven!
    Scusa se non ho risposto prima ma sono presa con lo studio...provo l'opzione che mi hai postato... grazie di nuovo
    Joy

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.