feature image - https://source.unsplash.com/random/900×600/?background&sig=3fcad911-5c40-4d25-b0b0-c0adc747e368

7 Esercizi sulle struct - C++

Ecco un elenco di esercizi sulle strutture con l’utilizzo delle struct, dedicato per chi sta studiando C++ e vuole iniziare ad affrontare problemi piú complessi di quelli che si trovano spesso online (che sono quasi sempre copia di esercizi di altri siti).

1 - ⭐⭐⭐ Conto Corrente con gestione movimenti

Implementare un programma C++ che consenta di gestire un conto corrente, costituito dall’insieme dei suoi movimenti di spesa e dall’insieme dei suoi movimenti di entrata. Ogni movimento di spesa è una struct con le seguenti caratteristiche: data, descrizione, importo e tipo. Ogni movimento di entrata è una struct con le seguenti caratteristiche: data, descrizione, importo e tipo.

Il campo data é un intero che parte da zero e rappresenta i giorni a partire dalla partenza delle registrazioni dei movimenti. Il campo descrizione é una stringa che contiene la descrizione del movimento. Il campo importo é un numero reale che rappresenta l’importo del movimento. Il campo tipo é una stringa che contiene il tipo del movimento ( ‘D’ per dare, ‘A’ per avere ).

  • Gestire l’aggiunta di movimenti di spesa e di entrata.
  • Gestire la stampa del saldo del conto corrente.
  • Gestire la stampa di un report del totale delle spese e delle entrate raggruppato per mese.

2 - ⭐⭐ Gestione di una lista di cose da fare (la mitica todo list)

Scrivere un programma C++ che consenta di gestire una lista di cose da fare, utilizzando le struct struct cosa_da_fare e struct lista_di_cose_da_fare. La struct cosa_da_fare contiene una stringa descrizione e un bool fatto. La struct lista_di_cose_da_fare contiene una lista di struct cosa_da_fare e un intero numero_di_cose.

  • Stampare a video l’elenco delle cose da fare.
  • Inserire un nuovo elemento nella lista.
  • Segnare una cosa come fatta.
  • Eliminare una cosa.

3 - ⭐⭐ Generazione di dati di sensori

Creare un programma che possa generare un insieme di sensori. Ogni sensore sará rappresentato da una struttura e tutti i sensori saranno memorizzati in una lista. Ogni sensore avrá un nome, una descrizione e una lista di valori float che saranno le misurazioni fatte. Il programma deve essere capace di:

  • Creare un nuovo sensore e aggiungerlo alla lista.
  • Stampare a video la lista dei sensori.
  • Stampare a video, per ogni sensore, la lista degli ultimi 10 valori registrati.
  • Aggiungere un nuovo valore in modo casuale alla lista di uno dei sensori.
  • Mostrare a video per un sensore selezionato, la media delle misurazioni fatte, la misurazione minima e la misurazione massima.

4 - ⭐⭐⭐ Gestione di una collezione di libri

Creare un programma C++ che gestisca una collezione di libri. Per ogni libro sará una struct con le seguenti caratteristiche: titolo, autore, anno, editore e prezzo. La collezione sará gestita da una struct lista_di_libri che contiene una lista di struct libro e un intero numero_di_libri.

Il programma deve essere capace di:

  • Aggiungere un libro alla collezione.
  • Mostrare il numero di libri nella collezione
  • Stampare l’elenco dei libri
  • Stampare l’elenco dei libri raggruppati per autore
  • Stampare i libri che contengono nel titolo una stringa

5 - ⭐⭐ Gestione di un mazzo di carte

Si crei un programma che gestisca un mazzo di carte utilizzando le struct struct carta e struct mazzo_di_carte. La struct carta contiene un valore e un seme. La struct mazzo_di_carte contiene una lista di struct carta e un intero numero_di_carte. Il programma deve essere capace di:

  • Creare un nuovo mazzo di carte e mescolarlo.
  • Estrarre una carta dal mazzo.
  • Mostrare N carte estratte dal mazzo.

6 - ⭐⭐⭐ Gestione di un registro elettronico

Creare un programma che consenta di gestire il registro elettronico per una classe. Per ogni studente sará una struct con le seguenti caratteristiche: nome, cognome, lezioni, email. La struct registro_elettronico contiene una lista di struct studente e un intero numero_di_studenti. lezioni é l’elenco delle lezioni che per il corso in oggetto é di 10 lezioni. Per ogni lezione si registri se lo studente era assente o presente nel modo che si ritiene piú opportuno. Il programma deve essere capace di:

  • aggiungere uno studente alla classe
  • aggiungere assenze e presenze per uno studente
  • mostrare per ogni lezione chi era presente e chi era assente.
  • mostrare la lista dei studenti che hanno fatto una determinata lezione.

7 - ⭐⭐⭐ Gestione percorso per una gita

Creare una applicazione C++ che consenta di salvare le tappe di una gita. Per ogni tappa si potrá aggiungere una lista di luoghi di interesse per quella localitá e una lista di note. La struct tappa contiene una stringa nome_tappa e una lista di struct luoghi_di_interesse e una lista di struct note. La struct gita contiene una lista di struct tappa e un intero numero_di_tappe.

  • Aggiungere una nuova tappa.
  • Stampare a video la lista delle tappe.
  • Stampare a video la lista dei luoghi di interesse per una determinata tappa.

Andrea Pollini

Matematico, informatico.