Skip to content

A collection of C# projects and exercises to practice programming, focusing on OOP, SOLID principles, and clean code.

Notifications You must be signed in to change notification settings

Aperezvigoa/CSharp_Exercises

Repository files navigation

CSharp_Exercises

This repository is a curated collection of C# projects and exercises designed to provide a hands-on approach to learning and mastering C# programming. It serves as an educational tool for beginners and intermediate developers to strengthen their skills, focusing on Object-Oriented Programming (OOP), modular design, and the SOLID principles.


🌟 Features

  • Comprehensive Projects: From basic to intermediate, projects are structured for progressive learning.
  • Object-Oriented Programming (OOP): Every project emphasizes clean, modular, and reusable code.
  • SOLID Principles: Focus on scalable and maintainable design, starting with the Single Responsibility Principle (SRP).
  • Beginner-Friendly Guidance: Simplified projects to build confidence before tackling advanced concepts.

📁 Project Overview

Beginner Level

1. Dummy-001_ToDoListCSharp

  • A simple console-based To-Do List application, ideal for those starting with C#.
  • Key Features:
    • Add, remove, and display tasks.
    • Minimal setup and straightforward logic.
  • Learning Outcomes:
    • Understand basic C# syntax and console I/O.
    • Build confidence with loops, conditionals, and basic data structures.

2. Beginner-001_OOP_Dice_Game_SRP

  • A dice game built with a focus on OOP and the Single Responsibility Principle (SRP).
  • Key Features:
    • Simulates rolling dice with configurable settings.
    • Modular code structure for easy modifications.
  • Learning Outcomes:
    • Learn modular programming with classes.
    • Apply SRP to real-world examples.

3. Beginner-002_OOP_Hangman_Game

  • A fully functional Hangman game with an emphasis on modularity and user interaction.
  • Key Features:
    • User-friendly gameplay mechanics.
    • Input validation and feedback for better experience.
  • Learning Outcomes:
    • Learn to manage complex logic with OOP.
    • Create interactive programs with meaningful outputs.

Intermediate Level

4. Intermediate-001_Project_Bank_Management

  • A banking system designed to simulate real-world operations such as account management and transactions.
  • Key Features:
    • User account creation and management.
    • Simulates deposits, withdrawals, and balances.
  • Learning Outcomes:
    • Work with multiple classes and their relationships.
    • Explore encapsulation and abstraction in OOP.

🎯 Objectives

  • Reinforce Core Concepts: Strengthen your understanding of C# fundamentals.
  • Apply Theoretical Knowledge: Learn by building real-world examples.
  • Promote Clean Code Practices: Implement principles like SRP and modular design.
  • Build Confidence: Start simple and gradually tackle more complex systems.

🛠️ Getting Started

  1. Clone the repository:
    git clone https://github.com/Aperezvigoa/CSharp_Exercises.git
    
  2. Navigate to a specific project folder:
    cd CSharp_Exercises/<project-folder-name>
  3. Compile and run the project:
    dotnet run

(Or open the project in Visual Studio.)


📁 Project Overview

Future additions will include:

  • Advanced projects incorporating LINQ and asynchronous programming.
  • Examples of unit testing and dependency injection.
  • Advanced data handling with collections and databases.

🤝 Contributions

Contributions are welcome! If you'd like to add more projects, fix bugs, or enhance existing implementations, feel free to fork the repository and submit a pull request.


Releases

No releases published

Packages

No packages published

Languages