miércoles, 21 de septiembre de 2022

Ejercicios Arreglos y Colecciones C#


Ejercicios Colecciones y Arreglos C#
-----------------------------------------------
1. Crear un programa que permita registrar la cantidad de estudiantes de un colegio. 
Por cada estudiante se ingresará sus nombres completos y 3 notas (nota 1, nota 2 y nota 3). calcular e imprimir lo siguiente:
El promedio de notas de cada alumno
Número de alumnos aprobados y reprobados.
Porcentaje de alumnos aprobados y reprobados.
Número de alumnos cuyo promedio es mayor o igual a 18.

Solucion:
static void Main(string[] args)
        {
            Console.Write("Ingrese la cantidad de alumnos: ");
            int cantidad = Convert.ToInt32(Console.ReadLine());

            string[] nombres = new string[cantidad];
            int[] notas1 = new int[cantidad];
            int[] notas2 = new int[cantidad];
            int[] notas3 = new int[cantidad];
            int[] sumaTotal = new int[cantidad];
            double[] promedio = new double[cantidad];
            int nAprobados = 0;
            int nReprobados = 0;
            int nPromedioMayor = 0;

            for (int i = 0; i < cantidad; i++)
            {
                Console.Write("Ingrese nombre: ");
                nombres[i] = Console.ReadLine();

                Console.Write("Ingrese nota 1: ");
                notas1[i] = Convert.ToInt32(Console.ReadLine());

                Console.Write("Ingrese nota 2: ");
                notas2[i] = Convert.ToInt32(Console.ReadLine());

                Console.Write("Ingrese nota 3: ");
                notas3[i] = Convert.ToInt32(Console.ReadLine());

                sumaTotal[i] = notas1[i] + notas2[i] + notas3[i];
            }


            for (int i = 0; i < cantidad; i++)
            {
                Console.WriteLine(nombres[i]);
                Console.WriteLine(notas1[i]);
                Console.WriteLine(notas2[i]);
                Console.WriteLine(notas3[i]);

                promedio[i] = sumaTotal[i] / 3;
                Console.WriteLine(promedio[i]);

                if (promedio[i] > 10)
                {
                    nAprobados++;
                }
                else
                {
                    nReprobados++;
                }

                if (promedio[i] >= 18)
                {
                    nPromedioMayor++;
                }
            }

            double porcA = (nAprobados * 100) / cantidad;
            double porcR = (nReprobados * 100) / cantidad;

            Console.WriteLine(nAprobados);
            Console.WriteLine(nReprobados);
            Console.WriteLine(nPromedioMayor);
            Console.WriteLine(porcA + "%");
            Console.WriteLine(porcR + "%");
        }

2. Construir un programa que registre los usuarios y permita hacer las siguientes acciones;
     Agregue Código de usuario, Nombres, Apellidos y Numero de cuenta 
     Elimine un usuario por Código o Número de cuenta.
     Modifique un usuario por Nombres y Apellidos
     Busque un usuario por Código o por la Cuenta de usuario
     Liste todos los usuarios.

