elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Entrar al Canal Oficial Telegram de elhacker.net


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Ayuda codigo C++ (Agenda)
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: 1 [2] 3 Ir Abajo Respuesta Imprimir
Autor Tema: Ayuda codigo C++ (Agenda)  (Leído 20,833 veces)
Edu


Desconectado Desconectado

Mensajes: 1.082


Ex XXX-ZERO-XXX


Ver Perfil
Re: Ayuda codigo C++ (Agenda)
« Respuesta #10 en: 26 Febrero 2011, 00:46 am »

Mmmm no se bien q es lo q quieres hacer vs pero fijate bien lo del while a ver si en vez de || tienes q poner && , haz pruebas

Confunde q pongas 1<opc en vez de opc>1 , ese ultimo se lee mejor ;)


En línea

L0R0

Desconectado Desconectado

Mensajes: 18



Ver Perfil
Re: Ayuda codigo C++ (Agenda)
« Respuesta #11 en: 26 Febrero 2011, 01:10 am »

Si esa es la forma normal pss pero si lo coloco asi no me corre..... tonces probe con esa otra forma..... pero ni idea pq.....  :-\


En línea

“Es preferible estar expuesto a los inconvenientes que surgen de un exceso de libertad que a los que provienen de una falta de ella.”-Thomas Jefferson

Twitter: @loro11
dato000


Desconectado Desconectado

Mensajes: 3.034



Ver Perfil
Re: Ayuda codigo C++ (Agenda)
« Respuesta #12 en: 27 Febrero 2011, 02:06 am »

aqui esta:

No supe como dar la salida si el usuario digita 2. NO en la opcion 3. Salida, lo demás funciona.

Si el problema persiste por lo de "opc >,opc <, opc =", puede que sea por el compilador o el firewall, o hasta el SO que usas viejo.

No soy un experto, pero trate de hacer lo que pude.

Pa eso estamos, no??

Código:

#include <cstdlib>
#include <iostream>

using namespace std;


struct Persona {
   char Nombre[65];
   char Estado[65];
   int ANacimiento;
  
}plantilla;

int main(int argc, char *argv[]) //WHAT THE FUCK IS THIS??? SI TIENES TIEMPO EXPLICAME!! fuerteizquierdo@hotmail.com
{
     int opc;
  
     do
     {    
            system("CLS");      
            cout<< "Selecione Su Opcion:  ";
            cout<< endl;
            cout<< "1. Ingresar Usuario. ";
            cout<<endl;
            cout<< "2. Ver Usuario. ";
            cout<<endl;
            
            //para este yo no preguntaria nuevamente, si el usuario eligio salir,
            //pues que salga, para eso esta la opcion
            cout<< "3. Salir. ";
            cout<<endl;
            cout<< "Opcion: ";
            cin>> opc;
            cout<<endl;
            system("CLS");
                  
            switch (opc)
            {
                          
                 case 1:
                    
                        //viejo, al usuario no se le debe limpiar la pantalla solo por dos o tres lineas
                        //no abuses del CLS pues cualquiera que no sepa del codigo queda confundido.
                        //el profesor seguramente joderia por eso
                        cout<< "introduzca nombre: "; cout<<endl;
                        cin>> plantilla.Nombre;
                        cout<<endl;cout<<endl;
                        cout<< "introduzca estado: "; cout<<endl;
                        cin>> plantilla.Estado;
                        cout<<endl;cout<<endl;
                        
                        //especifica que sea un año!!!
                        cout<< "introduzca AÑO DE nacimiento: "; cout<<endl;
                        cin>> plantilla.ANacimiento;
                        cout<<endl;cout<<endl;
                        
                        //porque continue y no break...pues porque solo asi me funciono.
                        continue;
                  
                
                
                    
                 case 2:
                      
                        continue;
                      
                      
                      
                      
                case 3:
                        
                        //en mi opinion r deberia ir aqui, ya que solo es usado para la opcion de salida
                        //y pues ni pondria esto, solo EXIT y ya!! pa que complicarse!!
                        int r;
                        
                        cout<< "De Verdad Desea Salir?";
                        cout<< endl;
                        cout<< "1.Si.                        2.No.";
                        cout<<endl;
                        cout<< "opcion: ";
                        cin>>r;    
                        if (r==1)
                        {
                                 return EXIT_SUCCESS;
                        }
                        
                        
              }//end del switch
            
              //hay que cambiar el valor de opc pues el programa siempre quedaria
              //con la opcion inicial y quedaria en un ciclo infinito
              opc=0;
              
              //yo rompi con el switch para dar salida, siempre hago eso, es mi return EXIT_SUCCESS
              //limitado a casos switch
              break;
       } while (opc==1 || opc==2); //end del while
}


