Base De Datos De Amigos, Utilizando Archivos - Ejercicio De Programacion C# Sharp

Este ejercicio en C# tiene como objetivo ampliar una base de datos de amigos, permitiendo que los datos se carguen desde un archivo al inicio de cada sesión y se guarden al final de la misma. Si el archivo de datos existe, el programa debe cargar automáticamente la información para que las entradas realizadas en una sesión estén disponibles en la siguiente.

En este ejercicio, deberás implementar la funcionalidad para leer y escribir datos en un archivo, asegurando que las entradas realizadas por el usuario, como los nombres de amigos y sus detalles, se conserven entre sesiones. El reto consiste en crear un sistema de persistencia simple, donde la base de datos se almacene y recupere de un archivo de manera efectiva. Este ejercicio es ideal para practicar el manejo de archivos y la persistencia de datos en C#.

Al completar este ejercicio, mejorarás tus habilidades en la gestión de archivos y en la creación de sistemas que conserven datos entre sesiones de ejecución del programa.

 Categoría

Administración de Archivos

 Ejercicio

Base De Datos De Amigos, Utilizando Archivos

 Objectivo

Expanda la "base de datos de amigos", de modo que cargue los datos del archivo al comienzo de cada sesión (si el archivo existe) y guarde los datos en el archivo cuando finalice la sesión. Por lo tanto, los datos introducidos en una sesión deben estar disponibles para la siguiente sesión.

 Ejemplo Ejercicio C#

 Copiar Código C#
// Importing necessary namespaces for file handling and basic C# functionalities
using System; // For basic Console operations
using System.IO; // For file handling
using System.Collections.Generic; // For using the List collection

public class Friend
{
    // Properties to store friend's details
    public string Name { get; set; } // Name of the friend
    public string PhoneNumber { get; set; } // Phone number of the friend
    public string Email { get; set; } // Email address of the friend

    // Constructor to initialize the friend's details
    public Friend(string name, string phoneNumber, string email)
    {
        Name = name;
        PhoneNumber = phoneNumber;
        Email = email;
    }

    // Method to return a string representation of the friend's data
    public override string ToString()
    {
        return $"{Name},{PhoneNumber},{Email}"; // Format the friend data to CSV (comma-separated)
    }

    // Static method to create a Friend object from a CSV formatted string
    public static Friend FromString(string str)
    {
        string[] parts = str.Split(','); // Split the string by commas
        return new Friend(parts[0], parts[1], parts[2]); // Return a new Friend object
    }
}

public class FriendsDatabase
{
    // List to store all friends
    private List friends;

    // File path to save and load friends data
    private string fileName;

    // Constructor that initializes the friends list and file name
    public FriendsDatabase(string fileName)
    {
        this.fileName = fileName;
        this.friends = new List();
        LoadFromFile(); // Attempt to load data from file at the start of the session
    }

    // Method to load friends from file if the file exists
    private void LoadFromFile()
    {
        if (File.Exists(fileName)) // Check if the file exists
        {
            string[] lines = File.ReadAllLines(fileName); // Read all lines from the file

            foreach (string line in lines)
            {
                if (!string.IsNullOrWhiteSpace(line)) // Skip empty lines
                {
                    friends.Add(Friend.FromString(line)); // Add each friend to the list
                }
            }
        }
    }

    // Method to save the current list of friends to the file
    public void SaveToFile()
    {
        using (StreamWriter writer = new StreamWriter(fileName))
        {
            foreach (var friend in friends)
            {
                writer.WriteLine(friend.ToString()); // Write each friend to the file
            }
        }
    }

    // Method to add a new friend to the database
    public void AddFriend(string name, string phoneNumber, string email)
    {
        friends.Add(new Friend(name, phoneNumber, email)); // Add the new friend to the list
    }

    // Method to display all friends in the database
    public void DisplayFriends()
    {
        if (friends.Count == 0)
        {
            Console.WriteLine("No friends to display."); // Notify if no friends are present
        }
        else
        {
            foreach (var friend in friends)
            {
                Console.WriteLine($"Name: {friend.Name}, Phone: {friend.PhoneNumber}, Email: {friend.Email}");
            }
        }
    }
}

class Program
{
    static void Main(string[] args)
    {
        string fileName = "friendsDatabase.txt"; // Define the file name to save/load data

        FriendsDatabase database = new FriendsDatabase(fileName); // Initialize the database with the file name

        while (true)
        {
            // Display the menu options
            Console.WriteLine("\nFriends Database");
            Console.WriteLine("1. Add Friend");
            Console.WriteLine("2. Display All Friends");
            Console.WriteLine("3. Exit");
            Console.Write("Choose an option: ");
            string choice = Console.ReadLine(); // Read user input

            if (choice == "1")
            {
                // Ask for friend's details to add
                Console.Write("Enter friend's name: ");
                string name = Console.ReadLine();
                Console.Write("Enter phone number: ");
                string phone = Console.ReadLine();
                Console.Write("Enter email address: ");
                string email = Console.ReadLine();

                // Add the new friend to the database
                database.AddFriend(name, phone, email);
                Console.WriteLine("Friend added successfully.");
            }
            else if (choice == "2")
            {
                // Display all friends
                database.DisplayFriends();
            }
            else if (choice == "3")
            {
                // Save data to file before exiting
                database.SaveToFile();
                Console.WriteLine("Data saved. Exiting the program...");
                break; // Exit the program
            }
            else
            {
                Console.WriteLine("Invalid option. Please try again.");
            }
        }
    }
}

 Salida

Friends Database
1. Add Friend
2. Display All Friends
3. Exit
Choose an option: 1
Enter friend's name: Marta
Enter phone number: 652
Enter email address: akaka@sks.es
Friend added successfully.

Friends Database
1. Add Friend
2. Display All Friends
3. Exit
Choose an option: 2
Name: Marta, Phone: 652, Email: akaka@sks.es

Friends Database
1. Add Friend
2. Display All Friends
3. Exit
Choose an option: 3
Data saved. Exiting the program...

 Comparte este Ejercicio C# Sharp

 Más Ejercicios de Programacion C# Sharp de Administración de Archivos

¡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#.

  •  Traductor de Pascal a C#

    Este ejercicio en C# consiste en crear un traductor básico de Pascal a C#. El programa debe aceptar código escrito en Pascal y convertirlo en un ...

  •  Convertir un archivo de texto en mayúsculas

    Este ejercicio en C# consiste en crear un programa que lea un archivo de texto y volque su contenido en otro archivo, realizando una transformación en el proceso. La ...

  •  Convertir cualquier archivo a mayúsculas

    Este ejercicio en C# consiste en crear un programa que lea un archivo de cualquier tipo y volque su contenido en otro archivo, aplicando una transformación en el proc...

  •  Conversor de archivos

    Este ejercicio en C# consiste en crear un programa que "invierte" un archivo. El programa debe tomar un archivo original y crear uno nuevo con el mismo nombre, pero c...

  •  Cifrador de archivos

    Este ejercicio en C# consiste en crear un programa que encripte un archivo de texto en otro archivo de texto. El programa debe ser capaz de leer el contenido de un ar...

  •  Contar palabras

    Este ejercicio en C# consiste en crear un programa que cuente la cantidad de palabras almacenadas en un archivo de texto. El programa debe leer el contenido de un arc...