Solución:
public class Program
    {
        static int indice = 0;
        static datosUsuario[] arrUsuarios = new datosUsuario[200];
        static void Main(string[] args)
        {
int opcion = 0;
            do
            {
                Console.WriteLine("\n----- Menu -----");
                Console.WriteLine("[1] INSERTAR");
                Console.WriteLine("[2] BUSCAR");
                Console.WriteLine("[3] ACTUALIZAR");
                Console.WriteLine("[4] ELIMINAR");
                Console.WriteLine("[5] LISTAR");
                Console.WriteLine("[6] SALIR");

                Console.Write("Ingresar una opcion: ");
                opcion = Convert.ToInt32(Console.ReadLine());

                switch (opcion)
                {
                    case 1:
                        insertar();
                        break;
                    case 2:
                        buscar();
                        break;
                    case 3:
                        actualizar();
                        break;
                    case 4:
                        eliminar();
                        break;
                    case 5:
                        listar();
                        break;
                    case 6:
                        break;
                }
            } while (opcion != 6);

        }

        private static void Insertar()
        {
            Console.Write("\nIngrese la cantidad de usuarios a registrar: ");
            int cantidad = Convert.ToInt32(Console.ReadLine());

            for (int i = 0; i < cantidad; i++)
            {
                Console.WriteLine("\nUSUARIO " + (i + 1));
                Console.Write("Ingrese Codigo de usuario: ");
                arrUsuarios[indice].codigo = Console.ReadLine().Trim();

                Console.Write("Ingrese Nombres: ");
                arrUsuarios[indice].nombres = Console.ReadLine().Trim();

                Console.Write("Ingrese Apellidos: ");
                arrUsuarios[indice].apellidos = Console.ReadLine().Trim();

                Console.Write("Ingrese Numero de cuenta: ");
                arrUsuarios[indice].nroCuenta = Console.ReadLine().Trim();
                indice++;
            }
        }


        private static void Buscar()
        {
            Console.Write("Ingrese el codigo de usuario o el numero de la cuenta a buscar: ");
            string c = Console.ReadLine().Trim().ToUpper();

            for (int i = 0; i < indice; i++)
            {
                if (arrUsuarios[i].codigo.ToUpper().Equals(c) || arrUsuarios[i].nroCuenta.ToUpper().Equals(c))
                {
                    Console.WriteLine(arrUsuarios[i].codigo.ToUpper());
                    Console.WriteLine(arrUsuarios[i].nombres.ToUpper());
                    Console.WriteLine(arrUsuarios[i].apellidos.ToUpper());
                    Console.WriteLine(arrUsuarios[i].nroCuenta.ToUpper());
                    return;
                }
            }
            Console.WriteLine("No se encontró");
        }

  
        private static void Actualizar()
        {
            Console.Write("Ingrese el codigo de usuario o el numero de la cuenta para la modificacion: ");
            string c = Console.ReadLine().Trim().ToUpper();

            for (int i = 0; i < indice; i++)
            {
                if (arrUsuarios[i].codigo.ToUpper().Equals(c) || arrUsuarios[i].nroCuenta.ToUpper().Equals(c))
                {
                    Console.Write("Ingrese el nuevo nombre a modificar: ");
                    string nuevoNombres = Console.ReadLine().Trim().ToUpper();

                    Console.Write("Ingrese el nuevo apellido a modificar: ");
                    string nuevoApellidos = Console.ReadLine().Trim().ToUpper();

                    arrUsuarios[i].nombres = nuevoNombres;
                    arrUsuarios[i].apellidos = nuevoApellidos;

                    Console.WriteLine(arrUsuarios[i].codigo.ToUpper());
                    Console.WriteLine(arrUsuarios[i].nombres.ToUpper());
                    Console.WriteLine(arrUsuarios[i].apellidos.ToUpper());
                    Console.WriteLine(arrUsuarios[i].nroCuenta.ToUpper());
                    return;
                }
            }
            Console.WriteLine("No se encontró");
        }

        private static void Eliminar()
        {
            int pos = -1;
            Console.Write("Ingrese el codigo de usuario o el numero de la cuenta para la eliminacion: ");
            string c = Console.ReadLine().Trim().ToUpper();

            for (int i = 0; i < indice; i++)
            {
                if (arrUsuarios[i].codigo.ToUpper().Equals(c) || arrUsuarios[i].nroCuenta.ToUpper().Equals(c))
                {
                    pos = i;
                    break;
                }
            }

            if (pos != -1)
            {
                for (int j = pos; j < indice - 1; j++)
                {
                    arrUsuarios[j] = arrUsuarios[j + 1];
                }
                Console.WriteLine("Se elimino correctamente");
                indice--;
            }
            else
            {
                Console.WriteLine("No se encontró");
            }
        }

        private static void Listar()
        {
            for (int i = 0; i < indice; i++)
            {
                Console.WriteLine("\nCODIGO USUARIO:\t\t" + arrUsuarios[i].codigo.ToUpper());
                Console.WriteLine("NOMBRES:\t\t" + arrUsuarios[i].nombres.ToUpper());
                Console.WriteLine("APELLIDOS:\t\t" + arrUsuarios[i].apellidos.ToUpper());
                Console.WriteLine("NUMERO DE CUENTA:\t" + arrUsuarios[i].nroCuenta.ToUpper());
            }
        }

        //Estructura de Datos 
        public struct datosUsuario
        {
            public string codigo;
            public string nombres;
            public string apellidos;
            public string nroCuenta;
        }
    }


