martes, 25 de junio de 2013

Ahorcado en java


package exercise18;

import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;

/**
 *
 * @author Chuy Juarez
 */
public class Exercise18 {

    static final String PalabraSecreta = "PalabraSecreta.txt";

    public static void main(String[] args) {
        Scanner lectura = new Scanner(System.in);
        Scanner archivo = null;
        String palabrasecreta, posibilidad, fin = "sigue",solucion="";
        int oportunidad = 0;
        try {
            archivo = new Scanner(new File(PalabraSecreta));
        } catch (FileNotFoundException e) {
            System.out.println("El archivo " + PalabraSecreta + " no existe \nFin del programa");
            System.exit(0);
        }
        palabrasecreta = archivo.next();
        char palabraSecretaChar[] = palabrasecreta.toCharArray();
        System.out.println("la primera letra de la palabra comienza con " + palabraSecretaChar[0] + " y tiene " + palabrasecreta.length() + " letras en total");
        System.out.println("Acepta el reto y Adivina la palabra ");
        char resuelto[] = new char[palabrasecreta.length()];
        resuelto[0] = palabraSecretaChar[0];
        do
        {
            System.out.println("\nDigita una letra ");
            posibilidad = lectura.nextLine();
            char posibilidadChar[] = posibilidad.toCharArray();
            int i;
            char aux = 0, aux2 = 1;
            for (i = 0; i < palabrasecreta.length(); i++)
            {
                if (posibilidadChar[0] == palabraSecretaChar[i])
                {
                    resuelto[i] = palabraSecretaChar[i];
                    aux = resuelto[i];
                    aux2 = palabraSecretaChar[i];
                   
                }
                System.out.println(" " + resuelto[i]);

            }
            if (aux != aux2)
            {
                oportunidad++;
                System.out.println("Intentos fallidos " + oportunidad + "  Tolerancia 2");
            }
            else
            {
                char auxiliar;
                solucion="";
                for(i=0;i<palabrasecreta.length();i++)
                {
                    auxiliar=resuelto[i];
                    solucion=solucion+auxiliar;
                }
                if(solucion.equalsIgnoreCase(palabrasecreta))
                {
                    fin="fin";
                }
            }
        } while (fin.equals("sigue") && (oportunidad != 2));
        if(solucion.equalsIgnoreCase(palabrasecreta))
        {
            System.out.println("Exelente  la solucion es "+palabrasecreta);          
        }
        else
        {
            System.out.println("Suerte para la proxima ");
        }
    }
}


Ahora solo creamos en la carpeta del proyecto un archivo llamado PalabraSecreta.txt el cual tendrá la palabra secreta que queremos descubrir



Solución clase 17 iCarnegie aprende a leer un archivo desde java


package juarezSolisExercise17;
import java.util.Scanner;
import java.io.File;
import java.io.FileNotFoundException;

/**
 * @author ChuyJuarez
 * Este programa funciona a la perfección puede usted añadir o cambiar lo valores de archivo.
 * El se encargara de calcular o indicar algun error.
 * Hecho por Jesus Santos Juarez Solis TIC03
 */
public class JuarezSolisExercise17
{
    static final String DATA_PATH = "DataFile.txt";
    public static void main(String[] args)
    {
        //Scanner will read in the file.
        //In Eclipse, if you "right click" the word Scanner and choose "Open Declaration",
        //you can see the class methods available to you
        Scanner fileReader = null;
        try
        {
            fileReader = new Scanner(new File(DATA_PATH));
        }
        catch (FileNotFoundException e)
        {
            System.out.println("The file "+DATA_PATH+" was not found!\nThe program terminates now.");
            System.exit(0);
        }
        float largo=0,suma=0,contador=0,promedio,numero;
        String numAux="";
        try
        {
            do
            {
                numAux=fileReader.next();
                numero=Float.parseFloat(numAux);
                System.out.println("Debug: theFloat: "+numero);
                contador++;
                suma=suma+numero;
                if(numero>largo)
                {
                    largo=numero;
                }
            }while(numero==Float.parseFloat(numAux));
        }
        catch(Exception e)
        {
            try
            {
                numero=Float.parseFloat(numAux);
            }
            catch(Exception ex)
            {
                System.out.println("Error probablemente exista una cadena no reconocida como Float");
            }
            promedio=suma/contador;
            System.out.println("Count of numbers read = "+contador+"\nSum of numbers read = "+suma+"\nAverage of numbers read = "+promedio+"\nLargest number read = "+largo);
        }
    }
}
  

