🚀 Nuova versione beta disponibile! Feedback o problemi? Contattaci

Esercizi Classi C++

Codegrind Team•Jul 22 2023

Ecco degli esercizi semplici con soluzione per praticare le basi delle classi in C++.

Esercizio 1

Crea una classe Punto che rappresenti un punto nel piano cartesiano. Aggiungi i metodi per impostare le coordinate del punto e per calcolarne la distanza dall'origine.
#include <iostream>
#include <cmath>
using namespace std;

class Punto {
private:
    double x;
    double y;

public:
    void setCoordinate(double newX, double newY) {
        x = newX;
        y = newY;
    }

    double distanzaOrigine() {
        return sqrt(x*x + y*y);
    }
};

int main() {
    Punto punto;
    punto.setCoordinate(3.0, 4.0);
    cout << "Distanza dall'origine: " << punto.distanzaOrigine() << endl;

    return 0;
}

Esercizio 2

Crea una classe Rettangolo che rappresenti un rettangolo nel piano cartesiano. Aggiungi i metodi per impostare le dimensioni del rettangolo, calcolarne l'area e il perimetro.
#include <iostream>
using namespace std;

class Rettangolo {
private:
    double base;
    double altezza;

public:
    void setDimensioni(double newBase, double newAltezza) {
        base = newBase;
        altezza = newAltezza;
    }

    double calcolaArea() {
        return base * altezza;
    }

    double calcolaPerimetro() {
        return 2 * (base + altezza);
    }
};

int main() {
    Rettangolo rettangolo;
    rettangolo.setDimensioni(5.0, 3.0);
    cout << "Area del rettangolo: " << rettangolo.calcolaArea() << endl;
    cout << "Perimetro del rettangolo: " << rettangolo.calcolaPerimetro() << endl;

    return 0;
}

Esercizio 3

Crea una classe Cerchio che rappresenti un cerchio nel piano cartesiano. Aggiungi i metodi per impostare il raggio del cerchio, calcolarne l'area e la circonferenza.
#include <iostream>
#include <cmath>
using namespace std;

class Cerchio {
private:
    double raggio;

public:
    void setRaggio(double newRaggio) {
        raggio = newRaggio;
    }

    double calcolaArea() {
        return M_PI * raggio * raggio;
    }

    double calcolaCirconferenza() {
        return 2 * M_PI * raggio;
    }
};

int main() {
    Cerchio cerchio;
    cerchio.setRaggio(3.0);
    cout << "Area del cerchio: " << cerchio.calcolaArea() << endl;
    cout << "Circonferenza del cerchio: " << cerchio.calcolaCirconferenza() << endl;

    return 0;
}

Esercizio 4

Crea una classe Studente che rappresenti uno studente universitario. Aggiungi i membri necessari per memorizzare il nome dello studente, il numero di matricola e l'anno di iscrizione. Implementa i metodi per impostare e ottenere le informazioni dello studente.
#include <iostream>
#include <string>
using namespace std;

class Studente {
private:
    string nome;
    int numeroMatricola;
    int annoIscrizione;

public:
    void setNome(string newNome) {
        nome = newNome;
    }

    void setNumeroMatricola(int newNumeroMatricola) {
        numeroMatricola = newNumeroMatricola;
    }

    void setAnnoIscrizione(int newAnnoIscrizione) {
        annoIscrizione = newAnnoIscrizione;
    }

    string getNome() {
        return nome;
    }

    int getNumeroMatricola() {
        return numeroMatricola;
    }

    int getAnnoIscrizione() {
        return annoIscrizione;
    }
};

int main() {
    Studente studente;
    studente.setNome("Mario Rossi");
    studente.setNumeroMatricola(12345);
    studente.setAnnoIscrizione(2021);

    cout << "Nome dello studente: " << studente.getNome() << endl;
    cout << "Numero di matricola: " << studente.getNumeroMatricola() << endl;
    cout << "Anno di iscrizione: " << studente.getAnnoIscrizione() << endl;

    return 0;
}

Esercizio 5

Crea una classe Libro che rappresenti un libro con titolo, autore e anno di pubblicazione. Aggiungi i metodi per impostare e ottenere le informazioni del libro.
#include <iostream>
#include <string>
using namespace std;

class Libro {
private:
    string titolo;
    string autore;
    int annoPubblicazione;

public:
    void setTitolo(string newTitolo) {
        titolo = newTitolo;
    }

    void setAutore(string newAutore) {
        autore = newAutore;
    }

    void setAnnoPubblicazione(int newAnnoPubblicazione) {
        annoPubblicazione = newAnnoPubblicazione;
    }

    string getTitolo() {
        return titolo;
    }

    string getAutore() {
        return autore;
    }

    int getAnnoPubblicazione() {
        return annoPubblicazione;
    }
};

int main() {
    Libro libro;
    libro.setTitolo("Il signore degli anelli");
    libro.setAutore("J.R.R. Tolkien");
    libro.setAnnoPubblicazione(1954);

    cout << "Titolo del libro: " << libro.getTitolo() << endl;
    cout << "Autore del libro: " << libro.getAutore() << endl;
    cout << "Anno di pubblicazione: " << libro.getAnnoPubblicazione() << endl;

    return 0;
}

Esercizio 6

Crea una classe Macchina che rappresenti una macchina con marca, modello e anno di produzione. Aggiungi i metodi per impostare e ottenere le informazioni della macchina.
#include <iostream>
#include <string>
using namespace std;

class Macchina {
private:
    string marca;
    string modello;
    int annoProduzione;

public:
    void setMarca(string newMarca) {
        marca = newMarca;
    }

    void setModello(string newModello) {
        modello = newModello;
    }

    void setAnnoProduzione(int newAnnoProduzione) {
        annoProduzione = newAnnoProduzione;
    }

    string getMarca() {
        return marca;
    }

    string getModello() {
        return modello;
    }

    int getAnnoProduzione() {
        return annoProduzione;
    }
};

int main() {
    Macchina macchina;
    macchina.setMarca("Fiat");
    macchina.setModello("Panda");
    macchina.setAnnoProduzione(2010);

    cout << "Marca della macchina: " << macchina.getMarca() << endl;
    cout << "Modello della macchina: " << macchina.getModello() << endl;
    cout << "Anno di produzione: " << macchina.getAnnoProduzione() << endl;

    return 0;
}

Esercizio 7

Crea una classe Giocatore che rappresenti un giocatore di un gioco. Aggiungi i membri necessari per memorizzare il nome del giocatore, il punteggio e il livello raggiunto. Implementa i metodi per impostare e ottenere le informazioni del giocatore.
#include <iostream>
#include <string>
using namespace std;

class Giocatore {
private:
    string nome;
    int punteggio;
    int livello;

public:
    void setNome(string newNome) {
        nome = newNome;
    }

    void setPunteggio(int newPunteggio) {
        punteggio = newPunteggio;
    }

    void setLivello(int newLivello) {
        livello = newLivello;
    }

    string getNome() {
        return nome;
    }

    int getPunteggio() {
        return punteggio;
    }

    int getLivello() {
        return livello;
    }
};

int main() {
    Giocatore giocatore;
    giocatore.setNome("Mario");
    giocatore.setPunteggio(100);
    giocatore.setLivello(5);

    cout << "Nome del giocatore: " << giocatore.getNome() << endl;
    cout << "Punteggio del giocatore: " << giocatore.getPunteggio() << endl;
    cout << "Livello raggiunto: " << giocatore.getLivello() << endl;

    return 0;
}

Esercizio 8

Crea una classe Triangolo che rappresenti un triangolo nel piano cartesiano. Aggiungi i membri necessari per memorizzare le coordinate dei vertici. Implementa i metodi per impostare le coordinate e calcolare l'area del triangolo.
#include <iostream>
#include <cmath>
using namespace std;

class Triangolo {
private:
    double x1, y1;  // Coordinate del primo vertice
    double x2, y2;  // Coordinate del secondo vertice
    double x3, y3;  // Coordinate del terzo vertice

public:
    void setCoordinate(double newX1, double newY1, double newX2, double newY2, double newX3, double newY3) {
        x1 = newX1;
        y1 = newY1;
        x2 = newX2;
        y2 = newY2;
        x3 = newX3;
        y3 = newY3;
    }

    double calcolaArea() {
        return abs((x1 * (y2 - y3) + x2 * (y3 - y1) + x3 * (y1 - y2)) / 2.0);
    }
};

int main() {
    Triangolo triangolo;
    triangolo.setCoordinate(0.0, 0.0, 3.0, 0.0, 0.0, 4.0);
    cout << "Area del triangolo: " << triangolo.calcolaArea() << endl;

    return 0;
}

Esercizio 9

Crea una classe Calcolatrice che rappresenti una calcolatrice con i metodi per eseguire le operazioni di somma, sottrazione, moltiplicazione e divisione tra due numeri.
#include <iostream>
using namespace std;

class Calcolatrice {
public:
    int somma(int a, int b) {
        return a + b;
    }

    int sottrazione(int a, int b) {
        return a - b;
    }

    int moltiplicazione(int a, int b) {
        return a * b;
    }

    double divisione(int a, int b) {
        if (b != 0) {
            return static_cast<double>(a) / b;
        } else {
            cout << "Errore: divisione per zero" << endl;
            return 0;
        }
    }
};

int main() {
    Calcolatrice calcolatrice;
    int a = 10;
    int b = 5;
    cout << "Somma: " << calcolatrice.somma(a, b) << endl;
    cout << "Sottrazione: " << calcolatrice.sottrazione(a, b) << endl;
    cout << "Moltiplicazione: " << calcolatrice.moltiplicazione(a, b) << endl;
    cout << "Divisione: " << calcolatrice.divisione(a, b) << endl;

    return 0;
}

Esercizio 10

Crea una classe Orario che rappresenti un orario con le ore, i minuti e i secondi. Aggiungi i membri necessari per impostare l'orario e per visualizzarlo nel formato "HH:MM:SS".
#include <iostream>
#include <iomanip>
using namespace std;

class Orario {
private:
    int ore;
    int minuti;
    int secondi;

public:
    void setOrario(int newOre, int newMinuti, int newSecondi) {
        ore = newOre;
        minuti = newMinuti;
        secondi = newSecondi;
    }

    void visualizzaOrario() {
        cout << setfill('0') << setw(2) << ore << ":" << setw(2) << minuti << ":" << setw(2) << secondi << endl;
    }
};

int main() {
    Orario orario;
    orario.setOrario(9, 30, 45);
    orario.visualizzaOrario();

    return 0;
}