Esercizio 6 Realizzare una classe astratta per le Figure piane e due sottoclassi, la sottoclasse Quadrato e la sottoclasse Rettangolo.



Documenti analoghi
sayhello public private protected return public class Greeter { public String sayhello() { String message = Hello, World! ; return message; } }

Esempio: il conto bancario

Parola chiave extends

Esercitazioni aggiuntive Martedì Laboratorio L-12

Parcheggio.rtf 1/8 6 gennaio Prova di programmazione: parcheggio a pagamento

Tipi primitivi. Ad esempio, il codice seguente dichiara una variabile di tipo intero, le assegna il valore 5 e stampa a schermo il suo contenuto:

Esercizi Java. class somma2 { static int somma(int a,int b) {return a+b; }

Livelli di astrazione

Esercizio: la classe CashRegister

Programmazione ad Oggetti: JAVA. Esercitazione

Esercizi sulla definizione di classi (Fondamenti di Informatica 1 Walter Didimo) Soluzioni

FONDAMENTI DI INFORMATICA-JAVA ESERCIZIARIO. Ingegneria Gestionale Meccanica Meccatronica

Studente (Cognome Nome): Corso di Informatica Corso di Laurea in Ingegneria Gestionale a.a Primo scritto 11 Gennaio 2008

12 - Introduzione alla Programmazione Orientata agli Oggetti (Object Oriented Programming OOP)

13 - Gestione della Memoria nella Programmazione Orientata agli Oggetti

Algoritmi di Ricerca. Esempi di programmi Java

Corso di Laurea in Ingegneria Gestionale Esame di Informatica a.a giugno 2013

Programmazione a oggetti e JAVA. Prof. B.Buttarazzi A.A. 2011/2012

Esercizi della lezione 5 di Java

La gestione dell input/output da tastiera La gestione dell input/output da file La gestione delle eccezioni

FONDAMENTI DI INFORMATICA-JAVA ESERCIZIARIO

Studente (Cognome Nome): Corso di Informatica Corso di Laurea in Ingegneria Gestionale a.a Secondo Compitino 21 Dicembre 2006

Corso di Laurea in Ingegneria Gestionale Esame di Informatica - a.a luglio 2013

Programmazione 1 A.A. 2015/2016

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica

// inizializzazione della biblioteca con utenti, libri e prestiti // non richiesta Biblioteca.inizializza();

esercizi Esercizi / problemi

public BankAccount() { balance = 0; } public BankAccount(double initialbalance) { balance = initialbalance; }

/** * VETTORE DINAMICO elementi */ private Vector elementi; /** * METODO COSTRUTTORE */ public coda() { elementi=new Vector(); }

Decomposizione per scelta

Laboratorio di Programmazione Ottobre. Simone Zaccaria

Informatica - Laboratorio gennaio 06. Laboratorio. Esercizio 1

Classi ed Oggetti in JAVA

Corso di Laurea in Ingegneria Gestionale Esame di Informatica a.a settembre 2011

Questi lucidi provengono dal Capitolo 7 del libro. Cay S. Horstmann Concetti di informatica e fondamenti di Java quarta edizione

Linguaggi di Programmazione II Matricole con le due ultime cifre dispari

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica

3 - Variabili. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

Gestione delle Eccezioni

Università di Torino Facoltà di Scienze MFN Corso di Studi in Informatica. Programmazione I - corso B a.a prof.

3. La sintassi di Java

LAVORI ESTIVI DI INFORMATICA PER LA CLASSE IV Sez. Ainf (Prof. Tessore Luca)

Ottava Esercitazione. introduzione ai thread java mutua esclusione

Linguaggi Corso M-Z - Laurea in Ingegneria Informatica A.A Esercitazione. Programmazione Object Oriented in Java

Definizione di classi con array di oggetti

COMPITO DI LABORATORIO DI PROGRAMMAZIONE Luglio Soluzione degli Esercizi

Fondamenti di Informatica 1. Prof. B.Buttarazzi A.A. 2010/2011

Oggetti. Oggetti e classi. Utilizzo di classi. Classe

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 2

DataSet. ... public BankAccount getmaximum() { return x; }... private BankAccount maximum;... } DataSet

Esercizi classi e array

Le variabili. Olga Scotti

Esercitazione n 4. Obiettivi

Algebra di Boole: Concetti di base. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica

Java: Compilatore e Interprete

Introduzione a Classi e Oggetti

Concetto di Funzione e Procedura METODI in Java

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 2

Esercizio: gestione di un conto corrente

INFORMATICA GRAFICA - FONDAMENTI DI INFORMATICA Ing. Civile - Edile/Architettura Dott. Penzo SOLUZIONE PROVA SCRITTA DEL 16/09/2002.

Il tipo di dati char (capitolo 4)

