Foro de elhacker.net

Programación => .NET (C#, VB.NET, ASP) => Mensaje iniciado por: TwisteD420 en 18 Mayo 2011, 02:47 am



Título: Ayuda en C# (Nivel Principiante)
Publicado por: TwisteD420 en 18 Mayo 2011, 02:47 am
Como estan?

Les cuento, actualemente estoy estudiando un Técnico en Ing. en Sistemas, aun no estamos viendo nada de programación (apenas es el 1º ciclo) pero en el 2º ciclo (o sea en Agosto) comenzaremos a ver programación orientada a objetos usando C#.

Yo no quiero llegar en BLANCO, dicen que es un poco pesada esa materia. Ademas como hobbie me esta gustando comenzar a leer y dar mis primeros pasos hacia la programación, ya que jamás he programado en mi vida y estoy comenzando con C#.

Dejando a un lado eso.

Les traigo mi primera duda en cuanto a mi código.

Lo que quiero hacer despues de esto que tengo, es que si los datos que se ingresaron son correctos que me los almacene, pero no se como EXPRESAR ESO.

Y por ende, que si es falso pues que vuelva a ingresar los datos.

Código
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Text;
  4.  
  5. namespace ConsoleApplication1
  6. {
  7.    class Inscribir
  8.    {
  9.  
  10.        public static void Main()
  11.        {
  12.            Console.ForegroundColor = ConsoleColor.White;
  13.            Console.Title = "Inscripcion";
  14.            Console.WriteLine("======================================");
  15.            Console.WriteLine("Bienvenido al Registo de Inscripción");
  16.            Console.WriteLine("======================================");
  17.            Console.WriteLine(" ");
  18.            Console.WriteLine("Favor ingresar los datos que le sean solicitados:");
  19.            Console.WriteLine(" ");
  20.            {
  21.                Console.ForegroundColor = ConsoleColor.Green;
  22.            }
  23.            Console.WriteLine("Ingrese su nombre");
  24.            {
  25.                Console.ForegroundColor = ConsoleColor.Yellow;
  26.            }
  27.            string NombreA = Console.ReadLine();
  28.            Console.WriteLine(" ");
  29.  
  30.            {
  31.                Console.ForegroundColor = ConsoleColor.Green;
  32.            }
  33.            Console.WriteLine("Ingrese su Edad");
  34.            {
  35.                Console.ForegroundColor = ConsoleColor.Yellow;
  36.            }
  37.  
  38.            string EdadA = Console.ReadLine();
  39.            Console.WriteLine(" ");
  40.            {
  41.                Console.ForegroundColor = ConsoleColor.Green;
  42.            }
  43.            Console.WriteLine("Ingrese el numero de telefono domiciliar");
  44.            {
  45.                Console.ForegroundColor = ConsoleColor.Yellow;
  46.            }
  47.  
  48.            string TelA = Console.ReadLine();
  49.            Console.WriteLine(" ");
  50.            {
  51.                Console.ForegroundColor = ConsoleColor.Green;
  52.            }
  53.            Console.WriteLine(" ");
  54.            Console.ForegroundColor = ConsoleColor.Cyan;
  55.            Console.WriteLine("¿Son correctos estos datos?");
  56.            Console.WriteLine("Alumno: {0}", NombreA);
  57.            Console.WriteLine("Edad: {0}", EdadA);
  58.            Console.WriteLine("Tel: {0}", TelA);
  59.            Console.WriteLine("");
  60.            Console.WriteLine("(S/N)");
  61.            Console.ReadLine();        
  62.        }
  63.  
  64.    }
  65. }
  66.  

Supongo que debo de comenzar eso con un IF (para corroborar si los datos ingresados son correctos o no... "S/N")... y después no se como seguir para almacenarlos.

Y si hay algo incorrecto en mi código, o algo que pueda mejorar, algun tip, consejo etc xD sera bienvenido!

Saludos!

PD: Estaré posteando mis dudas en este thread para evitar abrir varios.


Título: Re: Ayuda en C# (Nivel Principiante)
Publicado por: Novlucker en 18 Mayo 2011, 02:56 am
Exacto, lee sobre bucles y condicionales para seguir preguntando :)
Y para el tema de almacenarlos, creo que lo mejor para empezar es que aprendas algo sobre arrays :P

Saludos


Título: Re: Ayuda en C# (Nivel Principiante)
Publicado por: Edu en 18 Mayo 2011, 03:09 am
Te has leido un buen tutorial de C# ? te recomendaria leer uno de esos grandes vas a ver como aprendes rapido ;)
Aca te dejo como lo haria yo, espero q lo leas y entiendas que hice:

Código
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Text;
  4.  
  5. namespace ConsoleApplication1
  6. {
  7.    class Inscribir
  8.    {
  9.  
  10.        public static void Main()
  11.        {
  12.            string NombreA;
  13.            string EdadA;
  14.            string TelA;
  15.  
  16.            string respuesta;
  17.  
  18.          do
  19.            {
  20.                NombreA = string.Empty;
  21.                EdadA = string.Empty;
  22.                TelA = string.Empty;
  23.                respuesta = string.Empty;
  24.  
  25.                Console.Clear();
  26.  
  27.                Console.ForegroundColor = ConsoleColor.White;
  28.                Console.Title = "Inscripcion";
  29.                Console.WriteLine("======================================");
  30.                Console.WriteLine("Bienvenido al Registo de Inscripción");
  31.                Console.WriteLine("======================================");
  32.                Console.WriteLine(" ");
  33.                Console.WriteLine("Favor ingresar los datos que le sean solicitados:");
  34.                Console.WriteLine(" ");
  35.                {
  36.                    Console.ForegroundColor = ConsoleColor.Green;
  37.                }
  38.                Console.WriteLine("Ingrese su nombre");
  39.                {
  40.                    Console.ForegroundColor = ConsoleColor.Yellow;
  41.                }
  42.                NombreA = Console.ReadLine();
  43.                Console.WriteLine(" ");
  44.  
  45.                {
  46.                    Console.ForegroundColor = ConsoleColor.Green;
  47.                }
  48.                Console.WriteLine("Ingrese su Edad");
  49.                {
  50.                    Console.ForegroundColor = ConsoleColor.Yellow;
  51.                }
  52.  
  53.                EdadA = Console.ReadLine();
  54.                Console.WriteLine(" ");
  55.                {
  56.                    Console.ForegroundColor = ConsoleColor.Green;
  57.                }
  58.                Console.WriteLine("Ingrese el numero de telefono domiciliar");
  59.                {
  60.                    Console.ForegroundColor = ConsoleColor.Yellow;
  61.                }
  62.  
  63.                TelA = Console.ReadLine();
  64.                Console.WriteLine(" ");
  65.                {
  66.                    Console.ForegroundColor = ConsoleColor.Green;
  67.                }
  68.                Console.WriteLine(" ");
  69.                Console.ForegroundColor = ConsoleColor.Cyan;
  70.                Console.WriteLine("¿Son correctos estos datos?");
  71.                Console.WriteLine("Alumno: {0}", NombreA);
  72.                Console.WriteLine("Edad: {0}", EdadA);
  73.                Console.WriteLine("Tel: {0}", TelA);
  74.                Console.WriteLine("");
  75.                Console.WriteLine("(S/N)");
  76.                respuesta = Console.ReadLine();
  77.  
  78.            } while (respuesta != "S");
  79.  
  80.        }
  81.  
  82.    }
  83. }
  84.  


Título: Re: Ayuda en C# (Nivel Principiante)
Publicado por: TwisteD420 en 18 Mayo 2011, 03:34 am
Muchísimas gracias por ambas respuestas.

Pues fijate ZERO que estos dias no he tenido mucho tiempo, he estado leyendo mas que todo sintaxis para ir elaborando lo que se me viene a la mente en los ratos que me quedan libres, pero creo que mejor lo comenzaré a leer poco a poco.

Entiendo bastante bien el código que pusiste.
Por lo que veo usaste un bucle repeat, el cual mientras lo que se evalua sea falso seguira dando vueltas hasta que ingrese los datos correctos.
Cuando estos sean correctos se sale del bucle y ahi comienza el codigo para guardarlo.

Investigaré un poco mas sobre Arrays y almacenamiento de datos.

Saludos y muchísimas gracias por sus respuestas!  :)

EDIT:

Algo que no termino de entender, es cuando se usará:

Código
  1. NombreA = string.Empty;

Se que hace referencia a que será una variable solo de lectura o algo asi.

Y porque no se puede realizar esto?:

Código
  1. EdadA = int.Empty;


Título: Re: Ayuda en C# (Nivel Principiante)
Publicado por: Novlucker en 18 Mayo 2011, 04:47 am
Las variables de solo lectura son las constantes, pero eso que has puesto ahí es simplemente para generar una string vacía, a modo de NombreA = ""

Saludos


Título: Re: Ayuda en C# (Nivel Principiante)
Publicado por: Krähne en 18 Mayo 2011, 09:12 am

Y porque no se puede realizar esto?:

Código
  1. EdadA = int.Empty;


Una imagen vale más que mil palabras:

(http://www.freeimagehosting.net/uploads/c8bfbd2168.png)

...

En dado caso, ponle como valor: 0 y quedaría igual.

Gruß.


Título: Re: Ayuda en C# (Nivel Principiante)
Publicado por: Edu en 18 Mayo 2011, 16:11 pm
Voy a escribir bien porque me están vigilando xD

Código
  1.                NombreA = string.Empty;
  2.                EdadA = string.Empty;
  3.                TelA = string.Empty;
  4.                respuesta = string.Empty;
  5.  
  6.                Console.Clear();
  7.  

Eso lo puse al principio del bucle para que vuelva todo "a cero" y entonces quedarían los strings con valor de "", es decir, un string vacío.
Y mira bien que la edad la guardas en una variable string aunque sea un número, ya que Console.ReadLine(); devuelve lo que escribes en la Consola como un string. Pero si quieres guardarlo como una variable int puedes usar una conversión.

Código
  1. EdadA = int.Parse(Console.ReadLine());
  2.  

Pero tendrías que cambiar la declaración de la variable EdadA a int EdadA; y luego en el principio del bucle ahí si pones lo que te dijieron: EdadA = 0;

Cuando leas un buen tutorial ya podrás hacer lo del array sino cualquier cosa pregunta acá.


Título: Re: Ayuda en C# (Nivel Principiante)
Publicado por: Krähne en 19 Mayo 2011, 01:15 am
Por lo que veo usaste un bucle repeat, el cual mientras lo que se evalua sea falso seguira dando vueltas hasta que ingrese los datos correctos.
Cuando estos sean correctos se sale del bucle y ahi comienza el codigo para guardarlo.

No, no... de hecho te equivocas, el código lo único que hace es comprobar que el usuario haya aceptado los datos si están correctos o no, en caso de no estarlo repetir el proceso. De todos modos he modificado el código y lo he compactado un poco más, y en vez de usar un do while, uso goto, if y switch. Modificalo a tus gustos, espero te sirva.

Código
  1. using System;
  2.  
  3. namespace AplicacionDeRegistro
  4. {
  5.    class Inscribir
  6.    {
  7.        static void Main(string[] args)
  8.        {
  9.            string ANombre, Respuesta; //Para las cadenas de texto.
  10.            UInt64 ATelefono; //Para números más grandes sin signo (Podrías usar double, etc...) depende de lo que necesites hacer o alojar.
  11.            uint AEdad; //Para números sin signo más pequeños.
  12.  
  13.        Inicio:
  14.            {
  15.                Respuesta = string.Empty; //Respuesta = "";
  16.                ANombre = string.Empty; //NombreA = "";
  17.                AEdad = 0; //No hay otra manera de restaurar su valor
  18.                ATelefono = 0; //No hay otra manera de restaurar su valor
  19.  
  20.                Console.Clear();
  21.                Console.ForegroundColor = ConsoleColor.White;
  22.                Console.Title = "Inscripcion";
  23.                Console.WriteLine("====================================\nBienvenido al Registo de Inscripción\n====================================\nFavor ingresar los datos que le sean solicitados");
  24.            }
  25.  
  26.        InsercionNombre:
  27.            {
  28.                Console.ForegroundColor = ConsoleColor.Green;
  29.                Console.Write("\nIngrese su nombre: ");
  30.                Console.ForegroundColor = ConsoleColor.Yellow;
  31.                ANombre = Console.ReadLine();
  32.            }
  33.  
  34.            if (ANombre == string.Empty) //NombreA == ""
  35.                goto InsercionNombre;
  36.  
  37.        InsercionEdad:
  38.            {
  39.                Console.ForegroundColor = ConsoleColor.Green;
  40.                Console.Write("Ingrese su edad: ");
  41.                Console.ForegroundColor = ConsoleColor.Yellow;
  42.            }
  43.  
  44.            if (!uint.TryParse(Console.ReadLine(), out AEdad)) //Si no es un valor convertible/parseable a entero sin signo...
  45.                goto InsercionEdad;
  46.  
  47.        InsercionTelefono:
  48.            {
  49.                Console.ForegroundColor = ConsoleColor.Green;
  50.                Console.Write("Ingrese el numero de teléfono domiciliar: ");
  51.                Console.ForegroundColor = ConsoleColor.Yellow;
  52.            }
  53.  
  54.            if (!UInt64.TryParse(Console.ReadLine(), out ATelefono)) //Si no es un valor convertible/parseable a entero sin signo...
  55.                goto InsercionTelefono;
  56.  
  57.        RevisarDatos:
  58.            {
  59.                Console.Clear();
  60.                Console.ForegroundColor = ConsoleColor.Cyan;
  61.                Console.Write("¿Son correctos estos datos?\n\nAlumno: {0}\nEdad: {1}\nTeléfono: {2}\n\n(S/N): ", ANombre, AEdad, ATelefono);
  62.            }
  63.  
  64.            switch (Console.ReadLine().ToUpper()) //Elevamos a mayúsculas lo acabado de leer
  65.            {
  66.                case "S": //Si aceptó...
  67.                    goto Registro; //Procedemos a registrar los datos
  68.  
  69.                case "N": //Si no aceptó...
  70.                    goto Inicio; //Iniciamos el proceso nuevamente
  71.  
  72.                default: //En caso que lo leído no sea ni S o N...
  73.                    goto RevisarDatos; //Revisamos y preguntamos por los datos nuevamente
  74.            }
  75.  
  76.        Registro:
  77.            {
  78.                Console.Write("\nSe están registrando sus datos, por favor espere...");
  79.                Console.ReadLine();
  80.                //Haz lo que quieras en este paso... como decías arriba, puedes registrarlos.
  81.            }
  82.        }
  83.    }
  84. }

Gruß.


Título: Re: Ayuda en C# (Nivel Principiante)
Publicado por: [D4N93R] en 19 Mayo 2011, 21:24 pm
Constantes != SoloLectura

:)


Título: Re: Ayuda en C# (Nivel Principiante)
Publicado por: TwisteD420 en 24 Mayo 2011, 04:41 am
Como estan?

Pues veran, he trabajado muy poco en el codigo que estaba elaborando, pero ahi vamos por el buen camino!

Muchisimas gracias por sus respuestas, aquí les dejo lo que he logrado hacer hasta ahora.

Actualmente realiza 2 funciones, almacenar los datos de inscripción, y buscar los alumnos inscritos.

Código
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Text;
  4.  
  5. namespace ConsoleApplication1
  6. {
  7.    class Inscribir
  8.    {
  9.  
  10.        public static void Main()
  11.        {
  12.            string NombreA;
  13.            string EdadA;
  14.            string TelA;
  15.            string CarA;
  16.            int i = 0;
  17.  
  18.            string respuesta;
  19.            string search;
  20.            string[] name = new string[50];
  21.            string[] age = new string[50];
  22.            string[] phone = new string[50];
  23.            string[] carnet = new string[50];
  24.            Console.ForegroundColor = ConsoleColor.Green;
  25.            Console.WriteLine("=====================================");
  26.            Console.ForegroundColor = ConsoleColor.Yellow;
  27.            Console.WriteLine("Bienvenido al sistema de Inscripcion");
  28.            Console.ForegroundColor = ConsoleColor.Red;
  29.            Console.WriteLine("=====================================");
  30.            Console.WriteLine("");
  31.            Console.ForegroundColor = ConsoleColor.White;
  32.            Console.WriteLine("Seleccione una de las siguientes opciones:");
  33.            Console.WriteLine("");
  34.            Console.ForegroundColor = ConsoleColor.DarkCyan;
  35.            Console.WriteLine("*Ingrese 1 para agregar un nuevo alumno");
  36.            Console.WriteLine("*Ingrese 2 para buscar alumno");
  37.            Console.WriteLine("*Para salir digite -1");
  38.            string num = Console.ReadLine();
  39.            while (num != "-1")
  40.            {
  41.  
  42.                switch (num)
  43.                {
  44.                    case "1":
  45.  
  46.                        do
  47.                        {
  48.  
  49.                            NombreA = string.Empty;
  50.                            EdadA = string.Empty;
  51.                            TelA = string.Empty;
  52.                            respuesta = string.Empty;
  53.                            Console.Clear();
  54.  
  55.                            Console.ForegroundColor = ConsoleColor.White;
  56.                            Console.Title = "Inscripcion";
  57.                            Console.WriteLine("======================================");
  58.                            Console.WriteLine("Bienvenido al Registo de Inscripción");
  59.                            Console.WriteLine("======================================");
  60.                            Console.WriteLine(" ");
  61.                            Console.WriteLine("Favor ingresar los datos que le sean solicitados:");
  62.                            Console.WriteLine(" ");
  63.  
  64.                            {
  65.                                Console.ForegroundColor = ConsoleColor.Green;
  66.                            }
  67.                            Console.WriteLine("Ingrese su nombre");
  68.                            {
  69.                                Console.ForegroundColor = ConsoleColor.Yellow;
  70.                            }
  71.                            NombreA = Console.ReadLine();
  72.                            Console.WriteLine(" ");
  73.  
  74.  
  75.                            {
  76.                                Console.ForegroundColor = ConsoleColor.Green;
  77.                            }
  78.                            Console.WriteLine("Ingrese su Nº de carnet");
  79.                            {
  80.                                Console.ForegroundColor = ConsoleColor.Yellow;
  81.                            }
  82.                            CarA = Console.ReadLine();
  83.                            Console.WriteLine(" ");
  84.  
  85.  
  86.  
  87.                            {
  88.                                Console.ForegroundColor = ConsoleColor.Green;
  89.                            }
  90.                            Console.WriteLine("Ingrese su Edad");
  91.                            {
  92.                                Console.ForegroundColor = ConsoleColor.Yellow;
  93.                            }
  94.                            EdadA = Console.ReadLine();
  95.                            Console.WriteLine(" ");
  96.  
  97.                            {
  98.                                Console.ForegroundColor = ConsoleColor.Green;
  99.                            }
  100.                            Console.WriteLine("Ingrese el numero de telefono domiciliar");
  101.                            {
  102.                                Console.ForegroundColor = ConsoleColor.Yellow;
  103.                            }
  104.                            TelA = Console.ReadLine();
  105.                            Console.WriteLine(" ");
  106.  
  107.                            {
  108.                                Console.ForegroundColor = ConsoleColor.Green;
  109.                            }
  110.                            Console.WriteLine(" ");
  111.                            Console.ForegroundColor = ConsoleColor.Cyan;
  112.                            Console.WriteLine("¿Son correctos estos datos?");
  113.                            Console.WriteLine("Alumno: {0}", NombreA);
  114.                            Console.WriteLine("Edad: {0}", EdadA);
  115.                            Console.WriteLine("Tel: {0}", TelA);
  116.                            Console.WriteLine("");
  117.                            Console.WriteLine("(S/N)");
  118.                            respuesta = Console.ReadLine();
  119.  
  120.                        } while (respuesta != "S");
  121.  
  122.  
  123.                        name[i] = NombreA;
  124.                        age[i] = EdadA;
  125.                        phone[i] = TelA;
  126.                        carnet[i] = CarA;
  127.                        i++;
  128.                        Console.Clear();
  129.                        Console.ForegroundColor = ConsoleColor.Red;
  130.                        Console.Write("Datos almacenados correctamente.");
  131.                        Console.ReadLine();
  132.                        Console.Clear();
  133.                        break;
  134.  
  135.                    case "2":
  136.                        Console.ForegroundColor = ConsoleColor.White;
  137.                        Console.Clear();
  138.                        Console.WriteLine("Escriba el Nº de carnet");
  139.                        search = Console.ReadLine();
  140.                        Console.Clear();
  141.                        int j = 0;
  142.                        bool find = false;
  143.                        while (j < carnet.Length && find == false)
  144.                        {
  145.                            if (search == carnet[j])
  146.                            find = true ;  
  147.  
  148.                            else
  149.  
  150.                                j++;
  151.  
  152.                        }
  153.                        if (find == false)
  154.                        {
  155.                               Console.ForegroundColor = ConsoleColor.Red;
  156.                                Console.WriteLine("El numero de Carnet ingresado no existe");
  157.                                Console.ReadLine();
  158.                                Console.Clear();
  159.                        }
  160.                        else
  161.                        {
  162.                                Console.ForegroundColor = ConsoleColor.Cyan;
  163.                                Console.WriteLine("Carnet Nº; {0}", carnet[j]);
  164.                                Console.WriteLine("Nombre: {0}", name[j]);
  165.                                Console.WriteLine("Edad: {0}", age[j]);
  166.                                Console.WriteLine("Telefono: {0}", phone[j]);
  167.                                Console.WriteLine("");
  168.                                Console.ReadLine();
  169.                                Console.Clear();
  170.                        }
  171.  
  172.                        break;
  173.                }
  174.                Console.ForegroundColor = ConsoleColor.Green;
  175.                Console.WriteLine("=====================================");
  176.                Console.ForegroundColor = ConsoleColor.Yellow;
  177.                Console.WriteLine("Bienvenido al sistema de Inscripcion");
  178.                Console.ForegroundColor = ConsoleColor.Red;
  179.                Console.WriteLine("=====================================");
  180.                Console.WriteLine("");
  181.                Console.ForegroundColor = ConsoleColor.White;
  182.                Console.WriteLine("Seleccione una de las siguientes opciones:");
  183.                Console.WriteLine("");
  184.                Console.ForegroundColor = ConsoleColor.DarkCyan;
  185.                Console.WriteLine("*Ingrese 1 para agregar un nuevo alumno");
  186.                Console.WriteLine("*Ingrese 2 para buscar alumno");
  187.                Console.WriteLine("*Para salir digite -1");
  188.                num = Console.ReadLine();
  189.  
  190.  
  191.            }
  192.  
  193.  
  194.  
  195.  
  196.        }
  197.  
  198.    }
  199.  
  200. }
  201.  

Quisiera cambiar los vectores por una matriz, no se que opinan de eso.
Algun consejo o sugerencia de funciones que le pueda agregar a este programita? funciones para que vaya poniendo en practica bucles y arrays si fuera posible...

Actualmente estoy comenzando a leer "El lenguaje de programación C#" para irme familiarizando con todo.

De nuevo, muchisimas gracias por su ayuda, a todos... En cuanto tenga tiempo libre, seguro me meto a fondo con C#, quiero aprender bastante bien ya que es el primer lenguaje de programación que uso... Después ire probando con java, pero me han dicho que necesito unas buenas bases de C# para que se me haga mas facil.

Saludos!


Título: Re: Ayuda en C# (Nivel Principiante)
Publicado por: TwisteD420 en 25 Mayo 2011, 00:43 am
Como estan?

Veran tengo un par de dudas, actualmente estoy tratando de agregar la opcion que muestre los alumnos inscritos (nombres y nº de carnet)...

traté de elaborar un case asi:

Código
  1.  
  2.  
  3.                        case "3":
  4.                        Console.WriteLine("Nº carnet // Nombre alumno");
  5.                        for (i=0; i < c; i++)
  6.                        {
  7.                            Console.Write(carnet[i], name[i]);
  8.                        }
  9.                        Console.ReadLine();
  10.                        break;
  11.  

Pero solo me muestra los Nº de carnet, y no los nombres..

acaso no se puede hacer esto:

       
Código
  1.                       Console.Write(carnet[i], name[i]);

????


PD: por cierto, una pregunta bastante tonta..

que quiere decir el {0}  en el siguiente codigo?

Código
  1.                                Console.WriteLine("Telefono: {0}", phone[j]);

Yo siempre lo coloco antes de imprimir un array o variable.

Pero nunca supe el significado de ese "0", puede ser 1, 2, 3... etc?


Título: Re: Ayuda en C# (Nivel Principiante)
Publicado por: Novlucker en 25 Mayo 2011, 01:00 am
Citar
Pero nunca supe el significado de ese "0", puede ser 1, 2, 3... etc?
Esto es el mismo motivo por el cual solo te imprime los carnet pero no los nombres :P

El {0} puede ser 0 o 1, 2, 3 o lo que sea, y es sustituído por los parámetros que pasas en segunda intancia.
Código
  1. string a = "Texto_1";
  2. string b = "Texto_2";
  3. Console.WriteLine("Primero reemplazamos el cero por {0}, y luego el uno por {1}",a,b)
Código
  1. Primero reemplazamos el cero por Texto_1, y luego el uno por Texto_2

Cuando intentas imprimir carnet y nombre, el primer parametro, el carnet[ i] te lo toma como string, pero el segundo lo toma como un objeto, entonces busca el {0} para sustituír por name[ i], pero como no hay simplemente no hace nada.

Saludos


Título: Re: Ayuda en C# (Nivel Principiante)
Publicado por: TwisteD420 en 25 Mayo 2011, 01:19 am
Listo, ya lo pude hacer como quería ^^

me quedó algo asi:

Código
  1.     case "3":
  2.                        Console.Clear();
  3.                        Console.ForegroundColor = ConsoleColor.Green;
  4.                        Console.WriteLine("Nº carnet // Nombre de alumno");
  5.                        Console.ForegroundColor = ConsoleColor.White;
  6.                        for (i=0; i < c; i++)
  7.                        {
  8.                            Console.WriteLine("{0}          {1}", carnet[i], name[i]);
  9.                            Console.WriteLine("");
  10.                        }
  11.                        Console.ReadLine();
  12.                        break;
  13.  

Muchisimas gracias por tu ayuda!

Ahorita creo que le agregaré la función de modificar datos, investigaré un poco sobre el tema porque no tengo muy claro como lo hare.

Saludos!


Título: Re: Ayuda en C# (Nivel Principiante)
Publicado por: Edu en 25 Mayo 2011, 01:21 am
Es decir aca quedaria asi:

Código
  1.                        case "3":
  2.                        Console.WriteLine("Nº carnet // Nombre alumno");
  3.                        for (i=0; i < c; i++)
  4.                        {
  5.                            Console.Write("El carnet numero {0} pertenece a {1}",carnet[i], name[i]);
  6.                        }
  7.                        Console.ReadLine();
  8.                        break;
  9.  

Y si hubieras querido poner otra variable mas usarias el numero que sigue, es decir el {2}.

Pero tambien puedes hacer:

Código
  1.                        case "3":
  2.                        Console.WriteLine("Nº carnet // Nombre alumno");
  3.                        for (i=0; i < c; i++)
  4.                        {
  5.                            Console.Write("El carnet numero " + carnet[i].ToString() + " pertenece a " + name[i]);
  6.                        }
  7.                        Console.ReadLine();
  8.                        break;
  9.  

Suponiendo que carnet es un numero entonces hay que convertirlo, y que name es un string entonces no se necesita convertir.

Ahora el consejo: Esta bueno el programa, segui leyendo ese tutorial de creo.. 260 paginas xD y cuando aprendas lo de Enum te digo para que lo recuerdes al leer, intenta usarlo y mezclarlo con un array xD, eso piensalo vs xD


Título: Re: Ayuda en C# (Nivel Principiante)
Publicado por: Krähne en 25 Mayo 2011, 11:17 am
Hola @TwisteD420, respondiendo a tu cita:

Actualmente estoy comenzando a leer "El lenguaje de programación C#" para irme familiarizando con todo.

De nuevo, muchisimas gracias por su ayuda, a todos... En cuanto tenga tiempo libre, seguro me meto a fondo con C#, quiero aprender bastante bien ya que es el primer lenguaje de programación que uso... Después ire probando con java, pero me han dicho que necesito unas buenas bases de C# para que se me haga mas facil.

Saludos!

1) No te recomiendo que leas aquel .pdf de José Antonio González Seco, tiene MUCHOS errores, te confundirá más de lo que te ayudará; Te vendría bien un LIBRO de programación.

2) Tranquilo, estamos todos para ayudar, un gusto que te estés iniciando en programación por cuenta propia.

Bien por otro lado, luego de pensarlo bien he modificado tu código, haciéndolo mucho más compacto, entendible y sin tantos errores.

Pero ahora no sé si dejarte el código ya que, te dejé el pasado y creo que no lo leíste si quiera, de todos modos aquí (http://www.megaupload.com/?d=44F433V0) te dejo el compilado (.exe) para que revises como ha quedado luego de la modificación que le he hecho.

Ojo, si dudas de algún tipo de infección puedes analizarlo bien sea con tu antivirus, o online en virustotal.com.

Si luego de ver como ha quedado la aplicación (A mi parecer con un margen de error bastante bajo y una estética en comparación al que tienes hecho bastante alta) te gusta, o quisieras saber cómo he hecho alguna que otra cosa, avísame por aquí mismo y te dejo el código con comentarios en cada línea para que vayas entendiendo alguna que otra función que de seguro te servirá.

Una previa de como luce la aplicación:

(http://www.freeimagehosting.net/uploads/2476b6555e.png)

Gruß.
________________________________

Edito:
Por si desconfías, prefiero dejarte el código sin comentarlo por si quieres analizarlo tu mismo, cualquier cosa ya sabes, puedes publicar tus dudas en el foro.

Puedes ver el código online aquí (http://pastebin.com/QDpxCJEU).

Te pido reconsideres si vas a ignorar mi respuesta, venga que invertí unas dos horas para ayudarte, no sería muy cortés que digamos el hecho de no prestar atención a las 501 líneas que (Con gusto claro...) he modificado para tu provecho.


Título: Re: Ayuda en C# (Nivel Principiante)
Publicado por: Novlucker en 26 Mayo 2011, 03:04 am
Y ahora mi crítica :xD
No le hagas caso Krähne en cuanto a las etiquetas y los goto, esos son de otra epoca y vaya a saber el motivo por el cual siguen estando en C# :xD

Saludos


Título: Re: Ayuda en C# (Nivel Principiante)
Publicado por: Edu en 26 Mayo 2011, 04:51 am
Yo pense lo mismo, pero que otra forma mas facil de hacer lo de verificar cada dato que ingresa que con un goto?


Título: Re: Ayuda en C# (Nivel Principiante)
Publicado por: Krähne en 26 Mayo 2011, 07:44 am
Y ahora mi crítica :xD
No le hagas caso Krähne en cuanto a las etiquetas y los goto, esos son de otra epoca y vaya a saber el motivo por el cual siguen estando en C# :xD

Saludos

Ya interesante, se pueden usar los do-while, o los if... pero, con un goto sería más práctico, si bien... fue solo mi ejemplo, pueden modificarlo a sus necesidades/gustos como he dicho.


Título: Re: Ayuda en C# (Nivel Principiante)
Publicado por: [D4N93R] en 26 Mayo 2011, 21:17 pm
En el Console.Write, en vez de usar espacios para el padding.. puedes usar la posición del cursor.. Es más práctico y fácil :)


Título: Re: Ayuda en C# (Nivel Principiante)
Publicado por: TwisteD420 en 28 Mayo 2011, 09:05 am
Como estan! Como siempre agradeciendo a todos por su ayuda, me ha sido MUY util, les vengo a dejar la ultima adición que le hice a mi "programita", este le brinda al usuario la posibilidad de modificar los datos a la hora de buscarlos, aqui les dejo el código:


Este es la opción 2 del menú general.

           Console.WriteLine("*Ingrese 2 para buscar alumno");


Código
  1. case "2":
  2.                        Console.ForegroundColor = ConsoleColor.White;
  3.                        Console.Clear();
  4.                        Console.WriteLine("Escriba el Nº de carnet");
  5.                        search = Console.ReadLine();
  6.                        Console.Clear();
  7.                        int j = 0;
  8.                        bool find = false;
  9.                        while (j < carnet.Length && find == false)
  10.                        {
  11.                            if (search == carnet[j])
  12.                            find = true ;  
  13.  
  14.                            else
  15.  
  16.                                j++;
  17.  
  18.                        }
  19.                        if (find == false)
  20.                        {
  21.                               Console.ForegroundColor = ConsoleColor.Red;
  22.                                Console.WriteLine("El numero de Carnet ingresado no existe");
  23.                                Console.ReadLine();
  24.                                Console.Clear();
  25.                        }
  26.                        else
  27.                        {
  28.                                Console.ForegroundColor = ConsoleColor.Cyan;
  29.                                Console.WriteLine("Nº de carnet: {0}", carnet[j]);
  30.                                Console.WriteLine("Nombre: {0}", name[j]);
  31.                                Console.WriteLine("Fecha de nacimiento: {0}", date[j]);
  32.                                Console.WriteLine("Telefono: {0}", phone[j]);
  33.                                Console.WriteLine("");
  34.  
  35.                                Console.ForegroundColor = ConsoleColor.White;
  36.                                Console.WriteLine("¿Desea realizar un cambio?");
  37.                                Console.WriteLine ("<S/N>");
  38.                                string modans = Console.ReadLine();
  39.                                while (modans == "s")
  40.                                {
  41.                                    Console.Clear();
  42.                                    Console.ForegroundColor = ConsoleColor.White;
  43.                                    Console.WriteLine("Ingrese el Nº del campo que desea modificar");
  44.                                    Console.WriteLine("");
  45.                                    Console.ForegroundColor = ConsoleColor.DarkCyan;
  46.                                    Console.WriteLine("1* Nº Carnet");
  47.                                    Console.WriteLine("2* Nombre");
  48.                                    Console.WriteLine("3* Fecha de Nacimiento");
  49.                                    Console.WriteLine("4* Telefono");
  50.  
  51.                                    string modopt = Console.ReadLine();
  52.  
  53.                                    switch (modopt)
  54.                                    {
  55.  
  56.                                    case "1":
  57.                                            Console.Clear();
  58.                                            Console.ForegroundColor = ConsoleColor.Green;
  59.                                            Console.WriteLine("Ingrese el nuevo Nº de Carnet");
  60.                                            Console.ForegroundColor = ConsoleColor.White;
  61.                                            string newcarnet = Console.ReadLine();
  62.                                            carnet[j] = newcarnet;
  63.                                            break;
  64.                                    case "2":
  65.                                            Console.Clear();
  66.                                            Console.ForegroundColor = ConsoleColor.Green;
  67.                                            Console.WriteLine("Ingrese el nuevo Nombre");
  68.                                            Console.ForegroundColor = ConsoleColor.White;
  69.                                            string newname = Console.ReadLine();
  70.                                            name[j] = newname;
  71.                                            break;
  72.  
  73.                                     case "3":
  74.                                            Console.Clear();
  75.                                            Console.ForegroundColor = ConsoleColor.Green;
  76.                                            Console.WriteLine("Ingrese la fecha de nacimiento correcta");
  77.                                            Console.ForegroundColor = ConsoleColor.White;
  78.                                            string newdate = Console.ReadLine();
  79.                                            date[j] = newdate;
  80.                                            break;
  81.  
  82.                                        case "4":
  83.                                            Console.Clear();
  84.                                            Console.ForegroundColor = ConsoleColor.Green;
  85.                                            Console.WriteLine("Ingrese el nuevo Nº de Telefono");
  86.                                            Console.ForegroundColor = ConsoleColor.White;
  87.                                            string newphone = Console.ReadLine();
  88.                                            phone[j] = newphone;
  89.                                            break;
  90.  
  91.  
  92.                                    }
  93.  
  94.                                    Console.ForegroundColor = ConsoleColor.Cyan;
  95.                                    Console.WriteLine("");
  96.                                    Console.WriteLine("¿Desea realizar otra modificación?");
  97.                                    Console.WriteLine("<S/N>");
  98.                                    modans = Console.ReadLine();
  99.  
  100.  
  101.                                }
  102.                        }
  103.  
  104.                        break;
  105.  



En el Console.Write, en vez de usar espacios para el padding.. puedes usar la posición del cursor.. Es más práctico y fácil :)

No estoy muy seguro de como hacer eso, si podrias explicarte un poco mas de forma resumida te lo agradecería mucho.

Krähne:
Fíjate que no logre ejecutar el codigo que me pasaste.
Me sale un error de unicode, tengo Visual Studio 2005, no se si eso será el motivo.


Saludos!


Título: Re: Ayuda en C# (Nivel Principiante)
Publicado por: [D4N93R] en 28 Mayo 2011, 21:02 pm
Hola!

Échale un ojo a esto: http://msdn.microsoft.com/en-us/library/system.console.setcursorposition.aspx

Está todo bien explicado y hay un ejemplo muy bueno.. Cualquier cosa pregunta..


Título: Re: Ayuda en C# (Nivel Principiante)
Publicado por: Krähne en 28 Mayo 2011, 22:07 pm
Krähne:
Fíjate que no logre ejecutar el codigo que me pasaste.
Me sale un error de unicode, tengo Visual Studio 2005, no se si eso será el motivo.

En efecto ese es el error, si lo modificas incluyendo aquellos caracteres Unicode con "\" y su valor hexadecimal luego de él compilaría sin problemas, creo que es así como se declaran en VS 2005 los caracteres Unicode. Yo pues uso el VS 2010 y no tengo muchos problemas.

Pero bueno, no pierdas tiempo, mi modificación de código se desvía mucho de lo que has hecho. Así ya sé para la próxima no perder tiempo también en algo que ni si quiera se tomarán la molestia de modificar para sus necesidades.

Gruß.


Título: Re: Ayuda en C# (Nivel Principiante)
Publicado por: ijorgemb en 5 Junio 2012, 05:20 am
Hola me gusto este foro y justo tengo un trabajo practico parecido a este codigo POR  favor no postearian el codigo final estare muy agradecido gracias.