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