3. Construir un programa que registre los alumnos y permita hacer las siguientes acciones;
     Agregue un alumno por apellido 
     Elimine un alumno por apellido
     Modifique un alumno por apellido
     Ordene los alumnos por apellido y los liste
     Busque un alumno por apellido y muestre su posicion

Solucion:
static void Main(string[] args)
        {
            List<string> apellidos = new List<string>();
            int opcion = 0;
            string apellido = "";
            int indice = 0;

            do
            {
                Console.WriteLine("[1] AGREGAR");
                Console.WriteLine("[2] ELIMINAR");
                Console.WriteLine("[3] BUSCAR");
                Console.WriteLine("[4] MODIFICAR");
                Console.WriteLine("[5] ORDENAR");
                Console.WriteLine("[6] MOSTRAR");
                Console.WriteLine("[7] SALIR");

                Console.Write("Ingresar opcion: ");
                opcion = Convert.ToInt32(Console.ReadLine());

                switch (opcion)
                {
                    case 1:
                        Console.WriteLine("Ingrese el apellido");
                        apellido = Console.ReadLine();
                        apellidos.Add(apellido);
                        break;
                    case 2:
                        Console.WriteLine("Ingrese el apellido a eliminar");
                        apellido = Console.ReadLine();
                        indice = apellidos.IndexOf(apellido);
                        if (indice != -1)
                        {
                            apellidos.RemoveAt(indice);
                            Console.WriteLine("Se elimino correctamente");
                        }
                        else
                        {
                            Console.WriteLine("No se encontro");
                        }
                        break;
                    case 3:
                        Console.WriteLine("Ingrese el apellido a buscar");
                        apellido = Console.ReadLine();
                        indice = apellidos.IndexOf(apellido);
                        if (indice != -1)
                        {
                            Console.WriteLine("Se encuentra en la posicion: " + indice);
                        }
                        else
                        {
                            Console.WriteLine("No se encontro");
                        }
                        break;
                    case 4:
                        Console.WriteLine("Ingrese el apellido a modificar");
                        apellido = Console.ReadLine();
                        indice = apellidos.IndexOf(apellido);
                        if (indice != -1)
                        {
                            Console.Write("Ingrese el nuevo apellido: ");
                            apellido = Console.ReadLine();
                            apellidos.RemoveAt(indice);
                            apellidos.Insert(indice, apellido);
                        }
                        else
                        {
                            Console.WriteLine("No se encontro");
                        }
                        break;
                    case 5:
                        Console.Write("Ordenar en orden ascendente o descendente ");
                        string orden = Console.ReadLine();
                        if (orden.ToUpper().Equals("ASCENDENTE"))
                        {
                            apellidos.Sort();
                        }
                        else
                        {
                            apellidos.Reverse();
                        }
                        break;
                    case 6:
                        foreach (var ap in apellidos)
                        {
                            Console.WriteLine(ap);
                        }
                        break;
                    case 7:
                        break;
                }
            } while (opcion != 7);
        }

4. Debe realizar un programa que permita crear una Agenda de Contactos, donde
se pueda almacenar la siguiente información:
El Nombre y Apellidos del Contacto.
Teléfono móvil
Dirección de correo electrónico

El programa debe realizar las siguientes acciones:
[1] Insertar nuevo contacto
[2] Buscar contacto
[3] Modificar datos
[4] Eliminar contacto
[5] Listar Contactos
[6] Salir


Solución:

public class Contacto
    {
        public string Nombre { get; set; }
        public string Apellidos { get; set; }
        public string Telefono { get; set; }
        public string Email { get; set; }

        public Contacto(string nombre, string apellidos, string telefono, string email)
        {
            Nombre = nombre;
            Apellidos = apellidos;
            Telefono = telefono;
            Email = email;
        }
    }


