Controle de Estoque completo com código fonte em PHP, MySQL, Bootstrap, jQuery - 100% funcional e fácil de modificar e implementar novas funcionalidades Tenha o seu próprio sistema de controle de estoque web. com cadastro de produtos, categorias, fornecedores, entradas e saídas de produtos, com relatórios por data, margem de lucro e muito mais. Código simples e fácil de modificar. Acompanha instruções para instalação e criação do banco de dados MySQL. Clique aqui e saiba mais |
Você está aqui: Java ::: Projetos Java Completos - Códigos Fonte Completos Java ::: Projetos Java Programação Orientada a Objetos - Exemplos Java |
|
Simulação de Sistema Bancário usando Programação Orientada a Objetos em Java - Projeto completo com código fonte - Versão consoleQuantidade de visualizações: 14662 vezes |
|
Sobre este projeto Java Durante estes anos que tenho trabalhado como freelancer, mais da metade das requisições dos meus clientes foram ajuda para desenvolver idéias de programação orientada a objetos em Java para projeto de faculdades e universidades. Com isso percebi que boa parte dos alunos e iniciantes em programação orientada a objetos já entendem toda a teoria. O que lhes falta é prática, ou seja, aplicar estes conhecimentos em aplicações do mundo real. Pensando nisso, apresento a você um projeto muito interessante e que, se bem entendido e praticado, o ajudará a desenvolver qualquer tipo de aplicação, seja comercial ou para solucionar problemas cotidianos. O projeto Java apresentado nesta dica é uma simulação completa de um Sistema Bancário, tudo com código fonte em Java, comentado, com variáveis em português, em um nível médio de programação, para facilitar o entendimento de todos. Nesta simulação nós temos a criação de classes Java, construtores, encapsulamento de dados, agregação e composição, métodos com retorno e sem retorno, variáveis estáticas, variáveis públicas e privadas, e relacionamento entre objetos (um para um, um para muitos, muitos para um) usando ArrayList. Sim, o projeto faz uso extensivo de ArrayList, o que o torna muito rico para o aprendizado e fixação dos conhecimentos da linguagem Java e suas classes principais. O Diagrama de Classes Java Antes de falarmos mais sobre o projeto, dê uma boa olhada no seu diagrama de classes: Como a aplicação está estruturada? Como podemos ver no diagrama de classes, nós temos uma classe Sistema que contém zero ou vários objetos da classe Banco (relacionamento um para muitos). A classe Banco, por sua vez, possui uma ArrayList de objetos da classe Agência, ou seja, mais um relacionamento um para muitos, já que cada agência pertence a um único banco. Cada agência pode possuir zero ou mais contas, e cada conta possui um ArrayList de objetos da classe Transação, o que nos permite registrar todas as operações nas contas e emitir o extrato bancário, com os débitos, créditos e transferências entre contas. Tudo isso é feito por meio de vários menus de opções, como podemos ver na imagem a seguir: Devo usar ArrayList do Java para desenvolver o sistema? Sim, objetos da classe ArrayList são perfeitos quando precisamos representar relacionamentos um para muitos e muitos para um. É claro que poderíamos usar vetores de objetos (usando array), mas ficaríamos restritos a tamanhos fixos, enquanto o ArrayList nos permite cadastrar quantos bancos, pessoas, agências e contas quisermos. Dessa forma, veja, por exemplo, o trecho de código que cria um novo banco: switch(opcao){ case 1: // vamos cadastrar um novo banco System.out.print("\nNúmero do Banco: "); String numeroBanco = entrada.nextLine(); System.out.print("Nome do Banco: "); String nomeBanco = entrada.nextLine(); // vamos incrementar o contador de bancos Banco.contadorBancos++; // agora vamos criar um novo objeto da classe Banco Banco b = new Banco(Banco.contadorBancos, nomeBanco, numeroBanco); // e o adicionamos no ArrayList de bancos bancos.add(b); // e finalmente mostramos uma mensagem de sucesso. System.out.println("\nO banco criado com sucesso"); break; Note que este trecho de código é parte do case da opção Novo Banco do menu Gerenciar Bancos. Veja como usamos uma variável estática contadorBancos da classe Banco para criarmos um valor inteiro auto-incremento que nos permite identificadores únicos para cada banco. Veja agora mais um trecho de código muito interessante. Trata-se case 3: // vamos pesquisar uma conta System.out.print("\nId, número ou nome cliente da conta: "); pesquisaConta = entrada.nextLine(); // chamamos o método que pesquisa a conta temp = pesquisarConta(agenciaAtual, pesquisaConta); if(temp == null){ // conta não encotrada System.out.println("\nConta não encontrada na agência."); } else{ // mostra a conta encontrada System.out.println("\nId da conta bancária: " + temp.getId()); System.out.println("Número da conta: " + temp.getNumero()); System.out.println("Cliente: " + temp.getCliente().getNome()); System.out.println("Agência: " + agenciaAtual.getNumero() + " - " + agenciaAtual.getCidade()); System.out.println("Banco: " + bancoAtual.getNumero() + " - " + bancoAtual.getNome()); System.out.println("Saldo atual: " + temp.getSaldo()); System.out.println("Limite atual: " + temp.getLimite()); } break; Viu que código mais lindo? Note como a Programação Orientada a Objetos em Java nos permite desenvolver idéias de forma bem parecida mesmo ao mundo real. O fechamento com chave de ouro O produto final da aplicação Java deverá ser um extrato bancário mostrando os dados da conta escolhida, o histórico de transações com data, tipo da transação e valor, e o saldo atual da conta, com ou sem limite. Veja na imagem abaixo a formatação apresentada (mesmo em modo texto): Como posso obter este código fonte? Os links para você baixar todas as versões deste projeto estão abaixo: 1) SBJCNB-A - Sistema Bancário em Java com Código Fonte Versão Console - NetBeans IDE - Faça o Download. 2) SBJCNB-B - Sistema Bancário em Java com Código Fonte Versão Console - Lê e salva os dados em arquivo usando serialização (Serializable), ou seja, os métodos readObject() e writeObject() - NetBeans IDE - Faça o Download. Não se esqueça: Uma boa forma de estudar o código é fazendo pequenas alterações e rodando para ver os resultados. Outra opção é começar um projeto Java do zero e ir adicionando trechos do código fonte para melhor entendimento de suas partes. |
|
Link para compartilhar na Internet ou com seus amigos: | |
VB.NET ::: Dicas & Truques ::: Geometria, Trigonometria e Figuras Geométricas |
Como calcular o coeficiente angular de uma reta em VB.NET dados dois pontos no plano cartesianoQuantidade de visualizações: 839 vezes |
O Coeficiente Angular de uma reta é a variação, na vertical, ou seja, no eixo y, pela variação horizontal, no eixo x. Sim, isso mesmo. O coeficiente angular de uma reta tem tudo a ver com a derivada, que nada mais é que a taxa de variação de y em relação a x. Vamos começar analisando o seguinte gráfico, no qual temos dois pontos distintos no plano cartesiano: Veja que o segmento de reta AB passa pelos pontos A (x=3, y=6) e B (x=9, y=10). Dessa forma, a fórmula para obtenção do coeficiente angular m dessa reta é: \[\ \text{m} = \frac{y_2 - y_1}{x_2 - x_1} = \frac{\Delta y}{\Delta x} = tg \theta \] Note que __$\Delta y__$ e __$\Delta x__$ são as variações dos valores no eixo das abscissas e no eixo das ordenadas. No triângulo retângulo que desenhei acima, a variação __$\Delta y__$ se refere ao comprimento do cateto oposto e a variação __$\Delta y__$ se refere ao comprimento do cateto adjascente. Veja agora o trecho de código na linguagem VB.NET que solicita as coordenadas x e y dos dois pontos, efetua o cálculo e mostra o coeficiente angular m da reta que passa pelos dois pontos: Imports System Module Program Sub Main(args As String()) ' x e y do primeiro ponto Console.Write("Informe a coordenada x do primeiro ponto: ") Dim x1 As Double = Double.Parse(Console.ReadLine()) Console.Write("Informe a coordenada y do primeiro ponto: ") Dim y1 As Double = Double.Parse(Console.ReadLine()) ' x e y do segundo ponto Console.Write("Informe a coordenada x do segundo ponto: ") Dim x2 As Double = Double.Parse(Console.ReadLine()) Console.Write("Informe a coordenada y do segundo ponto: ") Dim y2 As Double = Double.Parse(Console.ReadLine()) ' agora vamos calcular o coeficiente angular Dim m As Double = (y2 - y1) / (x2 - x1) ' e mostramos o resultado Console.WriteLine("O coeficiente angular é: " & m) Console.WriteLine("\nPressione qualquer tecla para sair...") ' pausa o programa Console.ReadKey() End Sub End Module Ao executar este código em linguagem VB.NET nós teremos o seguinte resultado: O coeficiente angular é: 0,6666666666666666 Veja agora como podemos calcular o coeficiente angular da reta que passa pelos dois pontos usando o Teorema de Pitágoras. Note que agora nós estamos tirando proveito da tangente do ângulo Theta (__$\theta__$), também chamado de ângulo Alfa ou Alpha (__$\alpha__$): Imports System Module Program Sub Main(args As String()) ' x e y do primeiro ponto Console.Write("Informe a coordenada x do primeiro ponto: ") Dim x1 As Double = Double.Parse(Console.ReadLine()) Console.Write("Informe a coordenada y do primeiro ponto: ") Dim y1 As Double = Double.Parse(Console.ReadLine()) ' x e y do segundo ponto Console.Write("Informe a coordenada x do segundo ponto: ") Dim x2 As Double = Double.Parse(Console.ReadLine()) Console.Write("Informe a coordenada y do segundo ponto: ") Dim y2 As Double = Double.Parse(Console.ReadLine()) ' vamos obter o comprimento do cateto oposto Dim cateto_oposto As Double = y2 - y1 ' e agora o cateto adjascente Dim cateto_adjascente As Double = x2 - x1 ' vamos obter o ângulo tetha, ou seja, a inclinação da hipetunesa ' (em radianos, não se esqueça) Dim tetha As Double = Math.Atan2(cateto_oposto, cateto_adjascente) ' e finalmente usamos a tangente desse ângulo para calcular ' o coeficiente angular Dim tangente As Double = Math.Tan(tetha) ' e mostramos o resultado Console.WriteLine("O coeficiente angular é: " & tangente) Console.WriteLine("\nPressione qualquer tecla para sair...") ' pausa o programa Console.ReadKey() End Sub End Module Ao executar este código você verá que o resultado é o mesmo. No entanto, fique atento às propriedades do coeficiente angular da reta: 1) O coeficiente angular é positivo quando a reta for crescente, ou seja, m > 0; 2) O coeficiente angular é negativo quando a reta for decrescente, ou seja, m < 0; 3) Se a reta estiver na horizontal, ou seja, paralela ao eixo x, seu coeficiente angular é zero (0). 4) Se a reta estiver na vertical, ou seja, paralela ao eixo y, o coeficiente angular não existe. |
C++ ::: Fundamentos da Linguagem ::: Estruturas de Controle |
C++ para iniciantes - Como usar o laço for em C++Quantidade de visualizações: 22506 vezes |
O laço for é usado quando queremos executar um bloco de códigos um determinado número de vezes. Este laço é composto de três partes:for(início; condição; incremento/decremento){ bloco de instruções } A parte início é executada uma única vez (na entrada do laço). Geralmente é nesta parte que declaramos e inicializamos a variável de controle. Na parte condição nós testamos a condição atual da variável de controle, para verificar se o laço pode continuar sua execução. Na parte do incremento/decremento nós alteramos o valor da variável de controle. Finalmente o bloco de instruções representa as instruções que serão executadas no laço. Veja um exemplo de laço for no qual exibimos os números de 0 a 10: #include <string> #include <iostream> using namespace std; int main(int argc, char *argv[]){ // um laço for que conta de 0 a 10 for(int i = 0; i <= 10; i++){ cout << i << "\n"; } cout << "\n\n"; system("PAUSE"); // pausa o programa return EXIT_SUCCESS; } Veja agora um laço for usado para exibir os números de 10 a 0: #include <string> #include <iostream> using namespace std; int main(int argc, char *argv[]){ // um laço for que conta de 10 a 0 for(int i = 10; i >= 0; i--){ cout << i << "\n"; } cout << "\n\n"; system("PAUSE"); // pausa o programa return EXIT_SUCCESS; } É importante observar que mais de uma expressão podem ser executadas nas partes início e incremento/decremento de um laço for. Veja um exemplo: #include <string> #include <iostream> using namespace std; int main(int argc, char *argv[]) { // um laço for que conta de 10 a 0 for(int i = 0, x = 4; i <= 10; i++, x += 2){ cout << (i * x) << "\n"; } cout << "\n\n"; system("PAUSE"); // pausa o programa return EXIT_SUCCESS; } |
JavaScript ::: Dicas & Truques ::: Matemática e Estatística |
Como calcular Fatorial em JavaScript usando recursão - Como calcular Fatorial usando recursividade - Aprenda a calcular Fatorial usando JavaScriptQuantidade de visualizações: 16756 vezes |
Embora existam várias formas de efetuar o cálculo de Fatorial, a forma mais comum é usando recursividade, ou seja, dividir a resolução do problema em partes menores e juntá-las no final. Neste dica eu mostro como calcular Fatorial em JavaScript usando recursividade. Veja o código completo: <html> <head> <title>Estudando JavaScript</title> <script type="text/javascript"> function fatorial(num){ if(num > 1) return num * arguments.callee(num - 1); else return 1; } </script> </head> <body> <script type="text/javascript"> document.write("O fatorial de 5 é: " + fatorial(5)); </script> </body> </html> Ao executar este código nós teremos o seguinte resultado: O fatorial de 5 é: 120 |
C# ::: Windows Forms ::: TextBox |
C# Windows Forms Avançado - Como rolar as linhas de um TextBox para cima uma de cada vez usando a API do WindowsQuantidade de visualizações: 7248 vezes |
Em algumas situações gostaríamos de rolar para cima o conteúdo de um TextBox de múltiplas linhas uma linha de cada vez. Para isso podemos usar a API do Windows, mais especificamente a mensagem WM_VSCROLL com o valor SB_LINEUP para seu parâmetro wParam. O valor do parâmetro lParam é zero. Veja um trecho de código que rola para cima o conteúdo de um TextBox uma linha de cada vez. Antes de executar este exemplo, tenha a certeza de ter um TextBox de múltiplas, com barras de rolagem e conteúdo que force o aparecimento das barras de rolagem. Comece adicionando a linha: using System.Runtime.InteropServices; na seção de usings do seu formulário ou classe. Em seguida adicione o trecho de código abaixo no corpo da classe, como um método: [DllImport("user32.dll", EntryPoint = "SendMessage", CharSet = CharSet.Auto, SetLastError = true)] private static extern IntPtr SendMessage(IntPtr hWnd, uint Msg, IntPtr wParam, IntPtr lParam); Finalmente coloque o código abaixo no evento Click de um botão: private void button2_Click(object sender, EventArgs e){ // antes de executar este exemplo certifique-se de que // a propriedade Multiline do TextBox esteja definida // como true e a propriedade ScrollBars contenha o valor // Vertical ou Both textBox1.Multiline = true; textBox1.ScrollBars = ScrollBars.Vertical; // constante para a mensagem WM_VSCROLL const uint WM_VSCROLL = 0x115; // constante para o parâmetro wParam const int SB_LINEUP = 0; // handle para a caixa de texto IntPtr handle = textBox1.Handle; IntPtr wParam = (IntPtr)SB_LINEUP; IntPtr lParam = IntPtr.Zero; // vamos fazer com que o TextBox role uma linha para cima SendMessage(textBox1.Handle, WM_VSCROLL, wParam, lParam); } |
JavaScript ::: Dicas & Truques ::: Strings e Caracteres |
Como testar se uma string começa com uma determinada substring em JavaScript usando a função startsWith()Quantidade de visualizações: 1734 vezes |
O método startsWith() da linguagem JavaScript foi adicionado ao objeto String na revisão ECMAScript 2015, ou ES6, também chamado de ECMAScript 6. Este método é chamado diretamente em uma variável do tipo string e retorna true se a palavra, frase ou texto começar com uma substring específica e false em caso contrário. Veja um exemplo no qual verificamos se uma frase começa com a palavra "JavaScript": <script type="text/javascript"> var frase = "JavaScript é uma das melhores linguagens"; if(frase.startsWith("JavaScript")){ document.writeln("A frase começa com a palavra JavaScript"); } else{ document.writeln("A frase não começa com a palavra JavaScript"); } </script> Ao executarmos este código JavaScript nós teremos o seguinte resultado: A frase começa com a palavra JavaScript É importante ter em mente que a função startsWith() diferente letras maiúsculas de letras minúsculas. |
Desafios, Exercícios e Algoritmos Resolvidos de JavaScript |
Veja mais Dicas e truques de JavaScript |
Dicas e truques de outras linguagens |
Códigos Fonte |
Software de Gestão Financeira com código fonte em PHP, MySQL, Bootstrap, jQuery - Inclui cadastro de clientes, fornecedores e ticket de atendimento Diga adeus às planilhas do Excel e tenha 100% de controle sobre suas contas a pagar e a receber, gestão de receitas e despesas, cadastro de clientes e fornecedores com fotos e histórico de atendimentos. Código fonte completo e funcional, com instruções para instalação e configuração do banco de dados MySQL. Fácil de modificar e adicionar novas funcionalidades. Clique aqui e saiba mais |
Controle de Estoque completo com código fonte em PHP, MySQL, Bootstrap, jQuery - 100% funcional e fácil de modificar e implementar novas funcionalidades Tenha o seu próprio sistema de controle de estoque web. com cadastro de produtos, categorias, fornecedores, entradas e saídas de produtos, com relatórios por data, margem de lucro e muito mais. Código simples e fácil de modificar. Acompanha instruções para instalação e criação do banco de dados MySQL. Clique aqui e saiba mais |
Linguagens Mais Populares |
1º lugar: Java |