![]() |
|
|
Planilha de Dimensionamento de Tubulações
Hidráulicas Água Fria e Água Quente CompletaNossa planilha automática de dimensionamento de tubulações de água fria e quente é uma ferramenta desenvolvida para auxiliar engenheiros e projetistas no cálculo rápido e preciso das redes hidráulicas de edificaçoes. Por meio da inserçao de dados como vazao, diâmetro da tubulaçao, comprimento da rede, material do tubo e coeficientes hidráulicos, a planilha realiza automaticamente os cálculos necessários para verificar velocidade da água, perda de carga e dimensionamento adequado das tubulaçoes. |
||
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: 19275 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. |
Delphi ::: Dicas & Truques ::: Arquivos e Diretórios |
Como verificar se um arquivo existe usando a função FileExists() da unit SysUtils do DelphiQuantidade de visualizações: 20539 vezes |
|
Quando estamos trabalhando com arquivos, é sempre uma boa idéia checar se um arquivo já existe antes de permitir que nosso código tente criar outro arquivo com o mesmo nome. Em Delphi a existência de um arquivo pode ser verificada por meio do uso da função FileExists(), na unit SysUtils. Esta função recebe o caminho e nome do arquivo e retorna true se ele existir, e false caso contrário. Veja um trecho de código no qual testamos se um determinado aqui já existe no sistema:
procedure TForm1.Button1Click(Sender: TObject);
var
arquivo: string;
begin
// diretorio e nome do arquivo
arquivo := 'C:\arquivo de codigos\dados.txt';
// vamos verificar se o arquivo existe no caminho especificado
if FileExists(arquivo) then
ShowMessage('O arquivo existe')
else
ShowMessage('O arquivo NÃO existe');
end;
Para fins de compatibilidade, esta dica foi escrita usando Delphi 2009. |
PHP ::: Dicas & Truques ::: PDO (PHP Data Objects) |
PHP PDO - Como disparar comandos SELECT usando a função PDO->query()Quantidade de visualizações: 15043 vezes |
|
Nesta dica mostrarei como disparar uma query SELECT usando PDO->query(). Veja que mostramos ainda como percorrer os resultados obtidos. Para este exemplo eu me conectei a um banco de dados MySQL e obtive dados de uma tabela chamada "produtos". Veja o código PHP PDO MySQL completo para o exemplo (incluindo a conexão com o banco de dados):
<html>
<head>
<title>Estudando PHP</title>
</head>
<body>
<?php
// primeiro vamos obter a conexão com o banco de dados
$server = "localhost";
$user = "root";
$pass = "osmar1234";
$db = "estudos";
try{
$conn = new PDO("mysql:host=$server;dbname=$db",
$user, $pass);
// echo "Conexão efetuada com sucesso.";
}
catch(PDOException $e){
die('Não foi possível conectar: ' . $e->getMessage());
}
// agora que já temos a conexão, vamos disparar
// o comando DML SELECT
$resultado = $conn->query("SELECT * FROM produtos");
if($resultado){
while($linha = $resultado->fetch(PDO::FETCH_ASSOC)){
echo "Id: " . $linha['id'] . "<br>";
echo "Nome: " . $linha['nome'] . "<br>";
echo "Preço: " . $linha['preco'] . "<br>";
echo "Quantidade: " . $linha['quantidade'] . "<br><br>";
}
}
?>
</body>
</html>
Ao executar este código nós teremos o seguinte resultado: Id: 1 Nome: ARROZ TIPO A Preço: 13 Quantidade: 320 Id: 2 Nome: FEIJÃO CARIOCA Preço: 9.5 Quantidade: 120 Id: 3 Nome: EXTRATO DE TOMATE AMD Preço: 4.24 Quantidade: 50 |
C ::: Dicas & Truques ::: Ponteiros, Referências e Memória |
Apostila C para iniciantes - Como usar ponteiros na linguagem CQuantidade de visualizações: 32792 vezes |
|
Antes de pensarmos em ponteiros, é importante nos lembrarmos de alguns aspectos referentes à variáveis. Dependendo do seu conhecimento de programação, você deve saber que variáveis possuem nomes que as identificam durante a execução do programa. Você deve saber também que uma variável armazena um valor (que pode ser fixo, no caso de uma constante, ou pode mudar durante a execução de seus códigos). O que poucos programadores se lembram é que uma variável possui um endereço, e que o nome da variável não é nada mais que um apelido para a localização deste endereço. Desta forma, um ponteiro não é nada mais que um tipo especial de variável que armazena o endereço de outra. Veja um exemplo:
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
// variável do tipo int
int valor = 10;
// ponteiro para uma variável do tipo int
int *p = &valor;
// exibe o valor da variável "valor", apontada
// pelo ponteiro p
printf("%d", *p);
printf("\n\n");
system("PAUSE");
return 0;
}
Neste código nós temos a declaração e definição de duas variáveis: int valor = 10; int *p = &valor; A primeira variável é uma variável do tipo int e a segunda é um ponteiro para uma variável do tipo int. Veja que devemos sempre usar "*" antes do nome de um ponteiro em sua declaração. O símbolo "&" serve para indicar que estamos acessando o endereço de uma variável e não o seu conteúdo. O resultado destas duas linhas é que agora temos um ponteiro que nos permite acessar e manipular a variável valor. Observe a linha:
printf("%d", *p);
Aqui nós estamos acessando o valor da variável apontada por p. Veja o uso do símbolo "*" para acessar o valor da variável. Isso é chamado de desreferenciamento de ponteiros. Pareceu complicado? Veja uma linha de código que altera indiretamente o valor da variável valor para 30: *p = 30; Ponteiros são ferramentas muito importantes na programação em C. No entanto, é preciso ter muito cuidado ao lidar com eles. A primeira coisa a ter em mente é que um ponteiro não está apontando para nenhum lugar até que atribuimos a ele o endereço de uma outra variável. E é aí que mora o perigo. Um programa entra em colapso absoluto se tentarmos acessar um ponteiro que aponta para um local de memória que já foi liberado novamente ao sistema. No caso menos grave, estaremos tentando acessar locais de memória inválidos ou reservados a outros programas ou tarefas do sistema operacional. Isso me lembra os velhos tempos da tela azul de morte. |
Nossas 20 dicas & truques de programação mais populares |
Você também poderá gostar das dicas e truques de programação abaixo |
|
Fórmulas da Física - Fórmula da Velocidade - Como calcular a velocidade quando temos a distância percorrida e o tempo gasto |
Nossas 20 dicas & truques de programação mais recentes |
Últimos Projetos e Códigos Fonte Liberados Para Apoiadores do Site |
|
Python - Como criar o jogo Pedra, Papel, Tesoura em Python - Jogo completo em Python com código comentado |
Últimos Exercícios Resolvidos |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
|
1º lugar: Java |







