Autor
|
Tema: Ayuda codigo C++ (Agenda) (Leído 20,833 veces)
|
Edu
Desconectado
Mensajes: 1.082
Ex XXX-ZERO-XXX
|
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
Mensajes: 18
|
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
Mensajes: 3.034
|
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?? #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
Mensajes: 1.082
Ex XXX-ZERO-XXX
|
Y acuerdate q el switch tiene un default: podrias usarlo
|
|
|
En línea
|
|
|
|
dato000
Desconectado
Mensajes: 3.034
|
ups, bueno, aún así funciona, digamos que lo mejor es ponerlo.
|
|
|
En línea
|
|
|
|
L0R0
Desconectado
Mensajes: 18
|
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!!! #include <cstdlib> #include <iostream> using namespace std; struct Persona { char Nombre[65]; char apellido[65]; char numcel[65]; }plantilla[100]; int main(int argc, char *argv[]) { int opc; /// variables opcion nuevo contacto: int r; int cont=0; /// sirve tambien para opcion 2 y 3. /// variable opcion lista de contactos: int a; int tr; //// variable opcion de salida: int s; //// variables opcion buscador: char buscont[65]; int bus1; int bus2; int vrf=0; //// Variables opcion Opciones: int op; int rep; ///variable opciones 1 modificar int g; int val; int va; int mod; int op1; // variables opciones 2 borrar int del; int delm; int h; do { system("CLS"); cout<< "Selecione Su Opcion: "; cout<< endl; cout<< "1. Agregar un nuevo Contacto. "; cout<<endl; cout<< "2. Ver la lista de Contactos agregados. "; cout<<endl; cout<< "3. Buscar contacto por nombre. "; cout<<endl; cout<< "4. Opciones. "; cout<<endl; cout<< "5. Salir. "; cout<<endl; cout<< "Opcion: "; cin>> opc; cout<<endl; rep=0; system("CLS"); switch (opc) { //Comienza agregar contactos. case 1: r=cont++; cout<< "Agregue el nombre del nuevo contacto: "; cin>> plantilla[r].Nombre; cout<<endl; cout<< "Agregue el apellido del nuevo contacto: "; cin>> plantilla[r].apellido; cout<<endl; cout<< "Agregue el numero movil del nuevo contacto: "; cin>> plantilla[r].numcel; cout<<endl; system("CLS"); break; //termina agregar contactos. case 2: //comienza lista de contactos. cout<< "Lista de Contactos: "; cout<< endl; if (cont==0) { cout<< "Lista de contactos vacia."; cout<<endl; system ("PAUSE"); system("CLS"); break; } else { for(a=0;a<r+1;a++) { tr=a; cout<< tr+1<< ". "; cout<< plantilla[a].Nombre; cout<<endl; } system("PAUSE"); system("CLS"); break; } //termina lista de contactos. case 3: //comienza buscar contactos. cout<< "Igrese el nombre que desea buscar: "; cin>> buscont; cout<<endl; if (cont==0) { cout<< "Lista de contactos vacia."; cout<<endl; system ("PAUSE"); system("CLS"); break; } for(bus1=0;bus1<r+1;bus1++) { if (strcmp(plantilla[bus1].Nombre,buscont)==0) { cout<<"Resulatdo Encontrado: "<<endl; cout<<"Nombre: "<<plantilla[bus1].Nombre<<endl; cout<<"Apellido: "<<plantilla[bus1].apellido<<endl; cout<<"Numero Movil: "<<plantilla[bus1].numcel<<endl; vrf=1; cout<<endl; } } if (vrf==0) { cout<<"Resultado No Encontrado....."<<endl; } system ("PAUSE"); vrf=0; break; //termina buscar contactos. case 4: //comienza opciones. do { system ("CLS"); cout<<"Eliga su nueva opcioc: "<<endl; cout<<"1.Modificar contacto."<<endl; cout<<"2.Borrar contacto. "<<endl; cout<<"3.Menu principal. "<<endl; cout<<"Opcion: "; cin>>op; system ("CLS"); switch(op) { case 1: //modificar contactos: //lista contactos: cout<< "Lista de Contactos: "; cout<< endl; if (cont==0) { cout<< "Lista de contactos vacia."; cout<<endl; system ("PAUSE"); system("CLS"); break; } else { for(a=0;a<r+1;a++) { tr=a; cout<< tr+1<< ". "; cout<< plantilla[a].Nombre; cout<<endl; } } //fin lista contactos. //pregunta 1: cout<<"Seleccione el numero del contacto que desea modificar: "; cin>>val; mod=val-1; g=r+1; if (val<=g) { //opcion modificar contacto: do { system ("CLS"); cout<<"Contacto:"<<endl; cout<<"1. Nombre: "<<plantilla[mod].Nombre<<endl; cout<<"2. Apellido: "<<plantilla[mod].apellido<<endl; cout<<"3. Numero Movil: "<<plantilla[mod].numcel<<endl; cout<<"4. Menu anterior."<<endl; cout<<"Seleccione la opcion que desea modificar: "; cin>>op1; switch (op1) { case 1: cout<< "Modifique el nombre del contacto: "; cin>> plantilla[mod].Nombre; cout<<endl; break; case 2: cout<< "Modifique el apellido del contacto: "; cin>> plantilla[mod].apellido; cout<<endl; break; case 3: cout<< "Modifique el numero de movil del contacto: "; cin>> plantilla[mod].numcel; cout<<endl; break; case 4: rep=1; break; } }while (rep==0);//fin modificar contacto. }else {cout<<"El contacto no existe."<<endl; system ("PAUSE");} rep=0; //fin pregunta 1. break; //fin modificar contactos. case 2: //borrar contactos. //lista contactos: cout<< "Lista de Contactos: "; cout<< endl; if (cont==0) { cout<< "Lista de contactos vacia."; cout<<endl; system ("PAUSE"); system("CLS"); break; } else { for(a=0;a<r+1;a++) { tr=a; cout<< tr+1<< ". "; cout<< plantilla[a].Nombre; cout<<endl; } } //fin lista contactos. //pregunta 2: cout<<"Seleccione el numero del contacto que desea eliminar: "; cin>>del; delm=del-1; h=r+1; if (del<=h) { plantilla[delm].Nombre; plantilla[delm].apellido; plantilla[delm].numcel; break; }else {cout<<"El contacto no existe."<<endl; system ("PAUSE");} //fin regunta 2. system ("PAUSE"); break; //fin borrar contactos. case 3: rep=1; break; } }while (rep==0); break; //termina opciones case 5: //comienza salida. cout<< "De Verdad Desea Salir?"; cout<< endl; cout<< "1.Si. 2.No."; cout<<endl; cout<< "opcion: "; cin>>s; if (s==1) { return EXIT_SUCCESS; } else { break; } } } while (1<opc || 5>opc); //termina salida. }
|
|
« Ú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
Mensajes: 22
|
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
Mensajes: 18
|
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
Mensajes: 823
|
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
Mensajes: 28
/*Nada*/
|
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: --------- // variables opciones 2 borrar int del; int delm; int h; bool error; /*Declará el booleano (puede ser acá o antes del main, pero siempre antes del do while)*/ do { 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*/ cout<< "Selecione Su Opcion: "; cout<< endl; cout<< "1. Agregar un nuevo Contacto. "; cout<<endl; cout<< "2. Ver la lista de Contactos agregados. "; cout<<endl; cout<< "3. Buscar contacto por nombre. "; cout<<endl; cout<< "4. Opciones. "; cout<<endl; cout<< "5. Salir. "; cout<<endl; cout<< "Opcion: "; cin>> opc; cout<<endl; 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*/ rep=0; --------------------------------------- } } while (opc!=5); /*A este while yo lo cambiaría así para que sólo salga cuando presionas la opción 5.*/ //termina salida.
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: 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:int copiar=NumeroContactoBorrado;//Al elegir cual borrar deberías guardar la selección. strcpy(contacto [copiar ],contacto. nombre[copiar +1])//Se copiaría el contenido del siguiente contacto. strcpy(contacto. nombre[copiar +1],"\0")//Borrar el que ya copiaste 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.
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
ayuda con una agenda
Java
|
fredycruz
|
1
|
3,708
|
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
|
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
|
16 Julio 2013, 11:00 am
por aguml
|
|
|
ayuda a subir foto en mi agenda en php
PHP
|
jelsir
|
1
|
1,894
|
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
|
29 Mayo 2020, 12:18 pm
por rub'n
|
|