Mi segundo programa en c++

Iniciado por elkiy, 15 Junio 2012, 21:05 PM

0 Miembros y 1 Visitante están viendo este tema.

elkiy

Hola posteo mi segundo programa en c++, es un  programa sencillo nomas pero lo comparto ejej, soy nuevo en esto de c++, hace 1 o 2 semanas que estoy estudiando.

Si ejecutan el codigo el Usuario es 1200 y la password tambien.
#include <iostream>

/***** Biblioteca y Objetos usados */

using std::cout;
using std::endl;
using std::cin;

/***** Funciones Principales del programa */

//Funcion Calculadora.

int Calculadora()
{
cout << "              \x11 Sesion Iniciada como: 1200 \x10\n\n";
cout << "Introduce tu opcion\n\n";
int OperacionMatematica;
cout << "1) Sumar\n2) Restar\n3) Multiplicar\n4) Dividir\n\n";
cin >> OperacionMatematica;

if (OperacionMatematica == 1)
{

cout << "\nIngrese los numeros\n\n";
cout << "Primero: ";
float a,b,c;
cin >> a;
cout << "\nSegundo: ";
cin >> b;
c=a+b;
cout << "\nResultado: " << a << " + " << b << " = " << c << endl;
cin.get();
return 0;
}

if (OperacionMatematica == 2)
{
cout << "Ingrese los numeros\n";
cout << "Primero: ";
float a,b,c;
cin >> a;
cout << "\nSegundo: ";
cin >> b;
c=a-b;
cout << "\nResultado: " << a << " - " << b << " = " << c << endl;
cin.get();
return 0;
}

if (OperacionMatematica == 3)
{

cout << "Ingrese los numeros\n";
cout << "Primero: ";
float a,b,c;
cin >> a;
cout << "\nSegundo: ";
cin >> b;
c=a*b;
cout << "\nResultado: " << a << " X " << b << " = " << c << endl;
cin.get();
return 0;
}

if (OperacionMatematica == 4)
{

cout << "Ingrese los numeros\n";
cout << "Primero: ";
float a,b,c;
cin >> a;
cout << "\nSegundo: ";
cin >> b;
c=a/b;
cout << "\nResultado: " << a << " / " << b << " = " << c << endl;
cin.get();
return 0;
}

if (OperacionMatematica > 4 || OperacionMatematica==0)
{

cout << "\n\n\xf El valor ingresado no es Correcto! \xf\n";
cin.get();
return 0;
}

cin.get();
return 0;

}

//Funcion Sesion Iniciada.
int SesionIniciada()
{
cout << "\n\xa8Que desea hacer?\n";
int quedeseahacer;
cout << "Introduzca una de las opciones\n\n";
cout << "1) -Usar la Calculadora\n2) -Saber en que estacion del a\xa4o esta usted\n\n";
cin >> quedeseahacer;
cin.get();

if (quedeseahacer==1)
{
system("cls");
Calculadora();
cin.get();
return 0;
}
if (quedeseahacer==2)
{
int MesActual;
system("cls");
cout << "              \x11 Sesion Iniciada como: 1200 \x10\n\n";
cout << "En que mes esta usted? Introduzca su Opci\xa2n\n\n";
cout << "1-Enero\n2-Febrero\n3-Marzo\n4-Abril\n5-Mayo\n6-Junio\n7-Julio\n";
   cout << "8-Agosto\n9-Septiembre\n10-Octubre\n11-Noviembre\n12-Diciembre\n\n";
cin >> MesActual;

switch (MesActual)
{
 case 1:
 cout << "Estas en: Verano\n";
 cin.get();
 break;

     case 2:
 cout << "Estas en: Verano\n";
 cin.get();
 break;

     case 3:
cout << "\nTu mes elegido ha sido: Marzo\n";
int marzo;
cout << "Que dia es hoy?\n";
cin>> marzo;
if (marzo>20)
{
cout << "Estas en oto\xa4o\n";
}
else
{
cout << "Estas en verano\n";
}
cin.get();
break;

case 4:
cout << "Estas en oto\xa4o\n";
cin.get();
break;

case 5:
cout << "Estas en oto\xa4o\n";
cin.get();
break;

case 6:
cout << "\nTu mes elegido ha sido: Junio\n";
int junio;
cout << "Que dia es hoy?\n";
cin>> junio;
if (junio>20)
{
cout << "Estas en Invierno";
}
else
{
cout << "Estas en oto\xa3o\n";
}
cin.get();
break;

case 7:
cout << "Estas en Inviermo\n";
cin.get();
break;

case 8:
cout << "Estas en Inviermo\n";
cin.get();
break;

case 9:
cout << "\nTu mes elegido ha sido: Septiembre\n";
int septiembre;
cout << "Que dia es hoy?\n";
cin>> septiembre;
if (septiembre>20)
{
cout << "Estas en Primavera";
}
else
{
cout << "Estas en Invierno\n";
}
cin.get();
break;

case 11:
cout << "Primavera";
cin.get();
break;

case 12:
cout << "\nTu mes elegido ha sido: Diciembre\n";
int diciembre;
cout << "Que dia es hoy?\n";
cin>> diciembre;
if (diciembre>20)
{
cout << "Estas en Verano\n";
}
else
{
cout << "Estas en Primavera\n";
}
cin.get();
break;
}

cin.get();
return 0;
}
cin.get();
return 0;
}

/***** Codigo principal del Programa */

int main ()
{
cout << "Por favor Inicie Sesion\n";

// Usuario:
int usuario;
cout << "\nUsuario: ";
cin >> usuario;
cout << endl;

//Contraseña.
int password;
cout << "Password: ";
cin >> password;
cout << endl;
cin.get();

//Entrar.
if (usuario==1200 && password == 1200)
{
system("cls"); // Borro los mensajes de consola
cout << "              \x11 Sesion Iniciada como: 1200 \x10\n";
SesionIniciada();
cin.get();
return 0;
}

if (usuario == 1200 && password !=1200)
{
cout << "Usuario Correcto. Password Incorrecta\n";
cin.get();
return 0;
}
if (usuario != 1200 && password == 1200)
{
cout << "Usuario incorrecto. Password Correcta.\n";
cin.get();
return 0;
}
cin.get();
return 0;
}

david_BS

muy bueno el program, para empezar como es tu caso. te digo un par de consejos ,
cuando tenés muchos casos para evaluar y te importa saber si se da cierto caso sólamente, etnonces te conviene hacer algo como esto


Citarif( primer caso)
else if(segundo caso)
else if(tercer caso)
y así

y si podés evaluar una variable de tipo entero que represente todos los casos en cuestión, entonces podés usar un switch entre casos, así


Citarswitch(selector_de_casos)
{
   caso 1: { } break;
   caso 2: { } break;
}




elkiy

Cita de: david_BS en 15 Junio 2012, 22:57 PM
muy bueno el program, para empezar como es tu caso. te digo un par de consejos ,
cuando tenés muchos casos para evaluar y te importa saber si se da cierto caso sólamente, etnonces te conviene hacer algo como esto


y si podés evaluar una variable de tipo entero que represente todos los casos en cuestión, entonces podés usar un switch entre casos, así






Gracias lo tendré en cuenta!!

Roberto Herrera

Sumando a lo que dice david_BS, creo que en la parte de //Entrar. deberias eliminar el 2do y 3er if y poner un else que imprima: Usuario y/o password incorrecto, ya que el operador && solo dara paso si ambas se cumplen.

Aqui lo que te digo:

Código (cpp) [Seleccionar]

//Entrar.
if (usuario==1200 && password == 1200)
{
system("cls"); // Borro los mensajes de consola
cout << "              \x11 Sesion Iniciada como: 1200 \x10\n";
SesionIniciada();
cin.get();
return 0;
}
else
{
cout << "Usuario y/o password incorrecto\n";
cin.get();
return 0;
}

overxfl0w13

Y para añadir, en vez de declarar el namespace para cada uno, puedes ahorrarte un par de lineas con:

using namespace std;

Además, otra buena práctica es declarar prototipos de funciones para evitarte tener que definir las funciones siguiendo el orden exacto en el cual se ejecuta.

Un saludo y muy bueno :)
[/url]