Foro de elhacker.net

Programación => .NET (C#, VB.NET, ASP) => Mensaje iniciado por: ronnieale en 25 Mayo 2009, 19:15 pm



Título: ayuda con metodo mostrar
Publicado por: ronnieale en 25 Mayo 2009, 19:15 pm
hola...miren como me qdo el metodo mostrar

(http://s3.subirimagenes.com/otros/previo/thump_2603587dibujo.jpg)

bueno en la imagen se puede ver  como me qdo todo desordenado...quisiera saber si me dan una mano para q me qde ordenado..ahi le va el codigo q tengo yo...





Console.WriteLine("*******************************************************************");
Console.WriteLine("****** TABLA DE JUGADORES SEGUN PROMEDIO DE GOLES ***************");
 Console.WriteLine("");
 Console.WriteLine(" Nombre Jugador--Nombre Equipo--Partidos Jugados--Goles--Promedio de goles ");

            for (int i = 0; i < cantidad; i++)
            {

                Milista.Mostrar();
                
                Console.ReadKey();
            }


public void Mostrar()
        {
            
            Console.WriteLine("  {0}           {1}            {2}          {3}           {4}      ", NomJugador, NomEquipo, PartJugados,GolesConvertidos,GolesPartidos);
      

        }



Título: Re: ayuda con metodo mostrar
Publicado por: Jorgitoh en 26 Mayo 2009, 00:00 am
En lugar de usar espacios deberias usar el "\t" que sirve para realizar tabulaciones tal como las harias en Word o en cualquier procesador de texto.

Es decir, que agarras todos los espacios que pusiste y reemplazalos por "\t" y listo. De todos modos tene en cuenta que en lugares donde la longuitud de los textos es variable probablemente debas usar uno o dos "\t".

Saludos.


Título: Re: ayuda con metodo mostrar
Publicado por: Meta en 26 Mayo 2009, 03:22 am
Hola:

Hace un tiempo hice cosas de esas, es curioso. Si es posible, es recomendable poner el código completo para poder guiarme mejor.

(http://usuarios.lycos.es/reparaplaystation/cs/menu2.jpg)

(http://usuarios.lycos.es/reparaplaystation/cs/menu_fuente2.jpg)

(http://usuarios.lycos.es/reparaplaystation/cs/menu_fuente3.jpg)

Mejor usar esto:
Código
  1.            string c1 = "&#9556;";
  2.            for (; c1.Length <= 77; c1 += "&#9552;") ;
  3.            c1 += "&#9559;";
  4.            Console.Write(c1);
  5.  

Es conveniente mirar la tabla ASCII (http://www.opcionweb.com/webs/ascii/ascii2-700.jpg).

Más bonito te queda así, sobre todo si pones título a la ventana principal arriba como puedes ver en la imagen de abajo:
(http://electronicapic.iespana.es/cs/ta.jpg)

Continuando el código...

Saludo.


Título: Re: ayuda con metodo mostrar
Publicado por: h0oke en 26 Mayo 2009, 03:39 am
 :o Vaya que es un trabajo hacer una presenctación en console mode... Me sigues sorprendiendo meta...

Salu2!


Título: Re: ayuda con metodo mostrar
Publicado por: ronnieale en 27 Mayo 2009, 15:38 pm
mil gracias...pero fiera q presentacion....te sarpas hee...jajaja...muchas gracias por tu respuesta... ;D


Título: Re: ayuda con metodo mostrar
Publicado por: Meta en 27 Mayo 2009, 18:36 pm
¿Podrías poner tu código completo? A ver si hago tu programa en orden. Te doy el código de arriba que hice para que hagas ideas.

Código
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5.  
  6. namespace MenuCMD
  7. {
  8.    class Program
  9.    {
  10.        static void Main(string[] args)
  11.        {
  12.            Console.Title = "TABLA DE JUGADORES";
  13.            string c1 = "&#9556;";
  14.            for (; c1.Length <= 77; c1 += "&#9552;");
  15.            c1 += "&#9559;";
  16.            Console.WriteLine(c1);
  17.            Console.Write("&#9553;                 ");
  18.            Console.BackgroundColor = ConsoleColor.Black;
  19.            Console.ForegroundColor = ConsoleColor.Yellow;
  20.            Console.Write("TABLA DE JUGADORES SEGUN PROMEDIO DE GOLES");
  21.            Console.ForegroundColor = ConsoleColor.Gray;
  22.            Console.WriteLine("                  &#9553;");
  23.            string c2 = "&#9568;";
  24.            for (; c2.Length <= 77; c2 += "&#9552;");
  25.            c2 += "&#9571;";
  26.            Console.WriteLine(c2);
  27.            string c3 = "&#9553;";
  28.            for (; c3.Length <= 77; c3 += " ") ;
  29.            c3 += "&#9553;";
  30.            Console.WriteLine(c3);
  31.            Console.WriteLine("&#9553;  Nombre Jugador--Nombre Equipo--Partidos Jugados--Goles--Promedio de goles  &#9553;");
  32.  
  33.            Console.ReadKey();
  34.        }
  35.    }
  36. }
  37.  
  38.  


Título: Re: ayuda con metodo mostrar
Publicado por: ronnieale en 28 Mayo 2009, 04:57 am
ahi ta todo el codigo....si me ayudas te agradezco...-

Código:
namespace ejercicio_26
{
    class Program
    {
        static void Main(string[] args)
        {
            
            List<Jugador> Milista = new List<Jugador>();
                        
            Milista.Add(new Jugador("roney", "manchester", 20, 40));
            Milista.Add(new Jugador("messi", "Barcelona", 20, 80));
            Milista.Add(new Jugador("Mascherano", "Liverpool", 20, 45));
            Milista.Add(new Jugador("Aguero", "Atletico", 20, 60));
            int cantidad = Milista.Count;

            Jugador aux = new Jugador();
            for (int i = 0; i < cantidad; i++)
            {
                for (int j = i+1; j < cantidad; j++)
                {
                    if (Milista[j].GolesPartidos > Milista[i].GolesPartidos)
                    {
                        aux = Milista[i];
                        Milista[i] = Milista[j];
                        Milista[j] = aux;                        
                    }
                }
            }

            Console.WriteLine("**************************************************************************");
            Console.WriteLine("*************** TABLA DE JUGADORES SEGUN PROMEDIO DE GOLES ***************");
            Console.WriteLine("");
            Console.WriteLine(" Nombre Jugador--Nombre Equipo--Partidos Jugados--Goles--Promedio de goles ");



            
                foreach (Jugador j in Milista)
                {
                    j.Mostrar();
                }
                Console.ReadKey();
        




        }

    }

}



namespace ejercicio_26
{
    class Jugador
    {

        String NomEquipo;
        String NomJugador;
        int PartJugados;
        int GolesConvertidos;
        public int GolesPartidos;

        public Jugador() { }
        public Jugador(String nomjuga, String nomequi, int partidos, int golconver)
        {
            this.NomJugador = nomjuga;
            this.NomEquipo = nomequi;
            this.PartJugados = partidos;
            this.GolesConvertidos = golconver;
            this.GolesPartidos = Calcular(partidos, golconver);
        }

        public void Mostrar()
        {            
            Console.WriteLine("  {0}           {1}            {2}          {3}           {4}      ", NomJugador,NomEquipo,PartJugados,GolesConvertidos,GolesPartidos);    
        }
        private int Calcular(int partidos, int convertidos)
        {
            int a=0;
            a = convertidos / partidos;
            return a;
        }




    }  
}


Título: Re: ayuda con metodo mostrar
Publicado por: Meta en 28 Mayo 2009, 17:37 pm
Hola:

.NET Format a string with fixed spaces  (http://stackoverflow.com/questions/644017/-net-format-a-string-with-fixed-spaces)

en este link realizaron una consulta similar.

puedes hacer uso del

PadLeft()
PadRight()

Usa el metodo PadRight de la clase String para rellenar los valores NomJugador, NomEquipo, etc. con espacios en blanco y asi que todos midan lo mismo. Ejemplo de como usar este metodo:

string MyString = "Cadena";
MyString.PadRight(8);
//MyString = "Cadena  "

A ver si esto te ayuda, si lo logras, muestra una imagen aquí como hiciste en el primer tema.




Título: Re: ayuda con metodo mostrar
Publicado por: ronnieale en 29 Mayo 2009, 14:53 pm
hola...mira lo puse asi en el metodo mostrar pero no psa nada... :-\

Código:
        public void Mostrar()
        {
            String MyString = NomEquipo;
            MyString.PadRight(12);
            String MyString2 = NomJugador;
            MyString.PadRight(12);

            Console.WriteLine("  {0}           {1}            {2}          {3}           {4}      ", NomJugador,NomEquipo,PartJugados,GolesConvertidos,GolesPartidos);     
        }