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


 


Tema destacado: Visualización gráfica de un ataque DDoS al foro en el año 2009


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse)
| | |-+  hacer que el programa me vuelva a pedir los datos
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: hacer que el programa me vuelva a pedir los datos  (Leído 3,376 veces)
Pwma

Desconectado Desconectado

Mensajes: 3


Ver Perfil
hacer que el programa me vuelva a pedir los datos
« en: 30 Noviembre 2010, 04:09 »

hola
tengo un problema, solo me hace falta hacer q el programa me vuelva a pedir todos los datos pero no se como, me pueden ayudar? aqui esta mi programa:
#include <iostream>
using namespace std;
struct sensores {
int hora;
char  nombre [10];
int presiones;
int temperatura;
};
const int k = 10;
int main () {
sensores als [k];
char opc;
//primera captura
for (int i=0;i<k;i++) {
cout << "indica la hora_"; cin >> als.hora;
cout << "indica nombre del sensor_"; cin >> als.nombre;
cout << "indica presiones_"; cin >> als.presiones;
cout << "indica temperatura_"; cin >> als.temperatura;
}
int caso;
do {
cout << "\ncaso 1 listar: ";
cout << "\ncaso 2 ordenar: ";
cout << "\ncaso 3 salir: ";
cin >> caso;
switch(caso) {
case 1: {for (int j=0; j < k; j++) {
cout << " \nhora: " << als[j]. hora;
cout << " \tnombre: " << als[j]. nombre;
cout << " \tpresiones: " << als[j]. presiones;
cout << " \ttemperatura: " << als[j]. temperatura;
}
}break;
case 2: {
sensores aux;
for (int i=0;i < k; i++)
{ for (int j=i+1;j < k; j++)
{if (als [j].presiones < als .presiones)
{aux = als ;
als = als [j];
als[j] = aux;
}
}
}
} break;
case 3: {} break;
default: {} break;
}
cout << "\n----------------------------------------------------"<<endl;
}while (caso != 3);
}


En línea

Mr.Blue


Desconectado Desconectado

Mensajes: 434



Ver Perfil WWW
Re: hacer que el programa me vuelva a pedir los datos
« Respuesta #1 en: 30 Noviembre 2010, 04:26 »

con un while se hace

ej
Código
  1. do{
  2. puts ("desea seguir? S/N");
  3. gets (opcion);
  4. }while  (opcion != 'N' && opcion != 'S'); // Validacion
  5. while (opccion=='N'){    // Si opcion igual a N termina
  6.  
  7. .-......................
  8. .............
  9. .............
  10. .............
  11. }



En línea

Las ciencias tienen las raíces amargas, pero muy dulces las frutas (Aristóteles)
Pwma

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Re: hacer que el programa me vuelva a pedir los datos
« Respuesta #2 en: 30 Noviembre 2010, 05:20 »

perdon por mi ignorancia, lo incluyo hasta abajo tal y como lo pasaste o tengo q modificarle algo? me aparecen en rojo los opciones =_= gracias.
En línea

Mr.Blue


Desconectado Desconectado

Mensajes: 434



Ver Perfil WWW
Re: hacer que el programa me vuelva a pedir los datos
« Respuesta #3 en: 30 Noviembre 2010, 19:25 »

Código
  1. do{
  2. puts ("desea seguir? S/N");
  3. gets (opcion);
  4. }while  (opcion != 'N' && opcion != 'S'); // Validac
  5.  
  6. while (opccion=='N'){    // Si opcion igual a N termina
  7.  
  8.  
  9.  
  10.  
  11. //Aca todo tu codigo que quieres repetir
  12.  
  13.  
  14.  
  15.  
  16. //antes de cerrar llave tenes q volver a pedir dato
  17. do{
  18. puts ("desea seguir? S/N");
  19. gets (opcion);
  20. }while  (opcion != 'N' && opcion != 'S'); // Validacion para que el usuario no ingrese otro caracter q no sea " N " o " S "
  21. }
En línea

Las ciencias tienen las raíces amargas, pero muy dulces las frutas (Aristóteles)
EddyC

Desconectado Desconectado

Mensajes: 4


Ver Perfil
Re: hacer que el programa me vuelva a pedir los datos
« Respuesta #4 en: 4 Diciembre 2010, 18:26 »

como te dicen aca con un while , podes hacerlo de la siguiente manera
creas una variable entera a la que llamas "flag" o "bandera" y la igualas a 0 , antes de pedir los datos por primera vez haces un while que incluya a todos y que tenga como condicion que tu variable "flag" o "bandera" sea igual a 0 , al final de todo preguntas si desea seguir , si desea seguir el flag lo dejas en 0, si no desea seguir lo pones en 1 y de esa manera ya no te pide mas los datos , me explico ?
En línea

nicolas_cof


Desconectado Desconectado

Mensajes: 348


Into the Wild


Ver Perfil WWW
Re: hacer que el programa me vuelva a pedir los datos
« Respuesta #5 en: 4 Diciembre 2010, 20:00 »

No es buena idea usar gets();

Lo que no hay que hacer en C/C++. Nivel basico

Salu10.
En línea

pitka

Desconectado Desconectado

Mensajes: 25



Ver Perfil
Re: hacer que el programa me vuelva a pedir los datos
« Respuesta #6 en: 5 Diciembre 2010, 13:27 »

yo lo hago de esta forma:

Código
  1. char resp;
  2.  
  3. do
  4. {
  5.  
  6. //Todo tu codigo
  7.  
  8.  
  9. cout <<"Salir? S/N ";
  10. cin >>resp;
  11.  
  12. } while (toupper(resp) != 'S');

En línea

JuszR


Desconectado Desconectado

Mensajes: 2.865


Programming & RI


Ver Perfil
Re: hacer que el programa me vuelva a pedir los datos
« Respuesta #7 en: 5 Diciembre 2010, 22:32 »

Solo lo paso a tu código:

Código
  1. int caso;
  2. do {
  3. cout << "\ncaso 1 listar: ";
  4. cout << "\ncaso 2 ordenar: ";
  5. cout << "\ncaso 3 salir: ";
  6. cin >> caso;
  7. switch(caso) {
  8. case 1: {for (int j=0; j < k; j++) {
  9. cout << " \nhora: " << als[j]. hora;
  10. cout << " \tnombre: " << als[j]. nombre;
  11. cout << " \tpresiones: " << als[j]. presiones;
  12. cout << " \ttemperatura: " << als[j]. temperatura;
  13. }
  14.  
  15. cout << "Listo! Alguna otra operacion? (3 para salir)" << endl;
  16. cin >> caso;
  17.  
  18. }break;
  19. case 2: {
  20. sensores aux;
  21. for (int i=0;i < k; i++)
  22. { for (int j=i+1;j < k; j++)
  23. {if (als [j].presiones < als .presiones)
  24. {aux = als ;
  25. als = als [j];
  26. als[j] = aux;
  27. }
  28. }
  29. }
  30.  
  31.  
  32. cout << "Listo! Alguna otra operacion? (3 para salir)" << endl;
  33. cin >> caso;
  34. }
  35. break;
  36. case 3:
  37.  
  38. cout << "Saliendo.." << endl;
  39.  
  40. break;
  41. default:
  42. cout << "Opcion no valida" << endl;
  43. break;
  44. }
  45. cout << "\n----------------------------------------------------"<<endl;
  46. }
  47.  
  48. while (caso != 3);
  49. }

[Intenta tabular y ordenar más el código, es un poco difícil de entenderlo así.]
« Última modificación: 5 Diciembre 2010, 22:36 por JuszR » En línea

- No programming language is perfect. There is not even a single best language; there are only languages well suited or perhaps poorly suited for particular purposes. [Herbert Mayer]
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Powered by SMF 1.1.19 | SMF © 2006-2008, Simple Machines