Test di unità con JUnit4

La struttura dati ad albero binario

ELEMENTI DI PROGETTAZIONE SOFTWARE


ARRAY E STRINGHE. G. Frosini Slide 1

10 - Programmare con gli Array

Bank account. private double balance; 11/2/2011

Prova d Esame Compito A

Polinomio di secondo grado: Calcolo delle soluzioni di una equazione di secondo grado: import GraphicIO.*; public class Polinomio2 {

Proge&are le Classi Ing. Massimo Cossen.no Sistemi Informa.vi Aziendali a.a. 2008/2009

Soluzioni degli esercizi di riepilogo (Fondamenti di Informatica 1 Walter Didimo)

Inizializzazione, Assegnamento e Distruzione di Classi

Realizzazione di Phone Plan. Soluzione - SimpleTime. Realizzazione e testing! Soluzione - SimpleTime. Soluzione - SimpleTime

Concetti Base Eccezioni Eccezioni e Metodi Gerarchia di Eccezioni. Java: Eccezioni. Damiano Macedonio

costruttori e distruttori

Un oggetto per la lettura dalla tastiera

Programmazione a Oggetti Lezione 10. Ereditarieta

Java Virtual Machine

Controllo degli accessi

Java threads (2) Programmazione Concorrente

Programmazione. Cognome... Nome... Matricola... Compitino del 26 gennaio 2009

dall argomento argomento della malloc()

Esercizi di preparazione alla Seconda Parte

Corso di Fondamenti di Informatica II

La classe java.lang.object

Modulo 4: Ereditarietà, interfacce e clonazione

Main System Monitor Keyboard

Prova d Esame Compito B

ARRAY BIDIMENSIONALI float [][] mx = new float[3][4]; (float []) [] mx = new float[3][4];

Programmazione ad oggetti

Capitolo 2. Utilizzare oggetti

2. Spiegare brevemente qual è la funzione del compilatore e la sua importanza per il programmatore.

Politecnico di Milano. Ingegneria del Software a.a. 2006/07. Appello del 14 settembre 2007 Cognome Nome Matricola

Progetto Automi e Linguaggi Parser svliluppato con JLex e cup

Programmazione ad Oggetti Modulo A (Esame del 11/9/2015)

Una funzione è detta ricorsiva se chiama, direttamente o indirettamente, se stessa. In C tutte le funzioni possono essere usate ricorsivamente.

Esercitazione 6. Tutor: Ing. Diego Rughetti. Anno Accademico 2007/2008

L istruzione while. while (condition) istruzione

Corso di Informatica Corso di Laurea in Ingegneria Gestionale a.a Secondo Compitino 17 Dicembre 2005

Transcript:

Esercizio 6 Realizzare una classe astratta per le Figure piane e due sottoclassi, la sottoclasse Quadrato e la sottoclasse Rettangolo.

public abstract class FiguraPiana2{ private double base; public FiguraPiana2(double b){ base=b;} public abstract double Perimetro(); public abstract double Area(); public double getbase(){ return(base);} } Soluzione esercizio 6

Classe Quadrato che implementa Figura Piana public class Quadrato2 extends FiguraPiana2{ public Quadrato2(double b){ super(b); } public double Perimetro(){ return (super.getbase()* 4); } public double Area(){ return (Math.pow(super.getBase(),2)); } }

Classe Rettangolo che implementa Figura Piana public class Rettangolo2 extends FiguraPiana2{ private double altezza; public Rettangolo2(double b, double a){ super(b); altezza=a; } public double Perimetro(){ return (super.getbase()* 2)+(altezza * 2);} public double Area(){ return (super.getbase()* altezza);} public double getaltezza(){ return(altezza);}}

Esercizio 7: Conto Bancario Scrivere un programma che costruisca un conto bancario chiamato conto1, versi in esso $1000, prelevi da esso $500, prelevi altri $400 e infine visualizzi il saldo rimanente. Il programma deve poi creare un altro conto bancario non vuoto chiamato conto2. Su quest ultimo conto deve essere poi applicato un interesse del 10%, a seguito del quale viene stampato il saldo.

public class BankAccount { private double balance; Soluzione esercizio 7 //si costruisce un conto bancario con saldo uguale a zero public BankAccount() { balance = 0; } /* si costruisce un conto bancario con un saldo assegnato initialbalance= il saldo iniziale */ public BankAccount(double initialbalance) { balance = initialbalance; } // si versa denaro nel conto bancario, amount= l'importo da versare public void deposit(double amount) { balance = balance + amount; } //si preleva denaro dal conto bancario, amount= l'importo da prelevare public void withdraw(double amount) { balance = balance - amount; }

// s ispeziona il valore del saldo attuale del conto bancario public double getbalance() { return balance; } // si calcola un interesse sul conto, rate= il tasso d'interesse public void addinterest(double rate) { balance = balance + ((balance * rate) / 100); } public static void main(string[] args) { BankAccount conto1 = new BankAccount(); conto1.deposit(1000); conto1.withdraw(500); conto1.withdraw(400); System.out.println("Conto 1 : " +conto1.getbalance()); BankAccount conto2 = new BankAccount(1000); conto2.addinterest(10); //Interessi al 10% System.out.println("Conto 2 : " + conto2.getbalance()); }}

Esercizio 8: Conto Bancario con Password Lo scopo del programma è riadattare il programma precedente (Esempio 7), introducendo il metodo boolean controllopassword, che restituisce true se la password inserita corrisponde a quella del conto corrente cercato, e il metodo boolean controlloprelievo, che restituisce true se la somma inserita è disponibile nel conto corrente.

Soluzione esercizio 8 import java.util.scanner; public class BankWithPassword { private double balance; private int password; /*si costruisce un conto con saldo uguale a zero e password di accesso numerica, pass=password numerica di accesso al conto*/ public BankWithPassword(int pass) {balance = 0; password = pass;} /*si costruisce un conto con un saldo assegnato e password di accesso initialbalance= il saldo iniziale pass= password di accesso al conto*/ public BankWithPassword(double initialbalance, int pass) {balance = initialbalance; password = pass;} /* si versa denaro nel conto bancario, amount= l'importo da versare*/ public void deposit(double amount) { balance = balance + amount;}

/* verifica la validità della password immessa, pass= la password da verificare restituisce true se corretta, false se errata*/ public boolean controllopassword(int pass) { if (pass == password) return true; return false;} /* si preleva denaro dal conto bancario, amount= l'importo da prelevare*/ public void withdraw(double amount) { balance = balance - amount;} /* si applica un interesse sul conto, rate= il tasso d'interesse*/ public void addinterest(double rate) { balance = balance + ((balance * rate) / 100);} /* ispeziona il valore del saldo attuale del conto bancario, restituisce il saldo attuale*/ public double getbalance() { return balance; } /* restituisce la password del conto*/ public int getpassword() { return password;}

/* verifica che la somma da prelevare sia disponibile nel conto, amount = la somma da prelevare, restituisce true se disponibile, false se non disponibile*/ public boolean controlloprelievo(double amount) { if (amount <= balance) return true; return false;} public static void main(string[] args) { //si inizializza la variabile che mi servirà per inserire i dati dalla tastiera Scanner in=new Scanner(System.in); //si costruisce un primo conto con saldo iniziale pari a zero e password definita dall utente System.out.println("Inserire un numero che sarà password del conto 1"); BankWithPassword conto1 = new BankWithPassword(in.nextInt()); //stampa di verifica dei dati inseriti System.out.println("Il saldo del conto 1 è: " + conto1.getbalance() + "\nla password del conto 1 è: " + conto1.getpassword());

//si costruisce un secondo conto con saldo iniziale e password definiti dall utente System.out.println("Inserire un numero che sarà password del conto 2"); int temp = in.nextint(); System.out.println("Inserire il saldo iniziale del conto 2"); BankWithPassword conto2 = new BankWithPassword(in.nextDouble(), temp); //stampa di verifica dei dati inseriti System.out.println("Il saldo del conto 2 è: " + conto2.getbalance() + "\nla password del conto 2 è: " + conto2.getpassword()); //si preleva una somma dal conto 2 System.out.println("Prelievo dal conto 2:\nInserire la password del conto 2"); if(conto2.controllopassword(in.nextint()))//controlla la password { System.out.println("Inserire la somma da prelevare:"); double amount = in.nextdouble(); //controlla che la somma sia disponibile e in caso affermativo la preleva if (conto2.controlloprelievo(amount)) conto2.withdraw(amount); else System.out.println("Somma non disponibile nel conto"); } else System.out.println("Password errata. Impossibile effettuare il prelievo.");

\\si versa una somma sul conto 1 System.out.println("Versamento sul conto 1:\nInserire la password del conto 1"); if(conto1.controllopassword(in.nextint()))//controlla la password { System.out.println("Inserire la somma da versare:"); conto1.deposit(in.nextdouble()); } else System.out.println("Password errata. Impossibile effettuare il versamento."); //stampa un resoconto dei saldi System.out.println("Nuovi saldi:\nconto 1: " + conto1.getbalance() + "\nconto 2: " + conto2.getbalance()); //applica l interesse sui due conti e stampa i saldi aggiornati conto1.addinterest(3); conto2.addinterest(3); System.out.println("Nuovi saldi con interesse applicato del 3%:"); System.out.println("conto 1: " + conto1.getbalance() + "\nconto 2: " + conto2.getbalance()); }}