Foros del Web » Programación para mayores de 30 ;) » .NET »

Necesito-Ayuda para reducir codigo c#

Estas en el tema de Necesito-Ayuda para reducir codigo c# en el foro de .NET en Foros del Web. Estoy trabajando en una encuesta de 5 preguntas con opciones multiples de respuesta pero me ha salido vastante codigo con varios if y me gustaria ...
  #1 (permalink)  
Antiguo 19/02/2013, 15:27
 
Fecha de Ingreso: abril-2011
Ubicación: Morazan
Mensajes: 27
Antigüedad: 13 años
Puntos: 0
Necesito-Ayuda para reducir codigo c#

Estoy trabajando en una encuesta de 5 preguntas con opciones multiples de respuesta pero me ha salido vastante codigo con varios if y me gustaria saber si puedo evitar digitar los mismo(reducir codigo para que se vea mas ordenado), usando algun metodo o de otra forma:
anexo el codigo que tengo hasta ahorita:

static void Main(string[] args)
{


Double p1a = 0;
int p1b = 0,p1c = 0
,p2a = 0,p2b = 0,p2c = 0
,p3a = 0,p3b = 0,p3c = 0
,p4a = 0,p4b = 0,p4c = 0
,p5a = 0,p5b = 0,p5c = 0;
Double porcenc;
int encuesta = 0;
bool Rp1 = true,Rp2 = true,Rp3 = true, Rp4 = true, Rp5= true;
while (true) // repeticion indefinida
{
while (Rp1 == true)
{
encuesta += 1;//contador numero encuestas
Console.WriteLine("Encuesta: "+encuesta);
//Pregunta 1
Console.WriteLine("1- ¿Te gustan la bebidas gaseosas?:" + "\n\n a- no" + "\n b- si" + "\n c- Talvez"); // captura

Console.WriteLine("\nDigite una opcion(a,b o c) para continuar con la siguiente pregunta o exit para terminar");
string line = Console.ReadLine(); // toma valor digitado
if (line == "a" || line == "b" || line == "c")
{

Rp1 = false;
}
if (line == "exit") // Chequea si desa terminar
{

return;
}
else
Console.Clear();
Console.WriteLine(line + "\tno es una opcion valida\n");//evalua respuesta valida


if (line == "a")
{
p1a += 1;
Console.Clear();//Limpia pantalla

Console.WriteLine(" Escogiste la opcion:'a'="+p1a);
}
if (line == "b")
{
p1b += 1;
Console.Clear();//Limpia pantalla

Console.WriteLine(" Escogiste la opcion:'b' ="+p1b);
}
if (line == "c")
{
p1c += 1;
Console.Clear();//Limpia pantalla
Console.WriteLine("Repuesta c ="+p1c);

}
}

//pregunta 2
while (Rp2 == true)
{
Console.WriteLine("\n2- ¿Cual es tu sabor favorito?:" + "\n\n a- Coca" + "\n b- Pepsi" + "\n c- Otro");


Console.WriteLine("Digite una opcion(a,b o c) para continuar con la siguiente pregunta o exit para terminar");
string line2 = Console.ReadLine(); // Tomando dato
if (line2 == "a" || line2 == "b" || line2 == "c")
{

Rp2 = false;
}
if (line2 == "exit") // Chequea si desa terminar
{

return;
}
else
Console.Clear();
Console.WriteLine(line2 + "\tno es una opcion valida\n");//evalua respuesta valida


if (line2 == "a")
{
p2a += 1;
Console.Clear();//Limpia pantalla
Console.WriteLine("Repuesta a =" + p2a);
}
if (line2 == "b")
{
p2b += 1;
Console.Clear();//Limpia pantalla
Console.WriteLine("Repuesta b =" + p2b);
}
if (line2 == "c")
{
p2c += 1;
Console.Clear();//Limpia pantalla
Console.WriteLine("Repuesta c =" + p2c);
}
}
//pregunta 3
while (Rp3 == true)
{
Console.WriteLine("\n3- ¿Cuantas veces al dia la consumes?:" + "\n\n a- Una" + "\n b- Mas" + "\n c- Menos");

Console.WriteLine("Digite una opcion(a,b o c) para continuar con la siguiente pregunta o exit para terminar");
string line3 = Console.ReadLine(); // Tomando datos
if (line3 == "a" || line3 == "b" || line3 == "c")
{

Rp3 = false;
}
if (line3 == "exit") // Chequea si desa terminar
{

return;
}
else
Console.Clear();
Console.WriteLine(line3 + "\tno es una opcion valida\n");//evalua respuesta valida


if (line3 == "a")
{
p3a += 1;
Console.Clear();//Limpia pantalla
Console.WriteLine("Repuesta 3a =" + p3a);
}
if (line3 == "b")
{
p3b += 1;
Console.Clear();//Limpia pantalla
Console.WriteLine("Repuesta 3b =" + p3b);
}
if (line3 == "c")
{
p3c += 1;
Console.Clear();//Limpia pantalla
Console.WriteLine("Repuesta 3c =" + p3c);
}
}

//pregunta 4
while (Rp4 == true)
{
Console.WriteLine("\n4- ¿Cuantas veces a la semana la consumes?:" + "\n\n a- Una" + "\n b- Mas" + "\n c- Menos");

Console.WriteLine("Digite una opcion(a,b o c) para continuar con la siguiente pregunta o exit para terminar");
string line4 = Console.ReadLine(); // tomando datos
if (line4 == "a" || line4 == "b" || line4 == "c")
{

Rp4 = false;
}
if (line4 == "exit") // Chequea si desa terminar
{

return;
}
else
Console.Clear();
Console.WriteLine(line4 + "\tno es una opcion valida\n");//evalua respuesta valida

if (line4 == "a")
{
p4a += 1;
Console.Clear();//Limpia pantalla
Console.WriteLine("Repuesta 4a =" + p4a);
}
if (line4 == "b")
{
p4b += 1;
Console.Clear();//Limpia pantalla
Console.WriteLine("Repuesta 4b =" + p4b);
}
if (line4 == "c")
{
p4c += 1;
Console.Clear();//Limpia pantalla
Console.WriteLine("Repuesta 4c =" + p4c);
}
  #2 (permalink)  
Antiguo 22/02/2013, 20:53
 
Fecha de Ingreso: diciembre-2011
Ubicación: CABA
Mensajes: 433
Antigüedad: 12 años, 4 meses
Puntos: 94
Respuesta: Necesito-Ayuda para reducir codigo c#

C# va en programacion general
  #3 (permalink)  
Antiguo 25/02/2013, 02:23
 
Fecha de Ingreso: febrero-2013
Mensajes: 9
Antigüedad: 11 años, 2 meses
Puntos: 0
De acuerdo Respuesta: Necesito-Ayuda para reducir codigo c#

usa un metodo y de parametos las posibles respuestas ejemplo:
private void Pregunta(string pregunta,string pos1,string pos2, string pos3, string pos4,ConsoleKey eligue)
{
Console.WriteLine(pregunta);
Console.WriteLine(pos1);
Console.WriteLine(pos2);
Console.WriteLine(pos3);
Console.WriteLine(pos4);
Console.WriteLine("Con el teclado Seleccione la respuesta Correcta: ");
ConsoleKey tecla = Console.ReadKey(true).Key;
if(tecla==eligue)
{
Console.Write("Correcto");
//si quieres aki le mandas un contador para saber cuantas contesta bien
}
else
{
Console.Write("Incorrecto");
}
}

Espero que te sirva voy a ayudar a compartir codigo buscame en mi canal in4on de youtube ahorita no hay nada pero suscribete que desde la proxima semana subire mucha info

Última edición por oharryo; 25/02/2013 a las 02:25 Razón: olvide
  #4 (permalink)  
Antiguo 25/02/2013, 18:35
Avatar de drako_darpan  
Fecha de Ingreso: octubre-2008
Ubicación: Sinaloa
Mensajes: 617
Antigüedad: 15 años, 6 meses
Puntos: 58
Respuesta: Necesito-Ayuda para reducir codigo c#

Hola que tal, bueno en vez de utilizar tanto " IF " puedes utilizar también un switch, se me hace que te reduce mucho codigo.

Si utilizas RadioButton, puedes poner la validacion directa en cada uno, asi también puedes ahorrar mucho codigo.


Etiquetas: c-c++, int, reducir, string
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:29.