Dejame darte una sugerencia: SIEMPRE USA COMENTARIOS, AYUDA A UBICARTE EN EL CODIGO, puede que un experto no lo use, pero a mi me funciona para recordar funciones y todo eso.
« Última modificación: 27 Febrero 2011, 02:08 am por dato000 » En línea


Edu


Desconectado Desconectado

Mensajes: 1.082


Ex XXX-ZERO-XXX


Ver Perfil
Re: Ayuda codigo C++ (Agenda)
« Respuesta #13 en: 27 Febrero 2011, 23:24 pm »

Y acuerdate q el switch tiene un default: podrias usarlo
En línea

dato000


Desconectado Desconectado

Mensajes: 3.034



Ver Perfil
Re: Ayuda codigo C++ (Agenda)
« Respuesta #14 en: 28 Febrero 2011, 01:02 am »

ups, bueno, aún así funciona, digamos que lo mejor es ponerlo.
En línea


L0R0

Desconectado Desconectado

Mensajes: 18



Ver Perfil
Re: Ayuda codigo C++ (Agenda)
« Respuesta #15 en: 11 Marzo 2011, 13:57 pm »

Bueno aca esta el codigo ya mas adelantado y con los comentarios,,, Si alguien sabe como puedo hacer en este caso para eliminar a algun contacto y ordenarlos todos nuevamente,, me ayudaria muchisimo!!!

