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#
Mostrar 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.
Código de Ejemplo Copiado!
Comparte este Ejercicio C# Sharp
¡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#.
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...
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...
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.
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 ...
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...
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...