Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: Inter-ard en 26 Junio 2013, 06:09 am



Título: AYUDA POR FAVOR :(
Publicado por: Inter-ard en 26 Junio 2013, 06:09 am
HOLA, NECESITO AYUDA EN UN PROYECTO DE PROGRAMACION ACERCA DE LAS ELIMINATORIAS DE LA CONCAFAC PARA BRASIL 2014, EL PROYECTO CONSISTE EN GENERAR UN MENU OPCION 1: REGISTRAR USUARIOS (MAXIMO DE TRES Y NO VALE REPETIRSE),OPCION DOS 2:  CARGAR LA TABLA (JUEGOS GANADOS JUEGOS PERDIDOS JUEGOS EMPATES PUNTOS GOLES A FAVOR Y GOLES EN CONTRA) OPCION 3: IMPRIMIR LA TABLA DE RESULTADO (DE ACUERDO AL ORDEN, DEL MEJOR AL PEOR), OPCION 4 SALIR DEL MENU.

ESPERO ME AYUDEN POR FAVOR! SE LOS AGRADECERIA INFINITAMENTE, DE ESO DEPENDE MI FUTURO :( :-[ :-[ :-[ :-[


Título: Re: AYUDA POR FAVOR :(
Publicado por: engel lex en 26 Junio 2013, 06:19 am
1- que problema tienes en que parte de tu código? (muestra el pedazo de código y problema)
2- no escribas en mayúsculas

3- "de eso depende mi futuro" que drama -.- sin querer se demasiado ácido, si de eso depende espero que seas muy bueno en lo que haces, porque uno no pone su futuro a depende d algo que no sabe -.-


Título: Re: AYUDA POR FAVOR :(
Publicado por: Inter-ard en 26 Junio 2013, 07:03 am
hola, gracias por contestarme, el problema que tengo es que no se como hacer para que una vez aparezca el menu, y la persona seleccione opcion 1 que es registrar usuario, se registre un maximo de tres veces, (con contraseña distinta y usuario distinto), lo que no se es como hacer que el programa recnozoca si se introduce un usuario ya registrado.
y el otro dolor de cabeza es generar el arreglo de las tablas de posiciones.
espero me ayudes por favor.
gracias!


Título: Re: AYUDA POR FAVOR :(
Publicado por: engel lex en 26 Junio 2013, 07:19 am
como estás guardando los usuarios y contraseñas? que db usas?

Citar
es registrar usuario, se registre un maximo de tres veces, (con contraseña distinta y usuario distinto)

como puedes saber que es el mismo usuario si es user y pass diferente?


Título: Re: AYUDA POR FAVOR :(
Publicado por: Inter-ard en 26 Junio 2013, 21:30 pm
MIRA ESTE ES EL CPP HASTA DONDE HE LLEGADO, DE AHI NO HE PODIDO AVANZAR.

#include <stdio.h>
#include <conio.h>
#include <dos.h>
#include <string.h>

main(){
textbackground(RED);
textcolor(WHITE);
clrscr();
int X;

//Presentación
gotoxy(5,15);
cprintf("   dBBBBb   dBP dBBBP  dBBBBb dBP dP  dBBBP  dBBBBb  dBP dBBBBb  dBBBBP");
gotoxy(5,16);
cprintf("      dBP                 dBP                   dBP         dB' dB'.BP");
gotoxy(5,17);
cprintf("  dBBBK'  dBP dBBP   dBP dBP dB .BP dBBP   dBP dBP dBP dBP dB' dB'.BP");
gotoxy(5,18);
cprintf(" dB' db  dBP dBP    dBP dBP  BB.BP dBP    dBP dBP dBP dBP dB' dB'.BP");
gotoxy(5,19);
cprintf("dBBBBP' dBP dBBBBP dBP dBP   BBBP dBBBBP dBP dBP dBP dBBBBB' dBBBBP");
sleep(1);
clrscr();

textbackground(BLUE);
clrscr();

gotoxy(3,5);
cprintf("@@@@@@@   @@@@@@   @@@  @@@   @@@@@@@   @@@@@@    @@@@@@@   @@@@@@   @@@@@@@@ ");
gotoxy(3,6);
cprintf("@@@@@@@@  @@@@@@@@  @@@@ @@@  @@@@@@@@  @@@@@@@@  @@@@@@@@  @@@@@@@@  @@@@@@@@ ");
gotoxy(3,7);
cprintf("!@@       @@!  @@@  @@!@!@@@  !@@       @@!  @@@  !@@       @@!  @@@  @@! ");
gotoxy(3,8);
cprintf("!@!       !@!  @!@  !@!!@!@!  !@!       !@!  @!@  !@!       !@!  @!@  !@!   ");
gotoxy(3,9);
cprintf("!@!       @!@  !@!  @!@ !!@!  !@!       @!@!@!@!  !@!       @!@!@!@!  @!!!:!   ");
gotoxy(3,10);
cprintf("!!!       !@!  !!!  !@!  !!!  !!!       !!!@!!!!  !!!       !!!@!!!!  !!!!!: ");
gotoxy(3,11);
cprintf(":!!       !!:  !!!  !!:  !!!  :!!       !!:  !!!  :!!       !!:  !!!  !!:    ");
gotoxy(3,12);
cprintf("!:        :!:  !:!  :!:  !:!  :!:       :!:  !:!  :!:       :!:  !:!  :!:     ");
gotoxy(3,13);
cprintf(":::       :::  :::  ::   ::   ::: :::   ::   :::   ::: :::  ::   :::   ::     ");
gotoxy(3,14);
cprintf("::::::::  : :::: :  ::   ::   ::: :: :   :   : :   :: :: :   :   : :   :    ");

gotoxy(25,25);
cprintf("Eliminatorias de la hexagonal");
gotoxy(25,26);
cprintf(" para el Mundial Brasil 2014");
sleep(1);
j:
clrscr();

clrscr();
gotoxy(45,2);
cprintf("      -----s/:-----");
gotoxy(45,3);
cprintf("   .:-    .o`     `/s.");
gotoxy(45,4);
cprintf(" `+o.../sdmmmho-----MMs`");
gotoxy(45,5);
cprintf("`hs````dMMMMMMM:    /NMd`");
gotoxy(45,6);
cprintf("ss     .NNNMMM+      -mMs");
gotoxy(45,7);
cprintf("y-     -/---:/-       +-o");
gotoxy(45,8);
cprintf("+/`   :-      ./     +-.o");
gotoxy(45,9);
cprintf("+ hmdd+       `.hhhhd:..+");
gotoxy(45,10);
cprintf("`+oMMMM+......:mMMMMM+.o`");
gotoxy(45,11);
cprintf(" `oyNMMMo/////mMMMMNyo+`");
gotoxy(45,12);
cprintf("   .:sho.......+mh+//.");
gotoxy(45,13);
cprintf("      -/o:::::/o/:-");

gotoxy(20,4);
cprintf("Menu Principal");
gotoxy(15,6);
cprintf("1. Registrar Usuario");
gotoxy(15,7);
cprintf("2. Introducir datos");
gotoxy(15,8);
cprintf("3. Tabla de posiciones");
gotoxy(15,9);
cprintf("4. Equipos clasificados");
gotoxy(15,10);
cprintf("5. Salir");

gotoxy(15,14);
cprintf("Introduzca una opcion:");
cscanf("%d",&X);

if (X==1){
clrscr();

//Registrar Usuario
gotoxy(15,6);
cprintf("Registrar Usuario");

char Usuario[20],pass[7];
gotoxy(10,10);
cprintf("Introduzca el nombre de usuario:");
cscanf("%s",Usuario);
getch();
gotoxy(10,12);
cprintf("Introduzca una clave:");


int m=0;
while(m<=6){
pass[m]= getch();
cprintf ("*");
m= m+1;
}

getch();


gotoxy(10,14);
cprintf("Su nombre de usuario es:%s",Usuario);

gotoxy(10,16);
cprintf("Su clave de acceso es:%c%c%c%c%c%c%c",pass[0],pass[1],pass[2],pass[3],pass[4],pass[5],pass[6]);

char A[3][20];int I;
strcpy(A[0],Usuario);
getch();


gotoxy(15,18);
cprintf("Usuarios");

gotoxy(15,20);
cprintf("%s",A[0]);
getch();

gotoxy(40, 15);
cprintf("1.Registrar otro usuario:");
gotoxy(40,16);
cprintf("2.Volver a menu principal");

gotoxy(40,18);
cprintf("Elija una opcion:");

int Y;

cscanf("%d",&Y);
if (Y==2){
goto j;
}

if (Y==1){
clrscr();

gotoxy(15,6);
cprintf("Registrar Usuario");

char Usuarioo[20],passs[7];
gotoxy(10,10);
cprintf("Introduzca el nombre de usuario:");
cscanf("%s",Usuarioo);
getch();
gotoxy(10,12);
cprintf("Introduzca una clave:");


int m=0;
while(m<=6){
passs[m]= getch();
cprintf ("*");
m= m+1;
}

getch();

gotoxy(10,14);
cprintf("Su nombre de usuario es:%s",Usuarioo);

gotoxy(10,16);
cprintf("Su clave de acceso es:%c%c%c%c%c%c%c",passs[0],passs[1],passs[2],passs[3],passs[4],passs[5],passs[6]);

char A[3][20];int I;

strcpy(A[1],Usuarioo);
getch();

gotoxy(15,18);
cprintf("Usuarios");
gotoxy(15,20);
cprintf("%s",&A[0]);
gotoxy(15,21);
cprintf("%s",&A[1]);
getch();
}


gotoxy(40, 15);
cprintf("1.Registrar otro usuario:");
gotoxy(40,16);
cprintf("2.Volver a menu principal");

gotoxy(40,18);
cprintf("Elija una opcion:");
cscanf("%d",&Y);
if (Y==2){
goto j;
}

if (Y==1){
clrscr();

gotoxy(15,6);
cprintf("Registrar Usuario");

char Usuuarioo[20],paasss[7];
gotoxy(10,10);
cprintf("Introduzca el nombre de usuario:");
cscanf("%s",Usuuarioo);
getch();
gotoxy(10,12);
cprintf("Introduzca una clave:");

int m=0;
while(m<=6){
paasss[m]= getch();
cprintf ("*");
m= m+1;
}

getch();

gotoxy(10,14);
cprintf("Su nombre de usuario es:%s",Usuuarioo);

gotoxy(10,16);
cprintf("Su clave de acceso es:%c%c%c%c%c%c%c",paasss[0],paasss[1],paasss[2],paasss[3],paasss[4],paasss[5],paasss[6]);

char A[3][20];int I;

strcpy(A[2],Usuuarioo);
getch();

gotoxy(15,18);
cprintf("Usuarios");
gotoxy(15,20);
cprintf("%s",&A[0]);
gotoxy(15,21);
cprintf("%s",&A[1]);
gotoxy(15,22);
cprintf("%s",&A[2]);
getch();

gotoxy(40, 15);
cprintf("Llego al limite de usuario:");
gotoxy(40,16);
cprintf("Volver a menu principal");

gotoxy(40,18);
cprintf("Elija una opcion:");

cscanf("%d",&Y);
if (Y==2){
goto j;
}


}
}
getch();
}


GRACIAS POR TU AYUDA, LA VALORO MUCHO.


Título: Re: AYUDA POR FAVOR :(
Publicado por: Inter-ard en 27 Junio 2013, 07:43 am
???


Título: Re: AYUDA POR FAVOR :(
Publicado por: eferion en 27 Junio 2013, 08:46 am
Deberías ir pensando en dividir un poco el código... sepáralo en funciones.

Será más sencillo para ti añadir nueva funcionalidad y corregir los errores que tengas... y evitarás código repetido.

Por ejemplo:

Código
  1. void NuevoUsuario( char* usuario, char* pass )
  2. {
  3.  gotoxy(10,10);
  4.  cprintf("Introduzca el nombre de usuario:");
  5.  cscanf("%s",usuario);
  6.  getch();
  7.  gotoxy(10,12);
  8.  cprintf("Introduzca una clave:");
  9.  
  10.  int m=0;
  11.  while(m<=6)
  12.  {
  13.    pass[m]= getch();
  14.    cprintf ("*");
  15.    m= m+1;
  16.  }
  17. }

Así cada vez que quieres crear un nuevo usuario simplemente llamas a esta función y te ahorras tener que duplicar las líneas una y otra vez.

Esto es extensible al resto del código... otro ejemplo... podrías poner las instrucciones que "decoran" la pantalla en una función.

Es algo que aporta bastante claridad al código.

En cuanto a saber si un usuario ya existe... deberías plantearte tener una lista de usuarios que puedas consultar para saber si un nick introducido ya se encuentra registrado o no.

Aprovechando esa lógica lo suyo sería que almacenases tanto el usuario como la contraseña juntos para tener la información agrupada.

Si no sabes como hacerlo te doy una pista:

Código
  1. struct Usr
  2. {
  3.  char[20] Usuario;
  4.  char[6] pass;
  5. };

* Consejo final... si la contraseña va a tener forzosamente 6 caracteres deberías plantearte ampliar el array de la contraseña en un caracter... este séptimo caracter lo dejas con un nulo y a partir de ese momento puedes manejar la contraseña como si fuese una cadena de caracteres normal. Esto te permitiría hacer cosas como...

Código
  1. // Imprimir la clave:
  2. cprintf( "%s", pass );
  3.  
  4. // Comparar la clave con otra introducida:
  5. if ( strcpy( pass, otrapass ) == 0 )
  6. {
  7. ...
  8. }


Título: Re: AYUDA POR FAVOR :(
Publicado por: Inter-ard en 27 Junio 2013, 23:11 pm
GRACIAS POR TU AYUDA!!, me podrias ayudar a realizar una tabla de posiciones en vector por favor??


Título: Re: AYUDA POR FAVOR :(
Publicado por: eferion en 28 Junio 2013, 09:25 am
Si necesitas ayuda la puedes tener... pero el curro lo tienes que poner tú... al menos si quieres aprender.

Con lo que te he puesto piensa en cómo podrías hacerlo, haz tus conjeturas y cuando te atasques pregunta... pero el esfuerzo inicial lo tienes que poner tu.


Título: Re: AYUDA POR FAVOR :(
Publicado por: Inter-ard en 11 Julio 2013, 06:52 am
quien me ayuda


Título: Re: AYUDA POR FAVOR :(
Publicado por: eferion en 11 Julio 2013, 08:43 am
Aún sigues con esto??

Código
  1. struct equipo
  2. {
  3.    char nombre[20];
  4.    int puntos;
  5. };
  6.  
  7. typedef struct equipo equipo;
  8.  
  9.  
  10. int ordenarPorPuntos( const void* a, const void* b )
  11. {
  12.  const equipo* equipo_a = (const equipo*)a;
  13.  const equipo* equipo_b = (const equipo*)b;
  14.  
  15.  return equipo_b->puntos - equipo_a->puntos;
  16. }
  17.  
  18. void main ( )
  19. {
  20.  equipo grupoA[4];
  21.  
  22.  strcpy( grupoA[ 0 ].nombre, "Equipo 1" );
  23.  grupoA[ 0 ].puntos = 10;
  24.  
  25.  strcpy( grupoA[ 1 ].nombre, "Equipo 2" );
  26.  grupoA[ 1 ].puntos = 14;
  27.  
  28.  strcpy( grupoA[ 2 ].nombre, "Equipo 3" );
  29.  grupoA[ 2 ].puntos = 8;
  30.  
  31.  strcpy( grupoA[ 3 ].nombre, "Equipo 4" );
  32.  grupoA[ 3 ].puntos = 15;
  33.  
  34.  qsort( grupoA, 4, sizeof( equipo ), ordenarPorPuntos );
  35.  
  36.  int i;
  37.  for ( i=0; i<4; ++i )
  38.  {
  39.    printf( "%s   %-2d\n", grupoA[ i ].nombre, grupoA[ i ].puntos );
  40.  }
  41. }


Título: Re: AYUDA POR FAVOR :(
Publicado por: Inter-ard en 11 Julio 2013, 18:12 pm
sI YA ESO LO ARREGLE, LO que no veo es como hacer la tabla de posiciones y que al cargar el arreglo me los genere en orden después en otra tabla, llevo como una semana en eso pero no se todvia ...


Título: Re: AYUDA POR FAVOR :(
Publicado por: eferion en 12 Julio 2013, 09:32 am
te acabas de explicar como un libro cerrado


Título: Re: AYUDA POR FAVOR :(
Publicado por: Inter-ard en 13 Julio 2013, 00:13 am
TU TIENES E-MAIL PARA QUE VEAS HASTA DONDE VOY?


Título: Re: AYUDA POR FAVOR :(
Publicado por: Inter-ard en 13 Julio 2013, 05:23 am
como cambio los indices de un vector? ya genere la tabla, ahora tengo que ordenar los equipos, de mayor a menor según sus puntos, pero para eso tengo que cambiar el orden  del vector, como lo hago?


Título: Re: AYUDA POR FAVOR :(
Publicado por: engel lex en 13 Julio 2013, 06:21 am
busca sobre el metodo "sort" o puedes hacer un "bubble sort" a mano...  no es necesario cambiar los indices -.- te estás enredando tanto como puedes...


Título: Re: AYUDA POR FAVOR :(
Publicado por: Inter-ard en 14 Julio 2013, 04:23 am
ya muchas gracias!