Código
  1. #include <cstdlib>
  2. #include <iostream>
  3.  
  4. using namespace std;
  5.  
  6.  
  7. struct Persona {
  8. char Nombre[65];
  9. char apellido[65];
  10. char numcel[65];
  11.  
  12. }plantilla[100];
  13.  
  14. int main(int argc, char *argv[])
  15. {
  16. int opc;
  17. /// variables opcion nuevo contacto:
  18. int r;
  19. int cont=0; /// sirve tambien para opcion 2 y 3.
  20. /// variable opcion lista de contactos:
  21. int a;
  22. int tr;
  23. //// variable opcion de salida:
  24. int s;
  25. //// variables opcion buscador:
  26. char buscont[65];
  27. int bus1;
  28. int bus2;
  29. int vrf=0;
  30.  
  31. //// Variables opcion Opciones:
  32. int op;
  33. int rep;
  34. ///variable opciones 1 modificar
  35. int g;
  36. int val;
  37. int va;
  38. int mod;
  39. int op1;
  40. // variables opciones 2 borrar
  41. int del;
  42. int delm;
  43. int h;
  44.  
  45. do
  46. {
  47.  
  48.  
  49. system("CLS");
  50. cout<< "Selecione Su Opcion: ";
  51. cout<< endl;
  52. cout<< "1. Agregar un nuevo Contacto. ";
  53. cout<<endl;
  54. cout<< "2. Ver la lista de Contactos agregados. ";
  55. cout<<endl;
  56. cout<< "3. Buscar contacto por nombre. ";
  57. cout<<endl;
  58. cout<< "4. Opciones. ";
  59. cout<<endl;
  60. cout<< "5. Salir. ";
  61. cout<<endl;
  62. cout<< "Opcion: ";
  63. cin>> opc;
  64. cout<<endl;
  65. rep=0;
  66. system("CLS");
  67.  
  68.  
  69.  
  70.  
  71. switch (opc)
  72. {
  73. //Comienza agregar contactos.
  74. case 1:
  75.  
  76. r=cont++;
  77.  
  78.  
  79. cout<< "Agregue el nombre del nuevo contacto: ";
  80. cin>> plantilla[r].Nombre;
  81. cout<<endl;
  82.  
  83. cout<< "Agregue el apellido del nuevo contacto: ";
  84. cin>> plantilla[r].apellido;
  85. cout<<endl;
  86.  
  87. cout<< "Agregue el numero movil del nuevo contacto: ";
  88. cin>> plantilla[r].numcel;
  89. cout<<endl;
  90. system("CLS");
  91.  
  92. break;
  93. //termina agregar contactos.
  94.  
  95.  
  96. case 2:
  97. //comienza lista de contactos.
  98. cout<< "Lista de Contactos: ";
  99. cout<< endl;
  100.  
  101. if (cont==0)
  102. {
  103. cout<< "Lista de contactos vacia.";
  104. cout<<endl;
  105. system ("PAUSE");
  106. system("CLS");
  107. break;
  108. } else {
  109.  
  110.  
  111. for(a=0;a<r+1;a++)
  112.  
  113. {
  114. tr=a;
  115.  
  116. cout<< tr+1<< ". ";
  117. cout<< plantilla[a].Nombre;
  118. cout<<endl;
  119. }
  120. system("PAUSE");
  121. system("CLS");
  122. break;
  123.  
  124. }
  125. //termina lista de contactos.
  126. case 3:
  127. //comienza buscar contactos.
  128. cout<< "Igrese el nombre que desea buscar: ";
  129. cin>> buscont;
  130. cout<<endl;
  131.  
  132. if (cont==0)
  133. {
  134. cout<< "Lista de contactos vacia.";
  135. cout<<endl;
  136. system ("PAUSE");
  137. system("CLS");
  138. break;
  139. }
  140.  
  141. for(bus1=0;bus1<r+1;bus1++)
  142. {
  143. if (strcmp(plantilla[bus1].Nombre,buscont)==0)
  144. { cout<<"Resulatdo Encontrado: "<<endl;
  145. cout<<"Nombre: "<<plantilla[bus1].Nombre<<endl;
  146. cout<<"Apellido: "<<plantilla[bus1].apellido<<endl;
  147. cout<<"Numero Movil: "<<plantilla[bus1].numcel<<endl;
  148. vrf=1;
  149. cout<<endl;
  150.  
  151.  
  152. }
  153.  
  154. }
  155. if (vrf==0)
  156. {
  157. cout<<"Resultado No Encontrado....."<<endl;
  158.  
  159.  
  160. }
  161.  
  162.  
  163.  
  164.  
  165.  
  166. system ("PAUSE");
  167.  
  168. vrf=0;
  169.  
  170. break;
  171. //termina buscar contactos.
  172. case 4:
  173. //comienza opciones.
  174. do
  175. {
  176. system ("CLS");
  177. cout<<"Eliga su nueva opcioc: "<<endl;
  178. cout<<"1.Modificar contacto."<<endl;
  179. cout<<"2.Borrar contacto. "<<endl;
  180. cout<<"3.Menu principal. "<<endl;
  181. cout<<"Opcion: ";
  182. cin>>op;
  183. system ("CLS");
  184.  
  185.  
  186. switch(op)
  187. {
  188. case 1:
  189. //modificar contactos:
  190. //lista contactos:
  191. cout<< "Lista de Contactos: ";
  192. cout<< endl;
  193.  
  194. if (cont==0)
  195. {
  196. cout<< "Lista de contactos vacia.";
  197. cout<<endl;
  198. system ("PAUSE");
  199. system("CLS");
  200. break;
  201. } else {
  202.  
  203.  
  204. for(a=0;a<r+1;a++)
  205.  
  206. {
  207. tr=a;
  208.  
  209. cout<< tr+1<< ". ";
  210. cout<< plantilla[a].Nombre;
  211. cout<<endl;
  212. }
  213. }
  214. //fin lista contactos.
  215. //pregunta 1:
  216. cout<<"Seleccione el numero del contacto que desea modificar: ";
  217. cin>>val;
  218. mod=val-1;
  219. g=r+1;
  220.  
  221.  
  222. if (val<=g)
  223. {
  224. //opcion modificar contacto:
  225. do
  226. {
  227. system ("CLS");
  228. cout<<"Contacto:"<<endl;
  229. cout<<"1. Nombre: "<<plantilla[mod].Nombre<<endl;
  230. cout<<"2. Apellido: "<<plantilla[mod].apellido<<endl;
  231. cout<<"3. Numero Movil: "<<plantilla[mod].numcel<<endl;
  232. cout<<"4. Menu anterior."<<endl;
  233. cout<<"Seleccione la opcion que desea modificar: ";
  234. cin>>op1;
  235. switch (op1)
  236. {
  237. case 1:
  238. cout<< "Modifique el nombre del contacto: ";
  239. cin>> plantilla[mod].Nombre;
  240. cout<<endl;
  241. break;
  242. case 2:
  243. cout<< "Modifique el apellido del contacto: ";
  244. cin>> plantilla[mod].apellido;
  245. cout<<endl;
  246. break;
  247. case 3:
  248. cout<< "Modifique el numero de movil del contacto: ";
  249. cin>> plantilla[mod].numcel;
  250. cout<<endl;
  251. break;
  252. case 4:
  253. rep=1;
  254. break;
  255. }
  256. }while (rep==0);//fin modificar contacto.
  257. }else {cout<<"El contacto no existe."<<endl;
  258. system ("PAUSE");}
  259. rep=0;
  260. //fin pregunta 1.
  261.  
  262.  
  263. break;
  264. //fin modificar contactos.
  265. case 2:
  266. //borrar contactos.
  267. //lista contactos:
  268. cout<< "Lista de Contactos: ";
  269. cout<< endl;
  270.  
  271. if (cont==0)
  272. {
  273. cout<< "Lista de contactos vacia.";
  274. cout<<endl;
  275. system ("PAUSE");
  276. system("CLS");
  277. break;
  278. } else {
  279.  
  280.  
  281. for(a=0;a<r+1;a++)
  282.  
  283. {
  284. tr=a;
  285.  
  286. cout<< tr+1<< ". ";
  287. cout<< plantilla[a].Nombre;
  288. cout<<endl;
  289. }
  290. }
  291. //fin lista contactos.
  292.  
  293. //pregunta 2:
  294. cout<<"Seleccione el numero del contacto que desea eliminar: ";
  295. cin>>del;
  296. delm=del-1;
  297. h=r+1;
  298.  
  299. if (del<=h)
  300. {
  301. plantilla[delm].Nombre;
  302. plantilla[delm].apellido;
  303. plantilla[delm].numcel;
  304. break;
  305. }else {cout<<"El contacto no existe."<<endl;
  306. system ("PAUSE");}
  307. //fin regunta 2.
  308. system ("PAUSE");
  309.  
  310.  
  311. break;
  312. //fin borrar contactos.
  313. case 3:
  314. rep=1;
  315. break;
  316.  
  317. }
  318.  
  319.  
  320.  
  321. }while (rep==0);
  322.  
  323. break;
  324.  
  325. //termina opciones
  326.  
  327. case 5:
  328. //comienza salida.
  329. cout<< "De Verdad Desea Salir?";
  330. cout<< endl;
  331. cout<< "1.Si. 2.No.";
  332. cout<<endl;
  333. cout<< "opcion: ";
  334. cin>>s;
  335. if (s==1)
  336. {
  337. return EXIT_SUCCESS;
  338. } else {
  339. break;
  340. }
  341.  
  342.  
  343.  
  344.  
  345.  
  346. }
  347.  
  348.  
  349. } while (1<opc || 5>opc);
  350.  
  351. //termina salida.
  352. }
  353.  
