Visual Basic - agenda electronica

Life is soft - evento anual de software empresarial
 
Vista:

agenda electronica

Publicado por sergio enrque (2 intervenciones) el 11/09/2008 20:24:28
ayudenme a ver cuales son mis errores de este programa y modificarlo gracias


#include <iostream.h>
#include <string.h>
#include <ctype.h>
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <dos.h>

// Prototipos de funciones
void menu(void);
void cuadro(char,char,char,char,char,char,char);
void agregar(void);
void cambiar(void);
void mostrar(void);
void borrar(void);

// Clase persona
class persona {
public:
persona(); // constructor
void modificar(void);
void listar(void);
private:
char nombre[32];
char domicilio[30];
char telefono[15];
float sueldo;
int id;
};

// variables globales
persona *p[10]; //arreglo que contiene direcciones de
// objetos
int total ;
char opta;

// implementacion del constructor
persona::persona() {
cout << "Nombre : " ; cin.getline(nombre, sizeof(nombre)) ;
cout << "Domicilio : "; cin.getline(domicilio,
sizeof(domicilio)) ;
cout << "Telefono : "; cin.getline(telefono,
sizeof(telefono));
cout << "Sueldo : "; cin >> sueldo;
cout << "ID : "; cin >> id; cin.get();
cout << "-----------------------------------" << endl;
};

// implementacion del metodo modificar
void persona::modificar(void)
{ char opcion;
cout<< "Deseas cambiar el domicilio (S/N) : " ;
do { opcion = cin.get();
opcion = toupper(opcion);
} while ((opcion !='S') && (opcion !='N')) ;
if (opcion == 'S') { cout << "Domicilio : " ; cin.get();
cin.getline(domicilio,sizeof(domicilio));}
cout<< "Deseas cambiar el telefono (S/N) : " ;
do { cin.get(opcion); // otra forma de usar get()
opcion = toupper(opcion);
} while ((opcion !='S') && (opcion !='N')) ;
if (opcion == 'S') { cout << "Telefono : "; cin.get();
cin.getline(telefono, sizeof(telefono));}
cout<< "Deseas cambiar el sueldo (S/N) : " ;
do { cin.get(opcion);
opcion = toupper(opcion);
} while ((opcion !='S') && (opcion !='N'));
if (opcion == 'S') { cout << "Sueldo : ";
cin >> sueldo; cin.get();}
};

// implementacion del metodo listar
void persona::listar(void)
{ cout << "**************************" << endl;
cout << "Nombre : " << nombre << endl;
cout << "Domicilio : " << domicilio << endl;
cout << "Telefono : " << telefono << endl;
cout << "Sueldo : " << sueldo << endl;
cout << "ID : " << id << endl;
};

// implementacion de la funcion menu
void menu()
{
textcolor(7);
clrscr();
cuadro('s','s',1,1,78,20,3);
cuadro('d','s',32,4,17,12,4);
gotoxy(38,5); textcolor(2); cprintf("Menu");
gotoxy(34,7); textcolor(3); cprintf("1.- Agregar");
gotoxy(34,8); textcolor(3); cprintf("2.- Modificar");
gotoxy(34,9); textcolor(3); cprintf("3.- Borrar");
gotoxy(34,10); textcolor(3); cprintf("4.- Listar");
gotoxy(34,11); textcolor(3); cprintf("5.- Terminar");
gotoxy(36,14); textcolor(2); cprintf("Opcion > ");
do
opta=getch();
while ((opta < '1') || (opta > '5'));
switch (opta) {
case '1': agregar() ;break;
case '2': cambiar();break;
case '3': borrar();break;
case '4': mostrar();break;
case '5': exit (1);break;
}
}

// implementacion de la funcion agregar
// manda llamar al constructor
void agregar(void)
{ if (total==10) { gotoxy(2,23);
cout << "No hay espacio disponible" << endl;
delay(1000);}
else { clrscr();
p[total] = new persona; // aqui se crea un objeto
total++;
}
}

// implementacion de la funcion cambiar
// manda llamar el metodo modificar
void cambiar(void)
{ int cual; char opcion;
if (total==0) { gotoxy(2,23);
cout << "No hay registros" << endl;
delay(2000);}
else { clrscr();
cout << "Hay "<< total << " Registros, Cual deseas modificar? ";
cin >> cual; cin.get();
p[cual-1]->listar();
cout<< " Deseas cambiar el registro (S/N)?: " ;
do { opcion = cin.get(); cin.get();
opcion = toupper(opcion);}
while ((opcion !='S') && (opcion !='N')) ;
if (opcion == 'S') p[cual-1]->modificar();
}
}

// implementacion de la funcion borrar
// destruye el objeto mediante delete
void borrar(void)
{ int cual;
if (total==0) { gotoxy(2,23);
cout << "No hay registros" << endl;
delay(2000);}
else { clrscr();
cout << "Hay "<< total << " Registros, Cual deseas borrar? ";
cin >> cual; cin.get();
delete p[cual-1];
p[cual-1] = p[total-1];
total--;
}
}

// implementacion de la funcion mostrar
// manda llamar el metodo listar
void mostrar(void)
{ int cual; int j;
if (total==0) { gotoxy(2,23);
cout << "No hay registros" << endl;
delay(2000);}
else { clrscr();
cout << "Hay "<< total << " Registros, Cual deseas ver? (0 = todos)";
cin >> cual; cin.get();
if(cual <=total) { p[cual-1]->listar();
delay(2000);}
else { for(j=0; j<total;j++) p[j]->listar();
delay(3000);}
}
}

// implementacion de la funcion cuadro
// es llamada por menu
void cuadro(char lhori, char lvert,char posx, char posy,
char ancho, char prof,char color)
{
char hsvs[]={218,196,191,179,217,192,0};
char hdvs[]={213,205,184,179,190,212,''};
char hsvd[]={214,196,183,186,189,211,''};
char hdvd[]={201,205,187,186,188,200,''};

char carac[7];
char esi,esd,eii,eid,lh,lv;

int i,j,k;

lhori=toupper(lhori);
lvert=toupper(lvert);
strcpy(carac,hsvs); //Default
if(lhori=='D' && lvert=='S') strcpy(carac,hdvs);
if(lhori=='S' && lvert=='D') strcpy(carac,hsvd);
if(lhori=='D' && lvert=='D') strcpy(carac,hdvd);

esi=carac[0];
lh=carac[1];
esd=carac[2];
lv=carac[3];
eid=carac[4];
eii=carac[5];

k=ancho-2;
j=prof-2;
textcolor(color);
//parte superior del cuadro
gotoxy(posx,posy);cprintf("%c",esi);
for(i=1;i<=k;i++) cprintf("%c",lh);;cprintf("%c",esd);
//lados del cuadro
for(i=1;i<=j;i++){
gotoxy(posx,posy+i);cprintf("%c",lv);
gotoxy(posx+ancho-1,posy+i);cprintf("%c",lv);}
//parte inferior del cuadro
gotoxy(posx,posy+prof-1);cprintf("%c",eii);
for(i=1;i<=k;i++) cprintf("%c",lh);;cprintf("%c",eid);
}

// Programa Principal
void main(void)
{ clrscr();
total = 0;
do
menu();
while(opta != '6');
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Foro incorrecto!!

Publicado por yo (14 intervenciones) el 11/09/2008 21:25:37
Pregunta en el foro de C, este es de VB

Un saludo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar