Autor Tema: C# programa con menú, switch case break, bucle do while, pólizas de seguro clear  (Leído 11234 veces)

Gabrield Marquez

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 15
    • Ver Perfil
Código del ejemplo:

Código: [Seleccionar]
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;

namespace GestionPrimaSeguro
{
    class Program
    {
        static void Main(string[] args)
        {
            Lista listaPoliza = new Lista();
            ConsoleKeyInfo op;
            do
            {
                MenuPrincipal();
                op = Console.ReadKey(true);

                switch (op.Key)
                {
                    case ConsoleKey.E:
                        CargarPoliza(listaPoliza);
                        //Console.ReadKey();
                        break;

                    case ConsoleKey.G:
                        listaPoliza.Guardar();
                        Console.ReadKey();
                        break;

                    case ConsoleKey.V:
                        listaPoliza.VerArchivo();
                        Console.ReadKey();
                        break;

                    case ConsoleKey.Escape:

                        break;
                }

            } while (op.Key != ConsoleKey.Escape);

            Console.Clear();
            Console.Write("\t\t\tPolizas Emitidas");
            listaPoliza.MostrarPoliza();

            Console.ReadKey();
        }

        public static void CargarPoliza(Lista listaPoliza)
        {

            do
            {
                Console.Write("Emitir Poliza si/no: ");
                string respuesta = Console.ReadLine().ToUpper();
                try
                {
                    if (respuesta.Equals("SI"))
                    {

                        Console.Clear();
                        listaPoliza.AddPoliza(GetPoliza());
                    }
                    else
                    {
                        break;
                    }
                }
                catch (Exception e)
                {
                    Console.WriteLine(e);
                }

                Console.WriteLine();

            } while (true);
        }
        public static Poliza GetPoliza()
        {
            SeguroVehiculo sv = new SeguroVehiculo();
            SeguroIncendio si = new SeguroIncendio();
            String nombre, primerApellido, segundoApellido, fechaNacimiento, ocupacion, estadoCivil, direccion, ciudad, estado, fechaEmision,
                marca = "N/A", modelo = "N/A", ubicacion = "N/A", categoria = "N/A", giro = "N/A";
            char sexo = '\u0000';
            int edad = 0, anno = 0;
            double montoAsegurado = 0.0, totalAsegurado = 0.0, sumaEdificio = 0.0, sumaMobiliario = 0.0, sumaMaquinaria = 0.0, sumaExistencia = 0.0;


            Console.Write("\n\t\t\tDatos Del Cliente\n");
            Console.Write("\nNombre: ");
            nombre = Console.ReadLine();
            Console.Write("1er Apellido: ");
            primerApellido = Console.ReadLine();
            Console.Write("2do Apellido: ");
            segundoApellido = Console.ReadLine();
            Console.Write("Fecha Nac: ");
            fechaNacimiento = Console.ReadLine();
            Console.Write("Ocupacion: ");
            ocupacion = Console.ReadLine();
            Console.Write("Estado Civil: ");
            estadoCivil = Console.ReadLine();

            do
            {
                Console.Write("Sexo M/F: ");
                try
                {
                    sexo = Char.Parse(Console.ReadLine());
                }
                catch (Exception e)
                {
                    Console.WriteLine("Introduzca Un Solo  Caracter", e);
                }
            } while (sexo.Equals('\u0000'));

            do
            {
                Console.Write("Edad: ");
                try
                {
                    edad = Int32.Parse(Console.ReadLine());
                }
                catch (Exception e)
                {
                    Console.WriteLine("Introduzca Un Valor Numerico", e);
                }
            } while (edad.Equals(0));

            Console.Write("Direccion: ");
            direccion = Console.ReadLine();
            Console.Write("Ciudad: ");
            ciudad = Console.ReadLine();

            Console.Write("\n\t\t\tDatos De La Poliza\n\n");
            Console.Write("Estado: ");
            estado = Console.ReadLine();

            Console.Write("Fecha Emision: ");
            fechaEmision = Console.ReadLine();

            ConsoleKeyInfo op;
            do
            {

                Console.Clear();
                Console.WriteLine("\t\t\tTipo De Seguro\n");
                Console.ForegroundColor = ConsoleColor.Green;
                Console.Write("\n[H]Vehiculo\t");
                Console.Write("\n[I]Incendio\t");
                Console.Write("\n[Esc]Salir\n");
                Console.ForegroundColor = ConsoleColor.White;
                Console.WriteLine("Seleccione opcion...");
                op = Console.ReadKey(true);
                switch (op.Key)
                {
                    case ConsoleKey.H:
                        Console.Write("\n\t\t\tDatos Del Vehiculo\n");
                        Console.Write("\nMarca: ");
                        marca = Console.ReadLine();
                        Console.Write("Modelo: ");
                        modelo = Console.ReadLine();
                        do
                        {
                            Console.Write("Año: ");
                            try
                            {
                                anno = Int32.Parse(Console.ReadLine());
                            }
                            catch (Exception e)
                            {
                                Console.WriteLine("Introduzca Un Valor Numerico", e);
                            }
                        } while (anno.Equals(0));
                        do
                        {
                            Console.Write("Valor Asegurado: ");
                            try
                            {
                                montoAsegurado = Double.Parse(Console.ReadLine());
                            }
                            catch (Exception e)
                            {
                                Console.WriteLine("Introduzca Un Valor Numerico", e);
                            }
                        } while (montoAsegurado.Equals(0.0));

                        Console.ReadKey();
                        break;

                    case ConsoleKey.I:
                        Console.Write("\n\t\t\tDatos De La Propiedad\n");
                        Console.Write("\nUbicacion: ");
                        ubicacion = Console.ReadLine();
                        Console.Write("Categoria: ");
                        categoria = Console.ReadLine();
                        Console.Write("Giro: ");
                        giro = Console.ReadLine();
                        do
                        {
                            Console.Write("Suma Edificio: ");
                            try
                            {
                                sumaEdificio = Double.Parse(Console.ReadLine());
                            }
                            catch (Exception e)
                            {
                                Console.WriteLine("Introduzca Un Valor Numerico", e);
                            }
                        } while (sumaEdificio.Equals(1));
                        do
                        {
                            Console.Write("Suma Mobiliario: ");
                            try
                            {
                                sumaMobiliario = Double.Parse(Console.ReadLine());
                            }
                            catch (Exception e)
                            {
                                Console.WriteLine("Introduzca Un Valor Numerico", e);
                            }
                        } while (sumaMobiliario.Equals(1));
                        do
                        {
                            Console.Write("Suma Maquinaria: ");
                            try
                            {
                                sumaMaquinaria = Double.Parse(Console.ReadLine());
                            }
                            catch (Exception e)
                            {
                                Console.WriteLine("Introduzca Un Valor Numerico", e);
                            }
                        } while (sumaMaquinaria.Equals(1));
                        do
                        {
                            Console.Write("Suma Existencia: ");
                            try
                            {
                                sumaExistencia = Double.Parse(Console.ReadLine());
                            }
                            catch (Exception e)
                            {
                                Console.WriteLine("Introduzca Un Valor Numerico", e);
                            }
                        } while (sumaExistencia.Equals(1));

                        Console.ReadKey();
                        break;

                    case ConsoleKey.Escape:

                        break;
                }

                Console.Write("Otro Tipo De Seguro si/no: ");
                string respuesta = Console.ReadLine().ToUpper();
                try
                {
                    if (respuesta.Equals("SI"))
                    {
                        continue;
                    }
                    else
                    {
                        break;
                    }
                }
                catch (Exception e)
                {
                    Console.WriteLine(e);
                }

            } while (op.Key != ConsoleKey.Escape);

            totalAsegurado = sumaEdificio + sumaMobiliario + sumaMaquinaria + sumaExistencia;


            return new Poliza(estado, fechaEmision, nombre, primerApellido, segundoApellido, fechaNacimiento, ocupacion, estadoCivil, sexo, edad, direccion, ciudad, marca, modelo, anno, montoAsegurado, sv.calcularPrima(montoAsegurado), sv.calcularISC(/*sv.calcularPrima(montoAsegurado)*/), sv.calcularPrimaTotal(/*sv.calcularPrima(montoAsegurado), sv.calcularISC(montoAsegurado)*/), ubicacion, categoria, giro, sumaEdificio, sumaMobiliario, sumaMaquinaria, sumaExistencia, totalAsegurado, si.calcularPrima(totalAsegurado/*si.sumarMontoAsegurado(sumaEdificio, sumaMobiliario, sumaMaquinaria, sumaExistencia)*/), si.calcularISC(/*si.calcularPrima(si.sumarMontoAsegurado(sumaEdificio, sumaMobiliario, sumaMaquinaria, sumaExistencia))*/), si.calcularPrimaTotal(/*si.calcularPrima(si.sumarMontoAsegurado(sumaEdificio, sumaMobiliario, sumaMaquinaria, sumaExistencia)), si.calcularISC(si.calcularPrima(si.sumarMontoAsegurado(sumaEdificio, sumaMobiliario, sumaMaquinaria, sumaExistencia)))*/));

        }
        public static void MostrarPoliza(Poliza p)
        {
            Console.WriteLine(p.ToString());
        }
        public static void MenuPrincipal()
        {
            Console.Clear();
            Console.WriteLine("\t\t\tMenú - Gestion Prima Seguros\n");
            Console.ForegroundColor = ConsoleColor.Yellow;
            Console.Write("\n[E]Emitir Poliza");
            Console.Write("\n[G]Guardar Poliza");
            Console.Write("\n[V]Ver Archivo");
            Console.Write("\n[Esc]Salir\n");
            Console.ForegroundColor = ConsoleColor.White;
            Console.WriteLine("Seleccione opcion...");
        }

    }
« Última modificación: 07 de Enero 2016, 15:36 por Ogramar »

Ogramar

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2660
    • Ver Perfil
Continuación del código del ejemplo:

Código: [Seleccionar]
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);
        }
    }
}

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".