Ahora dentro de la carpeta de tu proyecto crea un archivo DataFile.txt con los siguientes datos
23.4 44.8 98.756 98.758 11 toma en cuenta los epacios

Solución 16 iCarnegie comprende el try & catch


/**
 *
 */
package juarezSolisExercise16;
import java.util.Scanner;
/**
 * @author park
 *
 */
public class JuarezSolisExercise16
{

/**
* @param args
* @param varible
*/
public static void main(String[] args)
{
String ASK_NUMBER = "Please enter a number (enter \"stop\" to stop): ";
Scanner keyboard = new Scanner(System.in);
int contador=0;
float numero = 0,promedio,suma=0;
String variable="";
System.out.println(ASK_NUMBER);
variable=keyboard.nextLine();
while(variable.compareToIgnoreCase("stop")!=0)
{
try//es simple try intentara convertir un texto a numero si el texto es un numero lo hará si
//el texto es una letra o contiene una letra no lo hará y fallara así que try lo enviara a catch
{
numero=Float.parseFloat(variable);
suma=numero+suma;
contador++;
}
catch(Exception e)
{
System.out.println("Error: "+e.getMessage());
}
System.out.println(ASK_NUMBER);
variable=keyboard.nextLine();
}
promedio=suma/contador;
System.out.println("\nEl promedio de la suma de los "+contador+" numero(s) es "+promedio);
}

}

Solución clase 15 iCarnegie aprende a usar boolean


/**
 *
 */
package exercise15;
import java.util.Scanner;
/**
 * @author Chuy Juarez
 *
 */
public class Exercise15
 {
public static void main(String[] args) {
String ASK_YEAR = "Please enter a year:";
Scanner keyboard = new Scanner(System.in);
//Ask for a Year
System.out.println(ASK_YEAR);
System.out.println("Student's code goes here");
boolean variable=true;
if(variable==keyboard.hasNextInt())
{
int year=Integer.parseInt(keyboard.nextLine());
boolean testA=true;
boolean testB=true;
boolean testC=true;
if(testA==((year%4)==0)&&testB==((year%100)!=0))
{
System.out.println(year+" Is a leap year");
}
else
{
if(testA==((year%4)==0)&&testB==((year%100)==0)&&testC==((year%400)==0))
{
System.out.println(year+" Is a leap year");
}
else
{
System.out.println(year+" Is not a leap year");
}
}
}
else
{
System.out.println("Error digite un numero entero");
}
}
}

Solución clase 14 iCarnegie


/**
 *
 */
package exercise14;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.text.DecimalFormat;
import java.util.Scanner;
/**
 * @author Chuy Juarez
 *
 */
public class Exercise14 {
private static String ASK_NUMBER = "Input a real number between 0 and 100 : ";
public static void main(String[] args) {
Scanner keyboard = new Scanner(System.in);
System.out.println(ASK_NUMBER);
try {
String text = keyboard.next().trim();
System.out.println("Debug: You just entered: "+text);
float num=Float.parseFloat(text);
if(num<=100&&num>=0)
{
BigDecimal entero = new BigDecimal(num);
   entero = entero.setScale(0, RoundingMode.HALF_UP);
   System.out.println("Número redondeado: "+entero);
}
else
{
System.out.println("Error solo puedes introducir numeros entre 0 y 100");
}
} catch (Exception e) {
System.out.println("Error: "+e.getMessage());
}
}

}

miércoles, 12 de junio de 2013

Resolucion iCarnegie Exersice13



Resolucion iCarnegie Exersice13


package exercise13;
import java.util.Scanner;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;

/**
 * @author Chuy Juarez
 * Esto funciona totalmente modifique el archivo DataFile.txt y compruebe
 *Resuleto por Chuy Juarez
 */
public class Exercise13 {
static final String DATA_PATH ="DataFile.txt";
/**
* @param args not used in this project
*/
public static void main(String[] args)
{
Scanner fileReader = null;
try {
fileReader = new Scanner(new File(DATA_PATH));
} catch (FileNotFoundException e) {
System.out.println("The file "+DATA_PATH+" was not found!");
System.out.println("The program terminates now.");
System.exit(0);
}
System.out.println("Student's code goes here");
int limite=fileReader.nextInt(),contador=0;
System.out.println("Cantidad de cadenas "+limite+"\n");
while(contador<limite)
{
String cadena1=fileReader.next();
System.out.println("cadena "+(contador+1)+" "+cadena1);
contador++;
if(contador==limite)
{
limite=fileReader.nextInt();
contador=0;
System.out.println("\nCantidad de cadenas "+limite+"\n");
while(contador<limite)
{
cadena1=fileReader.next();
System.out.println("cadena "+(contador+1)+" "+cadena1);
contador++;
}
}

}

}

}

lunes, 10 de junio de 2013

Como ligar una Base de Datos a una Web

Primero creamos nuestro formulario


<!DOCTYPE html>
<html>
    <head>
        <title>Almacen</title>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    </head>
    <body>
        <form name="almacen" id="almacen" action="index.jsp" method="post">
            <table border="1" cellspacing="2" cellpadding="0">
                <thead>
                    <tr>
                        <td>
                            Dato
                        </td>
                        <td>
                            Informaci&oacute;n
                        </td>
                    </tr>
                </thead>
                <tbody>
                    <tr>
                        <td>
                            Nombre del Producto
                        </td>
                        <td>
                            <input type="text" name="producto" id="producto"/> 
                        </td>
                    </tr>
                    <tr>
                        <td>
                            Precio
                        </td>
                        <td>
                            <input type="text" name="precio" id="precio"/>
                        </td>
                    </tr>
                    <tr>
                        <td>
                            Cantidad
                        </td>
                        <td>
                            <select name="cantidad">
                                <option value="5.5">5.5 Kilos</option>
                                <option value="10.5">10.5 Kilos</option>
                                <option value="15.5">15.5 Kilos</option>
                            </select>
                        </td>
                    </tr>
                    <tr>
                        <td>
                            Fecha
                        </td>
                        <td>
                            <input type="date" name="fecha" id="fecha"/>
                        </td>
                    </tr>
                    <tr>
                        <td colspan="2">
                            <input type="submit" name="guardar" value="Guardar"/>
                        </td>
                    </tr>
                </tbody>
            </table>
        </form>
        <div>TODO write content</div>
    </body>
</html>

por esta ocasión no aplicaremos validación ni estilo el tutorial pasado lo vimos así que podemos dar el estilo que mas nos agrade. (para validar con el archivo .js y para estilo con el .css).

Ahora creamos  nuestra clase java

package operacionesAlmacen;
import java.text.SimpleDateFormat;
import java.util.Date;
public class almacen 
{
    private String producto,fechaAux;
    private int precio;
    private double cantidad,total;
    private Date fecha;
    SimpleDateFormat f=new SimpleDateFormat("yyyy-MM-dd");

    public almacen() {
    }

    public String getProducto() {
        return producto;
    }

    public void setProducto(String producto) {
        this.producto = producto;
    }

    public String getFechaAux() {
        return fechaAux;
    }

    public void setFechaAux(String fechaAux) {
        this.fechaAux = fechaAux;
    }

    public int getPrecio() {
        return precio;
    }

    public void setPrecio(int precio) {
        this.precio = precio;
    }

    public double getCantidad() {
        return cantidad;
    }

    public void setCantidad(double cantidad) {
        this.cantidad = cantidad;
    }

    public Date getFecha() {
        return fecha;
    }

    public void setFecha(Date fecha) {
        this.fecha = fecha;
    }

    public double getTotal() {
        return total;
    }

    public void setTotal(double total) {
        this.total = total;
    }
    
    public void Total()
    {
        setTotal(precio*cantidad);
        try{
            setFecha(f.parse(fechaAux));
        }
        catch(Exception e){
            
        }
    }
}

esta clase recibirá los valores de html los cuales serán enviados por un archivo .jsp


Creamos nuestra conexión BD



package operacionesAlmacen;
//Se impota la libreria de SQL
import java.sql.*;
import java.util.logging.Level;
import java.util.logging.Logger;
//import com.mysql.jdbc.*;
public class Bd {
    //Se declaran las variales
    Connection conn;   //Variable conn de tipo Connection. Nos sirve para establecer la conexion.
    Statement smt;     //Variable smt de tipo Statement. Nos sirve para ejecutar sentencias sql
    ResultSet rs=null; //Variable rs de tipo ResultSet. Nos sirve para almacenar el resultado de una consulta SQL
    String mensaje="";// Variable para desplegar mensajes.


   
   
    /*Ahora realizamos un metodo para conectarse a la base de Datos
    para conestarse a una base de datos se necesitan tres cosas
    1.-El nombre de la base de datos 2.- usuario 3.- pasdword
    El throws nos sirve para que el error no lo maneje el metodo el SQLException es solo para que se encarge de los errores de sintaxis SQL*/
                           
