Ayuda en C# (Nivel Principiante)

Iniciado por TwisteD420, 18 Mayo 2011, 02:47 AM

0 Miembros y 4 Visitantes están viendo este tema.

TwisteD420

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 (vbnet) [Seleccionar]
using System;
using System.Collections.Generic;
using System.Text;

namespace ConsoleApplication1
{
    class Inscribir
    {

        public static void Main()
        {
            Console.ForegroundColor = ConsoleColor.White;
            Console.Title = "Inscripcion";
            Console.WriteLine("======================================");
            Console.WriteLine("Bienvenido al Registo de Inscripción");
            Console.WriteLine("======================================");
            Console.WriteLine(" ");
            Console.WriteLine("Favor ingresar los datos que le sean solicitados:");
            Console.WriteLine(" ");
            {
                Console.ForegroundColor = ConsoleColor.Green;
            }
            Console.WriteLine("Ingrese su nombre");
            {
                Console.ForegroundColor = ConsoleColor.Yellow;
            }
            string NombreA = Console.ReadLine();
            Console.WriteLine(" ");

            {
                Console.ForegroundColor = ConsoleColor.Green;
            }
            Console.WriteLine("Ingrese su Edad");
            {
                Console.ForegroundColor = ConsoleColor.Yellow;
            }

            string EdadA = Console.ReadLine();
            Console.WriteLine(" ");
            {
                Console.ForegroundColor = ConsoleColor.Green;
            }
            Console.WriteLine("Ingrese el numero de telefono domiciliar");
            {
                Console.ForegroundColor = ConsoleColor.Yellow;
            }

            string TelA = Console.ReadLine();
            Console.WriteLine(" ");
            {
                Console.ForegroundColor = ConsoleColor.Green;
            }
            Console.WriteLine(" ");
            Console.ForegroundColor = ConsoleColor.Cyan;
            Console.WriteLine("¿Son correctos estos datos?");
            Console.WriteLine("Alumno: {0}", NombreA);
            Console.WriteLine("Edad: {0}", EdadA);
            Console.WriteLine("Tel: {0}", TelA);
            Console.WriteLine("");
            Console.WriteLine("(S/N)");
            Console.ReadLine();       
        }

    }
}


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.

Novlucker

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
Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD

"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein

Edu

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 (csharp) [Seleccionar]

using System;
using System.Collections.Generic;
using System.Text;

namespace ConsoleApplication1
{
   class Inscribir
   {

       public static void Main()
       {
           string NombreA;
           string EdadA;
           string TelA;

           string respuesta;
           
         do
           {
               NombreA = string.Empty;
               EdadA = string.Empty;
               TelA = string.Empty;
               respuesta = string.Empty;

               Console.Clear();
             
               Console.ForegroundColor = ConsoleColor.White;
               Console.Title = "Inscripcion";
               Console.WriteLine("======================================");
               Console.WriteLine("Bienvenido al Registo de Inscripción");
               Console.WriteLine("======================================");
               Console.WriteLine(" ");
               Console.WriteLine("Favor ingresar los datos que le sean solicitados:");
               Console.WriteLine(" ");
               {
                   Console.ForegroundColor = ConsoleColor.Green;
               }
               Console.WriteLine("Ingrese su nombre");
               {
                   Console.ForegroundColor = ConsoleColor.Yellow;
               }
               NombreA = Console.ReadLine();
               Console.WriteLine(" ");

               {
                   Console.ForegroundColor = ConsoleColor.Green;
               }
               Console.WriteLine("Ingrese su Edad");
               {
                   Console.ForegroundColor = ConsoleColor.Yellow;
               }

               EdadA = Console.ReadLine();
               Console.WriteLine(" ");
               {
                   Console.ForegroundColor = ConsoleColor.Green;
               }
               Console.WriteLine("Ingrese el numero de telefono domiciliar");
               {
                   Console.ForegroundColor = ConsoleColor.Yellow;
               }

               TelA = Console.ReadLine();
               Console.WriteLine(" ");
               {
                   Console.ForegroundColor = ConsoleColor.Green;
               }
               Console.WriteLine(" ");
               Console.ForegroundColor = ConsoleColor.Cyan;
               Console.WriteLine("¿Son correctos estos datos?");
               Console.WriteLine("Alumno: {0}", NombreA);
               Console.WriteLine("Edad: {0}", EdadA);
               Console.WriteLine("Tel: {0}", TelA);
               Console.WriteLine("");
               Console.WriteLine("(S/N)");
               respuesta = Console.ReadLine();

           } while (respuesta != "S");

       }

   }
}

TwisteD420

#3
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 (vbnet) [Seleccionar]

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 (vbnet) [Seleccionar]

EdadA = int.Empty;


Novlucker

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
Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD

"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein

Krähne

#5
Cita de: TwisteD420 en 18 Mayo 2011, 03:34 AM

Y porque no se puede realizar esto?:

Código (csharp) [Seleccionar]

EdadA = int.Empty;



Una imagen vale más que mil palabras:



...

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

Gruß.
Yo soy más sabio que este hombre; es posible que ninguno de los dos sepamos cosa que valga la pena, pero él cree que sabe algo, pese a no saberlo, mientras que yo, así como no sé nada, tampoco creo saberlo. Yo no tengo conciencia de saber nada.

Edu

Voy a escribir bien porque me están vigilando xD

Código (csharp) [Seleccionar]

                NombreA = string.Empty;
                EdadA = string.Empty;
                TelA = string.Empty;
                respuesta = string.Empty;

                Console.Clear();


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 (csharp) [Seleccionar]

EdadA = int.Parse(Console.ReadLine());


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á.

Krähne

#7
Cita de: TwisteD420 en 18 Mayo 2011, 03:34 AMPor 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 (csharp) [Seleccionar]
using System;

namespace AplicacionDeRegistro
{
   class Inscribir
   {
       static void Main(string[] args)
       {
           string ANombre, Respuesta; //Para las cadenas de texto.
           UInt64 ATelefono; //Para números más grandes sin signo (Podrías usar double, etc...) depende de lo que necesites hacer o alojar.
           uint AEdad; //Para números sin signo más pequeños.

       Inicio:
           {
               Respuesta = string.Empty; //Respuesta = "";
               ANombre = string.Empty; //NombreA = "";
               AEdad = 0; //No hay otra manera de restaurar su valor
               ATelefono = 0; //No hay otra manera de restaurar su valor

               Console.Clear();
               Console.ForegroundColor = ConsoleColor.White;
               Console.Title = "Inscripcion";
               Console.WriteLine("====================================\nBienvenido al Registo de Inscripción\n====================================\nFavor ingresar los datos que le sean solicitados");
           }

       InsercionNombre:
           {
               Console.ForegroundColor = ConsoleColor.Green;
               Console.Write("\nIngrese su nombre: ");
               Console.ForegroundColor = ConsoleColor.Yellow;
               ANombre = Console.ReadLine();
           }

           if (ANombre == string.Empty) //NombreA == ""
               goto InsercionNombre;

       InsercionEdad:
           {
               Console.ForegroundColor = ConsoleColor.Green;
               Console.Write("Ingrese su edad: ");
               Console.ForegroundColor = ConsoleColor.Yellow;
           }

           if (!uint.TryParse(Console.ReadLine(), out AEdad)) //Si no es un valor convertible/parseable a entero sin signo...
               goto InsercionEdad;

       InsercionTelefono:
           {
               Console.ForegroundColor = ConsoleColor.Green;
               Console.Write("Ingrese el numero de teléfono domiciliar: ");
               Console.ForegroundColor = ConsoleColor.Yellow;
           }

           if (!UInt64.TryParse(Console.ReadLine(), out ATelefono)) //Si no es un valor convertible/parseable a entero sin signo...
               goto InsercionTelefono;

       RevisarDatos:
           {
               Console.Clear();
               Console.ForegroundColor = ConsoleColor.Cyan;
               Console.Write("¿Son correctos estos datos?\n\nAlumno: {0}\nEdad: {1}\nTeléfono: {2}\n\n(S/N): ", ANombre, AEdad, ATelefono);
           }

           switch (Console.ReadLine().ToUpper()) //Elevamos a mayúsculas lo acabado de leer
           {
               case "S": //Si aceptó...
                   goto Registro; //Procedemos a registrar los datos

               case "N": //Si no aceptó...
                   goto Inicio; //Iniciamos el proceso nuevamente

               default: //En caso que lo leído no sea ni S o N...
                   goto RevisarDatos; //Revisamos y preguntamos por los datos nuevamente
           }

       Registro:
           {
               Console.Write("\nSe están registrando sus datos, por favor espere...");
               Console.ReadLine();
               //Haz lo que quieras en este paso... como decías arriba, puedes registrarlos.
           }
       }
   }
}


Gruß.
Yo soy más sabio que este hombre; es posible que ninguno de los dos sepamos cosa que valga la pena, pero él cree que sabe algo, pese a no saberlo, mientras que yo, así como no sé nada, tampoco creo saberlo. Yo no tengo conciencia de saber nada.

[D4N93R]


TwisteD420

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 (vbnet) [Seleccionar]
using System;
using System.Collections.Generic;
using System.Text;

namespace ConsoleApplication1
{
    class Inscribir
    {

        public static void Main()
        {
            string NombreA;
            string EdadA;
            string TelA;
            string CarA;
            int i = 0;

            string respuesta;
            string search;
            string[] name = new string[50];
            string[] age = new string[50];
            string[] phone = new string[50];
            string[] carnet = new string[50];
            Console.ForegroundColor = ConsoleColor.Green;
            Console.WriteLine("=====================================");
            Console.ForegroundColor = ConsoleColor.Yellow;
            Console.WriteLine("Bienvenido al sistema de Inscripcion");
            Console.ForegroundColor = ConsoleColor.Red;
            Console.WriteLine("=====================================");
            Console.WriteLine("");
            Console.ForegroundColor = ConsoleColor.White;
            Console.WriteLine("Seleccione una de las siguientes opciones:");
            Console.WriteLine("");
            Console.ForegroundColor = ConsoleColor.DarkCyan;
            Console.WriteLine("*Ingrese 1 para agregar un nuevo alumno");
            Console.WriteLine("*Ingrese 2 para buscar alumno");
            Console.WriteLine("*Para salir digite -1");
            string num = Console.ReadLine();
            while (num != "-1")
            {

                switch (num)
                {
                    case "1":

                        do
                        {

                            NombreA = string.Empty;
                            EdadA = string.Empty;
                            TelA = string.Empty;
                            respuesta = string.Empty;
                            Console.Clear();

                            Console.ForegroundColor = ConsoleColor.White;
                            Console.Title = "Inscripcion";
                            Console.WriteLine("======================================");
                            Console.WriteLine("Bienvenido al Registo de Inscripción");
                            Console.WriteLine("======================================");
                            Console.WriteLine(" ");
                            Console.WriteLine("Favor ingresar los datos que le sean solicitados:");
                            Console.WriteLine(" ");

                            {
                                Console.ForegroundColor = ConsoleColor.Green;
                            }
                            Console.WriteLine("Ingrese su nombre");
                            {
                                Console.ForegroundColor = ConsoleColor.Yellow;
                            }
                            NombreA = Console.ReadLine();
                            Console.WriteLine(" ");


                            {
                                Console.ForegroundColor = ConsoleColor.Green;
                            }
                            Console.WriteLine("Ingrese su Nº de carnet");
                            {
                                Console.ForegroundColor = ConsoleColor.Yellow;
                            }
                            CarA = Console.ReadLine();
                            Console.WriteLine(" ");



                            {
                                Console.ForegroundColor = ConsoleColor.Green;
                            }
                            Console.WriteLine("Ingrese su Edad");
                            {
                                Console.ForegroundColor = ConsoleColor.Yellow;
                            }
                            EdadA = Console.ReadLine();
                            Console.WriteLine(" ");

                            {
                                Console.ForegroundColor = ConsoleColor.Green;
                            }
                            Console.WriteLine("Ingrese el numero de telefono domiciliar");
                            {
                                Console.ForegroundColor = ConsoleColor.Yellow;
                            }
                            TelA = Console.ReadLine();
                            Console.WriteLine(" ");

                            {
                                Console.ForegroundColor = ConsoleColor.Green;
                            }
                            Console.WriteLine(" ");
                            Console.ForegroundColor = ConsoleColor.Cyan;
                            Console.WriteLine("¿Son correctos estos datos?");
                            Console.WriteLine("Alumno: {0}", NombreA);
                            Console.WriteLine("Edad: {0}", EdadA);
                            Console.WriteLine("Tel: {0}", TelA);
                            Console.WriteLine("");
                            Console.WriteLine("(S/N)");
                            respuesta = Console.ReadLine();

                        } while (respuesta != "S");


                        name[i] = NombreA;
                        age[i] = EdadA;
                        phone[i] = TelA;
                        carnet[i] = CarA;
                        i++;
                        Console.Clear();
                        Console.ForegroundColor = ConsoleColor.Red;
                        Console.Write("Datos almacenados correctamente.");
                        Console.ReadLine();
                        Console.Clear();
                        break;

                    case "2":
                        Console.ForegroundColor = ConsoleColor.White;
                        Console.Clear();
                        Console.WriteLine("Escriba el Nº de carnet");
                        search = Console.ReadLine();
                        Console.Clear();
                        int j = 0;
                        bool find = false;
                        while (j < carnet.Length && find == false)
                        {
                            if (search == carnet[j])
                            find = true ;   

                            else
                           
                                j++;

                        }
                        if (find == false)
                        {
                               Console.ForegroundColor = ConsoleColor.Red;
                                Console.WriteLine("El numero de Carnet ingresado no existe");
                                Console.ReadLine();
                                Console.Clear();
                        }
                        else
                        {
                                Console.ForegroundColor = ConsoleColor.Cyan;
                                Console.WriteLine("Carnet Nº; {0}", carnet[j]);
                                Console.WriteLine("Nombre: {0}", name[j]);
                                Console.WriteLine("Edad: {0}", age[j]);
                                Console.WriteLine("Telefono: {0}", phone[j]);
                                Console.WriteLine("");
                                Console.ReadLine();
                                Console.Clear();
                        }
                           
                        break;
                }
                Console.ForegroundColor = ConsoleColor.Green;
                Console.WriteLine("=====================================");
                Console.ForegroundColor = ConsoleColor.Yellow;
                Console.WriteLine("Bienvenido al sistema de Inscripcion");
                Console.ForegroundColor = ConsoleColor.Red;
                Console.WriteLine("=====================================");
                Console.WriteLine("");
                Console.ForegroundColor = ConsoleColor.White;
                Console.WriteLine("Seleccione una de las siguientes opciones:");
                Console.WriteLine("");
                Console.ForegroundColor = ConsoleColor.DarkCyan;
                Console.WriteLine("*Ingrese 1 para agregar un nuevo alumno");
                Console.WriteLine("*Ingrese 2 para buscar alumno");
                Console.WriteLine("*Para salir digite -1");
                num = Console.ReadLine();


            }


                             

        }

    }

}


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!