¿Qué hacer? en C++

10:07 pm Programación

Aquí tienen la versión (mi versión, claro) de C++ de un programa que nos ayudará para cuando estemos indecisos. Cuantas veces nos ha pasado que no sabes que hacer, con esto, escogemos tres opciones y nuestra computadora con ayuda de números aleatorios nos va decir que hacer.

#include <iostream>
#include <cstdlib>
#include <ctime>

using namespace std;

class QueHacer
{
	public:
		QueHacer(char [], char [], char []);

	private:
		int sugerir;
};

QueHacer::QueHacer(char opc1[], char opc2[], char opc3[])
{
	srand( time(0) );
	sugerir = 1 + rand() % 3;
	if( sugerir == 1 )
	{
		cout<<"Hacer: "<< opc1 << endl;

	}
	else if( sugerir == 2 )
	{
		cout<<"Hacer: "<< opc2 << endl;
	}
	else if( sugerir == 3 )
	{
		cout<<"Hacer: "<< opc3 << endl;
	}
	else
	{
		cout<<" Sopenco!";
	}
}

int main(int argc, char *argv[])
{
	if(argc != 4 )
	{
		cout<<"Uso: ./que_hacer [opc1] [opc2] [opc3]"<<endl;
		while( cin.get() != '\n' );
	}
	else
	{
		QueHacer obj( argv[1], argv[2], argv[3] );
	}
	return 0;
}

Ejemplo:

soullost@UnderHouse ~/c++/tmp $ g++ que_hacer.cxx -o que_hacer
soullost@UnderHouse ~/c++/tmp $ ./que_hacer "Ir a desayunar" "Seguir en la pc" "Ir a dormir"
Hacer: Ir a desayunar

La idea se ha iniciado en los foros de Picando Codigo (con un script de shell en bash), después fernando lo ha puesto en su blog. Unos días más tarde, hugo_dc lo ha pasado en python y ahora, yo lo he escrito en C++.

Esto podría convertirse en una meme para programadores :lol: y tal vez, podría competir con el ya famoso: Hola Mundo!!..

PD: Por ahora, hoy no he tenido dolores de cabeza :) .

Califica el tema:
1 Star2 Stars3 Stars4 Stars5 Stars (1 votes, average: 1 out of 5)
Loading ... Loading ...

Temas Relacionados:
  • ¿Qué son los Feeds?
  • Cuanto tardan las mujeres? (cálculos)
  • rompecabezas martirizante… x_X
  • ¿Adicción?
  • ¿Dónde están los ingenieros de software del mañana?
  • 5 Responses

    1. Marioly Says:

      Inventiva forma de usar rand :D

      Podria editarse para que tomara los argumentos que fueran, como:

      #include
      #include 
      
      using namespace std;
      
      class QueHacer
      {
      	public:
      		QueHacer(int, char *[]);
      
      	private:
      		int sugerir;
      };
      
      QueHacer::QueHacer(int argc, char *argv[])
      {
      	srand( time(0) );
      	sugerir = 1 + rand() % (argc-1);
      	if( argv[sugerir] != NULL )
      	{
              cout << "Hacer: " << argv[sugerir] << endl;
          }
          else
          {
              cout << "Sopenco!";
          }
      }
      
      int main(int argc, char *argv[])
      {
      	if(argc < 3 )
      	{
      		cout<<"Uso: ./que_hacer [opc1] [opc2] [opc3]"<<endl;
      		while( cin.get() != '\n' );
      	}
      	else
      	{
      		QueHacer obj( argc, argv );
      	}
      	return 0;
      }
      

      :)

      Curiosidades:
      Java

      public class QueHacer {
      	static public void main(String[] args)
      	{
      		if( args.length < 3 )
      		{
      			System.out.println("Uso: ./ [opc1] [opc2] [opc3]");
      		}
      		else
      		{
      			int i = (int)(args.length*Math.random());
      			System.out.println("Que hacer: " + args[i]);
      		}
      	}
      }
      

      C#

      namespace ConsoleApplication
      {
          class Program
          {
              static void Main(string[] args)
              {
                  if (args.Length < 2)
                  {
                      Console.WriteLine("Uso: ./ [opc1] [opc2] [opc3]");
                  }
                  else
                  {
                      Random rand = new Random();
                      int i = rand.Next(0, args.Length);
      
                      Console.WriteLine("Hacer: {0}", args[i]);
                  }
              }
          }
      }
      

      :P

      Espero sigas mejor de tus jaquecas :)

    2. soullost Says:

      Marioly muy bueno :P , lastima que no tengas blog para seguir con la cadenita :( . También pensé pasarlo a c-sharp (porque lo voy a usar últimamente) pero, la idea era pasarlo a uno solo xD.

      Que leet, optimizaste las líneas de código xD, yo, a simple vista no lo vi :o .

      Ojalá sea migraña ;D .

    3. Memo Says:

      Que geek he soullost

      Ya aporté a la cadenita!!

      Acá mi aportación

    4. soullost Says:

      Un poco geek dirás. Ya he comentado por tu blog, saludos. :)

    5. th3r0rn Says:

      Diablos no comprendo todo ese codigo solo algunas cosas 8_8

    Leave a Comment

    Your comment

    You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

    Please note: Comment moderation is enabled and may delay your comment. There is no need to resubmit your comment.