Soy noob en esto de la programacion, y se que muchos estareis ocupados.. pero si alguien tuviese algo de tiempo para ayudarme.. se lo agradeceria en el alma..
Bueno, he estado intentando hacer un codigo de una agenda electronica, y al compilarlo (con Dev-c++) me da errores en varias lineas..
me gustaria que intentarais compilarlo, y me corrigierais si esta mal.. y a poder ser, si ya me dijerais porque esta mal, aprenderia mucho mas..
Gracias de antemano, y alla va el codigo (Puede que este mal estructurado y demas.. pero es que como ya he dicho.. voy a base de tutoriales.. y pff..)
#include <cstdlib>
#include <iostream>
#include <fstream>
using namespace std;
class Agenda{
char nombre[15];
char apellido[30];
char direccion[30];
char poblacion[20];
char provincia[20];
int postal;
int telefono;
int agenda[50];
public:
int contar();
void extraer(Agenda* Persona);
void ordenar(Agenda* Persona);
void agregaralfi(const char* nombre,const char* apellido,const char* direccion,const char* poblacion,const char* provincia,int postal, int telefono);
const char* getnom();
const char* getapell();
const char* getdirec();
const char* getpob();
const char* getpro();
int getpos();
int gettel();
void set(char*,char*,char*,char*,char*,int,int);
};
int main(int argc, char *argv[])
{
int op;
do{
cout<<"1.Agregar contacto"<<endl;
cout<<"2.Buscar contacto"<<endl;
cout<<"3.Modificar contacto"<<endl;
cout<<"4.Eliminar contacto"<<endl;
cout<<"5.Impresion de la agenda"<<endl;
cout<<"6. Salir"<<endl;
cin>>op;
if (op == 1)//Agregar contacto
{
char nombre[15];
char apellido[30];
char direccion[30];
char poblacion[20];
char provincia[20];
int postal;
int telefono;
cin.ignore();
cout<<"Ingrese el nombre: ";
cin.getline(nombre,15);
cout<<endl<<"Ingrese el apellido: ";
cin.getline(apellido,30);
cout<<endl<<"Ingrese la direccion: ";
cin.getline(direccion,30);
cout<<endl<<"Ingrese la poblacion: ";
cin.getline(poblacion,20);
cout<<endl<<"Ingrese la provincia: ";
cin.getline(provincia,20);
cout<<endl<<"Ingrese el codigo postal: ";
cin>>postal;
cout<<endl<<"Ingrese el telefono: ";
cin>>telefono;
Agenda persona;
persona.agregaralfi((const char*)nombre, apellido, direccion, poblacion, provincia, postal, telefono);
}
else if (op == 2)//Buscar contacto
{
char nombre[15];
char apellido[30];
char direccion[30];
char poblacion[20];
char provincia[20];
int postal;
int telefono;
int agenda[50];
int numper = 0;
int i, j;//variables de control
int encontrado=0;
cout<<"Introduzca el apellido de la persona que desea buscar."<<endl;
cin.getline(apellido,30);
for(i=0;i<numper;i++){
if(apellido){
cout<<"Número de Registro: "<<i+1<<endl;
cout<<"Nombre ==>:"<<nombre<<agenda<<endl;
cout<<"Apellidos ==>:"<<apellido<<agenda<<endl;
cout<<"Direccion ==>:"<<direccion<<agenda<<endl;
cout<<"Poblacion ==>:"<<poblacion<<agenda<<endl;
cout<<"Provincia ==>:"<<provincia<<agenda<<endl;
cout<<"Codigo Postal ==>:"<<postal<<agenda<<endl;
cout<<"Télefono ==>:"<<telefono<<agenda<<endl;
j=1;
system("pause");
system("cls");
}
}
if(j!=1){
cout<<"No exíste esa persona en la lista de contactos..."<<endl;
system("pause");
system("cls");
}
else if (op == 3)//Modificar contacto
{
int i, j;
int encontrado=0;
for (i=0;i<numper;i++){
if (apellido){
encontrado=1;
j=i;
}
}
if (encontrado==1){
cout<<"Número de Registro: "<<i+1<<endl;
cout<<"Nombre ==>:"<<nombre<<agenda<<endl;
cout<<"Apellidos ==>:"<<apellido<<agenda<<endl;
cout<<"Direccion ==>:"<<direccion<<agenda<<endl;
cout<<"Poblacion ==>:"<<poblacion<<agenda<<endl;
cout<<"Provincia ==>:"<<provincia<<agenda<<endl;
cout<<"Codigo Postal ==>:"<<postal<<agenda<<endl;
cout<<"Télefono ==>:"<<telefono<<agenda<<endl<<endl;
int opc1;
cout<<"Que desea modificar de la persona \n";
cout<<"1.Nombre \n";
cout<<"2.Apellido \n";
cout<<"3.Dirección \n";
cout<<"4.Poblacion \n";
cout<<"5.Provincia \n";
cout<<"6.Codigo Postal \n";
cout<<"7.Telefono \n";
cout<<"Que opcion desea \n";
cin>>opc1;
system("CLS");
switch(opc1){
case 1:
cout<<"Nombre"<<endl;
cin.getline(nombre, 15)>>agenda[numper];
case 2:
cout<<"Apellidos"<<endl;
cin.getline(apellido, 30)>>agenda[numper];
case 3:
cout<<"Direccion"<<endl;
cin.getline(direccion,30)>>agenda[numper];
case 4:
cout<<"Poblacion"<<endl;
cin.getline(poblacion,20)>>agenda[numper];
case 5:
cout<<"Provincia"<<endl;
cin.getline(provincia,20)>>agenda[numper];
case 6:
cout<<"Codigo Postal"<<endl;
cin>>postal>>agenda[numper];
case 7:
cout<<"Numero de telefono"<<endl;
cin>>telefono>>agenda[numper];
}
else if (op == 4) //Eliminar contacto
{
int i, r, k;//variables de control
char apell;
do{
cout<<"Teclee el apellido de la persona que va a eliminar"<<endl;
cin>>apellido;
for(i=0; i<numper; i++){
if(apellido){
cout<<"Número de Registro: "<<i+1<<endl;
cout<<"Nombre ==>:"<<nombre<<agenda<<endl;
cout<<"Apellidos ==>:"<<apellido<<agenda<<endl;
cout<<"Direccion ==>:"<<direccion<<agenda<<endl;
cout<<"Poblacion ==>:"<<poblacion<<agenda<<endl;
cout<<"Provincia ==>:"<<provincia<<agenda<<endl;
cout<<"Codigo Postal ==>:"<<postal<<agenda<<endl;
cout<<"Prefijo Telefono ==>:"<<prefijo<<agenda;
cout<<"-"<<telefono<<agenda<<endl;
i=apeli;
do{
cout<<"esta seguro que desea eliminar el contaco?"<<endl;
cout<<"1:si \n2:no"<<endl;
cin>>r;
if(r<1 || r>2){
cout<<"error intente de nuevo";
system("pause");
system("cls");
}
else {
apellido;
}
}while(r<1 || r>2);
system("cls");
break;
}else {cout<<"el contacto no existe o por lo menos no con ese numero\n desea intentar de nuevo?"<<endl;
cout<<"1:si \n2:no \n";
cin>>k;
system("cls");
}
}
}while(k==1);
}
else if (op == 5)//Imprimir
{
Agenda *persona;
int x=persona->contar();
if (x > 0){
persona= new Agenda
- ;
for (int i=0;i<x;i++)
cout<<persona.getnom()<<endl<<persona.getapell()<<endl<<persona.gettel()<<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 == 6){
cout<<"Byee!"<<endl;
}
cout<<"\n\n\n";
}while (op != 6);
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.nombre,15,':');
ent.getline(Persona.apellido,30,':');
ent.getline(Persona.direccion,30,':');
ent.getline(Persona.poblacion,20,':');
ent.getline(Persona.provincia,20,':');
ent>>Persona.postal;
ent>>Persona.telefono;
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.getnom(), Persona[j].getnom()) > 0){
Agenda AUX=Persona;
Persona=Persona[j];
Persona[j]=AUX;
}
}
void Agenda::agregaralfi(const char* nom,const char* apel,const char* direc,const char* pob,const char* pro,int pos, int tel){
ofstream sal("Agenda.txt", ios::out | ios::app | ios::ate);
if (!sal) exit(1);
sal.setf(ios::left);
sal.width(29);
sal<<nombre<<':'<<tel<<endl;
sal.close();
}
void Agenda::set(char nom[], char apell[], char direc[], char pob[], char pro[], int tel, int pos){
strcpy(this->nombre,nom);
strcpy(this->apellido,apell);
strcpy(this->direccion,direc);
strcpy(this->poblacion, pob);
strcpy(this->provincia, pro);
strcpy(this->nombre,nom);
this->telefono=tel;
this->postal=pos;
}
const char* Agenda::getnom(){
return this->nombre;
}
const char* Agenda::getapell(){
return this->apellido;
}
const char* Agenda::getdirec(){
return this->direccion;
}
const char* Agenda::getpob(){
return this->poblacion;
}
const char* Agenda::getpro(){
return this->provincia;
}
int Agenda::getpos(){
int y=this->postal;
return y;
}
int Agenda::gettel(){
int x=this->telefono;
return x;
}
Gracias por la comprension y la ayuda!