7 Projetos em C#: Inspirações Incríveis!

Tópicos

O C# é uma linguagem de programação moderna e versátil, desenvolvida pela Microsoft.

Com uma sintaxe fácil de entender e uma ampla gama de recursos, o C# é amplamente utilizado para desenvolver aplicativos Windows, jogos, aplicativos móveis e muito mais.

Neste artigo, apresentaremos sete projetos em C# que o ajudarão a aprender e aprimorar suas habilidades nessa poderosa linguagem de programação.

Projeto 1: Calculadora Simples em C#

A calculadora simples em C# é um projeto ideal para iniciantes que desejam aprender os conceitos básicos da linguagem.

Você irá criar uma interface de usuário que permite ao usuário inserir dois números e selecionar uma operação matemática (adição, subtração, multiplicação ou divisão).

Em seguida, o programa realizará o cálculo e exibirá o resultado.

Aqui está um exemplo de código para a calculadora em C#:

using System;

namespace CalculadoraSimples
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Digite o primeiro número: ");
            int numero1 = Convert.ToInt32(Console.ReadLine());

            Console.WriteLine("Digite o segundo número: ");
            int numero2 = Convert.ToInt32(Console.ReadLine());

            Console.WriteLine("Selecione a operação: ");
            Console.WriteLine("1 - Adição");
            Console.WriteLine("2 - Subtração");
            Console.WriteLine("3 - Multiplicação");
            Console.WriteLine("4 - Divisão");

            int operacao = Convert.ToInt32(Console.ReadLine());
            int resultado = 0;

            switch (operacao)
            {
                case 1:
                    resultado = numero1 + numero2;
                    break;
                case 2:
                    resultado = numero1 - numero2;
                    break;
                case 3:
                    resultado = numero1 * numero2;
                    break;
                case 4:
                    resultado = numero1 / numero2;
                    break;
                default:
                    Console.WriteLine("Operação inválida.");
                    break;
            }

            Console.WriteLine("O resultado é: " + resultado);
        }
    }
}

Projeto 2: Cadastro de Clientes em C#

O projeto de cadastro de clientes em C# é uma ótima maneira de praticar a manipulação de dados em um programa.

Nesse projeto, você criará um sistema simples de cadastro de clientes, onde será possível adicionar, visualizar, editar e excluir informações dos clientes.

O programa armazenará os dados dos clientes em uma estrutura de dados, como uma lista.

Aqui está um exemplo de código para o cadastro de clientes em C#:

using System;
using System.Collections.Generic;

namespace CadastroClientes
{
    class Program
    {
        static List<Cliente> clientes = new List<Cliente>();

        static void Main(string[] args)
        {
            bool executando = true;

            while (executando)
            {
                Console.WriteLine("Selecione uma opção:");
                Console.WriteLine("1 - Adicionar cliente");
                Console.WriteLine("2 - Visualizar clientes");
                Console.WriteLine("3 - Editar cliente");
                Console.WriteLine("4 - Excluir cliente");
                Console.WriteLine("5 - Sair");

                int opcao = Convert.ToInt32(Console.ReadLine());

                switch (opcao)
                {
                    case 1:
                        AdicionarCliente();
                        break;
                    case 2:
                        VisualizarClientes();
                        break;
                    case 3:
                        EditarCliente();
                        break;
                    case 4:
                        ExcluirCliente();
                        break;
                    case 5:
                        executando = false;
                        break;
                    default:
                        Console.WriteLine("Opção inválida.");
                        break;
                }
            }
        }

        static void AdicionarCliente()
        {
            Console.WriteLine("Digite o nome do cliente: ");
            string nome = Console.ReadLine();

            Console.WriteLine("Digite o e-mail do cliente: ");
            string email = Console.ReadLine();

            Cliente cliente = new Cliente(nome, email);
            clientes.Add(cliente);

            Console.WriteLine("Cliente adicionado com sucesso.");
        }

