Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <string>
- using namespace std;
- /*
- Siamo forniti i nomi e i voti riportati da una serie di studenti in un compito in classe.
- Un voto fittizio pari a 0 significa che lo studente era assente. Scrivere un programma che presi in input i nomi e i voti, stampi:
- 1) la media dei voti non prendendo in considerazione le assenze
- 2) il nome dello studente che ha riportato il voto massimo
- 3) l'elenco degli studenti insufficienti (voto <6)
- 4) la percentuale di studenti assenti
- */
- struct Studente {
- string nome;
- string cognome;
- float voto;
- };
- Studente Classe[40];
- void riempimento(int nStud);
- float media(int nStud);
- string stud_max(int nStud);
- void stud_insuff(int nStud);
- float stud_ass(int nStud);
- int main() {
- int nStud = 0;
- cout << "Inserisci il numero di studenti presenti in classe: ";
- cin >> nStud;
- cout << "\n---------- riempimento ----------\n";
- riempimento(nStud);
- system("cls");
- cout << "\n---------- media ----------\n";
- cout << endl << media(nStud);
- cout << "\n---------- studente col voto maggiore ----------\n";
- cout << endl << stud_max(nStud);
- cout << "\n---------- studenti insufficenti ----------\n";
- stud_insuff(nStud);
- cout << "\n---------- % studenti assenti ----------\n";
- cout << stud_ass(nStud) << "%";
- }
- void riempimento(int nStud) {
- for (int i = 0; i < nStud;i ++)
- {
- cout << "Inserisci il nome ed il congome dello studente: ";
- cin >> Classe[i].nome >> Classe[i].cognome;
- cout << "\nInserisci il voto dello studente " << Classe[i].cognome << ": ";
- cin >> Classe[i].voto;
- }
- }
- float media(int nStud) {
- float sum = 0;
- int j = 0;
- for (int i = 0; i < nStud;i++) {
- if(Classe[i].voto != 0)
- sum += Classe[i].voto;
- else
- j++;
- }
- return (sum / (nStud - j));
- }
- string stud_max(int nStud) {
- float max = Classe[0].voto;
- int stud = 0;
- for (int i = 0; i < nStud; i++) {
- if(Classe[i].voto > max) {
- max = Classe[i].voto;
- stud = i;
- }
- }
- return Classe[stud].cognome;
- }
- void stud_insuff(int nStud) {
- string insuff[nStud];
- int j = 0;
- for(int i = 0; i < nStud; i++) {
- if(Classe[i].voto < 6 and Classe[i].voto != 0) {
- insuff[j] = Classe[i].cognome;
- j++;
- }
- }
- for(int i = 0; i < j;i++)
- cout << i + 1 << ") " << insuff[i] << endl;
- }
- float stud_ass(int nStud) {
- int ass = 0;
- for(int i = 0; i < nStud;i++) {
- if (Classe[i].voto == 0)
- ass += 1;
- }
- return ((ass * 100) / nStud);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement