• Miércoles 15 de Mayo de 2024, 00:43

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Mensajes - GLaquia_Multimedia

Páginas: [1]
1
C# / Re: Ordenamiento de una lista
« en: Domingo 11 de Octubre de 2009, 18:16 »
Cita de: "tannke"
martes te digo cosas, ahora no tengo mucho tiempo, saludos


Ok amigo , gracias :D

2
C# / Re: Ordenamiento de una lista
« en: Sábado 10 de Octubre de 2009, 01:39 »
Cita de: "tannke"
Ahi te va una pequeña reforma para que sea mas interesante el programa:

atento que ahora hemos puesto arriba los using's:

using System.IO;
using System.Runtime.Serialization.Formatters.Binary;

Código: C#
  1.  
  2. using System;
  3. using System.Collections.Generic;
  4. using System.Text;
  5. using System.IO;
  6. using System.Runtime.Serialization.Formatters.Binary;
  7.  
  8. namespace ayudasolocodigo2
  9. {
  10.     class Program
  11.     {
  12.         static bool salir = false;
  13.         static string opcion = null;
  14.  
  15.         static void Main(string[] args)
  16.         {
  17.  
  18.            
  19.             Cargar();
  20.             while (!salir)
  21.             {
  22.                 Console.WriteLine(">>>>>>>>>>>>>>>>>>>>          MENU PRINCIPAL          <<<<<<<<<<<<<<<<<<<<");
  23.                 Console.WriteLine("nElija opción:n");
  24.                 Console.WriteLine("[ 1 ] Ingresar alumnos.");
  25.                 Console.WriteLine("[ 2 ] Buscar alumnos.");
  26.                 Console.WriteLine("[ 3 ] Ver listado.");
  27.                 Console.WriteLine("[ 4 ] Borrar alumnos.");
  28.                 Console.WriteLine("[ 5 ] Guardar.");
  29.                 Console.WriteLine("[ 6 ] Salir.");
  30.                 Console.WriteLine();
  31.                 Console.Write("Opción : [   ]");
  32.                 Console.CursorLeft = 11;
  33.                 opcion = Console.ReadLine();
  34.                
  35.  
  36.                 if (opcion == "1")
  37.                 {
  38.                     Console.Clear();
  39.                     Insertar(true);
  40.                 }
  41.  
  42.                 else if (opcion == "2")
  43.                 {
  44.                     Console.Clear();
  45.                     Console.WriteLine(">>>>>>>>>>>>>>>>>>>>         MENU DE BUSQUEDA         <<<<<<<<<<<<<<<<<<<<");
  46.                     Console.WriteLine();
  47.                     Console.Write("Nombre: ");
  48.                     string nombre = Console.ReadLine();
  49.                     Buscar(nombre,false);
  50.                     Console.WriteLine("nPulse Enter para volver al menú...");
  51.                     Console.ReadLine();
  52.                     Console.Clear();
  53.                 }
  54.                 else if (opcion == "3")
  55.                 {
  56.                    
  57.                     Console.Clear();
  58.                     Console.WriteLine(">>>>>>>>>>>>>>>>>>>>        LISTADO DE ALUMNOS        <<<<<<<<<<<<<<<<<<<<");
  59.                     Console.WriteLine();
  60.  
  61.                     if (ORDENADOS == null || ORDENADOS.Length==0)
  62.                         Console.WriteLine("Listado vacio");
  63.                     else
  64.                     {
  65.                         for (int i = 0; i < (ORDENADOS.Length / 3); i++)
  66.                         {
  67.                             Console.WriteLine((i + 1) + ". " + ORDENADOS[i, 0] + " .... " + ORDENADOS[i, 1] + " " + ORDENADOS[i, 2]);
  68.                         }
  69.                     }
  70.                     Console.WriteLine();
  71.                     Console.WriteLine("Pulse Enter para volver al menú...");
  72.                     Console.ReadLine();
  73.                     Console.Clear();
  74.                 }
  75.                 else if (opcion == "4")
  76.                 {
  77.                     Console.Clear();
  78.                     Console.WriteLine(">>>>>>>>>>>>>>>>>>>>         MENU DE BORRADO          <<<<<<<<<<<<<<<<<<<<");
  79.                     Console.WriteLine();
  80.                     Console.Write("Nombre: ");
  81.                     string nombre = Console.ReadLine();
  82.                     Buscar(nombre, true);
  83.                     Console.WriteLine("nPulse Enter para volver al menú...");
  84.                     Console.ReadLine();
  85.                     Console.Clear();
  86.                 }
  87.                 else if (opcion == "5")
  88.                 {
  89.                     Console.Clear();                    
  90.                     Guardarlo();
  91.                     Console.CursorTop = 14;
  92.                     Console.WriteLine("Datos guardados");
  93.                     Console.CursorTop = 0;
  94.  
  95.                 }
  96.                 else if (opcion == "6")
  97.                 {
  98.                     Guardarlo();
  99.                     salir = true;
  100.                 }
  101.                 else
  102.                 {
  103.                     Console.Clear();
  104.                     Console.CursorTop = 14;
  105.                     Console.WriteLine("Tecla no valida...");
  106.                     Console.CursorTop = 0;
  107.                 }
  108.             }
  109.            
  110.         }
  111.  
  112.         static List<string> alumnos = new List<string>();
  113.         static List<string> carrera = new List<string>();
  114.  
  115.         static void Insertar(bool nuevo)
  116.         {
  117.             if (nuevo)
  118.             {
  119.                 Console.WriteLine(">>>>>>>>>>>>>>>>>>>>       MENU INGRESO ALUMNOS       <<<<<<<<<<<<<<<<<<<<");
  120.                 try { Console.WriteLine("nAlumnos en lista: {0}", alumnos.Count); }
  121.                 catch { Console.WriteLine("nAlumnos en lista: 0"); }
  122.                    
  123.  
  124.                
  125.                 string nombre = "";
  126.                 string Ncarrera = "";
  127.  
  128.  
  129.                 Console.Write("nInserte alumno: ");
  130.                 nombre = Console.ReadLine();
  131.  
  132.                 if (nombre != "")
  133.                 {
  134.                     Console.Write("Inserte carrera: ");
  135.                     Ncarrera = Console.ReadLine();
  136.                 }
  137.                 Console.Clear();
  138.                 Console.WriteLine(">>>>>>>>>>>>>>>>>>>>       MENU INGRESO ALUMNOS       <<<<<<<<<<<<<<<<<<<<");
  139.                 Console.WriteLine("nAlumnos en lista: {0}", alumnos.Count+1);
  140.                 while (nombre != "")
  141.                 {
  142.                     alumnos.Add(nombre);
  143.                     carrera.Add(Ncarrera);
  144.  
  145.                     Console.Write("nInserte alumno: ");
  146.                     nombre = Console.ReadLine();
  147.  
  148.                     if (nombre != "")
  149.                     {
  150.                         Console.Write("Inserte carrera: ");
  151.                         Ncarrera = Console.ReadLine();
  152.                     }
  153.                     Console.Clear();
  154.                     Console.WriteLine(">>>>>>>>>>>>>>>>>>>>       MENU INGRESO ALUMNOS       <<<<<<<<<<<<<<<<<<<<");
  155.                     Console.WriteLine("nAlumnos en lista: {0}", alumnos.Count+1);
  156.                 }
  157.  
  158.                 Console.Clear();
  159.             }
  160.  
  161.             string[] Ordenados = new string[alumnos.Count];
  162.             string[] Carrera = new string[alumnos.Count];
  163.  
  164.             for (int a = 0; a < alumnos.Count; a++)
  165.             {
  166.                 string temp = alumnos[a];
  167.                 char[] seps = { ' ' };
  168.                 string[] cad = temp.Split(seps);
  169.  
  170.                 if (cad.Length == 1)
  171.                     Ordenados[a] = cad[0];
  172.                 else if (cad.Length == 2)
  173.                     Ordenados[a] = cad[1] + " " + cad[0];
  174.                 else if (cad.Length == 3)
  175.                     Ordenados[a] = cad[1] + " " + cad[2] + " " + cad[0];
  176.                 else
  177.                 {
  178.                     for (int i = 2; i < cad.Length; i++)
  179.                         Ordenados[a] += cad[i] + " ";
  180.                     Ordenados[a] += cad[0] + " " + cad[1];
  181.                 }
  182.             }
  183.  
  184.             for (int a = 0; a < alumnos.Count; a++)
  185.                 Carrera[a] = carrera[a];
  186.  
  187.             Ordenar(Ordenados, Carrera);
  188.         }
  189.  
  190.         static string[,] ORDENADOS;
  191.  
  192.         //ordenaremos por el metodo de la burbuja
  193.         static void Ordenar(string[] alumn, string[] carr)
  194.         {
  195.             ORDENADOS = new string[alumn.Length, 3];
  196.  
  197.             string[] pos = generadorPos(alumn.Length);
  198.  
  199.             string auxiliar;
  200.             string auxiliar2;
  201.             string auxiliar3;
  202.  
  203.             int i, numelem = alumn.Length;
  204.             bool s = true;
  205.  
  206.             while (s && (--numelem > 0))
  207.             {
  208.                 s = false;
  209.                 for (i = 1; i <= numelem; i++)
  210.                 {
  211.                     if (alumn[i - 1].CompareTo(alumn[i]) > 0)
  212.                     {
  213.                         auxiliar = alumn[i - 1];
  214.                         alumn[i - 1] = alumn[i];
  215.                         alumn[i] = auxiliar;
  216.  
  217.                         auxiliar2 = carr[i - 1];
  218.                         carr[i - 1] = carr[i];
  219.                         carr[i] = auxiliar2;
  220.  
  221.                         auxiliar3 = pos[i - 1];
  222.                         pos[i - 1] = pos[i];
  223.                         pos[i] = auxiliar3;
  224.  
  225.                         s = true;
  226.  
  227.                     }
  228.                 }
  229.             }
  230.  
  231.             for (int a = 0; a < alumn.Length; a++)
  232.             {
  233.                 ORDENADOS[a, 0] = alumn[a];
  234.                 ORDENADOS[a, 1] = carr[a];
  235.                 ORDENADOS[a, 2] = pos[a];
  236.             }
  237.         }
  238.  
  239.         static string[] generadorPos(int a)
  240.         {
  241.             string[] pos = new string[a];
  242.  
  243.             for (int i = 0; i < a; i++)
  244.             {
  245.                 pos[i] = "[Fue el " + (i+1) + "º en ser ingresado]";
  246.             }
  247.             return pos;
  248.         }
  249.  
  250.         static void Buscar(string nom, bool borrar)
  251.         {
  252.             List<string> resultado = new List<string>();
  253.  
  254.             if (ORDENADOS == null)
  255.             {
  256.                 Console.WriteLine("Nombre no encontrado");
  257.                 return;
  258.             }
  259.  
  260.             for (int i = 0; i < (ORDENADOS.Length/3); i++)
  261.             {
  262.                 if (nom == ORDENADOS[i, 0])
  263.                     resultado.Add(ORDENADOS[i, 0] + " .... " + ORDENADOS[i, 1] + " " + ORDENADOS[i, 2]);
  264.  
  265.                 else
  266.                 {
  267.                     string str1 = ORDENADOS[i, 0];
  268.                     char[] seps = { ' ' };
  269.                     string[] cad = str1.Split(seps);
  270.  
  271.                     for (int e = 0; e < cad.Length; e++)
  272.                     {
  273.                         if (nom == cad[e])
  274.                         {
  275.                             resultado.Add(ORDENADOS[i, 0] + " .... " + ORDENADOS[i, 1] + " " + ORDENADOS[i, 2]);
  276.                             break;
  277.                         }
  278.                     }
  279.                 }
  280.             }
  281.             if (resultado.Count == 0)
  282.             {
  283.                 Console.WriteLine("Nombre no encontrado");
  284.                 return;
  285.             }
  286.  
  287.             else
  288.             {
  289.                 Console.WriteLine();
  290.                 int M = 1;
  291.                 foreach (string n in resultado)
  292.                 {
  293.                     Console.WriteLine(M+". "+n);
  294.                     M++;
  295.                 }
  296.             }
  297.  
  298.             if (borrar)
  299.             {
  300.                 if (resultado.Count == 1)
  301.                 {
  302.                     Console.ForegroundColor = ConsoleColor.Red;
  303.                     Console.Write("n¿Seguro que quiere borrar?: ");
  304.                     Console.ForegroundColor = ConsoleColor.Gray;
  305.  
  306.                     string C = Console.ReadLine();
  307.  
  308.                     if (C == "SI" || C == "si" || C == "s" || C == "S" || C == "Si")
  309.                     {
  310.                         BORRAR(resultado[0]);
  311.                         Console.WriteLine("Borrado...");
  312.                     }
  313.                     else Console.WriteLine("NO borrado...");
  314.                 }
  315.                 else
  316.                 {
  317.                     Console.Write("nElija el número del nombre a eliminar : ");
  318.                     int H = Int32.Parse(Console.ReadLine());
  319.  
  320.                     Console.ForegroundColor = ConsoleColor.Red;
  321.                     Console.Write("n¿Seguro que quiere borrar?: ");
  322.                     Console.ForegroundColor = ConsoleColor.Gray;
  323.                    
  324.                     string C = Console.ReadLine();
  325.  
  326.                     if (C == "SI" || C == "si" || C == "s" || C == "S" || C == "Si")
  327.                     {
  328.                         try
  329.                         {
  330.                             BORRAR(resultado[H-1]);
  331.                             Console.WriteLine("Borrado...");
  332.                         }
  333.                         catch
  334.                         {
  335.                             Console.WriteLine("NO borrado...");
  336.                         }
  337.                     }
  338.                     else Console.WriteLine("NO borrado...");
  339.                 }
  340.  
  341.             }
  342.  
  343.         }
  344.         static void BORRAR(string nom)
  345.         {
  346.             char[] seps ={ ' ' };
  347.             string[] cad = nom.Split(seps);
  348.  
  349.             string temp = cad[cad.Length - 4];
  350.  
  351.             temp = temp.Replace("º", "");
  352.             int num = Int32.Parse(temp);
  353.  
  354.             alumnos.RemoveAt(num -1);
  355.             carrera.RemoveAt(num-1);
  356.  
  357.             Insertar(false);
  358.  
  359.         }
  360.  
  361.  
  362.         static void Guardarlo()
  363.         {
  364.             Guardar objeto = new Guardar();
  365.             objeto.guardar(alumnos, carrera);
  366.  
  367.             Stream fs = File.Create("agenda.bin");
  368.             BinaryFormatter seriador = new BinaryFormatter();
  369.             seriador.Serialize(fs, objeto);
  370.             fs.Close();
  371.         }
  372.  
  373.         static void Cargar()
  374.         {
  375.             if (File.Exists("agenda.bin"))
  376.             {
  377.                 Stream fs = File.OpenRead("agenda.bin");
  378.                 BinaryFormatter deseriador = new BinaryFormatter();
  379.                 Guardar nuevoobj;
  380.                 nuevoobj = (Guardar)deseriador.Deserialize(fs);
  381.                 fs.Close();
  382.  
  383.                 alumnos = nuevoobj.Cargar1();
  384.                 carrera = nuevoobj.Cargar2();
  385.  
  386.                 Insertar(false);
  387.             }
  388.            
  389.         }
  390.     }
  391.  
  392.     [Serializable]
  393.     class Guardar
  394.     {
  395.         private List<string> alumnos;
  396.         private List<string> carrera;
  397.  
  398.         public void guardar(List<string> al, List<string> carr)
  399.         {
  400.             alumnos = al;
  401.             carrera = carr;
  402.         }
  403.  
  404.         public List<string> Cargar1()
  405.         {
  406.             return alumnos;
  407.         }
  408.  
  409.         public List<string> Cargar2()
  410.         {
  411.             return carrera;
  412.         }
  413.     }
  414. }
  415.  
  416.  
  417.  

bueno supongo que todo esto se podria hacer mas facil, pero yo tb soy algo novato y autodidacta. Voy haciendo las cosas con lo que conozco, alomejor hay metodods por ahi que reducen muchisimas cosas de estas.
Ademas hacia tiempo que no hacia nada en modo consola, jejeje :P

bueno si no  entiendes cualquier cosa de lo puesto dimelo, prefiero que entiendas para que sirven las cosas, asi las podras usar en el futuro para lo que necesites

saludos :)

pd. editado con algunas mejoras

Oriale mano te aventaste un rollo de programa pero me explicarias que hace cada cosa por que se me hace demasiado rollo y no entiendo que hace cada cosa.

3
C# / Re: Ordenamiento de una lista
« en: Viernes 9 de Octubre de 2009, 00:52 »
Orale si sale ordenado como queria, gracias amigo.

En este mismo codigo que me facilitaste le quiero ingresar una variable que muestre la carrera que el alumno esta estudiando y el orden en el cual fueron ingresados.

Ejemplo:

// Nombres ingresados
1 David Echeverria Hinojosa Multimedia primero en ser ingresado
2 Valeria Fernandez Delgado Mercadotecnia segundo ""
3 Gustavo Ortega Cardenas Comunicaciones tercero ""
4 Andres Manuel Huerta Treviño Derecho cuarto ""

//Ordenados alfabeticamente por apellido paterno

1. Echeverria Hinojosa David  .... Multimedia [ Fue el primero en ser insertado y el primero en ser ordenado debido a su apellido paterno]
2. Fernandez Delgado Valeria  .... Mercadotecnia [Fue la segunda en ser insertada y la segunda en ser ordenada debido a su apellido paterno]
3. Huerta Treviño Andres Manuel  .... Comunicaciones [Fue el cuarto en ser insertado y el tercero en ser ordenado]
4. Ortega Cardenas Gustavo .... Derecho [Fue el tercero en ser insertado y el  cuarto en ser ordenado]

y despues haya una opcion  para buscar a un alumno que fue ingresado en la lista y sea eliminado de ella si me explico. Lamento si pido mucho esque en verdad soy muy nuevo en e esto de las listasy pues si necesito que alguien me eche la mano.  ^_^

4
C# / Re: Ordenamiento de una lista
« en: Jueves 8 de Octubre de 2009, 22:50 »
Gracias por la respuesta pero aun no comprendi muy bien. Tengo que hacer una clase nueva llamada Array? Creo que debi poner lo que tenia de codigo para nomas ver lo que me hacia falta

Esto es lo que llevo de codigo en aplicacion de consola :

Citar
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
        class Program
        {
        struct Datos
        {
            public int Id;
            public string Nombre;
            public string Carrera;
        }
        static void Main(string[] args)
        {
            Datos[] Vec = new Datos[11];
            int I;
            for (I = 0; I < 11; I++)
            {
                Vec.Id = I;
                Console.Write("Nombre a registrar: ");
                Vec.Nombre = Console.ReadLine();
                Console.Write("Carrera: ");
                Vec.Carrera = Console.ReadLine();
            }
            Console.Clear();
            for (I = 0; I < 11; I++)
                Console.WriteLine("Id: " + Vec.Id.ToString() +", Carrera: "+Vec.Carrera+ ", Nombre: " + Vec.Nombre);
            Console.ReadLine();
        }
    }
}


Lo que hace este codigo es poner de manera secuencial los nombres que son ingresados pero los despliega en el mismo orden en los que los registro, y lo que quiero es que al momento de que termino de ingresar se acomoden los apellidos alfabeticamente independientemente del orden en el que hayan sido agregados.


Ejemplo:

// Nombres ingresados
1 David Echeverria Hinojosa
2 Valeria Fernandez Delgado
3 Gustavo Ortega Cardenas
4 Andres Manuel Huerta Treviño

//Ordenados alfabeticamente por apellido paterno

1. Echeverria Hinojosa David
2. Fernandez Delgado Valeria
3. Huerta Treviño Andres Manuel
4. Ortega Cardenas Gustavo

Aqui dio la casualidad de que david y valeria les tocara el mismo lugar en el que fueron ingresados pero gustavo que fue el 3ero en ingresar paso a ser el 4to debido a su primer apellido. Y eso es en donde estoy atorado para lograr el ordenamiento que logro intentar.

5
C# / Ordenamiento de una lista
« en: Jueves 8 de Octubre de 2009, 16:34 »
Hola amigos, soy David y como se darán cuenta soy nuevo en el foro. Actualmente llevo un curso de C# y necesito que me expliquen como puedo ordenar una lista a la que le ingreso un nombre con 2 apellidos y que el apellido paterno me lo ordene de orden alfabetico. un ejemplo

// Nombres ingresados
1 David Echeverria Hinojosa
2 Valeria Fernandez Delgado
3 Gustavo Ortega Cardenas
4 Andres Manuel Huerta Treviño

//Ordenados alfabeticamente por apellido paterno

Echeverria Hinojosa David
Fernandez Delgado Valeria
Huerta Treviño Andres Manuel
Ortega Cardenas Gustavo

Es asi como las listas de los institutos para pasar lista a los alumnos. El proyecto lo estoy haciendo en modo de consola pero si me pudieran decir como hacerlo visual seria genial :D

Páginas: [1]