    public Bd(String bd, String user, String password)
    {
                          // Bd recibe el nombre de la base de datos
                          // user recibe el nombre del usuario
                          // password recibe la contraseña del usuario
        String url="jdbc:mysql://localhost/"+bd;
       
        try{
            Class.forName("com.mysql.jdbc.Driver");
            conn=DriverManager.getConnection(url,user,password); // abre la conexion y se guarda en conn
            smt=conn.createStatement();  //smt queda preparada para realizar ejecutar sentencias sql
            mensaje= "Coneccion realizada correctamente a la base de datos :"+url;          
            //System.out.println(mensaje);
        } catch (ClassNotFoundException ex) {
            Logger.getLogger(Bd.class.getName()).log(Level.SEVERE, null, ex);
        }
        catch(SQLException e){
            mensaje="Error al conectar a la base de datos \nError:"+e;
            //System.out.println(mensaje);
        }
       
    }
    public String desconectarBd(){
    String texto;
   
    try{
        conn.close();
        texto="BD desconectada exitosamente";
    }
    catch(Exception e){
        texto="Error al desconectar la BD";
    }
    return texto;
}

   
    public ResultSet consultaBd(String sql){      
        try {
            rs=smt.executeQuery(sql);
           
            mensaje="consulta ejecutada correctamente";          
        }
    catch(Exception e){
        mensaje="Error en la consulta a la tabla de la BD "+e+" sql "+sql;
    }
    return rs;
    }  

    public String actualizaBd(String sql){
        String texto;
        try{
            smt.executeUpdate(sql);
            texto="Actualización correcta";
        }
        catch(Exception e){
            texto="Error al ejecutar la actualización "+e+" sql "+sql;
        }
        return texto;
    }

}


esto realizara la conexión entre la aplicación web y la base de datos.

Para esto debemos tener una Base de Datos

crearemos una pequeña base el siguiente comando copias y pegas todo tal como esta.

create database almacen;
use almacen;
create table Datos(id  int unsigned auto_increment primary key,
Producto char(15),
Precio int,
Cantidad double,
Fecha date,
Total double
);

con esto crearemos una base llamada almacén con una tabla llamada Datos y unos campos llamados
id, Producto, Precio, Cantidad, Fecha Total.

Creamos una clase java la cual ejecutara las sentencias sql

package operacionesAlmacen;
public class operacionesBd 
{
    almacen a;
    String sql;
    Bd bd=new Bd("almacen","root","utsjr");/*almacen es el nombre de mi base de datos root es el administrador y utsjr es la contraseña*/

    public operacionesBd(almacen a) {
        this.a = a;
    }
    public void insertarNuevosProductos()throws Exception
    {
        sql="insert into datos (Producto,Precio,Cantidad,Fecha,Total)"
                + "values ('"+a.getProducto()+"',"+a.getPrecio()+","+a.getCantidad()+",'"+a.getFechaAux()+"',"+a.getTotal()+")";
        
        System.out.println("sql"+sql);
        bd.actualizaBd(sql);       
    }
    
}



Después creamos el .jsp que sera nuestra pagina dinámica y nos ayudara a pasar los datos de .html a .java


<%@page import="operacionesAlmacen.almacen"%>
<%@page import="operacionesAlmacen.operacionesBd"%>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>Almacen</title>
    </head>
    <body>
        <%
        almacen a=new almacen();
        a.setProducto(request.getParameter("producto"));
        a.setPrecio(Integer.parseInt(request.getParameter("precio")));
        a.setFechaAux(request.getParameter("fecha"));
        a.setCantidad(Double.parseDouble(request.getParameter("cantidad")));
        a.Total();
        operacionesBd obd=new operacionesBd(a);
        obd.insertarNuevosProductos();      
        %>
        <table border="1" cellspacing="2" cellpadding="0">
                <thead>
                    <tr>
                        <td>
                            Dato
                        </td>
                        <td>
                            Informaci&oacute;n
                        </td>
                    </tr>
                </thead>
                <tbody>
                    <tr>
                        <td>
                            Nombre del Producto
                        </td>
                        <td>
                            <% out.print(a.getProducto()); %>
                        </td>
                    </tr>
                    <tr>
                        <td>
                            Precio
                        </td>
                        <td>
                            <% out.print(a.getPrecio()); %>
                        </td>
                    </tr>
                    <tr>
                        <td>
                            Cantidad
                        </td>
                        <td>
                            <% out.print(a.getCantidad()); %>
                        </td>
                    </tr>
                    <tr>
                        <td>
                            Fecha
                        </td>
                        <td>
                            <% out.print(a.getFecha());
                            %>
                        </td>
                    </tr>
                </tbody>
            </table>
    </body>
</html>


aquí importamos todas las clases de java  ahora podemos ejecutar el programa y analizar como funciona dudas o aclaraciones gto.aje.2@hotmail.com