Wenas... Aca dejo un code de una MiniAgenda que estuve haciendo, guarda Un nombre y un numero que en este caso es una edad pero el cambio para que guarde un tlf es minimo... Gracias a littlehorse y Leo Gutierrez por sus consejos
:
Estare ausente un tiempo pero cuando vuelva vere las criticas y/u observaciones... Saludos....
PD: Alguien por ahi lo hizo con sobrecarga de operadores y me dijo que lo queria postear (ayer), le dije que esperara un poco hasta que yo creara el post y aca esta... Do it

Código (cpp) [Seleccionar]
#include <cstdlib>
#include <iostream>
#include <fstream>
using namespace std;
class Agenda{
char name[30];
int age;
public:
int contar();
void extraer(Agenda* Persona);
void ordenar(Agenda* Persona);
void agregaralfi(const char* nombre, int edad);
const char* getname();
int getage();
void set(char*,int);
};
int main(int argc, char *argv[])
{
int op;
do{
cout<<"1.Ingresar una persona a la agenda"<<endl;
cout<<"2.Ver todas las personas de la agenda"<<endl;
cout<<"3.Ordenar agenda"<<endl;
cout<<"4. Salir"<<endl;
cin>>op;
if (op == 1){
char aux[30];
int ageaux;
cin.ignore();
cout<<"Ingrese el nombre: ";
cin.getline(aux,30);
cout<<"Ingrese la edad: ";
cin>>ageaux;
Agenda persona;
persona.agregaralfi((const char*)aux,ageaux);
}
else if (op == 2){
Agenda *persona;
int x=persona->contar();
if (x > 0){
persona= new Agenda [x];
persona->extraer(persona);
for (int i=0;i<x;i++)
cout<<persona[i].getname()<<persona[i].getage()<<endl;
}
else if (x==0)
cout<<"No hay personas"<<endl;
else
cout<<"Error al abrir el archivo, compruebe su existencia"<<endl;
delete[] persona;
}
else if (op == 3){
Agenda *persona;
int x=persona->contar();
if (x > 0){
persona= new Agenda [x];
persona->extraer(persona);
persona->ordenar(persona);
for (int i=0;i<x;i++){
cout<<persona[i].getname()<<persona[i].getage()<<endl;
persona[i].agregaralfi(persona[i].getname(),persona[i].getage());
}
}
else if (x==0) cout<<"La agenda no tiene personas"<<endl;
else cout<<"Error al abrir el archivo, compruebe su existencia"<<endl;
}
cout<<"\n\n\n";
}while (op != 4);
cin.get();
return EXIT_SUCCESS;
}
void Agenda::extraer(Agenda* Persona){
ifstream ent("Agenda.txt");
if (!ent){
cout<<"Error al abrir el archivo, compruebe su existencia"<<endl;
return;
}
for (int i=0;i<contar();i++){
ent.getline(Persona[i].name,30,':');
ent>>Persona[i].age;
ent.ignore();
}
ent.close();
}
int Agenda::contar(){
ifstream ent("Agenda.txt");
if (!ent){
return -1;
}
int c=0;
while (ent) if (ent.get() == '\n') c++;
ent.close();
return c;
}
void Agenda::ordenar(Agenda* Persona){
int c=contar();
ofstream sal("Agenda.txt");
sal.close();
for (int i=0;i<c-1;i++)
for (int j=i+1;j<c;j++)
if (strcmp(Persona[i].getname(), Persona[j].getname()) > 0){
Agenda AUX=Persona[i];
Persona[i]=Persona[j];
Persona[j]=AUX;
}
}
void Agenda::agregaralfi(const char* nombre, int edad){
ofstream sal("Agenda.txt", ios::out | ios::app | ios::ate);
if (!sal) exit(1);
sal.setf(ios::left);
sal.width(29);
sal<<nombre<<':'<<edad<<endl;
sal.close();
}
void Agenda::set(char nombre[], int edad){
strcpy(this->name,nombre);
this->age=edad;
}
const char* Agenda::getname(){
return this->name;
}
int Agenda::getage(){
int x=this->age;
return x;
}
Estare ausente un tiempo pero cuando vuelva vere las criticas y/u observaciones... Saludos....
PD: Alguien por ahi lo hizo con sobrecarga de operadores y me dijo que lo queria postear (ayer), le dije que esperara un poco hasta que yo creara el post y aca esta... Do it
