Ominide 688 punti

#include <iostream>
#include <string.h>
#include <fstream>
#include <stdlib.h>

using namespace std;

struct utenti{
char nome[21];
char telefono[11];
};

void inserimento();
void modifica();
void ricercanome();
void ricercarecord();
void visualizza();

int main(){
int scelta;
do{
system("cls");
cout<<"Esercizio Rubrica"<<endl<<endl;
cout<<"1) Inserimento"<<endl;
cout<<"2) Modifica"<<endl;
cout<<"3) Ricerca Nome"<<endl;
cout<<"4) Ricerca Record"<<endl;
cout<<"0) Esci"<<endl;
do{
cout<<endl<<"Scegli: ";
cin>>scelta;

}while(scelta < 0 || scelta > 4);
switch(scelta){
case 1:
inserimento();
break;
case 2:
modifica();
break;
case 3:
ricercanome();
break;
case 4:
ricercarecord();
break;
case 0:
cout<<"Grazie per aver utilizzato il programma.";
return 0;
break;
}
}while(scelta != 0);
return 0;
}

void inserimento(){
utenti utente;
cout<<"Fornire nome utente: ";
cin.getline(utente.nome,21);
cin.ignore();
cout<<"Fornire un numero telefonico: ";
cin.getline(utente.telefono,11);
cin.ignore();
ofstream rubrica("rubrica.dat", ios::in);
rubrica.write((char*)& utente, sizeof(utente));
rubrica.close();
system("PAUSE");
}

void ricercanome(){
utenti utente;
char nomecercato[21];
cout<<"Dammi un nome da cercare: ";
cin.getline(nomecercato, 21);
cin.ignore();
ifstream rubrica("rubrica.dat", ios::in);
rubrica.read((char*)& utente, sizeof(utente));
while(!rubrica.eof()){
if(strcmp(nomecercato, utente.nome) ==0){
cout<<utente.nome<<ends;
cout<<utente.telefono<<endl;
}
rubrica.read((char*)& utente, sizeof(utente));
}
rubrica.close();
system("PAUSE");

}

void ricercarecord(){
utenti utente;
int nrec;
cout<<"Dammi il numero di record da cercare: ";
cin>>nrec;
ifstream rubrica("rubrica.dat", ios::in);
rubrica.seekg(nrec*sizeof(utenti));
rubrica.read((char*)&utente, sizeof(utenti));
rubrica.close();
cout<<utente.nome<<ends;
cout<<utente.telefono<<endl;
system("PAUSE");
}

void modifica(){
cout<<endl<<"Modifica"<<endl<<endl;
char risp;
int n;
utenti utente;
cout<<"Dammi il numero di record: ";
cin>>n;
ifstream rubrica("rubrica.dat", ios::in);
rubrica.seekg(n*sizeof(utenti));
rubrica.read((char*) & utente , sizeof(utente));
cout<<utente.nome;
cout<<utente.telefono;
cout<<"Vuoi modificare i dati? ";
cin>>risp;
if(risp == 's' or risp == 'S'){
cout<<"Immetti i dati "<<endl;
cout<<"Dammi il nome: ";
cin>>utente.nome;
cin.ignore();
cout<<endl<<"Dammi il numero di telefono: ";
cin>>utente.telefono;
cin.ignore();
ofstream rubrica("rubrica.dat", ios::binary);
rubrica.seekp(n*sizeof(utente));
rubrica.write((char*)& utente, sizeof(utente));
rubrica.close();
system("PAUSE");
}
}

Registrati via email