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;
}