Sistema De Gestión De Bases De Datos De Ciudades En C#

Este programa le permitirá administrar una base de datos de ciudades. Puede almacenar los nombres de las ciudades y su población (hasta 500 ciudades). El programa incluye un menú con diversas opciones, como agregar nuevas ciudades, ver todas las ciudades, modificar registros, insertar o eliminar ciudades en posiciones específicas y realizar búsquedas. Además, el programa permite corregir el uso de mayúsculas en los nombres de las ciudades. Este ejercicio implica el uso de matrices para almacenar datos e implementar diversas técnicas de gestión de datos, como buscar, modificar y eliminar registros.



Grupo

Matrices, estructuras y cadenas de C#

Objectivo

1. Crear una base de datos para almacenar información de hasta 500 ciudades, donde cada registro contenga el nombre de la ciudad y su número de habitantes.
2. Implementar un menú con opciones para:
- Añadir una nueva ciudad.
- Ver todas las ciudades.
- Modificar un registro de ciudad existente.
- Insertar un nuevo registro en una posición específica.
- Eliminar un registro y ajustar la matriz según corresponda.
- Buscar registros por nombre de ciudad (sin distinguir entre mayúsculas y minúsculas).
- Corregir el uso de mayúsculas en los nombres de ciudades (escribir en mayúscula la primera letra y cualquier letra posterior a un espacio).
3. Permitir al usuario seleccionar opciones del menú y garantizar la gestión adecuada de casos excepcionales, como intentar añadir una ciudad cuando la base de datos está llena o eliminar la última entrada.

Crear una base de datos para almacenar información sobre ciudades.

Ejemplo de ejercicio en C#

 Copiar código C#
using System;

class CityDatabase
{
    // Define a struct for a City to store name and population
    struct City
    {
        public string Name;
        public int Inhabitants;
    }

    // Define the maximum number of cities
    static int MaxCities = 500;
    static City[] cities = new City[MaxCities];
    static int cityCount = 0;

    static void Main()
    {
        // Main menu loop
        while (true)
        {
            Console.Clear();
            Console.WriteLine("City Database Menu:");
            Console.WriteLine("1 - Add a new city");
            Console.WriteLine("2 - View all cities");
            Console.WriteLine("3 - Modify a record");
            Console.WriteLine("4 - Insert a new record");
            Console.WriteLine("5 - Delete a record");
            Console.WriteLine("6 - Search in the records");
            Console.WriteLine("7 - Correct the capitalization of names");
            Console.WriteLine("0 - Exit");
            Console.Write("Choose an option: ");
            string choice = Console.ReadLine();

            switch (choice)
            {
                case "1":
                    AddCity();
                    break;
                case "2":
                    ViewCities();
                    break;
                case "3":
                    ModifyCity();
                    break;
                case "4":
                    InsertCity();
                    break;
                case "5":
                    DeleteCity();
                    break;
                case "6":
                    SearchCity();
                    break;
                case "7":
                    CorrectCapitalization();
                    break;
                case "0":
                    return;
                default:
                    Console.WriteLine("Invalid option, please try again.");
                    break;
            }
        }
    }

    static void AddCity()
    {
        if (cityCount < MaxCities)
        {
            Console.Write("Enter city name: ");
            string name = Console.ReadLine();
            Console.Write("Enter number of inhabitants: ");
            int inhabitants = int.Parse(Console.ReadLine());

            cities[cityCount].Name = name;
            cities[cityCount].Inhabitants = inhabitants;
            cityCount++;
            Console.WriteLine("City added successfully!");
        }
        else
        {
            Console.WriteLine("Database is full, cannot add more cities.");
        }
        Console.ReadKey();
    }

    static void ViewCities()
    {
        Console.WriteLine("City List:");
        for (int i = 0; i < cityCount; i++)
        {
            Console.WriteLine($"{cities[i].Name} - {cities[i].Inhabitants} inhabitants");
        }
        Console.ReadKey();
    }

    static void ModifyCity()
    {
        Console.Write("Enter the city number to modify (0 to {0}): ", cityCount - 1);
        int index = int.Parse(Console.ReadLine());

        if (index >= 0 && index < cityCount)
        {
            Console.Write("Enter new city name: ");
            cities[index].Name = Console.ReadLine();
            Console.Write("Enter new number of inhabitants: ");
            cities[index].Inhabitants = int.Parse(Console.ReadLine());
            Console.WriteLine("City record updated successfully!");
        }
        else
        {
            Console.WriteLine("Invalid city number.");
        }
        Console.ReadKey();
    }

    static void InsertCity()
    {
        Console.Write("Enter position to insert a new city (0 to {0}): ", cityCount);
        int position = int.Parse(Console.ReadLine());

        if (position >= 0 && position <= cityCount && cityCount < MaxCities)
        {
            for (int i = cityCount; i > position; i--)
            {
                cities[i] = cities[i - 1]; // Shift cities to the right
            }
            Console.Write("Enter city name: ");
            cities[position].Name = Console.ReadLine();
            Console.Write("Enter number of inhabitants: ");
            cities[position].Inhabitants = int.Parse(Console.ReadLine());
            cityCount++;
            Console.WriteLine("City inserted successfully!");
        }
        else
        {
            Console.WriteLine("Invalid position or database is full.");
        }
        Console.ReadKey();
    }

    static void DeleteCity()
    {
        Console.Write("Enter city number to delete (0 to {0}): ", cityCount - 1);
        int index = int.Parse(Console.ReadLine());

        if (index >= 0 && index < cityCount)
        {
            for (int i = index; i < cityCount - 1; i++)
            {
                cities[i] = cities[i + 1]; // Shift cities to the left
            }
            cityCount--;
            Console.WriteLine("City deleted successfully!");
        }
        else
        {
            Console.WriteLine("Invalid city number.");
        }
        Console.ReadKey();
    }

    static void SearchCity()
    {
        Console.Write("Enter a search term: ");
        string searchTerm = Console.ReadLine().ToLower();

        Console.WriteLine("Search Results:");
        for (int i = 0; i < cityCount; i++)
        {
            if (cities[i].Name.ToLower().Contains(searchTerm))
            {
                Console.WriteLine($"{cities[i].Name} - {cities[i].Inhabitants} inhabitants");
            }
        }
        Console.ReadKey();
    }

    static void CorrectCapitalization()
    {
        for (int i = 0; i < cityCount; i++)
        {
            cities[i].Name = System.Globalization.CultureInfo.CurrentCulture.TextInfo.ToTitleCase(cities[i].Name.ToLower());
        }
        Console.WriteLine("Capitalization corrected for all cities.");
        Console.ReadKey();
    }
}

 Output

City Database Menu:
1 - Add a new city
2 - View all cities
3 - Modify a record
4 - Insert a new record
5 - Delete a record
6 - Search in the records
7 - Correct the capitalization of names
0 - Exit
Choose an option: 1
Enter city name: Madrid
Enter number of inhabitants: 3200000
City added successfully!

City Database Menu:
1 - Add a new city
2 - View all cities
3 - Modify a record
4 - Insert a new record
5 - Delete a record
6 - Search in the records
7 - Correct the capitalization of names
0 - Exit
Choose an option: 2
City List:
Madrid - 3200000 inhabitants

Comparte este ejercicio de C#

Practica más ejercicios C# de Matrices, estructuras y cadenas de 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#..