public class Agenda
    {
        List<Contacto> contacts;

        public Agenda()
        {
            contacts = new List<Contacto>();
        }

        public void Agregar(Contacto c)
        {
            contacts.Add(c);
        }

        public void Eliminar(Contacto c)
        {
            contacts.Remove(c);
        }

        public Contacto Buscar(string nombre)
        {
            foreach (Contacto contact in contacts)
            {
                if (contact.Nombre.ToUpper().Equals(nombre.ToUpper()))
                {
                    return contact;
                }
            }
            return null;
        }

        public void Listar()
        {
            foreach (Contacto contact in contacts)
            {
                Console.WriteLine(contact.Nombre);
                Console.WriteLine(contact.Apellidos);
                Console.WriteLine(contact.Telefono);
                Console.WriteLine(contact.Email);
            }
        }
    }


internal class Program
    {
        static void Main(string[] args)
        {
            int opcion = 0;
            string nombre, apellidos, celular, email;
            Agenda a = new Agenda();

            do
            {
                Console.WriteLine("Menu Agenda");
                Console.WriteLine("[1] Insertar nuevo contacto");
                Console.WriteLine("[2] Buscar contacto");
                Console.WriteLine("[3] Modificar datos");
                Console.WriteLine("[4] Eliminar contacto");
                Console.WriteLine("[5] Listar Contactos");
                Console.WriteLine("[6] Salir");

                Console.Write("Ingrese opcion <1-6>: ");
                opcion = Convert.ToInt32(Console.ReadLine());
                switch (opcion)
                {
                    case 1:
                        Console.Write("Ingrese el nombre de contacto: ");
                        nombre = Console.ReadLine();
                        Console.Write("Ingrese los apellidos de contacto: ");
                        apellidos = Console.ReadLine();
                        Console.Write("Ingrese el numero de celular: ");
                        celular = Console.ReadLine();
                        Console.Write("Ingrese el correo: ");
                        email = Console.ReadLine();

                        Contacto c = new Contacto(nombre, apellidos, celular, email);
                        a.Agregar(c);
                        break;
                    case 2:
                        Console.Write("Ingrese el contacto a buscar: ");
                        nombre = Console.ReadLine();
                        Contacto x = a.Buscar(nombre);
                        if (x != null)
                        {
                            Console.WriteLine(x.Nombre);
                            Console.WriteLine(x.Apellidos);
                            Console.WriteLine(x.Telefono);
                            Console.WriteLine(x.Email);
                        }
                        else
                        {
                            Console.WriteLine("No existe el nombre de contacto");
                        }
                        break;
                    case 3:
                        Console.Write("Ingrese el contacto a modificar: ");
                        nombre = Console.ReadLine();
                        Contacto z = a.Buscar(nombre);
                        if (z != null)
                        {
                            Console.Write("Ingrese el nuevo nombre: ");
                            string name = Console.ReadLine();
                            z.Nombre = name;
                            Console.Write("Ingrese el nuevo apellido: ");
                            string ap = Console.ReadLine();
                            z.Apellidos = ap;
                            Console.Write("Ingrese el nuevo numero de celular: ");
                            string cel = Console.ReadLine();
                            z.Telefono = cel;
                            Console.Write("Ingrese el nuevo correo: ");
                            string correo = Console.ReadLine();
                            z.Email = correo;
                        }
                        else
                        {
                            Console.WriteLine("No existe el nombre de contacto");
                        }
                        break;
                    case 4:
                        Console.Write("Ingrese el contacto a eliminar: ");
                        nombre = Console.ReadLine();
                        Contacto y = a.Buscar(nombre);
                        if (y != null)
                        {
                            a.Eliminar(y);
                            Console.WriteLine("Eliminado");
                        }
                        else
                        {
                            Console.WriteLine("No existe el nombre de contacto");
                        }
                        break;
                    case 5:
                        a.Listar();
                        break;
                    case 6:
                        break;
                }
            } while (opcion != 6);
        }
    }








No hay comentarios:

Publicar un comentario

Instalación y Configuración de un DNS Público en Debian 12

Configuración de un DNS Público en Debian 12 ===================================== Registrar un dominio público en Goddady, Namecheap  ó pun...