Concetti Chiave
- Il programma gestisce le assenze di una classe, inserendo informazioni per ogni studente come matricola, nome e numero di assenze.
- Calcola e visualizza la media delle assenze, il numero massimo di assenze e il conteggio degli studenti con assenze superiori a un valore fornito dall'utente.
- Ordina i dati degli studenti in ordine decrescente basato sul numero di assenze per una visualizzazione più chiara.
- Utilizza funzioni specifiche per il caricamento dei dati, l'ordinamento, la ricerca e la stampa dei risultati.
- Implementa una struttura dati per memorizzare le informazioni degli studenti, inclusa la data di nascita.
Programma che gestisce il numero di asssenze in una classe
Per ogni alunno si devono inserire le seguenti informazioni: matricola, cognome, nome, data di nascita, numero di assenze.
Visualizzare: la media di tutte le assenze, il numero più alto di assenze, il numero di alunni con assenze maggiori di un numero x fornito da tastiera.
Visualizza i dati in ordine decrescente in base al numero di assenze.
#include
#include
#include
#define MAX 50
using namespace std;
struct data_di_nascita {
int giorno;
int mese;
int anno;
};
struct studente {
int matricola;
string cognome;
string nome;
data_di_nascita data;
int assenze;
int comodo;
};
int Dimensionamento();
void Caricamento(studente S[], int d);
void Scambia(studente& a, studente& b);
void Ordina(studente S[], int d);
void StampaTabella(studente S[], int d);
void Max(studente v[], int d);
void Ricerca(studente v[], int d, int p);
int main()
{
int d, x;
studente S[MAX];
d=Dimensionamento();
Caricamento(S,d);
Ordina(S,d);
Max(S,d);
cout
cin>>x;
Ricerca(S,d,x);
StampaTabella(S,d);
return 0;
}
int Dimensionamento()
{
int d;
do{
cerr
cin>>d;
} while (dMAX);
return d;
}
void Caricamento(studente S[], int d)
{
int s;
float media;
for (int i=0; i
cerr
cin>>S.cognome;
cerr
cin>>S.nome;
cerr
cin>>S.data.giorno;
cerr
cin>>S.data.mese;
cerr
cin>>S.data.anno;
cerr
cin>>S.assenze;
s=s+S.assenze;
}
media=s/d;
cout
}
void Scambia(studente&a, studente&b)
{
studente comodo;
comodo=a;
a=b;
b=comodo;
}
void Ordina(studente S[], int d)
{
for (int i=0; i
Scambia(S, S[j]);
}
}
}
void StampaTabella(studente S[], int d)
{
cout
for (int i=0; i
.cognome
.nome
.data.giorno
.data.mese
.data.anno
.assenze
}
void Max(studente v[], int d){
int max;
for(int i=0;i
max=v.assenze;
}
}
cout
}
void Ricerca(studente v[], int d, int p)
{
int cont=0;
for (int i=0; i
cont++;
}
}
cout
cout
}