Tengo problemas para introducir altas y bajas de clientes en un formulario

Como me dijiste, Portero aquí te envío una clase, para implementar altas, bajas y mod de clientes. Añadir clientes en el arraylist es con lo que estoy ahora... Y me da la sensación que siempre se queda con el ultimo que meto (¿Cómo los podría listar, para comprobarlos?). Me faltan los métodos de borrar y modificar, si me das pistas pues mejor que mejor.. Porque llevo tres meses con esto y me esta agobiando.
Un saludo de antemano.
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Collections;
namespace Viajes{ public class GestionAViajes
{
private ArrayList ManejoDeClientes;
public GestionAViajes() { this.ManejoDeClientes = new ArrayList();//Constructor } public void insertarcliente() { Console.WriteLine(" Introduce el Dni "); String dni = Console.ReadLine(); Console.WriteLine(" Introduce el Nombre "); String nombre = Console.ReadLine(); Console.WriteLine(" Introduce los apellidos "); String apellidos = Console.ReadLine(); Console.WriteLine(" Introduce el teléfono "); String teléfono = Console.ReadLine(); Console.WriteLine(" Introduce el e_mail "); String mail = Console.ReadLine();
/*Instancia de la clase Cliente, que almacena clientes*/ Cliente NuevoCliente = new Cliente(dni,nombre,apellidos,teléfono,mail); ManejoDeClientes.Add(NuevoCliente);// Añadir clientes al arrylist foreach (Cliente cl in ManejoDeClientes) { Console.WriteLine("Teléfono " + cl.Telefono); //Poner los demás campos }
Console.WriteLine(" Contar: {0}", ManejoDeClientes.Count); Console.WriteLine(" Capacidad: {0}", ManejoDeClientes.Capacity);
Console.ReadLine();
GestionAViajes EntradaAlMenuClientes = new GestionAViajes(); EntradaAlMenuClientes.MenuClientes(); } /*public void borrarCliente(Cliente BorrarCliente) { ManejoDeClientes.Remove(BorrarCliente); } // Método para contar los clientes. Public int NumClientes() { return ManejoDeClientes.Count; }
public Cliente PosInArray(int pos) { if (pos < NumClientes()) return (Cliente)ManejoDeClientes[pos]; else return null;
}
// Método para escribir en pantalla los clientes. Public void Es_Pantalla(Cliente inCliente) { foreach (object Cliente in ManejoDeClientes) Console.Write(" {0}", Cliente); Console.WriteLine(); } // +++++++Falta método modificar cliente+++++ */ public void MenuClientes()// Menu que se accede desde la clase ppal "Program" { int op = 0;/*Variable de control del switch*/ do { Console.Clear(); Console.WriteLine("--------------"); Console.WriteLine("GESTIÓN DE CLIENTES "); Console.WriteLine("1.-ALTAS DE CLIENTES"); Console.WriteLine("2.-BAJAS DE CLIENTES"); Console.WriteLine("3.-MODIFICACIÓN DE CLIENTES"); Console.WriteLine("4.-MENU PRINCIPAL");//Ir a la clase principal Console.WriteLine("--------------"); Console.WriteLine("0.-PARA SALIR"); Console.WriteLine(); Console.WriteLine("ESCOJA UNA DE LAS OPCIONES..");
op = int.Parse(Console.ReadLine());
switch (op) { case 0: Environment.Exit(0);/*Salida de la aplicación*/ break;
case 1: GestionAViajes AñadirClientes = new GestionAViajes(); AñadirClientes.insertarcliente();
break; case 2: //Falta el metodo.Bajas de clientes break;
case 3: //Falta el metodo.Modificacion de clientes break; default: //Console.WriteLine("la opción no es correcta"); break; } } while (op != 0); }
}}

1 respuesta

Respuesta
1
prueba a usar en lugar de un ArrayList un List<Cliente>.
Para insertar usa el .Add() como haces ahora.
Para listar recorrete los valores con un foreach:
foreach (Cliente cliente in ManejoDeClientes)
{
Console.WriteLine("DNI: {0}",cliente.dni);
}
Para eliminar un item por su identificador único (entiendo que el DNI) yo usaría una consulta LinQ:
ManejoDeClientes.Remove(ManejoDeClientes.Select(cliente=>cliente.dni="EL DNI QUE BUSCAS").FirstOrDefault());
Para editar podrías obtener el cliente que buscas con la misma sentencia LINQ, editar los valores que quieres, eliminarlo y volver a insertarlo.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas