Esempio n. 1
0
        static void Main(string[] args)
        {
            var diasFestivos = DiasFestivos.Get;

            foreach (var dia in diasFestivos)
            {
                string format = "Feliz día {0}, aqui va tu premio!";

                switch (dia.Value)
                {
                case Personal.Secretaria:
                    Console.Write(string.Format(format, Personal.Secretaria));
                    Secretarias.Send(new Gift());
                    break;

                case Personal.GDP:
                    Console.Write(string.Format(format, Personal.GDP));
                    GDPs.Send(new Gift());
                    break;

                case Personal.Mujer:
                    Console.Write(string.Format(format, Personal.Mujer));
                    Mujeres.Send(new Gift());
                    break;

                case Personal.Programador:
                    Console.Write(string.Format(format, Personal.Programador));
                    Programadores.Send(new Issue());
                    break;
                }
            }
        }
Esempio n. 2
0
    static void Main()
    {
        const int MAX = 1000;

        Programadores[] prog     = new Programadores[MAX];
        int             cantidad = 0;
        char            op       = '0';

        do
        {
            Console.WriteLine("1- Nuevo programador");
            Console.WriteLine("2- Buscar programadores");
            Console.WriteLine("3- Ver detalles de programador");
            Console.WriteLine("4- Modificar datos de progamador");
            Console.WriteLine("5- Borrar un registro");
            Console.WriteLine("6- Estadísticas generales");
            Console.WriteLine("7- Estadísticas de habilidades");
            Console.WriteLine("T- Salir");
            Console.WriteLine();
            Console.WriteLine("Elige una opción: ");
            op = Convert.ToChar(Console.ReadLine());

            switch (op)
            {
            case '1':
                if (cantidad >= MAX)
                {
                    Console.WriteLine("Lista llena");
                }
                else
                {
                    Console.WriteLine("Añadiendo en la posición: " + (
                                          cantidad + 1));

                    string nombre;
                    do
                    {
                        Console.Write("Nombre: ");
                        nombre = Console.ReadLine();
                        if (nombre != "")
                        {
                            prog[cantidad].nombre = nombre;
                        }
                        else
                        {
                            Console.WriteLine("El campo no puede estar vacío");
                        }
                    } while (nombre == "");

                    string hab;
                    do
                    {
                        Console.Write("Habilidades: ");
                        hab = Console.ReadLine();
                        if (hab != "")
                        {
                            prog[cantidad].hab = hab;
                        }
                        else
                        {
                            Console.WriteLine("El campo no puede estar vacío");
                        }
                    } while (hab == "");

                    Console.Write("Año de nacimiento (0 si no se sabe): ");
                    prog[cantidad].anyo = Convert.ToUInt16(Console.ReadLine());


                    char plantilla = 'x';
                    do
                    {
                        Console.Write("Está en plantilla? (s/n): ");
                        plantilla = Convert.ToChar(Console.ReadLine().ToUpper());


                        if (plantilla == 'S')
                        {
                            prog[cantidad].plant = true;
                        }
                        else if (plantilla == 'N')
                        {
                            prog[cantidad].plant = false;
                        }
                        else
                        {
                            Console.WriteLine("Opción no válida");
                        }
                    } while (plantilla != 'S' && plantilla != 'N');

                    Console.Write("Comentarios(Puede estar vacío): ");
                    prog[cantidad].com = Console.ReadLine();

                    for (int i = 0; i < cantidad - 1; i++)
                    {
                        for (int j = i + 1; j < cantidad; j++)
                        {
                            if (prog[i].nombre.ToUpper().CompareTo(
                                    prog[j].nombre.ToUpper()) > 0)
                            {
                                Programadores aux = prog[i];
                                prog[i] = prog[j];
                                prog[j] = aux;
                            }
                            else if (prog[i].nombre.ToUpper().CompareTo(
                                         prog[j].nombre.ToUpper()) == 0)
                            {
                                if (prog[i].anyo > prog[j].anyo)
                                {
                                    Programadores aux = prog[i];
                                    prog[i] = prog[j];
                                    prog[j] = aux;
                                }
                            }
                        }
                    }

                    Console.WriteLine("Dato añadido y ordenado");
                    cantidad++;
                }
                break;

            case '2':
                char nh;
                bool encontrado = false;
                do
                {
                    Console.Write("Por nombre o por habilidad? (n/h): ");
                    nh = Convert.ToChar(Console.ReadLine().ToUpper());


                    if (nh == 'N')
                    {
                        Console.Write("Introduce nombre: ");
                        string bNom = Console.ReadLine();
                        int    reg  = 1;
                        for (int i = 0; i < cantidad; i++)
                        {
                            if (prog[i].nombre.ToUpper().Contains(bNom.ToUpper()))
                            {
                                Console.Write(reg + " - " +
                                              prog[i].nombre + " - " +
                                              prog[i].hab + " - ");
                                if (prog[i].plant == true)
                                {
                                    Console.Write("Plantilla: SI");
                                }
                                else
                                {
                                    Console.Write("Plantilla: NO");
                                }
                                Console.WriteLine();
                                reg++;
                                encontrado = true;
                                if (reg % 22 == 21)
                                {
                                    Console.ReadLine();
                                }
                            }
                        }
                        if (!encontrado)
                        {
                            Console.WriteLine("No se han encontrado resultados");
                        }
                    }
                    else if (nh == 'H')
                    {
                        Console.Write("Introduce habilidad: ");
                        string bHab = Console.ReadLine();
                        int    reg  = 1;
                        for (int i = 0; i < cantidad; i++)
                        {
                            if (prog[i].hab.ToUpper().Contains(bHab.ToUpper()))
                            {
                                Console.Write(reg + " - " +
                                              prog[i].nombre + " - " +
                                              prog[i].hab + " - ");
                                if (prog[i].plant == true)
                                {
                                    Console.Write("Plantilla: SI");
                                }
                                else
                                {
                                    Console.Write("Plantilla: NO");
                                }
                                Console.WriteLine();
                                reg++;
                                encontrado = true;
                                if (reg % 22 == 21)
                                {
                                    Console.ReadLine();
                                }
                            }
                        }
                        if (!encontrado)
                        {
                            Console.WriteLine("No se han encontrado resultados");
                        }
                    }
                    else
                    {
                        Console.WriteLine("Opción no válida");
                    }
                } while (nh != 'N' && nh != 'H');
                break;

            case '3':
                Console.Write("Introduce número de registro: ");
                int nReg = Convert.ToInt32(Console.ReadLine()) - 1;
                if (nReg >= cantidad)
                {
                    Console.WriteLine("Introduce un número válido");
                }
                else
                {
                    Console.WriteLine("Registro: " + nReg + 1);
                    Console.WriteLine("Nombre: " + prog[nReg].nombre);
                    Console.WriteLine("Habilidades: " + prog[nReg].hab);
                    Console.WriteLine("Año de nacimiento: " + prog[nReg].anyo);
                    Console.Write("Plantilla: ");
                    if (prog[nReg].plant == true)
                    {
                        Console.WriteLine("SI");
                    }
                    else
                    {
                        Console.WriteLine("NO");
                    }
                    Console.WriteLine("Comentarios: " + prog[nReg].com);
                    Console.ReadLine();
                }
                break;

            case '4':
                Console.Write("Introduce número de registro: ");
                int numReg = Convert.ToInt32(Console.ReadLine()) - 1;
                if (numReg >= cantidad)
                {
                    Console.WriteLine("Introduce un número válido");
                }
                else
                {
                    Console.WriteLine("Editando el registro " + (numReg + 1));

                    Console.WriteLine("No introduzcas nada para no cambiar nada");
                    Console.Write("Nombre (antes: " + prog[numReg].nombre + "): ");
                    string nuevoNombre = Console.ReadLine();
                    if (nuevoNombre != "")
                    {
                        prog[numReg].nombre = nuevoNombre;
                    }

                    Console.Write("Habilidad(antes: " + prog[numReg].hab + "): ");
                    string nuevaHab = Console.ReadLine();
                    if (nuevaHab != "")
                    {
                        if (nuevaHab.Contains(" "))
                        {
                            Console.Write("Lo que has introducido tiene "
                                          + "espacios. Deseas borrarlos? (s/n): ");
                            char borrEsp = 'X';
                            do
                            {
                                borrEsp = Convert.ToChar(
                                    Console.ReadLine().ToUpper());
                                if (borrEsp == 'N')
                                {
                                    Console.WriteLine("Espacios no borrados");
                                }
                                else if (borrEsp == 'S')
                                {
                                    while (nuevaHab.Contains(" "))
                                    {
                                        ;
                                    }
                                    nuevaHab = nuevaHab.Replace(" ", "");
                                    Console.WriteLine("Espacios borrados");
                                }
                            } while (borrEsp != 'S' && borrEsp != 'N');
                        }
                        prog[numReg].hab = nuevaHab;
                    }

                    Console.Write("Año de nacimiento (antes: " +
                                  prog[numReg].anyo + "): ");
                    string nuevoAnyo = Console.ReadLine();
                    if (nuevoAnyo != "")
                    {
                        prog[numReg].anyo = Convert.ToUInt16(nuevoAnyo);
                    }

                    string nuevaPlant;
                    do
                    {
                        Console.Write("Plantilla (s/n): ");
                        if (prog[numReg].plant == true)
                        {
                            Console.Write("Antes SI): ");
                        }
                        else
                        {
                            Console.Write("Antes NO): ");
                        }

                        nuevaPlant = Console.ReadLine().ToUpper();
                        if (nuevaPlant == "S")
                        {
                            prog[numReg].plant = true;
                        }
                        else if (nuevaPlant == "N")
                        {
                            prog[numReg].plant = false;
                        }
                        else if (nuevaPlant == "")
                        {
                            Console.WriteLine("Plantilla no cambiada");
                        }
                        else
                        {
                            Console.WriteLine("Opción no válida");
                        }
                    } while (nuevaPlant != "S" && nuevaPlant != "N" && nuevaPlant != "");

                    Console.Write("Comentarios (antes: " + prog[numReg].com + "): ");
                    string nuevoCom = Console.ReadLine();
                    if (nuevoCom != "")
                    {
                        prog[numReg].com = nuevoCom;
                    }
                }
                break;

            case '5':
                Console.Write("Elige registro a borrar: ");
                int borrar = Convert.ToInt32(Console.ReadLine()) - 1;
                if (borrar >= cantidad)
                {
                    Console.WriteLine("Número de registro no válido");
                }
                else
                {
                    Console.WriteLine("Se va a borrar: ");
                    Console.WriteLine("Registro: " + (borrar + 1));
                    Console.WriteLine("Nombre: " + prog[borrar].nombre);
                    Console.WriteLine("Habilidades: " + prog[borrar].hab);
                    Console.WriteLine("Estás seguro? (s/n): ");
                    char seguro;
                    do
                    {
                        seguro = Convert.ToChar(Console.ReadLine().ToUpper());
                        if (seguro == 'N')
                        {
                            Console.WriteLine("Registro no borrado");
                        }
                        else if (seguro == 'S')
                        {
                            for (int i = borrar; i < cantidad; i++)
                            {
                                prog[i] = prog[i + 1];
                            }
                            Console.WriteLine("Registro borrado");
                            cantidad--;
                        }
                        else
                        {
                            Console.WriteLine("Introduce una opción válida");
                        }
                    } while (seguro != 'S' && seguro != 'N');
                }
                break;

            case '6':
                Console.WriteLine("Cantidad total de trabajadores: " + cantidad);
                int   contadorPlantilla = 0;
                int   joven             = prog[0].anyo;
                int   viejo             = prog[0].anyo;
                float contadorComas     = 0f;
                float mediaHab          = 0f;

                for (int i = 0; i < cantidad; i++)
                {
                    if (prog[i].plant == true)
                    {
                        contadorPlantilla++;
                    }

                    if (prog[i].anyo > joven)
                    {
                        joven = prog[i].anyo;
                    }
                    if (prog[i].anyo < viejo)
                    {
                        viejo = prog[i].anyo;
                    }

                    foreach (char c in prog[i].hab)
                    {
                        if (c == ',')
                        {
                            contadorComas++;
                        }
                    }
                    contadorComas++;
                }

                float porcentaje = (contadorPlantilla * 100.0f) / cantidad;
                mediaHab = contadorComas / cantidad;

                Console.WriteLine("Porcentaje plantilla: " + porcentaje.ToString("N1") + "%");
                Console.WriteLine("Año en el que nació el más joven: " + joven);
                Console.WriteLine("Año en el que nació el más veterano: " + viejo);
                Console.WriteLine("Cantidad media de habilidades: " + mediaHab);
                break;

            case '7':
                // Nota: corrección pediente, no se debe pedir al usuario
                // sino analizar las habilidades existentes en la base de datos
                Console.Write("Introduce habilidades (separadas por espacios): ");
                string   habs      = Console.ReadLine();
                string[] arrayHabs = habs.Split();

                for (int i = 0; i < arrayHabs.Length; i++)
                {
                    int contHabs = 0;
                    for (int j = 0; j < cantidad; j++)
                    {
                        if (prog[j].hab.ToUpper().Contains(arrayHabs[i].ToUpper()))
                        {
                            contHabs++;
                        }
                    }

                    Console.WriteLine(arrayHabs[i] + ": " + contHabs);
                }
                break;

            case 't':
            case 'T':
                Console.WriteLine("Hasta luego");
                break;

            default:
                Console.WriteLine("Introduzca una opción válida");
                break;
            }
        } while (op != 'T' && op != 't');
    }