Cerca

Liste semplici di vettori - C++

Questo programma serve per salvare il nome e il voto preso dagli studenti. Con questo metodo non bisogna dichiarare prima quanti studenti si vuole inserire ma viene allocata dinamicamente memoria al bisogno. La funzione inserisci in testa inserisce in cima alla lista l'elemento inserito mentre inserisci in coda lo aggiunge in fondo alla lista.
#include<iostream>
#include<fstream>

using namespace std;

struct studente {
	char nome[15];
	int voto;
	studente* succ;
};

typedef studente* lista;

lista ins_testa(lista p0)
{
	lista p, q;
	p = new studente;
	cin >> p->nome >> p->voto;
	if ( p0 == 0) {p->succ = p0; p0= p;}
	else 
	{q = p0;
	p0 = p;
	p->succ = q;}
	return p0;
}
lista ins_coda(lista p0)
{lista p, q;
for ( q=p0; q!=0 ; q= q->succ) p = q;
q = new studente;
cin >> q->nome >> q->voto;
q->succ = 0;
if (p0 == 0) p0 = q;
else p->succ = q;

			
	return p0;

}
void stampa_lista(lista p0)
{ if (p0 == 0) cout<<"La lista รจ vuota.\n"; 
  else { 
  lista p=p0;
  while(p != 0)
  { cout << p->nome <<"  " <<p->voto <<"\n";
  p = p->succ;
}
}
}
 
 bool salvalista(lista p0)
{
	if (p0 == 0) cout<<"--Devi creare la lista prima di salvarla!--\n";
	else {
		lista p = p0;
		fstream salva;
	salva.open("dati.txt" , ios::out);
	while(p !=0)
	{ salva << p->nome <<","<< p->voto << "\n";
		p = p->succ;
}
salva.close();
}
return true;
} 



int main()
{ lista esame = 0;
int h;
	while(1)
	{
		cout<<"1)inserisci in testa\n";
		cout<<"2)inserisci in coda\n";
	cout<<"3)stampa lista\n";
	cout<<"4)salva la lista nel file -dati.txt-\n";
	cout<<"qualsiasi tasto per uscire\n";
	cin >> h;
	 switch(h)
	 {
	case 1 :esame =ins_testa(esame);break;
	case 2 : esame =ins_coda(esame); break;
	case 3 : stampa_lista(esame);break;
	case 4 : salvalista(esame);break;
	default : return 0;
	}
}
	return 0;
}

Background Image

Header Color

:

Content Color

: