Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: jet1994 en 6 Abril 2013, 04:22 am



Título: Ayuda con programa en c#
Publicado por: jet1994 en 6 Abril 2013, 04:22 am
Hola a todos

Necesito que me ayuden con un programa en c# (preferiblemente orientado a objetos) que sirva para ingresar un listado de alumnos con nombre,apellido, edad, y sexo
preferiblemente que se ingrese por pantalla ¿se puede?
un metodo que sirva para ingreasar un nuevo alumno, eliminar alumno,
metodo que sirva para ordenar alfabeticamente por nombre, apellido , edad, sexo

en c tendria una idea de como hacerlo pero la verdad es que la programacion en c# se me hace dificil mas si es orientado a objetos

Saludos pasen bien
Gracias de antemano


Título: Re: Ayuda con programa en c#
Publicado por: BloodSharp en 6 Abril 2013, 07:47 am
Buenas, tené en cuenta que posteaste en el foro de C++ cuando querías algo con C#, aún así te voy a dar un ejemplo básico de .NET para que te sirva de referencia pero en C++ ya que este es el subforo de C++. :silbar:

Código
  1. using namespace System;
  2. using namespace System::Collections;
  3.  
  4.  
  5. ref class Alumno
  6. {
  7. public:
  8. String ^Nombre;
  9. String ^Apellido;
  10. Int32 Edad;
  11. Char Sexo;
  12. };
  13.  
  14. void ImprimirAlumnos(ArrayList ^K)
  15. {
  16. Console::WriteLine("Listado de Alumnos:");
  17. for(int i=0;i<K->Count;i++)
  18. {
  19. Alumno ^UnAlumno=(Alumno ^)(K[i]);
  20. Console::WriteLine("Nombre: "+UnAlumno->Nombre+", Apellido: "+
  21. UnAlumno->Apellido+", Edad: "+UnAlumno->Edad+", Sexo: "+UnAlumno->Sexo);
  22. }
  23. }
  24.  
  25. int main(array<System::String ^> ^args)
  26. {
  27. ArrayList ^Alumnos=gcnew ArrayList();
  28.  
  29. Alumno ^A=gcnew Alumno();
  30. A->Nombre="Cosme";
  31. A->Apellido="Fulanito";
  32. A->Edad=13;
  33. A->Sexo='M';
  34. Alumnos->Add(A);
  35.  
  36. A=gcnew Alumno();
  37. A->Nombre="Mengana";
  38. A->Apellido="Sultana";
  39. A->Edad=14;
  40. A->Sexo='F';
  41. Alumnos->Add(A);
  42.  
  43. A=gcnew Alumno();
  44. A->Nombre="Asdasd";
  45. A->Apellido="Dsadsa";
  46. A->Edad=12;
  47. A->Sexo='M';
  48. Alumnos->Add(A);
  49.  
  50. ImprimirAlumnos(Alumnos);
  51. Alumnos->RemoveAt(1);
  52. ImprimirAlumnos(Alumnos);
  53.  
  54. Console::ReadKey();
  55.    return 0;
  56. }

(http://i.imgur.com/GfBgIPA.jpg)


B#


Título: Re: Ayuda con programa en c#
Publicado por: jet1994 en 6 Abril 2013, 15:11 pm
Muchas gracias me sirvio de mucho ese codigo

Tengo otra duda

como hago para ordenar datos alfabeticamente en 1 arreglo
ya sea por nombre , apellido , edad y sexo





Título: Re: Ayuda con programa en c#
Publicado por: $Edu$ en 6 Abril 2013, 15:25 pm
Busca sobre el metodo de ordenamiento burbuja


Título: Re: Ayuda con programa en c#
Publicado por: 85 en 6 Abril 2013, 15:59 pm
ak tenés un ejemplo de como ordenar alfabéticamente
http://foro.elhacker.net/programacion_cc/ejemplo_de_ordenamientos_basicos-t358139.0.html

Si lo necesitás en C#, te puede ayudar B#  (Alias IEAX) ;-)


Título: Re: Ayuda con programa en c#
Publicado por: BloodSharp en 6 Abril 2013, 18:48 pm
como hago para ordenar datos alfabeticamente en 1 arreglo
ya sea por nombre , apellido , edad y sexo

http://msdn.microsoft.com/en-us/library/system.array.sort(v=vs.90).aspx
http://msdn.microsoft.com/en-us/library/system.array.reverse(v=vs.90).aspx
http://msdn.microsoft.com/en-us/library/aa317786(v=vs.71).aspx
http://msdn.microsoft.com/en-us/library/d0td77tk(v=vs.90).aspx

Array::Sort(Alumnos,????);
Array::Reverse(Alumnos,????);
Alumnos->Sort(????);
Alumnos->Reverse();


B#


Título: Re: Ayuda con programa en c#
Publicado por: jet1994 en 7 Abril 2013, 05:50 am
Hola a todos
Gracias por responder

ya tengo algo de codigo de mi programa por lo menos

ahora el proble ma que tengo es que no puedo presentar la lista alguien que ayude pls

esto es lo que tengo asta ahora

Código:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections;

namespace ConsoleApplication2
{
     class alumno
    {

        public List<string> nombres = new List<string>();
        public List<string> apellidos = new List<string>();
        public List<int> edades = new List<int>();
        public List<string> sexo = new List<string>();
     
         public void adicionar()
    {
       
        Console.WriteLine("selecciono uno");
                        Console.WriteLine("ingrese nombre del alumno");
                        nombres.Add(Console.ReadLine());
                        Console.WriteLine("ingrese el apellido del alumno");
                        apellidos.Add(Console.ReadLine());
                        Console.WriteLine("ingrese la edad de la persona");
                        edades.Add(Int32.Parse(Console.ReadLine()));
                        Console.WriteLine("ingrese sexo de la persona");
                        sexo.Add(Console.ReadLine());
                        Console.WriteLine("Ingreso del estudiante exitoso");
                        Console.ReadKey();
        }

   
         
         public void mostrar()
     {
         Console.WriteLine("\nContenido de la lista nombre: ");
         foreach (string nom in nombres)
         {
             Console.WriteLine(nom);
         }
        Console.ReadKey();
     }

     }
}

Código:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections;


namespace ConsoleApplication2
{
    class Program
    {
       
       
        static void Main(string[] args)
        {
            menu();
        }


        public static void menu()
        {
           
            int opcion=0;

            alumno estu = new alumno();


           

                do
                {
                    Console.Clear();
                    Console.SetCursorPosition(8, 10);
                    Console.WriteLine("menu del proyecto");
                    Console.SetCursorPosition(5, 12);
                    Console.WriteLine("1.-Ingreso de nuevo estudiante");
                    Console.SetCursorPosition(5, 13);
                    Console.WriteLine("2.- mostrar lista de estudiantes");
                    Console.SetCursorPosition(5, 14);
                    Console.WriteLine("3.- ordenar por nombre");
                    Console.SetCursorPosition(5, 15);
                    Console.WriteLine("4.- salir");
                    Console.SetCursorPosition(5, 18);
                    Console.WriteLine("(seleccione 1-4)");
                    opcion = Int32.Parse(Console.ReadLine());
                    if (opcion < 1 || opcion > 4)
                    Console.WriteLine("ingrese una opcion valida");
                } while (opcion < 1 || opcion>4);

                switch (opcion)
                {
                    case 1: estu.adicionar(); menu();
                        break;

                    case 2: estu.mostrar(); menu(); break;
                    case 3: Console.WriteLine("selecciono tres"); break;
                    case 4: break;
                }

                Console.ReadLine();
     }
    }
}


Título: Re: Ayuda con programa en c#
Publicado por: BloodSharp en 7 Abril 2013, 16:24 pm
Un par de comentarios:

Código:
class alumno
    {

        public List<string> nombres = new List<string>();
        public List<string> apellidos = new List<string>();
        public List<int> edades = new List<int>();
        public List<string> sexo = new List<string>();

Acá el problema principal es que no estás creando un array del objeto 'alumno' (la idea es crear varios alumnos por eso array de alumnos, fijate el código q te puse más arriba) sino que estás creando arrays de datos de alumnos, lo cuál en parte no está mal ya que una persona puede tener varios nombres y/o apellidos (paterno, materno) pero no puede tener varias edades ni sexos.
     
Código:
static void Main(string[] args)
{
       menu();
}

Se puede eliminar la función menu() y poner el contenido de esa función en el main... (Aunque eso sería a mi gusto :P)

Código:
        public static void menu()
        {   
            int opcion=0;
            alumno estu = new alumno();
             do
                {
                    Console.Clear();
                    Console.SetCursorPosition(8, 10);
                    Console.WriteLine("menu del proyecto");
                    Console.SetCursorPosition(5, 12);
                    Console.WriteLine("1.-Ingreso de nuevo estudiante");
                    Console.SetCursorPosition(5, 13);
                    Console.WriteLine("2.- mostrar lista de estudiantes");
                    Console.SetCursorPosition(5, 14);
                    Console.WriteLine("3.- ordenar por nombre");
                    Console.SetCursorPosition(5, 15);
                    Console.WriteLine("4.- salir");
                    Console.SetCursorPosition(5, 18);
                    Console.WriteLine("(seleccione 1-4)");
                    opcion = Int32.Parse(Console.ReadLine());
                    if (opcion < 1 || opcion > 4)
                    Console.WriteLine("ingrese una opcion valida");
                } while (opcion < 1 || opcion>4);

                switch (opcion)
                {
                    case 1: estu.adicionar(); menu();
                        break;

                    case 2: estu.mostrar(); menu(); break;
                    case 3: Console.WriteLine("selecciono tres"); break;
                    case 4: break;
                }

                Console.ReadLine();
     }
    }
}

El switch lo podrías poner dentro, al final del dowhile, para evitar tener que usar recursividad y verificar si es menor a 1 o mayor a 3 que salga del bucle


B#