ayudarrrrrrrrr
necesito que me digais que es lo que no funciona de este programa, a la hora de visualizar el nombre no me lo visualiza, pero no me da errores.
#include<stdio.h>
#include<conio.h>
#include<iostream.h>
#include<string.h>
#include<stdlib.h>
class usuarios
{
private:
typedef struct nodo{
char nombre[10];
char apellidos[50];
char login[8];
char password[10];
struct nodo *anterior;
struct nodo *siguiente;
}tiponodo;
typedef tiponodo *Lista;
typedef tiponodo *Pnodo;
public:
Lista lista;
void insertarusuario(/*char nomb[],char apellid[],char log[],char passw[]*/);
void visualizar();
};
void usuarios::insertarusuario(/*char nomb[],char apellid[],char log[],char passw[]*/){
lista=NULL;
Pnodo nuevo,nodo,aux;
char nomb[8];
char apellid[50];
char log[8];
char passw[10];
cout<<"introduce el nombre";
gets(nomb);
cout<<"introduce los apellidos";
gets(apellid);
cout<<"introduce el login";
gets(log);
cout<<"introduce el password:";
gets(passw);
nodo=lista;
nuevo=new(struct nodo);
clrscr();
strcpy(nodo->nombre,nomb);
strcpy(nodo->apellidos,apellid);
strcpy(nodo->login,log);
strcpy(nodo->password,passw);
if(lista==NULL){
lista=nuevo;
nuevo->siguiente=lista;
nuevo->anterior=lista;
}
else if(strcmp(nuevo->nombre,(lista)->nombre)<0){
nuevo->siguiente=lista;
nuevo->anterior=(lista)->anterior;
(lista)->anterior->siguiente=nuevo;
(lista)->anterior=nuevo;
lista=nuevo;
}
else{
nodo=lista;
while(nodo->siguiente!=lista && strcmp(nuevo->nombre,nodo->nombre)>=0){
nodo=nodo->siguiente;
}
if(strcmp(nuevo->nombre,nodo->nombre)>=0){
nuevo->siguiente=nodo->siguiente;
nodo->siguiente->anterior=nuevo;
nuevo->anterior=nodo;
nodo->siguiente=nuevo;
nodo=nodo->siguiente;
}
else{
nodo=nodo->anterior;
nuevo->siguiente=nodo->siguiente;
nuevo->anterior=nodo;
nodo->siguiente->anterior=nuevo;
nodo->siguiente=nuevo;
}
}
/*int usuarios::listavacia(Lista l){
return(l==NULL);
} */
delete nuevo;
}
void usuarios::visualizar(){
Pnodo nodo;
nodo=lista;
clrscr();
if(lista==NULL){
clrscr();
cout<<"LA LISTA ESTA VACIA";
getch();
}
else{
clrscr();
char opcion;
do{
cout<<nodo->nombre;
opcion=getch();
switch(opcion){
case 0x50:
clrscr();
nodo=nodo->siguiente;
break;
case 0x48:
clrscr();
nodo=nodo->anterior;
break;
}//cierre del switch
}while(opcion!=27);
}//cierre del else
}
void main(){
clrscr();
usuarios usu;
usu.insertarusuario(/*nombre,apellidos,login,password*/);
usu.visualizar();
getch();
}
#include<stdio.h>
#include<conio.h>
#include<iostream.h>
#include<string.h>
#include<stdlib.h>
class usuarios
{
private:
typedef struct nodo{
char nombre[10];
char apellidos[50];
char login[8];
char password[10];
struct nodo *anterior;
struct nodo *siguiente;
}tiponodo;
typedef tiponodo *Lista;
typedef tiponodo *Pnodo;
public:
Lista lista;
void insertarusuario(/*char nomb[],char apellid[],char log[],char passw[]*/);
void visualizar();
};
void usuarios::insertarusuario(/*char nomb[],char apellid[],char log[],char passw[]*/){
lista=NULL;
Pnodo nuevo,nodo,aux;
char nomb[8];
char apellid[50];
char log[8];
char passw[10];
cout<<"introduce el nombre";
gets(nomb);
cout<<"introduce los apellidos";
gets(apellid);
cout<<"introduce el login";
gets(log);
cout<<"introduce el password:";
gets(passw);
nodo=lista;
nuevo=new(struct nodo);
clrscr();
strcpy(nodo->nombre,nomb);
strcpy(nodo->apellidos,apellid);
strcpy(nodo->login,log);
strcpy(nodo->password,passw);
if(lista==NULL){
lista=nuevo;
nuevo->siguiente=lista;
nuevo->anterior=lista;
}
else if(strcmp(nuevo->nombre,(lista)->nombre)<0){
nuevo->siguiente=lista;
nuevo->anterior=(lista)->anterior;
(lista)->anterior->siguiente=nuevo;
(lista)->anterior=nuevo;
lista=nuevo;
}
else{
nodo=lista;
while(nodo->siguiente!=lista && strcmp(nuevo->nombre,nodo->nombre)>=0){
nodo=nodo->siguiente;
}
if(strcmp(nuevo->nombre,nodo->nombre)>=0){
nuevo->siguiente=nodo->siguiente;
nodo->siguiente->anterior=nuevo;
nuevo->anterior=nodo;
nodo->siguiente=nuevo;
nodo=nodo->siguiente;
}
else{
nodo=nodo->anterior;
nuevo->siguiente=nodo->siguiente;
nuevo->anterior=nodo;
nodo->siguiente->anterior=nuevo;
nodo->siguiente=nuevo;
}
}
/*int usuarios::listavacia(Lista l){
return(l==NULL);
} */
delete nuevo;
}
void usuarios::visualizar(){
Pnodo nodo;
nodo=lista;
clrscr();
if(lista==NULL){
clrscr();
cout<<"LA LISTA ESTA VACIA";
getch();
}
else{
clrscr();
char opcion;
do{
cout<<nodo->nombre;
opcion=getch();
switch(opcion){
case 0x50:
clrscr();
nodo=nodo->siguiente;
break;
case 0x48:
clrscr();
nodo=nodo->anterior;
break;
}//cierre del switch
}while(opcion!=27);
}//cierre del else
}
void main(){
clrscr();
usuarios usu;
usu.insertarusuario(/*nombre,apellidos,login,password*/);
usu.visualizar();
getch();
}
Prueba a quitar del Main la funcion clrscr(), y si no es posible dale un retardo suficiente despues de visualizar el nombre. Puede que lo muestre pero lo esté borrando muy rápido.
Suerte
Suerte
