Resultado profesor (5 pnts. En el ejercicio se sobreescribe. No se modifica o elimina. Tengo mis dudas si eso se practica en las grandes empresas, aunque reconozco que es un método rápido. Y Hide no es salir es ocultar. Ojito con eso en grandes aplicaciones por el consumo de recursos del ordenador)
-- Clase persona (Persona.cs) --
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Agenda
{
public class Persona
{
string nombre;
string apellidos;
string telefono;
//
public Persona()
{
nombre = "";
apellidos = "";
telefono = "";
}
public Persona(string nombre, string apellidos, string telefono)
{
this.nombre = nombre;
this.apellidos = apellidos;
this.telefono = telefono;
}
public string Nombre
{
get
{
return nombre;
}
set
{
nombre = value;
}
}
public string Apellidos
{
get
{
return apellidos;
}
set
{
apellidos = value;
}
}
public string Telefono
{
get
{
return telefono;
}
set
{
telefono = value;
}
}
}
}
-- Clase lista (Lista.cs) --
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace Agenda
{
public class Lista
{
Persona[] vector;
int numPersonas; //total de personas insertadas en el vector en un momento determinado
public Lista(int longitud)
{
vector = new Persona[longitud];
numPersonas = 0;
}
public int NumPersonas
{
get
{
return numPersonas;
}
set
{
numPersonas = value;
}
}
public Persona LeerPersona(int posicion)
{
if ((posicion > -1) && (posicion < vector.Length))
{
return vector[posicion];
}
return null;
}
public void BorrarPersona(int posicion)
{
if (numPersonas > 0) //si el vector no está vacío...
{
if ((posicion > -1) && (posicion < vector.Length))
{
for (int i = posicion; i < vector.Length - 1; i++)
{
vector[i] = vector[i + 1];
}
numPersonas--;
}
}
}
public void ModificarPersona(int posicion, Persona persona)
{
if (numPersonas > 0) //si el vector no está vacío...
if ((posicion > -1) && (posicion < vector.Length))
vector[posicion] = persona;
}
public int TamanoVector()
{
return vector.Length;
}
//Método público que inserta un objeto persona en el vector de Personas
public void InsertarPersona(Persona nuevo)
{
//si no está lleno insertamos
if (numPersonas < vector.Length)
{
vector[numPersonas] = nuevo;
numPersonas++;
}
else
MessageBox.Show("Lista llena...", "Error en inserción", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
}
}
}
-- Formulario principal (frmPrincipal.cs) --
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace Agenda
{
public partial class FrmPrincipal : Form
{
public FrmNuevaPersona frmNueva;
FrmMostrarPersonas frmMostrar;
const int TAMAÑO = 20;//tamaño máximo de la lista
public Lista lista;
public FrmPrincipal()
{
InitializeComponent();
//en el constructor del formulario principal inicializo el vector,
lista = new Lista(TAMAÑO);
frmNueva = null;
frmMostrar = null;
}
private void salirToolStripMenuItem_Click(object sender, EventArgs e)
{
Close();
}
private void nuevaToolStripMenuItem_Click(object sender, EventArgs e)
{
if (frmNueva == null)
{
frmNueva= new FrmNuevaPersona();
}
//este método permite comunicar el formulario de nueva persona con el Principal
frmNueva.FormPadre(this);
frmNueva.MdiParent = this;
frmNueva.Show();
}
private void mostrarPersonasToolStripMenuItem_Click(object sender, EventArgs e)
{
frmMostrar = new FrmMostrarPersonas();
frmMostrar.FormPadre(this);
frmMostrar.MdiParent = this;
frmMostrar.Show();
}
private void frmPrincipal_Load(object sender, EventArgs e)
{
}
}
}
-- Formulario nueva persona (frmNuevaPersona.cs) --
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace Agenda
{
public partial class FrmNuevaPersona : Form
{
FrmPrincipal padre;
int posicion;//controla la posición en el vector de la persona a modificar
public FrmNuevaPersona()
{
InitializeComponent();
posicion = 0;
}
public void FormPadre(FrmPrincipal padre)
{
this.padre = padre;
btnModificar.Enabled = false;
}
private void NuevaPersona_Load(object sender, EventArgs e)
{
}
private void LimpiarCampos()
{
txtNombre.Clear();
txtTelefono.Clear();
txtApellidos.Clear();
}
private void btnGuardar_Click(object sender, EventArgs e)
{
if (txtNombre.Text != "" ) //no permite introducir personas sin nombre
{
//creamos un objeto de la clase persona a partir de la información introducido por el usuario
Persona nueva = new Persona(txtNombre.Text, txtApellidos.Text, txtTelefono.Text);
//guardamos los datos introducidos en el vector de personas
//ya que están comunicados los formularios
// Form padre=this.MdiParent;
padre.lista.InsertarPersona(nueva);
string total = padre.lista.NumPersonas.ToString();
MessageBox.Show("Nº de elementos: "+total, "Cantidad ");
LimpiarCampos();
}
}
public void CargarPersona(int pos)
{
txtApellidos.Text = padre.lista.LeerPersona(pos).Apellidos;
txtNombre.Text = padre.lista.LeerPersona(pos).Nombre;
txtTelefono.Text = padre.lista.LeerPersona(pos).Telefono;
btnModificar.Enabled = true;
btnGuardar.Enabled = false;
posicion = pos;
}
private void btnModificar_Click(object sender, EventArgs e)
{
Persona p=new Persona();
p.Apellidos = txtApellidos.Text;
p.Nombre = txtNombre.Text;
p.Telefono = txtTelefono.Text;
padre.lista.ModificarPersona(posicion, p);
LimpiarCampos();
Hide();
}
private void btnSalir_Click(object sender, EventArgs e)
{
Hide();
}
}
}
-- Formulario Mostrar Personas (frmMostrarPersonas.cs) --
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace Agenda
{
public partial class FrmMostrarPersonas : Form
{
FrmPrincipal padre;
public FrmMostrarPersonas()
{
InitializeComponent();
}
private void CargarDatos()
{
Persona aux;
for (int i = 0; i < padre.lista.NumPersonas; i++)
{
aux = padre.lista.LeerPersona(i);
listBox1.Items.Add(aux.Nombre + " " + aux.Apellidos);
}
txtTotal.Text = padre.lista.NumPersonas.ToString();
}
public void FormPadre(FrmPrincipal padre)
{
this.padre = padre;
CargarDatos();
}
private void FrmMostrarPersonas_Load(object sender, EventArgs e)
{
}
private void btnCerrar_Click(object sender, EventArgs e)
{
Close();
}
private void btnEliminar_Click(object sender, EventArgs e)
{
if (listBox1.SelectedIndex!=-1) {
//elimina una persona del vector de personas
if (padre.lista.NumPersonas > 0)
{
padre.lista.BorrarPersona(listBox1.SelectedIndex);
listBox1.Items.RemoveAt(listBox1.SelectedIndex);
txtTotal.Text = padre.lista.NumPersonas.ToString();
}
}
}
private void btnModificar_Click(object sender, EventArgs e)
{
padre.frmNueva.CargarPersona(listBox1.SelectedIndex);
padre.frmNueva.Show();
this.Close();
}
}
}
Casinos in Malta - Filmfile Europe
ResponderEliminarFind the best Casinos nba매니아 in Malta including bonuses, games, poormansguidetocasinogambling games and 1xbet korean the history of games. We cover all the https://septcasino.com/review/merit-casino/ main reasons to visit Casinos in wooricasinos.info