
24/02/2013, 20:02
|
| | Fecha de Ingreso: abril-2011 Ubicación: Morazan
Mensajes: 27
Antigüedad: 13 años, 11 meses Puntos: 0 | |
Necesito reducir o ordenar codigo c# Desarrollar un programa en C#.
• El programa deberá formular 5 preguntas de una encuesta con opciones múltiples.
• Deberá permitir tantas encuestas como sea necesario.
• Deberá tabular los resultados obtenidos al correr el programa:
Calcular el número de encuestas realizadas.
Numero de respuestas obtenidas de cada opción múltiple en cada pregunta y los porcentajes que le corresponden de acuerdo al número de encuestas.
Este es el codigo que tengo(he quitado las preguntas 2,3 y 4 por llevar mucho espacio y pues por ser lo mismo que en la primera ) hecho pero quiero reducirlo ya sea con metodo o de otra manera y ordenarlo les pido ayuda
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace TareaTLP
{
class Program
{
static void Main(string[] args)
{
int encuesta = 0;
StringBuilder MyStringBuilder = new StringBuilder("\nDigite una opcion (a,b o c) luego 'Enter' para continuar con la siguiente pregunta o exit para terminar");
StringBuilder SBOpcionInvalida = new StringBuilder("\tno es una opcion valida o bloq mayusculas esta activo\n");
Double p1a = 0, p1b = 0, p1c = 0, p2a = 0, p2b = 0, p2c = 0, p3a = 0
, p3b = 0, p3c = 0, p4a = 0, p4b = 0, p4c = 0, p4d = 0, p5a = 0
, p5b = 0, p5c = 0;
Double porcenc;
bool Rp1 = true, Rp2 = true, Rp3 = true, Rp4 = true, Rp5 = true;//variables control Repeticion cada pregunta
while (true) // repeticion indefinida de todo el programa
{
encuesta += 1;//contador numero encuestas
StringBuilder SBEncuesta = new StringBuilder("Encuesta: " + encuesta +"\n");
while (Rp1 == true)// Si es true se repite la pregunta
{
Console.WriteLine(SBEncuesta);
//Pregunta 1
Console.WriteLine("1- ¿Usted Consume bebidas gaseosas?:" + "\n\n a- Si" + "\n b- No" + "\n c- Pocas veces");
Console.WriteLine(MyStringBuilder);
string line = Console.ReadLine(); // captura valor digitado
if (line == "a" || line == "b" || line == "c")//compara si el valor esta dentro de los parametros permitidos
{
Rp1 = false;//Si el valor esta dentro de los parametros el while no se cumple y sigue la siguiente pregunta
}
switch (line)
{
case "a":
p1a += 1;
Console.Clear();//Limpia pantalla
break;
case "b":
p1b += 1;
Console.Clear();//Limpia pantalla
break;
case "c":
p1c += 1;
Console.Clear();//Limpia pantalla
break;
case "exit":
return;
default:
Console.Clear();
Console.WriteLine(line + SBOpcionInvalida);// si no esta dentro de los parametros se advierte
break;
}
}
//pregunta 5
while (Rp5 == true)
{
Console.WriteLine(SBEncuesta);
Console.WriteLine("\n5- ¿Cuantas bebidas gaseosas consume al dia?:" + "\n\n a- Una" + "\n b- Dos" + "\n c- Mas de dos");
Console.WriteLine(MyStringBuilder);
string line = Console.ReadLine(); // Tomando datos
if (line == "a" || line == "b" || line == "c" )
{
Rp5 = false;
}
else
{
Console.Clear();
Console.WriteLine(line + SBOpcionInvalida);//evalua respuesta valida
}
switch (line)
{
case "a":
p5a += 1;
Console.Clear();//Limpia pantalla
break;
case "b":
p5b += 1;
Console.Clear();//Limpia pantalla
break;
case "c":
p5c += 1;
Console.Clear();//Limpia pantalla
break;
}
}
Console.WriteLine("Presione Enter para continuar con otra encuesta o exit para terminar");
string linef = Console.ReadLine(); // Tomando datos
if (linef == "exit") // Chequea si desa terminar
{
porcenc = 100;
Console.WriteLine("1- ¿Usted consume bebidas gaseosas? ");
//Respuestas pregunta 1
//1 opcion a
p1a = Math.Round(((porcenc / encuesta ) * p1a), 2);
Console.WriteLine("\n\ta-Si " + p1a + " %");
//1 opcion b
p1b = Math.Round(((porcenc / encuesta ) * p1b), 2);
Console.WriteLine("\tb-No " + p1b + " %");
//1 opcion c
p1c = Math.Round(((porcenc / encuesta ) * p1c), 2);
Console.WriteLine("\tc-Pocas veces " + p1c + " %\n");
//Resultados pregunta 2
Console.WriteLine("2- ¿Que lo induce a consumir bebidas gaseosas? ");
//2 opcion a
p2a = Math.Round(((porcenc / encuesta ) * p2a), 2);
Console.WriteLine("\n\ta-El sabor " + p2a + " %");
//2 opcion b
p2b = Math.Round(((porcenc / encuesta ) * p2b), 2);
Console.WriteLine("\tb-La sed " + p2b + " %");
//2 opcion c
p2c = Math.Round(((porcenc / encuesta ) * p2c), 2);
Console.WriteLine("\tc-Otro " + p2c + " %\n");
//Resultados pregunta 3
Console.WriteLine("3- ¿Que sabor prefiere? ");
//3 opcion a
p3a = Math.Round(((porcenc / encuesta ) * p3a), 2);
Console.WriteLine("\n\ta-Colas " + p3a + " %");
//3 opcion b
p3b = Math.Round(((porcenc / encuesta ) * p3b), 2);
Console.WriteLine("\tb-De sabores " + p3b + " %");
//3 opcion c
p3c = Math.Round(((porcenc / encuesta ) * p3c), 2);
Console.WriteLine("\tc-Otras " + p3c + " %\n");
//Resultados pregunta 4
Console.WriteLine("4- ¿En que ocasion la consume? ");
//4 opcion a
p4a = Math.Round(((porcenc / encuesta ) * p4a), 2);
Console.WriteLine("\n\ta-Desayuno " + p4a + " %");
//4 opcion b
p4b = Math.Round(((porcenc / encuesta ) * p4b), 2);
Console.WriteLine("\tb-Almuerzo " + p4b + " %");
//4 opcion c
p4c = Math.Round(((porcenc / encuesta ) * p4c), 2);
Console.WriteLine("\tc-Cena " + p4c + " %");
//4 opcion d
p4d = Math.Round(((porcenc / encuesta ) * p4d), 2);
Console.WriteLine("\tc-Otro " + p4d + " %\n");
//Resultados pregunta 5
Console.WriteLine("5- ¿Cuantas bebidas gaseosas consume al dia? ");
//5 opcion a
p5a = Math.Round(((porcenc / encuesta ) * p5a), 2);
Console.WriteLine("\n\ta-Una " + p5a + " %");
//5 opcion b
p5b = Math.Round(((porcenc / encuesta ) * p5b), 2);
Console.WriteLine("\tb-Dos " + p5b + " %");
//5 opcion c
p5c = Math.Round(((porcenc / encuesta ) * p5c), 2);
Console.WriteLine("\tc-Mas de dos " + p5c + " %\n");
Console.WriteLine("\nse realizaron " + encuesta + " encuestas");
return;
}
Rp1 = true;
Rp2 = true;
Rp3 = true;
Rp4 = true;
Rp5 = true;
}
}
}
} |