Estructura De Datos De Puntos 3D Con Arraylist En C#

En este ejercicio, creará una estructura llamada "Point3D" que representa un punto en el espacio 3D con tres coordenadas: X, Y y Z. A continuación, creará un programa con un menú que permite al usuario añadir datos para un punto, mostrar todos los puntos introducidos y salir del programa. Para almacenar los puntos, utilizará un ArrayList en lugar de matrices. El uso de ArrayList es importante porque permite el almacenamiento dinámico, lo que lo hace más flexible que las matrices al gestionar cantidades de datos desconocidas.

El programa debe incluir las siguientes funciones:

- Permitir al usuario introducir las coordenadas X, Y y Z de un punto.
- Almacenar los puntos en un ArrayList.
- Permitir al usuario ver todos los puntos introducidos.
- Ofrecer una opción para salir del programa.

Este ejercicio le ayudará a practicar la estructuración de datos y la gestión de la entrada del usuario con colecciones como ArrayList en C#.



Grupo

Gestión Dinámica de Memoria en C#

Objectivo

1. Cree una estructura llamada Point3D que contenga tres propiedades: X, Y y Z.
2. Implemente un menú que permita al usuario:
- Añadir datos para un punto.
- Mostrar todos los puntos introducidos.
- Salir del programa.

3. Almacenar los puntos introducidos en un ArrayList.
4. Usar un bucle para mostrar el menú hasta que el usuario decida salir.

Cree una estructura llamada "Point3D" para representar un punto en el espacio 3D con coordenadas X, Y y Z.

Ejemplo de ejercicio en C#

 Copiar código C#
using System;
using System.Collections;

class Program
{
    // Define a structure to represent a point in 3D space
    struct Point3D
    {
        public double X, Y, Z;

        // Constructor to initialize the point with given coordinates
        public Point3D(double x, double y, double z)
        {
            X = x;
            Y = y;
            Z = z;
        }

        // Method to display the point in the format (X, Y, Z)
        public void Display()
        {
            Console.WriteLine($"({X}, {Y}, {Z})");
        }
    }

    // Main method to run the program
    static void Main()
    {
        // Create an ArrayList to store points
        ArrayList points = new ArrayList();

        bool continueRunning = true;
        
        // Program loop that continues until the user chooses to exit
        while (continueRunning)
        {
            // Display the menu to the user
            Console.Clear();
            Console.WriteLine("Menu:");
            Console.WriteLine("1. Add a point");
            Console.WriteLine("2. Display all points");
            Console.WriteLine("3. Exit");
            Console.Write("Choose an option: ");
            string option = Console.ReadLine();

            // Switch to handle user input
            switch (option)
            {
                case "1":
                    // Add a point to the ArrayList
                    Console.WriteLine("Enter the X coordinate:");
                    double x = Convert.ToDouble(Console.ReadLine());
                    Console.WriteLine("Enter the Y coordinate:");
                    double y = Convert.ToDouble(Console.ReadLine());
                    Console.WriteLine("Enter the Z coordinate:");
                    double z = Convert.ToDouble(Console.ReadLine());

                    // Create a new Point3D object and add it to the ArrayList
                    Point3D newPoint = new Point3D(x, y, z);
                    points.Add(newPoint);
                    Console.WriteLine("Point added successfully!");
                    break;
                case "2":
                    // Display all points stored in the ArrayList
                    Console.WriteLine("Entered Points:");
                    if (points.Count == 0)
                    {
                        Console.WriteLine("No points entered.");
                    }
                    else
                    {
                        foreach (Point3D point in points)
                        {
                            point.Display();  // Call the Display method to show the point
                        }
                    }
                    break;
                case "3":
                    // Exit the program
                    continueRunning = false;
                    break;
                default:
                    Console.WriteLine("Invalid option. Please choose again.");
                    break;
            }

            // Pause before showing the menu again
            if (continueRunning)
            {
                Console.WriteLine("Press any key to continue...");
                Console.ReadKey();
            }
        }
    }
}

 Output

Menu:
1. Add a point
2. Display all points
3. Exit
Choose an option: 1
Enter the X coordinate:
1
Enter the Y coordinate:
2
Enter the Z coordinate:
3
Point added successfully!

Press any key to continue...

Menu:
1. Add a point
2. Display all points
3. Exit
Choose an option: 2
Entered Points:
(1, 2, 3)

Press any key to continue...

Menu:
1. Add a point
2. Display all points
3. Exit
Choose an option: 3

Comparte este ejercicio de C#

Practica más ejercicios C# de Gestión Dinámica de Memoria en C#

¡Explora nuestro conjunto de ejercicios de práctica de C#! Diseñados específicamente para principiantes, estos ejercicios te ayudarán a desarrollar una sólida comprensión de los fundamentos de C#. Desde variables y tipos de datos hasta estructuras de control y funciones simples, cada ejercicio está diseñado para desafiarte gradualmente a medida que adquieres confianza en la programación en C#..