Scarica il file da qui:
http://xoomer.virgilio.it/world721/Rubrica.cpp
perche sul forum le righe con le stringhe vengono spezzate e non puoi fare copia - incolla
codice:
#include <cstdlib>
#include <iostream>
#include <cstring>
using namespace std;
typedef struct{
char nome [30];
char cognome [30];
char telefono [15];
char mail [20];
}Contatto;
typedef struct Rubrica{
Contatto *lista[100];
//numero di contatti presenti nella rubrica
int dimensione;
//numero massimo di contatti presenti nella rubrica
int dimensioneMassima;
Rubrica(){
dimensione = 0;
dimensioneMassima = 100;
}
void aggiungiContatto(){
if(dimensione == dimensioneMassima){
cout << "La rubrica contiene già " << dimensioneMassima << " contatti!";
cout << "\nElimina qlche contatto prima di inserirne uno nuovo.";
return;
}
lista[dimensione] = new Contatto();
cout << "\n\n\nInserisci il nome: ";
cin >> lista[dimensione] -> nome;
cout << "Inserisci il cognome: ";
cin >> lista[dimensione] -> cognome;
cout << "Inserisci il telefono: ";
cin >> lista[dimensione] -> telefono;
cout << "Inserisci l'indirizzo e-mail: ";
cin >> lista[dimensione] -> mail;
dimensione++;
}
void eliminaContatto(){
}
void cambiaTelefono(){
if(dimensione == 0){
cout << "\n\nNon ci sono contatti da modificare nella rubrica!\n\n";
return;
}
char nome[30];
cout << "\n\nInserisci il nome del contatto da modificare: ";
cin >> nome;
for(int i = 0; i < dimensione; i++){
if(strcmp(lista[i] -> nome, nome) == 0){
cout << "\nInserisci il nuovo numero di telefono: ";
cin >> lista[i] -> telefono;
cout << "\nContatto modificato!";
return;
}
}
}
void stampa(){
cout << "\n\n******** ___ RUBRICA (" << dimensione << " contatti) ___ ********\n";
for(int i = 0; i < dimensione; i++){
cout << " \n\n |------ Contatto " << i << " --------\n |\n";
cout << " | Nome: \t" << lista[i] -> nome << "\n";
cout << " | Cognome: \t" << lista[i] -> cognome << "\n";
cout << " | Telefono: \t" << lista[i] -> telefono << "\n";
cout << " | Mail: \t" << lista[i] -> mail << "\n";
cout << " |\n |-------------------------\n\n";
}
}
}Rubrica;
int menu(){
// cout << "\n\n\n";
cout << " _______________________________________________________\n";
cout << "| |\n";
cout << "| Menu |\n";
cout << "|_______________________________________________________|\n";
cout << "| |\n";
cout << "| Per inserire un nuovo contatto 1 |\n";
cout << "| Per cambiare il telefono di un contatto 2 |\n";
cout << "| Per eliminare un contatto 3 |\n";
cout << "| Per stampare la rubrica 4 |\n";
cout << "| Per uscire dalla rubrica 5 |\n";
cout << "|_______________________________________________________|\n";
cout << "\n Inserisci la tua scelta: ";
int scelta;
cin >> scelta;
return scelta;
}
int main(){
Rubrica rubrica;
bool continua = true;
int scelta = 5;
while(continua){
scelta = menu();
switch(scelta){
case 1: rubrica.aggiungiContatto();
break;
case 2: rubrica.cambiaTelefono();
break;
case 3: break;
case 4: rubrica.stampa();
break;
case 5: continua = false;
default:;
}
cout << "\n\n\n";
}
return 0;
}