Continuación del código del ejemplo:
class Poliza
{
private int numPoliza;
private String estado;
private String fechaEmision;
private Cliente cliente;
private SeguroVehiculo vehiculo;
private SeguroIncendio incendio;
private static Random aleatorio;
private void generarNumPoliza()
{
//Inicializamos la clase Random
aleatorio = new Random();
numPoliza = aleatorio.Next(10000, 19999);
}
public Poliza()
: this("N/A", "N/A", "N/A", "N/A", "N/A", "N/A", "N/A", "N/A", 'a', 0, "N/A", "N/A", "N/A", "N/A", 0, 0.0, 0.0, 0.0, 0.0, "N/A", "N/A", "N/A", 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0)
{
}
public Poliza(String estado, String fechaEmision, String n, String pa, String sa, String fn, String oc, String ec, char sx, int ed, String d, String c, String ma, String mo, int anno, double ms, double pm, double isc, double pt, String ub, String ca, String giro, double se, double sm, double sma, double sex, double ta, double pan, double i, double pto)
{
generarNumPoliza();
this.estado = estado;
this.fechaEmision = fechaEmision;
this.cliente = new Cliente(n, pa, sa, fn, oc, ec, sx, ed, d, c);
this.vehiculo = new SeguroVehiculo(ma, mo, anno, ms, pm, isc, pt);
this.incendio = new SeguroIncendio(ub, ca, giro, se, sm, sma, sex, ta, pan, i, pto);
}
public String GetEstado()
{
return estado;
}
public String GetFechaEmision()
{
return fechaEmision;
}
public Cliente GetCliente()
{
return cliente;
}
public override String ToString()
{
return String.Format("\n\t\t\tDatos De La Poliza\n\nPoliza No: 17-500-{0}\nEstado: {1}\nFecha Emision: {2}\n\n\t\t\tDatos Del Cliente\n\n{3}\n\n\t\t\tDatos Del Seguro\n\n{4}\n\n{5}\n\n", numPoliza, estado, fechaEmision, cliente.ToString(), vehiculo.ToString(), incendio.ToString());
}
}
class SeguroIncendio
{
private String ubicacion;
private String categoria;
private String giro;
private double sumaEdificio;
private double sumaMobiliario;
private double sumaMaquinaria;
private double sumaExistencia;
private double totalAsegurado;
private double primaAnual;
private double ISC;
private double primaTotal;
public SeguroIncendio() { }
public SeguroIncendio(String ub, String ca, String giro, double se, double sm, double sma, double sex, double ta, double pa, double isc, double pt)
{
this.ubicacion = ub;
this.categoria = ca;
this.giro = giro;
this.sumaEdificio = se;
this.sumaMobiliario = sm;
this.sumaMaquinaria = sma;
this.sumaExistencia = sex;
this.totalAsegurado = ta;
this.primaAnual = pa;
this.ISC = isc;
this.primaTotal = pt;
}
public String GetUbicacion()
{
return ubicacion;
}
public String GetCategoria()
{
return categoria;
}
public String GetGiro()
{
return giro;
}
public double GetSumaEdificio()
{
return sumaEdificio;
}
public double GetSumaMobiliario()
{
return sumaMobiliario;
}
public double GetSumaMaquinaria()
{
return sumaMaquinaria;
}
public double GetSumaExistencia()
{
return sumaExistencia;
}
public double GetTotalAsegurado()
{
return totalAsegurado;
}
public double GetPrima()
{
return primaAnual;
}
public double GetISC()
{
return ISC;
}
public double GetPrimaTotal()
{
return primaTotal;
}
public double calcularPrima(double totalAsegurado)
{
primaAnual = totalAsegurado * 0.036;
return primaAnual;
}
public double calcularISC()
{
ISC = primaAnual * 0.16;
return ISC;
}
public double calcularPrimaTotal()
{
primaTotal = primaAnual + ISC;
return primaTotal;
}
public override String ToString()
{
if (ubicacion.Equals("N/A") && categoria.Equals("N/A") && giro.Equals("N/A") && sumaEdificio.Equals(0.0) && sumaMobiliario.Equals(0.0) && sumaMaquinaria.Equals(0.0) && sumaExistencia.Equals(0.0) && primaAnual.Equals(0.0) && ISC.Equals(0.0) && primaTotal.Equals(0.0))
{
return String.Format(" ");
}
return String.Format("\n\tDatos Del Inmueble\n\nUbicado en: {0}\nCategoria de Construccion: {1}\nGiro: {2}\nSuma Edificio: {3}\nSuma Mobiliario: {4}\nSuma Maquinaria: {5}\nSuma Existencia: {6}\nTotal Asegurado: {7}\nPrima Anual: {8}\nISC: {9}\nPrima Total: {10}\n ", ubicacion, categoria, giro, sumaEdificio, sumaMobiliario, sumaMaquinaria, sumaExistencia, totalAsegurado, primaAnual, ISC, primaTotal);
}
}
class SeguroVehiculo : ICalcularPrima
{
private String marca;
private String modelo;
private int anno;
private double montoAsegurado;
private double primaAnual;
private double ISC;
private double primaTotal;
public SeguroVehiculo() { }
public SeguroVehiculo(String ma, String mo, int anno, double ms, double pm, double isc, double pt)
{
this.marca = ma;
this.modelo = mo;
this.anno = anno;
this.montoAsegurado = ms;
this.primaAnual = pm;
this.ISC = isc;
this.primaTotal = pt;
}
public String GetMarca()
{
return marca;
}
public String GetModelo()
{
return modelo;
}
public int GetAnno()
{
return anno;
}
public double GetMontoAsegurado()
{
return montoAsegurado;
}
public double GetPrima()
{
return primaAnual;
}
public double GetISC()
{
return ISC;
}
public double GetPrimaTotal()
{
return primaTotal;
}
public double calcularPrima(double montoAsegurado)
{
primaAnual = montoAsegurado * 0.036;
return primaAnual;
}
public double calcularISC()
{
ISC = primaAnual * 0.16;
return ISC;
}
public double calcularPrimaTotal()
{
primaTotal = primaAnual + ISC;
return primaTotal;
}
public override String ToString()
{
if (marca.Equals("N/A") && modelo.Equals("N/A") && anno.Equals(0) && montoAsegurado.Equals(0.0) && primaAnual.Equals(0.0) && ISC.Equals(0.0) && primaTotal.Equals(0.0))
{
return String.Format(" ");
}
return String.Format("\n\tDatos Del Vehiculo\n\nMarca: {0}\nModelo: {1}\nAño: {2}\nValor Asegurado: {3}\nPrima Anual: {4}\nISC: {5}\nPrima Total: {6}\n", marca, modelo, anno, montoAsegurado, primaAnual, ISC, primaTotal);
}
}
class Lista
{
private Poliza[] listaPoliza;
private List<SeguroVehiculo> listaVehiculo = new List<SeguroVehiculo>();
public void AddPoliza(Poliza poliza)
{
if (listaPoliza == null)
{
listaPoliza = new Poliza[1];
listaPoliza[0] = poliza;
}
else
{
int l = listaPoliza.Length + 1;
Array.Resize(ref listaPoliza, l);
listaPoliza[l - 1] = poliza;
}
}
public void Guardar()
{
string rutaArch = @"C:\Documents and Settings\Omar\Desktop\Tareas\GestionPrimaSeguro\GestionPrimaSeguro\poliza.rtf";
try
{
for (int i = 0; i < listaPoliza.Length; i++)
{
Console.WriteLine();
File.AppendAllText(rutaArch, listaPoliza.ToString());
Console.WriteLine();
}
Console.WriteLine("Polizas Guardadas Con Exito");
}
catch (Exception e)
{
Console.WriteLine("Debe Emitir Una Poliza Antes De Guardar", e);
}
}
public void VerArchivo()
{
Console.Clear();
int contador = 0;
string linea;
// Lee el archivo y lo muestrar línea por línea.
System.IO.StreamReader archivo =
new System.IO.StreamReader(@"C:\Documents and Settings\Omar\Desktop\Tareas\GestionPrimaSeguro\GestionPrimaSeguro\poliza.rtf");
while ((linea = archivo.ReadLine()) != null)
{
System.Console.WriteLine(linea);
contador++;
}
Console.ForegroundColor = ConsoleColor.Yellow;
Console.WriteLine("\n\n[Esc] Para Volver");
}
public void MostrarPoliza()
{
if (listaPoliza != null)
{
foreach (Poliza p in listaPoliza)
{
Program.MostrarPoliza(p);
}
}
}
}
class Cliente
{
//Constante
private const char SEXO_DEF = 'M';
private String nombre;
private String primerApellido;
private String segundoApellido;
private String fechaNacimiento;
private String ocupacion;
private String estadoCivil;
private char sexo;
private int edad;
private Domicilio domicilio;
private void comprobarSexo(char sexo)
{
//Si el sexo no es una H o una M, por defecto es H
if (sexo != 'M' && sexo != 'F')
{
this.sexo = 'M';
}
else
{
this.sexo = sexo;
}
}
public Cliente() : this("N/A", "N/A", "N/A", "N/A", "N/A", "N/A", SEXO_DEF, 0, "N/A", "N/A") { }
public Cliente(String n, String pa, String sa, String fn, String oc, String ec, char sx, int ed, String d, String c)
{
this.nombre = n;
this.primerApellido = pa;
this.segundoApellido = sa;
this.fechaNacimiento = fn;
this.ocupacion = oc;
this.estadoCivil = ec;
this.sexo = sx;
this.edad = ed;
this.domicilio = new Domicilio(d, c);
}
public String GetNombre()
{
return nombre;
}
public String GetPrimerApellido()
{
return primerApellido;
}
public String GetSegundoApellido()
{
return segundoApellido;
}
public String GetFechaNacimiento()
{
return fechaNacimiento;
}
public String GetOcupacion()
{
return ocupacion;
}
public String GetEstadoCivil()
{
return estadoCivil;
}
public char GetSexo()
{
return sexo;
}
public int GetEdad()
{
return edad;
}
public Domicilio GetDomicilio()
{
return domicilio;
}
public override string ToString()
{
String sexo = "";
if (this.sexo == 'M')
{
sexo = "Masculino";
}
else
{
sexo = "Femenino";
}
Console.WriteLine();
return String.Format("Nombre: {0}\nApellido 1: {1}\nApellido 2: {2}\nFecha Nacimiento: {3}\nOcupacion: {4}\nEstado Civil: {5}\nSexo: {6}\nEdad: {7}\n{8}", nombre, primerApellido, segundoApellido, fechaNacimiento, ocupacion, estadoCivil, sexo, edad, domicilio.ToString());
}
}
interface ICalcularPrima
{
double calcularPrima(double a);
double calcularISC();
double calcularPrimaTotal();
}
class Domicilio
{
private String direccion;
private String ciudad;
public Domicilio()
: this("N/A", "N/A")
{
}
public Domicilio(String d, String c)
{
this.direccion = d;
this.ciudad = c;
}
public String GetDireccion()
{
return direccion;
}
public String GetCiudad()
{
return ciudad;
}
public override string ToString()
{
Console.WriteLine();
return String.Format("Direccion: {0}\nCiudad: {1}", direccion, ciudad);
}
}
}