        static void VisualizarClientes()
        {
            foreach (Cliente cliente in clientes)
            {
                Console.WriteLine("Nome: " + cliente.Nome);
                Console.WriteLine("E-mail: " + cliente.Email);
                Console.WriteLine("----------------------");
            }
        }

        static void EditarCliente()
        {
            Console.WriteLine("Digite o nome do cliente que deseja editar: ");
            string nome = Console.ReadLine();

            Cliente cliente = clientes.Find(c => c.Nome == nome);

            if (cliente != null)
            {
                Console.WriteLine("Digite o novo nome do cliente: ");
                string novoNome = Console.ReadLine();

                Console.WriteLine("Digite o novo e-mail do cliente: ");
                string novoEmail = Console.ReadLine();

                cliente.Nome = novoNome;
                cliente.Email = novoEmail;

                Console.WriteLine("Cliente editado com sucesso.");
            }
            else
            {
                Console.WriteLine("Cliente não encontrado.");
            }
        }

        static void ExcluirCliente()
        {
            Console.WriteLine("Digite o nome do cliente que deseja excluir: ");
            string nome = Console.ReadLine();

            Cliente cliente = clientes.Find(c => c.Nome == nome);

            if (cliente != null)
            {
                clientes.Remove(cliente);
                Console.WriteLine("Cliente excluído com sucesso.");
            }
            else
            {
                Console.WriteLine("Cliente não encontrado.");
            }
        }
    }

    class Cliente
    {
        public string Nome { get; set; }
        public string Email { get; set; }

        public Cliente(string nome, string email)
        {
            Nome = nome;
            Email = email;
        }
    }
}

Projeto 3: Jogo da Velha em C#

O jogo da velha em C# é um projeto divertido que permite explorar conceitos de lógica e estruturas de controle.

Nesse projeto, você criará uma versão simples do jogo da velha, onde dois jogadores poderão competir.

O programa solicitará as jogadas dos jogadores e verificará se houve um vencedor ou se o jogo empatou.

Aqui está um exemplo de código para o jogo da velha em C#:

using System;

namespace JogoDaVelha
{
    class Program
    {
        static char[,] tabuleiro = new char[3, 3];
        static char jogadorAtual = 'X';
        static bool jogoAcabou = false;

        static void Main(string[] args)
        {
            InicializarTabuleiro();

            while (!jogoAcabou)
            {
                ExibirTabuleiro();
                FazerJogada();
                VerificarFimDeJogo();
                AlternarJogador();
            }
        }

        static void InicializarTabuleiro()
        {
            for (int i = 0; i < 3; i++)
            {
                for (int j = 0; j < 3; j++)
                {
                    tabuleiro[i, j] = '-';
                }
            }
        }

        static void ExibirTabuleiro()
        {
            Console.WriteLine("-----");
            for (int i = 0; i < 3; i++)
            {
                for (int j = 0; j < 3; j++)
                {
                    Console.Write(tabuleiro[i, j]);
                }
                Console.WriteLine();
            }
            Console.WriteLine("-----");
        }

        static void FazerJogada()
        {
            Console.WriteLine("Jogador " + jogadorAtual + ", faça sua jogada.");

            Console.WriteLine("Digite a linha: ");
            int linha = Convert.ToInt32(Console.ReadLine());

            Console.WriteLine("Digite a coluna: ");
            int coluna = Convert.ToInt32(Console.ReadLine());

            if (tabuleiro[linha, coluna] == '-')
            {
                tabuleiro[linha, coluna] = jogadorAtual;
            }
            else
            {
                Console.WriteLine("Essa posição já está ocupada. Tente novamente.");
                FazerJogada();
            }
        }

        static void VerificarFimDeJogo()
        {
            if (VerificarVencedor())
            {
                ExibirTabuleiro();
                Console.WriteLine("Jogador " + jogadorAtual + " venceu!");
                jogoAcabou = true;
            }
            else if (VerificarEmpate())
            {
                ExibirTabuleiro();
                Console.WriteLine("O jogo empatou.");
                jogoAcabou = true;
            }
        }