« Última modificación: 11 Marzo 2011, 19:33 pm por Littlehorse » En línea

“Es preferible estar expuesto a los inconvenientes que surgen de un exceso de libertad que a los que provienen de una falta de ella.”-Thomas Jefferson

Twitter: @loro11
rommel89

Desconectado Desconectado

Mensajes: 22


Ver Perfil
Re: Ayuda codigo C++ (Agenda)
« Respuesta #16 en: 11 Marzo 2011, 23:58 pm »

Tu error esta es que utilisas la misma variable tanto para elegir las opciones como para salir: dices que si presiono uno opcion=1; y me lleva al caso 1: hago las acciones de ese caso y cuando salgo pregunta en el while() que si opcion es  menor 1 y como 1 no es menor a uno se sale.  y por eso siempre que entres al caso 1 simepre te saldras del programa
En línea

L0R0

Desconectado Desconectado

Mensajes: 18



Ver Perfil
Re: Ayuda codigo C++ (Agenda)
« Respuesta #17 en: 12 Marzo 2011, 07:04 am »

No, pero es que ya no tengo problemas con el menu, bueno en realidad si, uno y es que cuando ingreso una letra el programa colapsa, pero de resto no hay problemas con el menu o por lo menos yo lo corro en mi PC y no tengo problemas....

