Concetti Chiave

  • Il programma gestisce una rubrica telefonica, consentendo inserimento, modifica e ricerca di contatti.
  • La funzione `inserimento()` permette di aggiungere nuovi contatti richiedendo nome e numero di telefono.
  • È possibile cercare contatti tramite nome con la funzione `ricercanome()`, che confronta i dati inseriti dall'utente.
  • La funzione `ricercarecord()` consente di trovare un contatto specifico utilizzando il numero di record nel file.
  • La funzione `modifica()` permette di aggiornare i dati di un contatto esistente, previa conferma dell'utente.

#include

#include

#include

#include

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");

coutEsercizio Rubrica"

cout

cout

cout

cout

cout

do{

cout

cin>>scelta;

}while(scelta 4);

switch(scelta){

case 1:

inserimento();

break;

case 2:

modifica();

break;

case 3:

ricercanome();

break;

case 4:

ricercarecord();

break;

case 0:

cout

return 0;

break;

}

}while(scelta != 0);

return 0;

}

void inserimento(){

utenti utente;

cout

cin.getline(utente.nome,21);

cin.ignore();

cout

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

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

cout

}

rubrica.read((char*)& utente, sizeof(utente));

}

rubrica.close();

system("PAUSE");

}

void ricercarecord(){

utenti utente;

int nrec;

cout

cin>>nrec;

ifstream rubrica("rubrica.dat", ios::in);

rubrica.seekg(nrec*sizeof(utenti));

rubrica.read((char*)&utente, sizeof(utenti));

rubrica.close();

cout

cout

system("PAUSE");

}

void modifica(){

cout

char risp;

int n;

utenti utente;

cout

cin>>n;

ifstream rubrica("rubrica.dat", ios::in);

rubrica.seekg(n*sizeof(utenti));

rubrica.read((char*) & utente , sizeof(utente));

cout

cout

cout

cin>>risp;

if(risp == 's' or risp == 'S'){

cout

cout

cin>>utente.nome;

cin.ignore();

cout

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");

}

}

Domande da interrogazione

  1. Qual è la funzione principale del programma descritto nel codice?
  2. Il programma è progettato per gestire una rubrica telefonica, consentendo l'inserimento, la modifica e la ricerca di contatti tramite nome o numero di record.

  3. Come viene gestito l'inserimento di nuovi contatti nella rubrica?
  4. L'inserimento di nuovi contatti avviene tramite la funzione `inserimento()`, che richiede all'utente di inserire il nome e il numero di telefono, salvandoli poi in un file binario chiamato "rubrica.dat".

  5. In che modo il programma permette di modificare un contatto esistente?
  6. La modifica di un contatto esistente è gestita dalla funzione `modifica()`, che consente di cercare un contatto tramite il numero di record, visualizzarlo e, se confermato dall'utente, modificarne i dati salvati nel file.

Domande e risposte

Hai bisogno di aiuto?
Chiedi alla community