        static bool VerificarVencedor()
        {
            // Verificar linhas
            for (int i = 0; i < 3; i++)
            {
                if (tabuleiro[i, 0] == jogadorAtual && tabuleiro[i, 1] == jogadorAtual && tabuleiro[i, 2] == jogadorAtual)
                {
                    return true;
                }
            }

            // Verificar colunas
            for (int i = 0; i < 3; i++)
            {
                if (tabuleiro[0, i] == jogadorAtual && tabuleiro[1, i] == jogadorAtual && tabuleiro[2, i] == jogadorAtual)
                {
                    return true;
                }
            }

            // Verificar diagonais
            if ((tabuleiro[0, 0] == jogadorAtual && tabuleiro[1, 1] == jogadorAtual && tabuleiro[2, 2] == jogadorAtual) ||
                (tabuleiro[0, 2] == jogadorAtual && tabuleiro[1, 1] == jogadorAtual && tabuleiro[2, 0] == jogadorAtual))
            {
                return true;
            }

            return false;
        }

        static bool VerificarEmpate()
        {
            for (int i = 0; i < 3; i++)
            {
                for (int j = 0; j < 3; j++)
                {
                    if (tabuleiro[i, j] == '-')
                    {
                        return false;
                    }
                }
            }
            return true;
        }

        static void AlternarJogador()
        {
            jogadorAtual = (jogadorAtual == 'X') ? 'O' : 'X';
        }
    }
}

Projeto 4: Aplicativo de Notas em C#

O aplicativo de notas em C# permitirá que você crie um programa para armazenar e gerenciar notas.

Nesse projeto, você implementará funções para adicionar, visualizar, editar e excluir notas.

Cada nota terá um título e um conteúdo associado. Você pode armazenar as notas em uma estrutura de dados, como uma lista.

Aqui está um exemplo de código para o aplicativo de notas em C#:

using System;
using System.Collections.Generic;

namespace AplicativoNotas
{
    class Program
    {
        static List<Nota> notas = new List<Nota>();

        static void Main(string[] args)
        {
            bool executando = true;

            while (executando)
            {
                Console.WriteLine("Selecione uma opção:");
                Console.WriteLine("1 - Adicionar nota");
                Console.WriteLine("2 - Visualizar notas");
                Console.WriteLine("3 - Editar nota");
                Console.WriteLine("4 - Excluir nota");
                Console.WriteLine("5 - Sair");

                int opcao = Convert.ToInt32(Console.ReadLine());

                switch (opcao)
                {
                    case 1:
                        AdicionarNota();
                        break;
                    case 2:
                        VisualizarNotas();
                        break;
                    case 3:
                        EditarNota();
                        break;
                    case 4:
                        ExcluirNota();
                        break;
                    case 5:
                                            executando = false;
                        break;
                    default:
                        Console.WriteLine("Opção inválida.");
                        break;
                }
            }
        }

        static void AdicionarNota()
        {
            Console.WriteLine("Digite o título da nota: ");
            string titulo = Console.ReadLine();

            Console.WriteLine("Digite o conteúdo da nota: ");
            string conteudo = Console.ReadLine();

            Nota nota = new Nota(titulo, conteudo);
            notas.Add(nota);

            Console.WriteLine("Nota adicionada com sucesso.");
        }

        static void VisualizarNotas()
        {
            foreach (Nota nota in notas)
            {
                Console.WriteLine("Título: " + nota.Titulo);
                Console.WriteLine("Conteúdo: " + nota.Conteudo);
                Console.WriteLine("----------------------");
            }
        }

        static void EditarNota()
        {
            Console.WriteLine("Digite o título da nota que deseja editar: ");
            string titulo = Console.ReadLine();

            Nota nota = notas.Find(n => n.Titulo == titulo);

            if (nota != null)
            {
                Console.WriteLine("Digite o novo título da nota: ");
                string novoTitulo = Console.ReadLine();

                Console.WriteLine("Digite o novo conteúdo da nota: ");
                string novoConteudo = Console.ReadLine();

                nota.Titulo = novoTitulo;
                nota.Conteudo = novoConteudo;

                Console.WriteLine("Nota editada com sucesso.");
            }
            else
            {
                Console.WriteLine("Nota não encontrada.");
            }
        }

        static void ExcluirNota()
        {
            Console.WriteLine("Digite o título da nota que deseja excluir: ");
            string titulo = Console.ReadLine();

            Nota nota = notas.Find(n => n.Titulo == titulo);

            if (nota != null)
            {
                notas.Remove(nota);
                Console.WriteLine("Nota excluída com sucesso.");
            }
            else
            {
                Console.WriteLine("Nota não encontrada.");
            }
        }
    }

    class Nota
    {
        public string Titulo { get; set; }
        public string Conteudo { get; set; }

        public Nota(string titulo, string conteudo)
        {
            Titulo = titulo;
            Conteudo = conteudo;
        }
    }
}

Projeto 5: Conversor de Moedas em C#

O projeto do conversor de moedas em C# é uma excelente oportunidade para aprender como lidar com cálculos matemáticos e manipulação de valores monetários.

Nesse projeto, você criará um programa que permite converter valores entre diferentes moedas, como Real, Dólar e Euro.

Você precisará consultar a taxa de câmbio atual e realizar os cálculos necessários para a conversão.

Aqui está um exemplo de código para o conversor de moedas em C#:

using System;

namespace ConversorMoedas
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Bem-vindo ao Conversor de Moedas!");

            bool executando = true;

            while (executando)
            {
                Console.WriteLine("Selecione uma opção:");
                Console.WriteLine("1 - Real para Dólar");
                Console.WriteLine("2 - Real para Euro");
                Console.WriteLine("3 - Dólar para Real");
                Console.WriteLine("4 - Euro para Real");
                Console.WriteLine("5 - Sair");

                int opcao = Convert.ToInt32(Console.ReadLine());

                switch (opcao)
                {
                    case 1:
                        RealParaDolar();
                        break;
                    case 2:
                        RealParaEuro();
                        break;
                    case 3:
                        DolarParaReal();
                        break;
                    case 4:
                        EuroParaReal();
                        break;
                    case 5:
                        executando = false;
                        break;
                    default:
                        Console.WriteLine("Opção inválida.");
                        break;
                }
            }
        }

        static void RealParaDolar()
        {
            Console.WriteLine("Digite o valor em Real: ");
            decimal valorReal = Convert.ToDecimal(Console.ReadLine());

            decimal taxaCambio = 5.23m; // Taxa de câmbio do dólar em relação ao real

            decimal valorDolar = valorReal / taxaCambio;

            Console.WriteLine("Valor em Dólar: " + valorDolar);
        }

        static void RealParaEuro()
        {
            Console.WriteLine("Digite o valor em Real: ");
            decimal valorReal = Convert.ToDecimal(Console.ReadLine());

            decimal taxaCambio = 6.19m; // Taxa de câmbio do euro em relação ao real

            decimal valorEuro = valorReal / taxaCambio;

            Console.WriteLine("Valor em Euro: " + valorEuro);
        }

        static void DolarParaReal()
        {
            Console.WriteLine("Digite o valor em Dólar: ");
            decimal valorDolar = Convert.ToDecimal(Console.ReadLine());

            decimal taxaCambio = 5.23m; // Taxa de câmbio do dólar em relação ao real

            decimal valorReal = valorDolar * taxaCambio;

            Console.WriteLine("Valor em Real: " + valorReal);
        }

        static void EuroParaReal()
        {
            Console.WriteLine("Digite o valor em Euro: ");
            decimal valorEuro = Convert.ToDecimal(Console.ReadLine());

            decimal taxaCambio = 6.19m; // Taxa de câmbio do euro em relação ao real

            decimal valorReal = valorEuro * taxaCambio;

            Console.WriteLine("Valor em Real: " + valorReal);
        }
    }
}

Projeto 6: Gerador de Senhas em C#

O projeto do gerador de senhas em C# é uma ótima maneira de praticar a geração aleatória de dados e a manipulação de strings.

Nesse projeto, você criará um programa que gera senhas seguras com base nos requisitos do usuário, como comprimento, inclusão de letras maiúsculas, minúsculas, números e caracteres especiais.

O programa fornecerá uma senha aleatória que atenda aos critérios especificados pelo usuário.

Aqui está um exemplo de código para o gerador de senhas em C#:

using System;
using System.Security.Cryptography;

namespace GeradorSenhas
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Bem-vindo ao Gerador de Senhas!");

            bool executando = true;

            while (executando)
            {
                Console.WriteLine("Digite o comprimento da senha: ");
                int comprimento = Convert.ToInt32(Console.ReadLine());

                Console.WriteLine("Incluir letras maiúsculas? (S/N): ");
                bool incluirMaiusculas = Console.ReadLine().ToUpper() == "S";

                Console.WriteLine("Incluir letras minúsculas? (S/N): ");
                bool incluirMinusculas = Console.ReadLine().ToUpper() == "S";

                Console.WriteLine("Incluir números? (S/N): ");
                bool incluirNumeros = Console.ReadLine().ToUpper() == "S";

                Console.WriteLine("Incluir caracteres especiais? (S/N): ");
                bool incluirEspeciais = Console.ReadLine().ToUpper() == "S";

                string senha = GerarSenha(comprimento, incluirMaiusculas, incluirMinusculas, incluirNumeros, incluirEspeciais);

                Console.WriteLine("Senha gerada: " + senha);

                Console.WriteLine("Deseja gerar outra senha? (S/N): ");
                executando = Console.ReadLine().ToUpper() == "S";
            }
        }

        static string GerarSenha(int comprimento, bool incluirMaiusculas, bool incluirMinusculas, bool incluirNumeros, bool incluirEspeciais)
        {
            const string caracteresMaiusculos = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
            const string caracteresMinusculos = "abcdefghijklmnopqrstuvwxyz";
            const string caracteresNumeros = "0123456789";
            const string caracteresEspeciais = "!@#$%^&*()";

            string caracteresPermitidos = "";

            if (incluirMaiusculas)
                caracteresPermitidos += caracteresMaiusculos;
            if (incluirMinusculas)
                caracteresPermitidos += caracteresMinusculos;
            if (incluirNumeros)
                caracteresPermitidos += caracteresNumeros;
            if (incluirEspeciais)
                caracteresPermitidos += caracteresEspeciais;

            byte[] dadosAleatorios = new byte[comprimento];
            using (RNGCryptoServiceProvider rng = new RNGCryptoServiceProvider())
            {
                rng.GetBytes(dadosAleatorios);
            }

            StringBuilder senha = new StringBuilder(comprimento);
            foreach (byte b in dadosAleatorios)
            {
                senha.Append(caracteresPermitidos[b % (caracteresPermitidos.Length)]);
            }

            return senha.ToString();
        }
    }
}

Projeto 7: Aplicativo de Previsão do Tempo em C#

O projeto do aplicativo de previsão do tempo em C# é uma oportunidade emocionante de trabalhar com APIs e fornecer informações em tempo real aos usuários.

Nesse projeto, você criará um programa que consulta uma API de previsão do tempo e exibe os dados para uma cidade específica.

Você precisará fazer solicitações HTTP para a API, analisar os dados retornados e exibir as informações relevantes para o usuário.

Aqui está um exemplo de código para o aplicativo de previsão do tempo em C#:

using System;
using System.Net.Http;
using System.Text.Json;
using System.Threading.Tasks;

namespace AplicativoPrevisaoTempo
{
    class Program
    {
        static async Task Main(string[] args)
        {
            Console.WriteLine("Bem-vindo ao Aplicativo de Previsão do Tempo!");

            Console.WriteLine("Digite o nome da cidade: ");
            string cidade = Console.ReadLine();

            string apiKey = "SUA_API_KEY"; // Substitua pela sua chave de API

            string url = $"https://api.openweathermap.org/data/2.5/weather?q={cidade}&appid={apiKey}";

            using (HttpClient client = new HttpClient())
            {
                try
                {
                    HttpResponseMessage response = await client.GetAsync(url);
                    response.EnsureSuccessStatusCode();

                    string responseBody = await response.Content.ReadAsStringAsync();

                    PrevisaoTempo previsao = JsonSerializer.Deserialize<PrevisaoTempo>(responseBody);

                    Console.WriteLine("Cidade: " + previsao.Name);
                    Console.WriteLine("Temperatura: " + previsao.Main.Temp);
                    Console.WriteLine("Condição: " + previsao.Weather[0].Description);
                }
                catch (HttpRequestException)
                {
                    Console.WriteLine("Não foi possível obter a previsão do tempo.");
                }
            }
        }
    }

    class PrevisaoTempo
    {
        public string Name { get; set; }
        public MainData Main { get; set; }
        public WeatherData[] Weather { get; set; }
    }

    class MainData
    {
        public float Temp { get; set; }
    }

    class WeatherData
    {
        public string Description { get; set; }
    }
}

Conclusão

Neste artigo, apresentamos sete projetos em C# que são ideais para aprender e praticar a linguagem.

Desde a criação de uma calculadora simples até o desenvolvimento de um aplicativo de previsão do tempo, esses projetos abrangem uma variedade de conceitos e recursos do C#.

Você também pode conferir projetos em C++ e também projetos em C para se inspirar.

Esperamos que você encontre esses exemplos úteis para aprimorar suas habilidades de programação em C#.

Perguntas Frequentes (FAQs)

Qual é a finalidade do C#?

O C# é uma linguagem de programação versátil e poderosa desenvolvida pela Microsoft. Ela é amplamente utilizada para desenvolver aplicativos Windows, jogos, aplicativos móveis e muito mais.

É difícil aprender C#?

C# é considerado uma linguagem de programação relativamente fácil de aprender, especialmente para quem já possui algum conhecimento em programação. Com prática e dedicação, é possível dominar os conceitos e recursos do C#.

Existem recursos adicionais para aprender C#?

Sim, além de projetos práticos, existem muitos recursos disponíveis para aprender C#. Isso inclui tutoriais online, documentação oficial da Microsoft, livros e cursos em vídeo. A prática constante e a participação em projetos reais também são excelentes formas de aprimorar suas habilidades.

Onde posso obter mais informações sobre os projetos apresentados?

Os projetos apresentados neste artigo são exemplos básicos para ilustrar diferentes conceitos em C#. Se você estiver interessado em explorar mais a fundo cada projeto ou outros tópicos relacionados, recomendamos consultar a documentação oficial do C# e realizar pesquisas em recursos especializados em programação.

Posso modificar os projetos e personalizá-los de acordo com minhas necessidades?

Sim, os projetos apresentados são exemplos básicos e podem ser modificados e personalizados de acordo com suas necessidades e preferências. Sinta-se à vontade para experimentar e adicionar novos recursos aos projetos para aprimorar ainda mais suas habilidades em C#.

Esperamos que esses projetos o ajudem a aprender e aprimorar suas habilidades em C#.

Divirta-se programando e continue explorando os diferentes recursos e possibilidades que essa linguagem oferece.

Boa sorte!

O que você achou desse review?

Média da classificação 4.8 / 5. Número de votos: 5

Nenhum voto até agora! Seja o primeiro a avaliar este post.