Matriz De Estructura Y Menú - Ejercicio De Programacion C# Sharp

En este ejercicio en C#, se te pide expandir el ejercicio anterior (arreglo de puntos) para que el programa muestre un menú interactivo. El menú debe permitir al usuario elegir entre las siguientes opciones:

- Agregar datos para un punto.
- Mostrar todos los puntos ingresados.
- Calcular (y mostrar) los valores promedio de x e y.
- Salir del programa.

Este ejercicio te ayudará a aprender cómo crear menús interactivos en un programa en C#, lo cual es muy útil para proporcionar una interfaz amigable al usuario. Además, podrás practicar la manipulación de arreglos y el cálculo de valores promedio, lo cual te ayudará a mejorar tus habilidades en programación estructurada y manejo de datos.

 Categoría

Matrices, Estructuras y Cadenas

 Ejercicio

Matriz De Estructura Y Menú

 Objectivo

Expanda el ejercicio anterior (matriz de puntos), de modo que muestre un menú, en el que el usuario puede elegir:

- Añadir datos para un punto
- Mostrar todos los puntos introducidos
- Calcular (y mostrar) los valores medios para x e y
- Salir del programa

 Ejemplo Ejercicio C#

 Copiar Código C#
using System;  // Import the System namespace for basic functionality

// Define the Point struct to store 2D point data and RGB color information
struct Point
{
    public short x;  // X-coordinate of the point (short type)
    public short y;  // Y-coordinate of the point (short type)
    public byte r;  // Red color component (byte type)
    public byte g;  // Green color component (byte type)
    public byte b;  // Blue color component (byte type)
}

class Program  // Define the main class
{
    static void Main()  // The entry point of the program
    {
        // Define an array of Point structs with a size of 1000 to store up to 1000 points
        Point[] points = new Point[1000];
        int pointCount = 0;  // Initialize the counter for the number of points entered

        bool exit = false;  // Variable to control the exit condition of the loop

        // Menu loop to repeatedly show the options until the user chooses to exit
        while (!exit)
        {
            // Display the menu with options
            Console.WriteLine("\nMenu:");
            Console.WriteLine("1. Add data for one point");
            Console.WriteLine("2. Display all entered points");
            Console.WriteLine("3. Calculate and display average values for x and y");
            Console.WriteLine("4. Exit");
            Console.Write("Choose an option (1-4): ");

            // Read the user's menu choice
            string choice = Console.ReadLine();

            // Perform actions based on the user's choice
            switch (choice)
            {
                case "1":
                    // Add data for one point
                    if (pointCount < points.Length)
                    {
                        Console.WriteLine("\nEnter data for Point " + (pointCount + 1) + ":");

                        Console.Write("Enter X coordinate: ");
                        points[pointCount].x = short.Parse(Console.ReadLine());  // Get the X coordinate

                        Console.Write("Enter Y coordinate: ");
                        points[pointCount].y = short.Parse(Console.ReadLine());  // Get the Y coordinate

                        Console.Write("Enter Red color value (0-255): ");
                        points[pointCount].r = byte.Parse(Console.ReadLine());  // Get the red color component

                        Console.Write("Enter Green color value (0-255): ");
                        points[pointCount].g = byte.Parse(Console.ReadLine());  // Get the green color component

                        Console.Write("Enter Blue color value (0-255): ");
                        points[pointCount].b = byte.Parse(Console.ReadLine());  // Get the blue color component

                        pointCount++;  // Increment the counter for the number of points entered
                    }
                    else
                    {
                        Console.WriteLine("Maximum number of points reached.");
                    }
                    break;

                case "2":
                    // Display all entered points
                    if (pointCount > 0)
                    {
                        Console.WriteLine("\nEntered Points:");
                        for (int i = 0; i < pointCount; i++)
                        {
                            Console.WriteLine($"Point {i + 1}: X = {points[i].x}, Y = {points[i].y}, Color = RGB({points[i].r}, {points[i].g}, {points[i].b})");
                        }
                    }
                    else
                    {
                        Console.WriteLine("No points entered yet.");
                    }
                    break;

                case "3":
                    // Calculate and display the average values for x and y
                    if (pointCount > 0)
                    {
                        float sumX = 0, sumY = 0;
                        for (int i = 0; i < pointCount; i++)
                        {
                            sumX += points[i].x;  // Sum of X coordinates
                            sumY += points[i].y;  // Sum of Y coordinates
                        }

                        float avgX = sumX / pointCount;  // Calculate average of X
                        float avgY = sumY / pointCount;  // Calculate average of Y

                        Console.WriteLine($"\nAverage X: {avgX:F2}");
                        Console.WriteLine($"Average Y: {avgY:F2}");
                    }
                    else
                    {
                        Console.WriteLine("No points entered yet to calculate averages.");
                    }
                    break;

                case "4":
                    // Exit the program
                    exit = true;
                    Console.WriteLine("Exiting the program.");
                    break;

                default:
                    // Handle invalid menu choices
                    Console.WriteLine("Invalid choice, please select a valid option.");
                    break;
            }
        }
    }
}

 Salida

Menu:
1. Add data for one point
2. Display all entered points
3. Calculate and display average values for x and y
4. Exit
Choose an option (1-4): 1

Enter data for Point 1:
Enter X coordinate: 100
Enter Y coordinate: 100
Enter Red color value (0-255): 12
Enter Green color value (0-255): 12
Enter Blue color value (0-255): 12

Menu:
1. Add data for one point
2. Display all entered points
3. Calculate and display average values for x and y
4. Exit
Choose an option (1-4): 4
Exiting the program.

 Comparte este Ejercicio C# Sharp

 Más Ejercicios de Programacion C# Sharp de Matrices, Estructuras y Cadenas

¡Explora nuestro conjunto de ejercicios de programación C# Sharp! Estos ejercicios, diseñados específicamente para principiantes, te ayudarán a desarrollar una sólida comprensión de los conceptos básicos de C#. Desde variables y tipos de datos hasta estructuras de control y funciones simples, cada ejercicio está diseñado para desafiarte de manera gradual a medida que adquieres confianza en la codificación en C#.

  •  Base de datos de libros

    En este ejercicio en C#, se te pide crear una pequeña base de datos que se usará para almacenar información sobre libros. Cada libro debe almacenar los siguientes dat...

  •  Triángulo V2

    En este ejercicio en C#, se te pide crear un programa que pida al usuario su nombre y luego muestre un triángulo formado por ese nombre, comenzando con 1 letra y aume...

  •  Rectángulo V3

    En este ejercicio en C#, se te pide crear un programa que solicite al usuario su nombre y un tamaño, y luego muestre un rectángulo hueco formado por ese nombre.

  •  Triángulo centrado

    En este ejercicio en C#, se te pide crear un programa que solicite al usuario su nombre y un tamaño, y luego muestre un rectángulo hueco formado ...

  •  Base de datos de ciudades

    En este ejercicio, se te pide crear una base de datos para almacenar información sobre ciudades. En un primer enfoque, solo se almacenará el no...

  •  Banner

    Este Ejercicio en C# consiste en crear un programa que imite la utilidad básica de Unix SysV "banner", permitiendo mostrar textos grandes de forma similar a como lo h...