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
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:
using namespace System;
using namespace System::Collections;
ref class Alumno
{
public:
String ^Nombre;
String ^Apellido;
Int32 Edad;
Char Sexo;
};
void ImprimirAlumnos(ArrayList ^K)
{
Console::WriteLine("Listado de Alumnos:");
for(int i=0;i<K->Count;i++)
{
Alumno ^UnAlumno=(Alumno ^)(K[i]);
Console::WriteLine("Nombre: "+UnAlumno->Nombre+", Apellido: "+
UnAlumno->Apellido+", Edad: "+UnAlumno->Edad+", Sexo: "+UnAlumno->Sexo);
}
}
int main(array<System::String ^> ^args)
{
ArrayList ^Alumnos=gcnew ArrayList();
Alumno ^A=gcnew Alumno();
A->Nombre="Cosme";
A->Apellido="Fulanito";
A->Edad=13;
A->Sexo='M';
Alumnos->Add(A);
A=gcnew Alumno();
A->Nombre="Mengana";
A->Apellido="Sultana";
A->Edad=14;
A->Sexo='F';
Alumnos->Add(A);
A=gcnew Alumno();
A->Nombre="Asdasd";
A->Apellido="Dsadsa";
A->Edad=12;
A->Sexo='M';
Alumnos->Add(A);
ImprimirAlumnos(Alumnos);
Alumnos->RemoveAt(1);
ImprimirAlumnos(Alumnos);
Console::ReadKey();
return 0;
}
(http://i.imgur.com/GfBgIPA.jpg)
B#
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
Busca sobre el metodo de ordenamiento burbuja
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) ;-)
Cita de: jet1994 en 6 Abril 2013, 15:11 PMcomo 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#
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
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();
}
}
}
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();
}
}
}
Un par de comentarios:
Cita de: jet1994 en 7 Abril 2013, 05:50 AMclass 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.
Cita de: jet1994 en 7 Abril 2013, 05:50 AM
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)
Cita de: jet1994 en 7 Abril 2013, 05:50 AM
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#