La duda que tengo ahora es de como debo hacer para eliminar un contacto de la lista y que luego la agenda los vuelva a ordenar..... he pensado hacerlo con strings pero que va la logica no me da.

Quisiera saber si hay alguna forma de que el arreglo quede otra vez sin ningun valor ya sea un entero o una letra, etc.... Gracias!!!
En línea

“Es preferible estar expuesto a los inconvenientes que surgen de un exceso de libertad que a los que provienen de una falta de ella.”-Thomas Jefferson

Twitter: @loro11
Akai


Desconectado Desconectado

Mensajes: 823



Ver Perfil
Re: Ayuda codigo C++ (Agenda)
« Respuesta #18 en: 13 Marzo 2011, 23:21 pm »

La clase "String" es para cadenas de caracteres, no te va a servir si quieres, por ejemplo, tener una lista de objetos de tu clase o estructura persona.

Para ello, tienes dos opciones, utilizar las clases std::list o std::vector Si optas por esto, tendrás un contenedor donde tus objetos estarán y podrás insertar o quitar de forma dinámica, pero ordenarlos queda a tu tarea (a menos que sobrecargues los operadores necesarios para que la lista o el vector los puedan ordenar con sus métodos, mira las referencias que te he puesto).

O bien, implementarte tu propia estructura de tipo lista para poder hacer inserciones y eliminar elementos de forma dinámica y ordenarlos a tu antojo.

PD: mauriciodelos, ¿qué haces citando el post anterior y no diciendo nada más?
« Última modificación: 13 Marzo 2011, 23:23 pm por Akai » En línea

mauriciodelos

Desconectado Desconectado

Mensajes: 28


/*Nada*/


Ver Perfil WWW
Re: Ayuda codigo C++ (Agenda)
« Respuesta #19 en: 14 Marzo 2011, 00:28 am »

No, pero es que ya no tengo problemas con el menu, bueno en realidad si, uno y es que cuando ingreso una letra el programa colapsa
para solucionar eso tendrías que crear un booleano que se active si se teclea algo que no es. Por ejemplo:


Código
  1. ---------
  2.  
  3. // variables opciones 2 borrar
  4. int del;
  5. int delm;
  6. int h;
  7. bool error; /*Declará el booleano (puede ser acá o antes del main, pero siempre antes del do while)*/
  8.  
  9. do
  10. {
  11. system("CLS");
  12. if (error==true){cout<<"Elija una opción real\n\n";error=false;}/*Este if detecta si se activó el error y te da un consejo, también vuelve a error a false por las dudas*/
  13. cout<< "Selecione Su Opcion: ";
  14. cout<< endl;
  15. cout<< "1. Agregar un nuevo Contacto. ";
  16. cout<<endl;
  17. cout<< "2. Ver la lista de Contactos agregados. ";
  18. cout<<endl;
  19. cout<< "3. Buscar contacto por nombre. ";
  20. cout<<endl;
  21. cout<< "4. Opciones. ";
  22. cout<<endl;
  23. cout<< "5. Salir. ";
  24. cout<<endl;
  25. cout<< "Opcion: ";
  26. cin>> opc;
  27. cout<<endl;
  28. if(opc>1||opc>6){error=true;} /*Este if verifica si se escribió alguna de las opciones, o sea, si no es un número del 1 al 6, pone la bandera de error en verdadero y avisa que hay un error*/
  29. rep=0;
  30. system("CLS");
  31.  
  32. ---------------------------------------
  33.  
  34. }
  35.  
  36.  
  37. } while (opc!=5); /*A este while yo lo cambiaría así para que sólo salga cuando presionas la opción 5.*/
  38.  
  39. //termina salida.
  40.  
  41.  


Citar
La duda que tengo ahora es de como debo hacer para eliminar un contacto de la lista y que luego la agenda los vuelva a ordenar..... he pensado hacerlo con strings pero que va la logica no me da. Quisiera saber si hay alguna forma de que el arreglo quede otra vez sin ningun valor ya sea un entero o una letra, etc.... Gracias!!!

Para borrar todos los datos de algun array:

Código
  1. strcpy(nombreDelArrayAborrar,"\0");

Y para acomodarlos podrías crear alguna función que al borrar un contacto, copie el siguiente  a ese lugar, y así sucesivamente hasta acomodarlos todos. ej:

Código
  1. int copiar=NumeroContactoBorrado;//Al elegir cual borrar deberías guardar la selección.
  2.  
  3. strcpy(contacto[copiar],contacto.nombre[copiar+1])//Se copiaría el contenido del siguiente contacto.
  4. strcpy(contacto.nombre[copiar+1],"\0")//Borrar el que ya copiaste
  5. copiar++ //Subir en 1 el numero a copiar, o sea, el que ya copiaste y borraste, lo preparás para copiarle el siguiente.

PD: mauriciodelos, ¿qué haces citando el post anterior y no diciendo nada más?

Jajajajajjajajajaj. Perdón, es que estaba respondiendo y en vez de presionar alt+p para previsualizar, aprete alt+s. Y ni si quiera había empezado.

En línea

El fanatismo es la máxima estupidez humana.
Páginas: 1 [2] 3 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
ayuda con una agenda
Java
fredycruz 1 3,708 Último mensaje 23 Abril 2010, 22:34 pm
por Debci
ayuda para eliminar un dato de una agenda, en c
Dudas Generales
alexander-pedro 1 2,396 Último mensaje 11 Julio 2013, 23:04 pm
por Caster
ayuda para eliminar un dato de una agenda, en c
Programación C/C++
alexander-pedro 5 9,834 Último mensaje 16 Julio 2013, 11:00 am
por aguml
ayuda a subir foto en mi agenda en php
PHP
jelsir 1 1,894 Último mensaje 7 Octubre 2013, 00:31 am
por GenR_18
ayuda con búsqueda en agenda y panel de ayuda
Java
juan_1 1 1,839 Último mensaje 29 Mayo 2020, 12:18 pm
por rub'n
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines