DaLiCaM

Codigo Agenda por Consola

Jun 18th, 2013
178
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 14.65 KB | None | 0 0
  1.     class Persona
  2.     {
  3.         string codigo;
  4.         string nombres;
  5.         string apellidos;
  6.         string dni;
  7.         string direccion;
  8.         string telefono;
  9.         int edad;
  10.         DateTime fechanac;
  11.         string email;
  12.         char sexo;
  13.  
  14.         public string Codigo
  15.         {
  16.             get { return codigo; }
  17.         }
  18.         public string Nombres
  19.         {
  20.             set { nombres = value; }
  21.             get { return nombres; }
  22.         }
  23.         public string Apellidos
  24.         {
  25.             set { apellidos = value; }
  26.             get { return apellidos; }
  27.         }
  28.         public string Dni
  29.         {
  30.             set { dni = value; }
  31.             get { return dni; }
  32.         }
  33.         public string Direccion
  34.         {
  35.             set { direccion = value; }
  36.             get { return direccion; }
  37.         }
  38.         public string Telefono
  39.         {
  40.             set { telefono = value; }
  41.             get { return telefono; }
  42.         }
  43.         public int Edad
  44.         {
  45.             set { edad = value; }
  46.             get { return edad; }
  47.         }
  48.         public DateTime FechaNac
  49.         {
  50.             set { fechanac = value; }
  51.             get { return fechanac; }
  52.         }
  53.         public string Email
  54.         {
  55.             set { email = value; }
  56.             get { return email; }
  57.         }
  58.         public char Sexo
  59.         {
  60.             set { sexo = value; }
  61.             get { return sexo; }
  62.         }
  63.  
  64.         public Persona(int c)
  65.         {
  66.             if (c < 10)
  67.                 codigo = "PER-0000";
  68.             if (c >= 10 && c < 100)
  69.                 codigo = "PER-000";
  70.             if (c >= 100 && c < 1000)
  71.                 codigo = "PER-00";
  72.             if (c >= 1000)
  73.                 codigo = "PER-0";
  74.             codigo = codigo + c;
  75.         }
  76.  
  77.     }
  78.     class AplicacionAgenda
  79.     {
  80.         static void Main(string[] args)
  81.         {
  82.             char op;
  83.             List<Persona> Agenda = new List<Persona>();
  84.             //ArrayList Agenda2 = new ArrayList();
  85.             Persona persona;//Nodo de la Lista
  86.             string criterio;
  87.             int Encuentra;
  88.             persona = new Persona(0);
  89.             LeerDatos(Agenda, persona);
  90.             do
  91.             {
  92.                 Console.Clear();
  93.                 op = Interfaz();
  94.                 switch (op)
  95.                 {
  96.                     case 'R':
  97.                     case 'r':
  98.                         persona = new Persona(Agenda.Count + 1);
  99.                         Console.Write("\n");
  100.                         do
  101.                         {
  102.                             Console.Write("\t\tNombres: "); persona.Nombres = Console.ReadLine();
  103.                         } while (persona.Nombres == "");
  104.                         do
  105.                         {
  106.                             Console.Write("\t\tApellidos: "); persona.Apellidos = Console.ReadLine();
  107.                         } while (persona.Apellidos == "");
  108.                         do
  109.                         {
  110.                             Console.Write("\t\tDni: "); persona.Dni = Console.ReadLine();
  111.                         } while (persona.Dni.Length != 8);
  112.                         Console.Write("\t\tDireccion: "); persona.Direccion = Console.ReadLine();
  113.                         Console.Write("\t\tTelefono: "); persona.Telefono = Console.ReadLine();
  114.                         Console.Write("\t\tEdad: "); persona.Edad = int.Parse(Console.ReadLine());
  115.                         Console.Write("\t\tFecha de Nacimiento: "); persona.FechaNac = DateTime.Parse(Console.ReadLine());
  116.                         do
  117.                         {
  118.                             Console.Write("\t\tEmail: "); persona.Email = Console.ReadLine();
  119.                         } while (persona.Email.IndexOf("@") == -1);
  120.                         do
  121.                         {
  122.                             Console.Write("\t\t(M)asculino (F)emenino");
  123.                             Console.Write("\t\tSexo: ");
  124.                             op = char.Parse(Console.ReadLine());
  125.                             if (op == 'M' || op == 'm')
  126.                                 persona.Sexo = 'M';
  127.                             if (op == 'F' || op == 'f')
  128.                                 persona.Sexo = 'F';
  129.                         } while (op != 'M' && op != 'm' && op != 'F' && op != 'f');
  130.                         Agenda.Add(persona);
  131.                         break;
  132.                     case 'B':
  133.                     case 'b':
  134.                         Console.Write("\n\t\tElija Criterio de Busqueda: ");
  135.                         Console.WriteLine(" (N)ombres (A)pellidos");
  136.                         Console.Write("\n\t\tOpcion: "); op = char.Parse(Console.ReadLine());
  137.                         Console.Write("\nIngrese Criterio a Buscar: "); criterio = Console.ReadLine();
  138.                         Encuentra = Buscar(Agenda, c, criterio, op);
  139.                         //Encuentra = Buscar(Agenda, c, criterio, op);
  140.                         if (Encuentra >= 0)
  141.                         {
  142.                             Console.WriteLine("\n\t\tCodigo: " + Agenda[Encuentra].Codigo);
  143.                             Console.WriteLine("\t\tNombres: " + Agenda[Encuentra].Nombres);
  144.                             Console.WriteLine("\t\tApellidos: " + Agenda[Encuentra].Apellidos);
  145.                             Console.WriteLine("\t\tEdad: " + Agenda[Encuentra].Edad);
  146.                         }                        
  147.                         else
  148.                             Console.WriteLine("Persona No Existe!");
  149.                         for (int i = 0; i < c; i++)
  150.                             ReporteSimilares(Agenda, i, criterio, op);
  151.                         break;
  152.                     case 'L':
  153.                     case 'l':
  154.                         if (Agenda.Count > 0)
  155.                         {
  156.                             Console.WriteLine("\n\n\t\tAGENDA");
  157.                             Console.WriteLine("\t\t======");
  158.                             for (int i = 0; i < Agenda.Count; i++)
  159.                             {
  160.                                 Console.WriteLine("\n\t\tCodigo: " + Agenda[i].Codigo);
  161.                                 Console.WriteLine("\t\tNombres: " + Agenda[i].Nombres);
  162.                                 Console.WriteLine("\t\tApellidos: " + Agenda[i].Apellidos);
  163.                                 Console.WriteLine("\t\tDni: " + Agenda[i].Dni);
  164.                                 Console.WriteLine("\t\tDireccion: " + Agenda[i].Direccion);
  165.                                 Console.WriteLine("\t\tTelefono: " + Agenda[i].Telefono);
  166.                                 Console.WriteLine("\t\tEdad: " + Agenda[i].Edad);
  167.                                 Console.WriteLine("\t\tFecha de Nacimiento: " + Agenda[i].FechaNac);
  168.                                 Console.WriteLine("\t\tEmail: " + Agenda[i].Email);
  169.                                 Console.WriteLine("\t\tSexo: " + Agenda[i].Sexo);
  170.                             }
  171.                             foreach (Persona nodo in Agenda)
  172.                             {
  173.                                 Console.WriteLine("\n\t\tCodigo: " + nodo.Codigo);
  174.                                 Console.WriteLine("\t\tNombres: " + nodo.Nombres);
  175.                                 Console.WriteLine("\t\tApellidos: " + nodo.Apellidos);
  176.                                 Console.WriteLine("\t\tDni: " + nodo.Dni);
  177.                                 Console.WriteLine("\t\tDireccion: " + nodo.Direccion);
  178.                                 Console.WriteLine("\t\tTelefono: " + nodo.Telefono);
  179.                                 Console.WriteLine("\t\tEdad: " + nodo.Edad);
  180.                                 Console.WriteLine("\t\tFecha de Nacimiento: " + nodo.FechaNac);
  181.                                 Console.WriteLine("\t\tEmail: " + nodo.Email);
  182.                                 Console.WriteLine("\t\tSexo: " + nodo.Sexo);
  183.                             }
  184.                         }
  185.                         else
  186.                             Console.WriteLine("Agenda Vacia!");
  187.                         break;
  188.                     case 'S':
  189.                     case 's':
  190.                         break;
  191.                 }
  192.                 Console.ReadKey();
  193.             } while (op != 'S' && op != 's');
  194.             GuardarDatos(Agenda);
  195.         }
  196.  
  197.         static char Interfaz()
  198.         {
  199.             Console.WriteLine("\n\n\t\tAGENDA");
  200.             Console.WriteLine("\t\t======");
  201.             Console.WriteLine("\n\t\t(R)egistrar Personas");
  202.             Console.WriteLine("\t\t(B)uscar Persona");
  203.             Console.WriteLine("\t\t(L)istar Personas");
  204.             Console.WriteLine("\t\t(S)alir de la Aplicacion");
  205.             Console.Write("\n\t\tElija Operacion:");
  206.             return char.Parse(Console.ReadLine());
  207.         }
  208.         static int Buscar(Persona[] Agenda, int c, string criterio, char op)
  209.         {
  210.             int posicion = -1;//No encuentra a la Persona
  211.  
  212.             if (op == 'N' || op == 'n')
  213.             {
  214.                 for (int i = 0; i < c; i++)
  215.                 {
  216.                     if (criterio == Agenda[i].Nombres)
  217.                     {
  218.                         posicion = i;
  219.                         break;
  220.                     }
  221.                 }
  222.             }
  223.             if (op == 'A' || op == 'a')
  224.             {
  225.                 for (int i = 0; i < c; i++)
  226.                 {
  227.                     if (String.Compare(Agenda[i].Apellidos, criterio, true) == 0)
  228.                     {
  229.                         posicion = i;
  230.                         break;
  231.                     }
  232.                 }
  233.             }
  234.             return posicion;
  235.         }
  236.  
  237.         static void ReporteSimilares(Persona[] Agenda, int i, string criterio, char op)
  238.         {
  239.             if (op == 'N' || op == 'n')
  240.             {
  241.                 if (Agenda[i].Nombres.Contains(criterio) == true)
  242.                 {
  243.                     Console.WriteLine("\n\t\tCodigo: " + Agenda[i].Codigo);
  244.                     Console.WriteLine("\t\tNombres: " + Agenda[i].Nombres);
  245.                     Console.WriteLine("\t\tApellidos: " + Agenda[i].Apellidos);
  246.                     Console.WriteLine("\t\tDni: " + Agenda[i].Dni);
  247.                     Console.WriteLine("\t\tDireccion: " + Agenda[i].Direccion);
  248.                     Console.WriteLine("\t\tTelefono: " + Agenda[i].Telefono);
  249.                     Console.WriteLine("\t\tEdad: " + Agenda[i].Edad);
  250.                     Console.WriteLine("\t\tFecha de Nacimiento: " + Agenda[i].FechaNac);
  251.                     Console.WriteLine("\t\tEmail: " + Agenda[i].Email);
  252.                     Console.WriteLine("\t\tSexo: " + Agenda[i].Sexo);
  253.                 }
  254.             }
  255.             if (op == 'A' || op == 'a')
  256.             {
  257.                 if (Agenda[i].Apellidos.Contains(criterio) == true)
  258.                 {
  259.                     Console.WriteLine("\n\t\tCodigo: " + Agenda[i].Codigo);
  260.                     Console.WriteLine("\t\tNombres: " + Agenda[i].Nombres);
  261.                     Console.WriteLine("\t\tApellidos: " + Agenda[i].Apellidos);
  262.                     Console.WriteLine("\t\tDni: " + Agenda[i].Dni);
  263.                     Console.WriteLine("\t\tDireccion: " + Agenda[i].Direccion);
  264.                     Console.WriteLine("\t\tTelefono: " + Agenda[i].Telefono);
  265.                     Console.WriteLine("\t\tEdad: " + Agenda[i].Edad);
  266.                     Console.WriteLine("\t\tFecha de Nacimiento: " + Agenda[i].FechaNac);
  267.                     Console.WriteLine("\t\tEmail: " + Agenda[i].Email);
  268.                     Console.WriteLine("\t\tSexo: " + Agenda[i].Sexo);
  269.                 }
  270.             }
  271.         }
  272.         static void LeerDatos(List<Persona> Agenda, Persona persona)
  273.         {
  274.             int i;
  275.             string linea;
  276.  
  277.             using (StreamReader archivo = new StreamReader("D:\\AEDI\\Agenda2.txt"))
  278.             {
  279.                 while ((linea = archivo.ReadLine()) != null)
  280.                 {
  281.                     persona = new Persona(Agenda.Count + 1);
  282.                     i = linea.IndexOf('|');
  283.                     persona.Nombres = linea.Substring(0, i);
  284.                     linea = linea.Substring(i + 1);
  285.                     i = linea.IndexOf('|');
  286.                     persona.Apellidos = linea.Substring(0, i);
  287.                     linea = linea.Substring(i + 1);
  288.                     i = linea.IndexOf('|');
  289.                     persona.Dni = linea.Substring(0, i);
  290.                     linea = linea.Substring(i + 1);
  291.                     i = linea.IndexOf('|');
  292.                     persona.Direccion = linea.Substring(0, i);
  293.                     linea = linea.Substring(i + 1);
  294.                     i = linea.IndexOf('|');
  295.                     persona.Telefono = linea.Substring(0, i);
  296.                     linea = linea.Substring(i + 1);
  297.                     i = linea.IndexOf('|');
  298.                     persona.Edad = int.Parse(linea.Substring(0, i));
  299.                     linea = linea.Substring(i + 1);
  300.                     i = linea.IndexOf('|');
  301.                     persona.FechaNac = DateTime.Parse(linea.Substring(0, i));
  302.                     linea = linea.Substring(i + 1);
  303.                     i = linea.IndexOf('|');
  304.                     persona.Email = linea.Substring(0, i);
  305.                     linea = linea.Substring(i + 1);
  306.                     i = linea.IndexOf('|');
  307.                     persona.Sexo = char.Parse(linea.Substring(0, i));
  308.                     linea = linea.Substring(i + 1);
  309.                     Agenda.Add(persona);
  310.                 }
  311.             }
  312.         }
  313.         static void GuardarDatos(List<Persona> Agenda)
  314.         {
  315.             StreamWriter archivo = File.CreateText("D:\\AEDI\\Agenda2.txt");
  316.             string linea;
  317.             foreach (Persona nodo in Agenda)
  318.             {
  319.                 linea = nodo.Nombres;
  320.                 linea = linea + "|";
  321.                 linea = linea + nodo.Apellidos;
  322.                 linea = linea + "|";
  323.                 linea = linea + nodo.Dni;
  324.                 linea = linea + "|";
  325.                 linea = linea + nodo.Direccion;
  326.                 linea = linea + "|";
  327.                 linea = linea + nodo.Telefono;
  328.                 linea = linea + "|";
  329.                 linea = linea + nodo.Edad.ToString();
  330.                 linea = linea + "|";
  331.                 linea = linea + nodo.FechaNac.ToString();
  332.                 linea = linea + "|";
  333.                 linea = linea + nodo.Email;
  334.                 linea = linea + "|";
  335.                 linea = linea + nodo.Sexo.ToString();
  336.                 linea = linea + "|";
  337.                 archivo.Write(linea.ToString());
  338.                 archivo.Write(archivo.NewLine);
  339.             }
  340.             archivo.Flush();
  341.             archivo.Close();
  342.         }
  343.  
  344.         public static int c { get; set; }
  345.     }
Advertisement
Add Comment
Please, Sign In to add comment