#include <iostream>
#include <fstream>
using namespace std;
class persona {
public:
persona();
~persona();
friend istream &operator >> (istream &entrada, persona &obj);
friend ostream &operator << (ostream &entrada, persona &obj);
void guardar_archivo();
void leer_archivo();
friend class agenda;
private:
string nombre, email, tel;
};
persona::persona() {
nombre = "sin asignar";
email = "sin asignar";
tel = "sin asignar";
}
persona::~persona() {}
istream &operator >> (istream &entrada, persona &obj) {
cout << "Introduce nombre: "; entrada >> obj.nombre;
cout << "Introduce email: "; entrada >> obj.email;
cout << "Introduce telefono: "; entrada >> obj.tel;
return entrada;
}
ostream &operator << (ostream &entrada, persona &obj) {
entrada << "Nombre: " << obj.nombre << " e_mail: " << obj.email << " Telefono: " << obj.tel << endl;
return entrada;
}
void persona::guardar_archivo() {
ofstream archivo;
archivo.open("Agenda.DOC", ios::app); // Cambiar 'apc' por 'app'
cout << "Guardar datos" << endl;
if (archivo.fail()) {
cout << "Error de apertura" << endl;
} else {
archivo << "Nombre: " << nombre << endl;
archivo << "e_mail: " << email << endl;
archivo << "Telefono: " << tel << endl;
}
archivo.close();
}
void persona::leer_archivo() {
ifstream archivo;
string texto;
archivo.open("Agenda.DOC");
if (archivo.fail()) {
cout << "Error de lectura..." << endl;
} else {
while (!archivo.eof()) {
getline(archivo, texto);
cout << texto << endl;
}
}
archivo.close();
}
class agenda {
public:
void actualizan_nombre(string nuevo_nombre, persona &p) {
p.nombre = nuevo_nombre;
}
void actualizan_email(string nuevo_email, persona &p) {
p.email = nuevo_email;
}
void actualiza_tel(string nuevo_tel, persona &p) {
p.tel = nuevo_tel;
}
};
void clases_amigos() {
int opc;
char reps;
string nombre, mail, tel;
persona p1;
agenda a1;
cout << "Introduce datos a la agenda: " << endl;
cin >> p1;
cout << "Persona agendada: " << endl;
cout << p1;
cout << "¿Son correctos los datos? (s/n): ";
cin >> reps;
cin.ignore();
if (reps == 'N' || reps == 'n') {
cout << "1. Actualiza nombre: " << endl;
cout << "2. Actualiza email: " << endl;
cout << "3. Actualiza telefono: " << endl;
cout << "Elige una opcion: ";
cin >> opc;
cin.ignore();
switch (opc) {
case 1:
cout << "Introduce nuevo nombre: ";
getline(cin, nombre);
a1.actualizan_nombre(nombre, p1);
cout << "Nombre actualizado correctamente" << endl;
break;
case 2:
cout << "Introduce nuevo e_mail: ";
getline(cin, mail);
a1.actualizan_email(mail, p1);
cout << "Email actualizado correctamente" << endl;
break;
case 3:
cout << "Introduce telefono: ";
getline(cin, tel);
a1.actualiza_tel(tel, p1);
cout << "Telefono actualizado correctamente" << endl;
break;
default:
cout << "Opcion no valida..." << endl;
break;
}
cout << "Datos son correctos (s/n)?";
cin >> reps;
}
cout << "Persona en la Agenda" << endl;
p1.guardar_archivo();
p1.leer_archivo();
}
int main() {
clases_amigos();
return 0;
}
To embed this project on your website, copy the following code and paste it into your website's HTML: