Hola amig@s esta ves les mostrare como hacer un rombo con asteriscos en C.
Captura:
Código:
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[]){
int i,j,k,s;
for(i=0;i<=10;i++){
for(k=10;k>i;k--)
printf(" ");
for(j=0;j<i+1;j++)
printf(" *");
printf("\n");
}
for(i=0;i<=10-1;i++){
for(k=0;k<i+1;k++)
printf(" ");
for(j=10;j>i;j--)
printf(" *");
printf("\n");
}
system("PAUSE");
return 0;
}
Descarga el código desde aquí.
lunes, 5 de agosto de 2013
Piramide con asteriscos en C
Hola amig@s en esta ocasión les mostrare como hacer una pirámide con asteriscos en C
Captura:
Código:
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
int i,j,k;
for(i=0;i<=10;i++){
for(k=10;k>i;k--)
printf(" ");
for(j=0;j<i+1;j++)
printf(" *");
printf("\n");
}
system("PAUSE");
return 0;
}
descarga el código desde aquí.
Captura:
Código:
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
int i,j,k;
for(i=0;i<=10;i++){
for(k=10;k>i;k--)
printf(" ");
for(j=0;j<i+1;j++)
printf(" *");
printf("\n");
}
system("PAUSE");
return 0;
}
descarga el código desde aquí.
Etiquetas:
asteriscos
,
c
,
introduccion a la informatica
,
piramide
miércoles, 31 de julio de 2013
Potencia en C sin utilizar la funcion pow()
Hola amig@s esta vez les enseñare como elevar un numero X a una base Y sin utilizar la función pow() en C.
Captura:
Codigo:
Descarga el código fuente desde aquí.
Captura:
#include#include int main(int argc, char *argv[]) { int a, b,i,mult=1; printf("\nIngrese el primer numero: "); scanf("%d",&a); printf("\nIngrese el segundo numero: "); scanf("%d",&b); for(i=1;i<=b;i++){ mult*=a; } printf("\nEl resultado de %d ^ %d es: %d\n\n",a,b,mult); system("PAUSE"); return 0; }
Descarga el código fuente desde aquí.
Etiquetas:
c
,
introduccion a la informatica
,
potencia
Multiplicar un numero sin utilizar * en C
Hola amig@s en esta ocasión les mostrare como multiplicar un numero sin utilizar * en C
Captura:
Código:
Descarga el código fuente desde aquí.
Captura:
Código:
#include#include int main(int argc, char *argv[]) { int a, b,i,suma=0; printf("\nIngrese el primer numero: "); scanf("%d",&a); printf("\nIngrese el segundo numero: "); scanf("%d",&b); for(i=1;i<=b;i++){ suma+=a; } printf("\nEl resultado de multiplicar %d x %d es: %d\n\n",a,b,suma); system("PAUSE"); return 0; }
Descarga el código fuente desde aquí.
Conocer el menor de dos números en C
Hola amig@s esta vez les traigo el código para conocer el menor de dos números en C.
Captura:
Código:
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
int a,b;
printf("\nIngrese el primer numero: ");
scanf("%d",&a);
printf("\nIngrese el segundo numero numero: ");
scanf("%d",&b);
/*funcion simplificada de if y else siempre y cuando solo sea condiciones de 1 linea
if((a<b)){
printf("\nEl numero menor es: %d\n\n",a)
}else{
printf("\nEl numero menor es: %d\n\n",b)
}
utilizando operador (a<b)? si es verdadero (if) : si no es verdadero (else)*/
(a<b)?printf("\nEl numero menor es: %d\n\n",a):printf("\nEl numero menor es: %d\n\n",b);
system("PAUSE");
return 0;
}
Descarga el código desde aquí
Captura:
Código:
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
int a,b;
printf("\nIngrese el primer numero: ");
scanf("%d",&a);
printf("\nIngrese el segundo numero numero: ");
scanf("%d",&b);
/*funcion simplificada de if y else siempre y cuando solo sea condiciones de 1 linea
if((a<b)){
printf("\nEl numero menor es: %d\n\n",a)
}else{
printf("\nEl numero menor es: %d\n\n",b)
}
utilizando operador (a<b)? si es verdadero (if) : si no es verdadero (else)*/
(a<b)?printf("\nEl numero menor es: %d\n\n",a):printf("\nEl numero menor es: %d\n\n",b);
system("PAUSE");
return 0;
}
Descarga el código desde aquí
Etiquetas:
c
,
introduccion a la informatica
,
menor
Conocer el mayor de 2 numeros en c
Hola amig@s esta vez les traigo el codigo sencillo para conocer el mayor de dos numeros en c haciendo uso del operador condicional.
Captura:
Codigo:
Descarga el codigo desde aqui.
Captura:
Codigo:
#include#include int main(int argc, char *argv[]) { int a,b; printf("\nIngrese el primer numero: "); scanf("%d",&a); printf("\nIngrese el segundo numero numero: "); scanf("%d",&b); /*funcion simplificada de if y else siempre y cuando solo sea condiciones de 1 linea utilizando operador (a>b)? si es verdadero (if) : si no es verdadero (else)*/ (a>b)?printf("\nEl numero mayor es: %d\n\n",a):printf("\nEl numero mayor es: %d\n\n",b); system("PAUSE"); return 0; }
Descarga el codigo desde aqui.
Etiquetas:
c
,
introduccion a la informatica
,
mayor
jueves, 25 de julio de 2013
Grafos en C++
Hola amig@s en esta entrega les tengo el código de grafos en el cual podremos utilizar un grafo pre-guardado o crear uno nuevo, crear la matriz de adyacencia, la matriz de caminos, mostrar la lista de nodos adyacentes, recorrido en profundidad, recorrido en anchura, mostrar la matriz de Floyd y mostrar la matriz de Warshall.
Capturas:
Descarga el código desde aquí.
Capturas:
Descarga el código desde aquí.
viernes, 19 de julio de 2013
Dibujar un cuadrado, un triángulo y un circulo en applet
Hola amig@s en esta entrega les mostrare como dibujar un cuadrado, un triángulo y un circulo en applet cada uno se dibujara al presionar el botón correspondiente a dicha figura.
Capturas:
Código:
Puedes descargar el código desde aquí.
Capturas:
Código:
import java.applet.Applet; import java.awt.Button; import java.awt.Color; import java.awt.Graphics; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; /** * * @author MARIO */ public class Figuras extends Applet implements ActionListener { Button bt1, bt2, bt3; int indice; final Color[] colores = {Color.red, Color.blue, Color.orange}; public void init() { setBackground(Color.yellow); bt1 = new Button("Cuadrado"); bt2 = new Button("Triangulo"); bt3 = new Button("Circulo"); bt1.setBackground(Color.red); bt1.setForeground(Color.green); bt1.addActionListener(this); bt2.setBackground(Color.blue); bt2.setForeground(Color.white); bt2.addActionListener(this); bt3.setBackground(Color.orange); bt3.setForeground(Color.MAGENTA); bt3.addActionListener(this); add(bt1); add(bt2); add(bt3); } public void paint(Graphics g) { g.setColor(colores[indice]); switch (indice) { case 0: g.fillRect(40, 40, 40, 40); break; case 1: int [] x = new int [4]; x [0] = 5; x [1] = 70; x [2] = 70; x [3] = 5; int [] y = new int [4]; y [0] = 70; y [1] = 5; y [2] = 70; y [3] = 70; g.drawPolygon (x, y, 4); break; case 2: g.fillOval(120, 96, 40, 40); break; } } public void actionPerformed(ActionEvent e) { Object boton = e.getSource(); if (boton.equals(bt1)) { indice = 0; } else if (boton.equals(bt2)) { indice = 1; } else { indice = 2; } repaint(); } }
Puedes descargar el código desde aquí.
jueves, 18 de julio de 2013
Dibujar Cara en Applets Java
Hola amig@s en esta nueva entrega les mostrare como crear un applet que dibuje una carita y al presionar un botón cambiar el color de todo lo dibujado
Captura:
Código:
Descarga el código desde aquí.
Captura:
Código:
import java.applet.Applet; import java.awt.Button; import java.awt.Color; import java.awt.Graphics; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; /** * @(#)Cara.java * * Cara Applet application * * @author Alexander * @version 1.00 2013/7/18 */ public class Cara extends Applet implements ActionListener { Button btn = new Button("Cambiar Color"); int indice = 1; public void init() { add(btn); btn.addActionListener(this); } public void paint(Graphics g) { if (indice == 1) { btn.setBackground(Color.black); btn.setForeground(Color.lightGray); setBackground(Color.red); g.fillOval(150, 150, 120, 120); g.setColor(Color.green); g.fillOval(170, 170, 20, 20); g.fillOval(220, 170, 20, 20); g.drawLine(200, 175, 200, 220); g.drawArc(180, 190, 50, 50, 180, 180); } else { btn.setBackground(Color.white); btn.setForeground(Color.blue); setBackground(Color.blue); g.setColor(Color.pink); g.fillOval(150, 150, 120, 120); g.setColor(Color.yellow); g.fillOval(170, 170, 20, 20); g.fillOval(220, 170, 20, 20); g.drawLine(200, 175, 200, 220); g.drawArc(180, 190, 50, 50, 180, 180); } } public void actionPerformed(ActionEvent e) { Object boton = e.getSource(); if (boton.equals(btn)) { if (indice != 2) { indice = 2; } else { indice = 1; } } repaint(); } }
Descarga el código desde aquí.
Etiquetas:
applets
,
Java
,
programacion III
martes, 16 de julio de 2013
Búsqueda Secuencial en C++
Hola amig@s esta vez les traigo el código de Búsqueda secuencial en C++.
Código:
#include<iostream>
#include <fstream>
using namespace std;
void insertar();
void BusquedaSecuencial(int numBus);
int main(){
insertar();
cout<<endl<<endl<<"Valor a buscar: 10"<<endl<<endl;
BusquedaSecuencial(10);
system("pause");
return 0;
}
void insertar(){
ofstream out;
out.open("Salida.txt");
out<<1<<" "<<endl;
out<<2<<" "<<endl;
out<<4<<" "<<endl;
out<<6<<" "<<endl;
out<<7<<" "<<endl;
out.close();
}
void BusquedaSecuencial(int numBus){
ifstream in;
in.open("Salida.txt");
bool bandera=false;
int num;
while(!in.eof() && bandera==false){
in>>num;
if(num>=numBus){
bandera=true;
}
}
if(num==numBus){
cout<<"el elemento esta en el archivo"<<endl;
}else
cout<<"el elemento no esta en el archivo"<<endl;
}
Explicación:
Búsqueda secuencial
Consiste en recorrer el archivo comparando la clave buscada con la clave del registro en curso. El recorrido lineal del archivo termina cuando se encuentra el elemento, o bien cuando se alcanza el final del archivo. Se puede representar algunas variantes dependiendo de si el archivo está o no ordenado.
Captura:
#include<iostream>
#include <fstream>
using namespace std;
void insertar();
void BusquedaSecuencial(int numBus);
int main(){
insertar();
cout<<endl<<endl<<"Valor a buscar: 10"<<endl<<endl;
BusquedaSecuencial(10);
system("pause");
return 0;
}
void insertar(){
ofstream out;
out.open("Salida.txt");
out<<1<<" "<<endl;
out<<2<<" "<<endl;
out<<4<<" "<<endl;
out<<6<<" "<<endl;
out<<7<<" "<<endl;
out.close();
}
void BusquedaSecuencial(int numBus){
ifstream in;
in.open("Salida.txt");
bool bandera=false;
int num;
while(!in.eof() && bandera==false){
in>>num;
if(num>=numBus){
bandera=true;
}
}
if(num==numBus){
cout<<"el elemento esta en el archivo"<<endl;
}else
cout<<"el elemento no esta en el archivo"<<endl;
}
Descarga el código desde aquí.
Etiquetas:
busqueda secuencial
,
C++
,
estructura de datos
Busqueda Binaria C++
Hola amig@s esta vez les he traído el código de la búsqueda binaria.
Explicacion:
Binaria:
Consiste en dividir intervalos de búsqueda en dos partes , comparando el
elemento buscado con el central. En caso de no ser iguales se redefinen
los extremos del intervalos(según el elemento central sea mayor o menor
que el buscado) disminuyendo el espacio de búsqueda
El proceso concluye cuando el elemento es encontrado.
Este método funciona únicamente para arreglos ordenados .
Con cada iteración del método el espacio de búsqueda se reduce a la
mitad , por lo tanto el número de comparaciones se reduce notablemente.
Esta disminución resulta significativa cuanto más grande sea el arreglo.
Código:
Descarga el código desde aquí.
Explicacion:
Binaria:
Consiste en dividir intervalos de búsqueda en dos partes , comparando el
elemento buscado con el central. En caso de no ser iguales se redefinen
los extremos del intervalos(según el elemento central sea mayor o menor
que el buscado) disminuyendo el espacio de búsqueda
El proceso concluye cuando el elemento es encontrado.
Este método funciona únicamente para arreglos ordenados .
Con cada iteración del método el espacio de búsqueda se reduce a la
mitad , por lo tanto el número de comparaciones se reduce notablemente.
Esta disminución resulta significativa cuanto más grande sea el arreglo.
Código:
#include<iostream> using namespace std; void binaria(int x,int v[],int n); int main(){ int x,v[100],n; do{ cout<<"\nnumero de datos: "; cin>>n; }while(n<1||n>100); for(int i=0;i<n;i++){ v[i]=i; } cout<<"\nnumero a buscar: "; cin>>x; binaria(x,v,n); system("pause"); return 0; } void binaria(int x,int v[],int n){ int izq=1,der=n,cent; bool bandera=false; while((izq<=der)&&(bandera==false)){ cent=int(izq+der)/2; if(x==v[cent]){ bandera=true; }else{ if(x>v[cent]){izq=cent+1;}else{der=cent-1;} } } if(bandera==true){cout<<"\nel elemento esta en la posicion: "<<cent<<"\n\n";} else{cout<<"\nel elemento no se encuentra en el arreglo"<<"\n\n";} }
Descarga el código desde aquí.
Etiquetas:
busqueda binaria
,
C++
,
estructura de datos
Arbol Binario en C++
Hola amigos esta vez les mostrare un arbol binario con los recorrios in-orden, post-orden y pre-orden.
Captura:
Codigo:
Arbol.cpp
Arbol.h
Descarga el codigo desde aqui.
Captura:
Codigo:
Arbol.cpp
#include<iostream> #include"arbol.h" using namespace std; void arbol::insertar(tarbol &aux,int v){ if(aux==NULL){ aux=new nodo(v); } else{ if(v<aux->dato){ insertar(aux->izquierda,v); } else{ if(v>aux->dato){ insertar(aux->derecha,v); } } } } void arbol::ind(tarbol aux){ if(aux!=NULL){ ind(aux->izquierda); cout<<" num : "<<aux->dato<<endl; ind(aux->derecha); } } void arbol::nid(tarbol aux){ if(aux!=NULL){ cout<<" num : "<<aux->dato<<endl; nid(aux->izquierda); nid(aux->derecha); } } void arbol::idn(tarbol aux){ if(aux!=NULL){ idn(aux->izquierda); idn(aux->derecha); cout<<" num : "<<aux->dato<<endl; } } int main(){ arbol a; cout<<"Datos: 5,4,2,6,7"<<endl<<endl; a.insertar(a.miarbol,5); a.insertar(a.miarbol,4); a.insertar(a.miarbol,2); a.insertar(a.miarbol,6); a.insertar(a.miarbol,7); cout<<"Inorden"<<endl<<endl; a.ind(a.miarbol); cout<<endl<<endl; cout<<"Postorden"<<endl; a.idn(a.miarbol); cout<<endl<<endl; cout<<"Preorden"<<endl; a.nid(a.miarbol); cout<<endl<<endl;fflush(stdin); system("pause"); return 0; }
class nodo{ public: int dato; nodo *izquierda; nodo *derecha; nodo(int v,nodo *iz=NULL,nodo *de=NULL){ dato=v; izquierda=iz; derecha=de; } class arbol; }; typedef nodo *tarbol; class arbol{ public: tarbol miarbol; arbol(){ miarbol=NULL; } void arbol::insertar(tarbol &aux, int v); void ind(tarbol aux); void nid(tarbol aux); void idn(tarbol aux); };
Descarga el codigo desde aqui.
Etiquetas:
arboles binarios
,
C++
,
estructura de datos
,
programacion II
Juego del Ahorcado en C
Bueno amig@s en esta ocasion les traigo uno de los juegos mas populares que podemos encontrar como lo es el juego del ahorcado en lenguaje C.
Funciones del juego:
- Permite seleccionar entre 3 categorías de palabras (Animales, Países, Difíciles).
- Podemos ingresar nuevas palabras o utilizar las que ya están guardadas.
- Muestra el numero de oportunidades restantes.
- Podemos volver a jugar nuevamente en una categoría distinta si lo deseamos.
Capturas:
Código:
Ahorcado.c
Funciones del juego:
- Permite seleccionar entre 3 categorías de palabras (Animales, Países, Difíciles).
- Podemos ingresar nuevas palabras o utilizar las que ya están guardadas.
- Muestra el numero de oportunidades restantes.
- Podemos volver a jugar nuevamente en una categoría distinta si lo deseamos.
Capturas:
Código:
Ahorcado.c
/*Version 1.0.1*/ #include<stdio.h> #include<stdlib.h> #include<string.h> #include<conio.h> #include<time.h> #include<windows.h> #include<math.h> #include<ctype.h> //Prototipo de funciones void menu(); void carga(); void animales(); void paises(); void dificiles(); void juego(char palabra[50][20], int n); void rotulo(int e); void pieder(); void pieizq(); void made(); void maiz(); void base(); void cuerpo(); void cabeza(); void gotoxy(short x, short y); //Funcion principal se encarga de llamar a la funciones carga y menu int main(){ carga();//llamada de la funcion "carga" menu();//llamada de la funcion "menu" system("pause"); return 0; }// Termina la funcion principal void carga(){//funcion encargada de de mostrar la barra de carga del programa int c, m=6; system("cls"); system("color 48"); gotoxy (30,5);printf("Cargando......"); Sleep(200); for(c=15;c<=75; c++){ m++; gotoxy (m,10); printf("%c",219); gotoxy(6,15);printf("\n\n\n\n\n\tAHORCADO V 1.0.0 "); Sleep(100); } printf("\a");system("cls"); } void menu(){ char op; do{//imprime el menu principal varias veces hasta que sea necesareo system("cls"); gotoxy (30,1); printf ("JUEGO DEL AHORCADO"); gotoxy (30,4); printf("Seleccione Categoria");fflush(stdin); gotoxy (30,6); printf("1.Animales"); gotoxy (30,8); printf("2.Paises"); gotoxy (30,10); printf("3.Dificiles"); gotoxy (30,12); printf("4.Salir"); gotoxy (30,14); printf("Ingrese opcion: "); scanf("%c",&op); }while(op<'1'||op>'4');//evalua los datos ingresados por el usuario switch(op){//seleeciona el caso ingresado por el usuario case '1': animales();break;// llamado a la funcion animales case '2': paises();break;// llamado a la funcion paises case '3': dificiles();break;// llamado a la funcion dificiles case '4':printf("\n\nGracias por utilizar nuestro programa.....\n\n");break; } } void animales(){ char palabra[50][20]={"murcielago","tiburon","perro","chancho","gato","cerdo","gallina","elefante","vaca","serpiente","mono","rata"}; //asignacion de palabras a una lista int n=0, i; char op; fflush(stdin); do{// muestra el menu si no se cumple la condicion fflush(stdin); system("cls"); gotoxy (30,1); printf("CATEGORIA NOMBRE DE ANIMALES"); gotoxy (30,4); printf("1.Ingresar nueva palabra"); gotoxy (30,6); printf("2.Jugar con lista existente"); gotoxy (30,8); printf("3.Retornar al menu principal"); gotoxy (30,10); printf(" Ingrese opcion: "); scanf("%c",&op); }while(op<'1'||op>'3');//evaluacion de las datos ingresados por el usuario switch(op){ case'1':// añade mas palabras a la lista do{ system("cls"); printf("\n Digite cantidad de palabras: "); scanf("%d",&n);//captura el numero de palabras }while(n<0); for(i=3;i<=n+2;i++) {fflush(stdin); system("cls"); printf("\n Ingrese palabra: "); gets(palabra[i]);//captura la palabra y la almacena en la pocision i de la lista } juego(palabra,n);break;//llamado a la funcion juego y la manda la lista modificada case'2':juego(palabra,n);break;//llama al funcion juego y le manda la lista con las palabras asignadas case'3':menu();break;// llama a la funcion menu } } void paises(){ char palabra[50][20]={"afganistan","japon","alemania","cuba","venezuela","alemania","peru","paraguay","turquia","checoslovaquia","suriname","banladesh","africa"}; //asignacion de palabras a una lista int n=0, i; char op; do{// muestra el menu si no se cumple la condicion fflush(stdin); system("cls"); gotoxy (30,1); printf("CATEGORIA NOMBRE DE PAISES "); gotoxy (30,4); printf("1.Ingresar nueva palabra"); gotoxy (30,6); printf("2.Jugar con lista existente"); gotoxy (30,8); printf("3.Retornar al menu principal"); gotoxy (30,10); printf(" Ingrese opcion: "); scanf("%c",&op); }while(op<'1'||op>'3');//evalua los datos imgresados por el usuario switch(op){ case'1':// añade mas palabras a la lista do{system("cls"); printf("\n Digite cantidad de palabras: "); scanf("%d",&n);//captura el numero de palabras }while(n<0); for(i=3;i<=n+2;i++){fflush(stdin); system("cls"); printf("\n Ingrese palabra: "); gets(palabra[i]);//captura la palabra y la almacena en la pocision i de la lista } juego(palabra,n);break;//llamado a la funcion juego y la manda la lista modificada case'2':juego(palabra,n);break;//llama al funcion juego y le manda la lista con las palabras asignadas case'3':menu();break;// llama a la funcion menu } } void dificiles(){ char palabra[50][20]={"hidraulica","clorhidrato","electrostatica","miercoles","computadora","musica","nada","sandia","puta","mundo","ahorcado","teclado","palabra"}; //asignacion de palabras a una lista int n=0, i; char op; do{ // muestra el menu si no se cumple la condicion fflush(stdin); system("cls"); gotoxy (30,1); printf("CATEGORIA PALABRAS DIFICILES"); gotoxy (30,4); printf("1.Ingresar nueva palabra"); gotoxy (30,6); printf("2.Jugar con lista existente"); gotoxy (30,8); printf("3.Retornar al menu principal"); gotoxy (30,10); printf(" Ingrese opcion: "); scanf("%c",&op); }while(op<'1'||op>'3');//evaluacion de las datos ingresados por el usuario switch(op){ case'1'://añade mas palabras a la lista do{system("cls"); printf("\n Digite cantidad de palabras: "); scanf("%d",&n);//captura el numero de palabras }while(n<0); for(i=3;i<=n+2;i++) {fflush(stdin); system("cls"); printf("\n Ingrese palabra: "); gets(palabra[i]);//captura la palabra y la almacena en la pocision i de la lista } juego(palabra,n);break;//llamado a la funcion juego y la manda la lista modificada case'2':juego(palabra,n);break;//llamado a la funcion juego y la manda la lista modificada case'3':menu();break;// llama a la funcion menu } } void juego(char palabra[50][20], int n){ int contador,longitud,i,j, e,error, m=13; char palabras[30], respuesta[30], letra, res, res1; do{system("cls"); gotoxy (30,1); printf ("JUEGO DEL AHORCADO"); base();//lama a la funcion base rotulo(0);//llama ala funcion rotulo para ver el numero de oportunidades restantes srand (time (NULL)); longitud=rand()%(m+n);//genera un numero aleatorio y lo almacena en la variable longitud e=0; contador=0; strcpy(palabras,palabra[longitud]);//copia en la variable una variable de la lista longitud=strlen(palabras);//se obtiene el tamaño de la palabra y se almacena en longitud gotoxy(4,30); for (i=0; i<longitud ; i++){fflush(stdin); respuesta[i]='*';//se almacena * en un vector printf (" %c ", respuesta[i]);// se imprime * en el lugar de las letras } do{ fflush (stdin); gotoxy (4,32); printf ("Ingrese una letra: "); scanf ("%c", &letra);//captura una letra letra=tolower(letra);//convierte unna letra mayuscula en minuscula gotoxy (21,32);printf(" "); error=0;//se inicializa en 0 gotoxy(4,30); for(j=0; j<longitud; j++) { if (letra==palabras[j]){/*compara si la letra ingresada por el usuario corresponde a una posicion de la palabra*/ if(letra!=respuesta[j]){ respuesta[j]=letra;// la susttituye por el * contador++;//aumenta contador en uno } } else{ error++;//aumenta error en uno } printf (" %c ", respuesta[j]);//imprime la letra correcta } if(error==longitud){//entra si la letra ingresada no corresponde a ninguna de la palabra a adivinar e++;//segun la cantidad de letras erroneas aumenta en 1 } rotulo(e);//llama ala funcien rotunlo y le envia e switch (e){//segun nel numero de errores selecciona un caso case 1:cabeza();break;//llama a la funcion que dibuja la cabeza case 2:cuerpo();break;//llama a la funcion que dibuja el cuerpo case 3:made();break;//llama a la funcion que dibuja la mano derecha case 4:maiz();break;//llama a la funcion que dibuja la mano izquierda case 5:pieizq();break;//llama a la funcion que dibuja la piena izquierda case 6:pieder();break;//llama a la funcion que dibuja la piena derecha } }while(contador<longitud && e<6); if(e==6){//entra si ninguna de las letras corresponden ala palabra o se cometieron 6 errores gotoxy(4,32);printf ("Lo siento, Usted ha perdido. \n Presione una tecla para ver la respuesta correcta"); getch();gotoxy(4,30); for(j=0; j<longitud; j++){ printf (" %c ", palabras[j]);//imprime la palabra } } if(contador==longitud){//entra si todas las letras ingresadas corresponden a la palabra o se cometieron menos de 6 errores if(e==0){//si no se cometio ningun error gotoxy(4,32);printf ("Felicidades, Usted ha ganado sin cometer ningun error"); } else{//si se cometirooon pocos errores gotoxy(4,32);printf ("Felicidades, Usted ha ganado, con %d intentos fallidos", e); } } fflush(stdin); gotoxy(4,35);printf ("Precione S para continuar la misma categoria.... "); scanf("%s",&res);fflush(stdin); }while(res=='S' || res=='s');//si el caracter ingresado es S repite el juego gotoxy(4,37);printf ("Precione N para cambiar de categoria.... "); scanf("%s",&res1); if(res1!='N' || res1!='n'){// si el caracter ingresado es N cambia de categoria menu(); } else{ printf("\n Gracias por usar nuestro programa......"); } } /*funcion que muestra el rotulo en donde menciona el numero de oportunidades que quedan*/ void rotulo(int e){ int f=0; f=6-e; gotoxy (40,3); printf(" _____________________________"); gotoxy (40,4); printf("| |"); gotoxy (40,5); printf("| Usted tiene %d |",f); gotoxy (40,6); printf("| Oportunidades |"); gotoxy (40,7); printf("|_____________________________|"); } //Funcion que imprime la mano derecha void made( void){ int j; for(j=0;j<3;j++){ gotoxy(19-j,10+j); printf("*"); } } //Funcion que imprime la mano izquierda void maiz(void){ int i; for(i=0;i<3;i++) { gotoxy(23-i,12-i); printf("*"); } } // funcion que imprime el cuerpo void cuerpo(){ int i; for(i=0;i<9;i++) { gotoxy(20,9+i); printf("*"); } } //funcion que imprime la horca void base(){ int x,y; system("mode 80"); for(x=2;x<=27;x++){ gotoxy(10,x);printf("*"); } for(y=11;y<=20;y++){ gotoxy(y,2);printf("*"); } for(y=5;y<=15;y++){ gotoxy(y,28);printf("*"); } gotoxy(20,3);printf("*"); gotoxy(20,4);printf("*"); } //Funcion que imprime la pierna izquierda void pieizq(void){ int i; for(i=0;i<3;i++) { gotoxy(21+i,18+i); printf("*"); } } //Funcion que imprime la pierna derecha void pieder(void){ int i; for(i=0;i<3;i++) { gotoxy(19-i,18+i); printf("*"); } } //Funcion que imprime la cabeza void cabeza(){ int i,j; for(i=0;i<5;i++){ gotoxy(18+i,4); printf("*"); gotoxy(18+i,8); printf("*"); } gotoxy(19,5); //////////////////// for(j=0;j<3;j++){ gotoxy(18,5+j); printf("*"); gotoxy(22,5+j); printf("*"); } } // funcio goto x y void gotoxy(short x, short y) { HANDLE hConsoleOutput; COORD Cursor_Pos = {x, y}; hConsoleOutput = GetStdHandle(STD_OUTPUT_HANDLE); SetConsoleCursorPosition(hConsoleOutput, Cursor_Pos); }puedes descargar el proyecto desde aquí.
Etiquetas:
ahorcado
,
c
,
juego
,
programacion I
lunes, 15 de julio de 2013
Agenda Electrónica con árbol AVL en C++
Hola amig@s en esta vez les traigo como hacer una agenda electrónica implementando un árbol AVL las opciones de la agenda son agregar un nuevo contacto, buscar, eliminar, mostrar, mostrar el numero de contactos y salir.
puedes descargar el proyecto desde aquí.
Capturas:
Codigo:
ArbolAVL.cpp
#include#include #include #include #include "ArbolAVL.h" using namespace std; int main() { arbol A; tarbol b; char nombre[50]; char telefono[10]; char direccion[50]; char email[50]; char op; int t; do{ fflush(stdin); system("cls"); cout<<"\tMenu\n\n"; cout<<"\t1- Agregar\n"; cout<<"\t2- Buscar\n"; cout<<"\t3- Eliminar\n"; cout<<"\t4- Mostrar\n"; cout<<"\t5- Estadistica\n"; cout<<"\t6- Salir\n\n"; cout<<"Ingrese la opcion: "; cin>>op; fflush(stdin); switch(op) { case '1': { fflush(stdin); system("cls"); cout<<"\nIngrese Nombre: "; gets(nombre); fflush(stdin); do{ cout<<"\nIngrese Telefono 0000-0000: "; gets(telefono); fflush(stdin); t=strlen(telefono); }while(t!=9); cout<<"\nIngrese Direccion: "; gets(direccion); fflush(stdin); cout<<"\nIngrese Email: "; gets(email); fflush(stdin); A.insertar(A.miarbolito,nombre,telefono,direccion,email); break; } case '2':{ fflush(stdin); system("cls"); cout<<"\nNombre: "; gets(nombre); fflush(stdin); b=A.buscar(A.miarbolito,nombre); if(b!=NULL) { fflush(stdin); system("cls"); cout<<"\nContacto encontrado:"; cout<<"\n\nNombre: "< nombre; cout<<"\nTelefono: "< telefono; cout<<"\nEmail: "< email; cout<<"\nDireccion: "< direccion; system("pause"); } break; } case '3':{ system("cls");fflush(stdin); cout<<"\nNombre: "; gets(nombre); fflush(stdin); A.borrar(A.miarbolito,nombre); system("pause"); break; } case '4':{ system("cls"); cout<<"\n\n"; A.IDN(A.miarbolito);system("pause"); break; } case '5':{ system("cls"); A.pe=0; cout<<"\nNumero de contactos: "<nombre)<0 data-blogger-escaped-aux-="" data-blogger-escaped-insertar="">Izdo,nom,tel,dir,em); } else { if(strcmpi(nom,aux->nombre)>0) { insertar(aux->Dcho,nom,tel,dir,em); } } } } tarbol arbol::buscar(tarbol aux,char nom[50]) { if (aux==NULL) { return NULL; } else { if (strcmpi(nom,aux->nombre)==0) { return aux; } else { if (strcmpi(nom,aux->nombre)<0 data-blogger-escaped-aux-="" data-blogger-escaped-buscar="" data-blogger-escaped-return="">Izdo, nom); } else { return buscar(aux->Dcho, nom); } } } } void arbol::borrar(tarbol &aux,char nom[50]) { if (aux==NULL) { cout<<"contacto no encontrado no encontrado !!\n\n"; } else {if (strcmpi(nom,aux->nombre)<0 data-blogger-escaped-aux-="" data-blogger-escaped-borrar="">Izdo, nom); } else { if (strcmpi(nom,aux->nombre)>0) { borrar(aux->Dcho,nom); } else { tarbol temp=aux; if (aux->Izdo== NULL) { aux = aux->Dcho; } else { if (aux->Dcho == NULL) { aux = aux->Izdo; } else { actualizar(temp,temp->Izdo); } delete temp; } } } } } void arbol::actualizar(tarbol &temp, tarbol &aux) { if(aux->Dcho!=NULL) { actualizar(temp,aux->Dcho);} else { strcpy(temp->nombre,aux->nombre); strcpy(temp->telefono,aux->telefono); strcpy(temp->email,aux->email); strcpy(temp->direccion,aux->direccion); temp=aux; aux=temp->Izdo; } } void arbol::IDN( tarbol aux) { if(aux!=NULL) { IDN(aux->Izdo); if(strcmpi(aux->nombre,"M")!=0) { cout<<"Nombre: "<< aux->nombre<<" "< telefono<<" "< email<<" "< direccion<<" "< Dcho); } } int arbol::Peso( tarbol aux) { if(aux!=NULL) { pe++; Peso(aux->Izdo); Peso(aux->Dcho); return pe; } else { return -1; } } int arbol::maximo(int a, int b) { if(a > b) return a; else return b; } int arbol::altura(tarbol &aux) { if(aux) return aux->eq; else return -1; } void arbol::balance (tarbol &aux, char nom[50]) { if (aux) { if (strcmpi(nom,(aux)->nombre)>0) {balance(aux->Dcho,nom); } else {if (strcmpi(nom,(aux)->nombre)<0 data-blogger-escaped-aux-="" data-blogger-escaped-balance="">Dcho,nom); } } int fe=altura(aux->Dcho)-altura(aux->Izdo); switch (fe) { case -2: { if (altura(aux->Izdo->Izdo) > altura(aux->Izdo->Dcho)) RII(aux); else RID(aux); break; } case 2: { if (altura(aux->Dcho->Dcho) > altura(aux->Dcho->Izdo)) RDD(aux); else RDI(aux); break; } default: aux->eq = maximo(altura(aux->Izdo),altura(aux->Dcho)) +1; } } } void arbol::RII(tarbol &aux){ tarbol n1=aux->Izdo; aux->Izdo=n1->Dcho; n1->Dcho=aux; aux=n1; n1 = aux->Dcho; if(n1) n1->eq = maximo(altura(n1->Izdo),altura(n1->Dcho))+1; aux->eq = maximo(altura(aux->Izdo),altura(aux->Dcho))+1; } void arbol::RDD(tarbol &aux){ tarbol temp; temp=aux->Dcho; aux->Dcho=temp->Izdo; temp->Izdo=aux; aux=temp; temp = aux->Izdo; if(temp) temp->eq = maximo(altura(temp->Izdo),altura(temp->Dcho))+1; aux->eq = maximo(altura(aux->Izdo),altura(aux->Dcho))+1; } void arbol::RID(tarbol &aux){ RDD(aux->Izdo); RII(aux); } void arbol::RDI(tarbol &aux){ RII(aux->Dcho); RDD(aux); }
ArbolAVL.h
#includeclass nodo{ public: char nombre[50]; char telefono[10]; char direccion[50]; char email[50]; int eq; nodo *Izdo, *Dcho; nodo(char nom[50],char tel[10],char dir[50],char em[50], nodo *Iz=NULL, nodo *Dr=NULL,int t=0){ strcpy(nombre,nom); strcpy(telefono,tel); strcpy(direccion,dir); strcpy(email,em); eq=t; Izdo=Iz; Dcho=Dr; } class arbol; }; typedef nodo *tarbol; class arbol{ public: tarbol miarbolito; int pe; int a; arbol(){ miarbolito=NULL; pe=0; a=0; } void insertar(tarbol &aux,char nom[50],char tel[10],char dir[50],char em[50]); tarbol buscar(tarbol aux,char nom[50]); void borrar(tarbol &aux,char nom[50]); void actualizar(tarbol &temp, tarbol &aux); void balance(tarbol &aux, char nom[50]); int maximo(int a, int b); void IDN(tarbol aux); void RDD(tarbol &aux); void RDI(tarbol &aux); void RID(tarbol &aux); void RII(tarbol &aux); int Peso(tarbol aux); int altura(tarbol &aux); };
puedes descargar el proyecto desde aquí.
Etiquetas:
agenda
,
arboles AVL
,
C++
,
estructura de datos
Mostrar asteriscos como contraseña en C
Hola amig@s ahora les mostrare como ocultar con asteriscos una letra o un carácter cuando lo se escriba omite los espacios asi como si presionamos retroceso elimina un asterisco.
Captura:
Código:
puedes descargar el proyecto desde aquí.
Código:
#include#include #include #include int main(int argc, char *argv[]){ char codigo[20]; int i=0; printf("Contraseña: "); while(codigo[i]!=13){ //Capturamos carácter codigo[i]=getch(); //Si es un carácter válido y no se ha sobrepasado el límite de 20 caracteres se imprime un asterisco if(codigo[i]>32 && i<20) { putchar('*'); i++; } //Si se pulsa la tecla RETROCESO, se retrocede un carácter, se imprime un espacio para eliminar el asterisco y se vuelve a retroceder para que el siguiente asterisco se coloque a continuación del anterior. else if(codigo[i]==8 && i>0){ putchar(8); putchar(' '); putchar(8); i--; } } printf("\n\n"); system("PAUSE"); return 0; }
puedes descargar el proyecto desde aquí.
Agenda Electronica con Arboles ABB en C++
Esta vez les traigo una agenda electronica implemetando arboles ABB, las funciones de la agenda son: agregar un nuevo contacto, buscar, eliminar, mostrar todos los contactos y mostrar el numero de contactos dentro de la agenda.
Capturas:
Codigo:
Agenda.cpp
Agenda.h
descarga todo el proyecto desde aqui.
Capturas:
Codigo:
Agenda.cpp
#include#include #include "agenda.h" using namespace std; int main() { arbol A; Tarbol b; char nombre[30]; char telefono[10]; char direccion[30]; char Email[40]; int op; A.insertar(A.miarbol,"m"," 1"," 1"," 1"); cout< >op; switch(op) { case 1: {fflush(stdin); system("cls"); //agregar cout< nombre< telefono< Email< direccion< nombre)<0){ insertar(aux->Izdo,nom,tel,dir,e); }else if(strcmpi(nom,aux->nombre)>0 ){ insertar(aux->Dcho,nom,tel,dir,e);} } } Tarbol arbol::buscar(Tarbol aux,char nom[30]) { if (aux==NULL){ return NULL;} else {if (strcmpi(nom,aux->nombre)==0){ return aux;} else { if (strcmpi(nom,aux->nombre)<0){ return buscar(aux->Izdo, nom);} else{ return buscar(aux->Dcho, nom);}} } } void arbol::borrar( Tarbol &aux,char nom[30]) { if (aux==NULL){ cout<<"contacto no encontrado no encontrado !!";} else {if (strcmpi(nom,aux->nombre)<0){ borrar(aux->Izdo, nom);} else {if (strcmpi(nom,aux->nombre)>0){ borrar(aux->Dcho,nom);} else{ Tarbol temp=aux; if (aux->Izdo== NULL){ aux = aux->Dcho; }else {if (aux->Dcho == NULL){ aux = aux->Izdo;} else {reemplazar(temp,temp->Izdo);} delete temp; } } } } } void arbol::reemplazar(Tarbol &temp, Tarbol &aux) { if(aux->Dcho!=NULL){ reemplazar(temp,aux->Dcho);} else{ strcpy(temp->nombre,aux->nombre); strcpy(temp->telefono,aux->telefono); strcpy(temp->Email,aux->Email); strcpy(temp->direccion,aux->direccion); temp=aux; aux=temp->Izdo; } } void arbol::Inorden( Tarbol aux){//muestra de la A-Z if(aux!=NULL){ Inorden(aux->Izdo); //recorre el subárbol Izquierdo if(strcmpi(aux->nombre,"m")!=0){ cout<<"--NOMBRE: "<< aux->nombre<<" "< telefono<<" "< Email<<" "< direccion<<" "< Dcho); //recorre el subárbol Derecho } } int arbol::Peso( Tarbol aux)//muestra el numero de contactos { if(aux!=NULL){ p++; Peso(aux->Izdo); //recorre el subárbol Izquierdo Peso(aux->Dcho); return p; }else { return -1;} }
Agenda.h
#includeclass nodo{ public: char nombre[30]; char telefono[10]; char direccion[30]; char Email[40]; nodo *Izdo, *Dcho; nodo(char nom[30],char tel[10],char dir[30],char e[40], nodo *Iz=NULL, nodo *Dr=NULL){ strcpy(nombre,nom); strcpy(telefono,tel); strcpy(direccion,dir); strcpy(Email,e); Izdo=Iz; Dcho=Dr; } class arbol; }; typedef nodo *Tarbol; class arbol{ public: Tarbol miarbol; int p; int a; arbol(){ miarbol=NULL; p=0; a=0; } void insertar(Tarbol &aux,char nom[30],char tel[10],char dir[30],char e[40]); Tarbol buscar(Tarbol aux,char nom[30]); void borrar(Tarbol &aux,char nom[30]); void reemplazar(Tarbol &temp, Tarbol &aux); void Inorden(Tarbol aux); int arbol::Peso(Tarbol aux); };
descarga todo el proyecto desde aqui.
Etiquetas:
agenda
,
arboles ABB
,
C++
,
estructura de datos
Juego del Adivinador en C
Hola amig@s esta vez les traigo un juego escrito en C, este juego como su nombre lo dice consiste en adivinar en una matriz de 10x10 una serie de figuras sin tener que encontrar el chacal si encontramos dicha figura el juego terminara.
Capturas:
Capturas:
Codigo:
#include#include #include #include int menu(); void ocultar(); int aleatorio(); int ingresar(); int main() { int w=2; while(w!=0) { w=menu(); switch(w) { case 1:{ocultar();}break; } } } void gotoxy(int xpos, int ypos)//Funcion de Posicionamiento { COORD scrn; HANDLE hOuput = GetStdHandle(STD_OUTPUT_HANDLE); scrn.X = xpos; scrn.Y = ypos; SetConsoleCursorPosition(hOuput,scrn); } int menu() { int q,i; do{ system("cls"); system("color F1"); gotoxy(11,8); for(i=9;i<25;i++) { printf("%c",177); } gotoxy(11,13); for(i=9;i<25;i++) { printf("%c",177); } gotoxy(11,15); printf("ingrese un numero:"); gotoxy(10,10); printf("\t1.jugar\n\ \t0.salir\n"); gotoxy(11,16); scanf("%d",&q); fflush(stdin); }while(q<0&&q>2); return q; } void ocultar() { int i,j,aciertos=0,errores=0,x1,y1; char ran,z[10][10]; char oculta[10][10]={{219,219,219,219,219,219,219,219,219,219}, {219,219,219,219,219,219,219,219,219,219}, {219,219,219,219,219,219,219,219,219,219}, {219,219,219,219,219,219,219,219,219,219}, {219,219,219,219,219,219,219,219,219,219}, {219,219,219,219,219,219,219,219,219,219}, {219,219,219,219,219,219,219,219,219,219}, {219,219,219,219,219,219,219,219,219,219}, {219,219,219,219,219,219,219,219,219,219}, {219,219,219,219,219,219,219,219,219,219},}; for(i=0;i<10;i++) { for(j=0;j<10;j++) { z[i][j]=aleatorio(); } } do{ ran=rand()%(1-31)+1; }while(ran==7||ran==8||ran==9||ran==10||ran==13); while(aciertos<100) { system("cls"); system("color F1"); printf("\ndebe en contrar a:%c Y procure no encontrar el chacal:%c\n\n",ran,2); printf("\t 0 1 2 3 4 5 6 7 8 9\n\n"); for(i=0;i<10;i++) { printf("\t%d ",i); for(j=0;j<10;j++) { printf("%c ",oculta[i][j]); } printf("\n\n"); } x1=ingresar(); y1=ingresar(); for(i=0;i<10;i++) { for(j=0;j<10;j++) { if(z[i][j]==z[x1][y1]) { oculta[i][j]=z[x1][y1]; aciertos++; } } printf("\n"); } if(oculta[x1][y1]==ran) { system("cls"); system("color F0"); printf("\n\n!!!!!!BIEN HECHO EN CONTRO A EL: %c !!!!!\n\n\n",ran); printf("\t 0 1 2 3 4 5 6 7 8 9\n\n"); for(i=0;i<10;i++) { printf("\t%d ",i); for(j=0;j<10;j++) { printf("%c ",z[i][j]); } printf("\n\n"); } aciertos=aciertos+100; } else { if(oculta[x1][y1]==2) { system("cls"); system("color 0F"); printf("\n!!!!PERDIO!!!\n"); printf("ENCONTRO EL CHACAL..... %c\n\n\n",2); printf("\t 0 1 2 3 4 5 6 7 8 9\n\n"); for(i=0;i<10;i++) { printf("\t%d ",i); for(j=0;j<10;j++) { printf("%c ",z[i][j]); } printf("\n\n"); } aciertos=aciertos+100; } } } system("pause"); } int ingresar() { int q=10; do{ printf("ingrese la coordenada: "); scanf("%d",&q); fflush(stdin); }while(q<0||q>9); return q; } int aleatorio() { char i; do{ i=rand()%(1-31)+1; }while(i==7||i==8||i==9||i==10||i==13); return i; }
descarga el codigo fuente desde aqui.
domingo, 14 de julio de 2013
Grafica de Seno y Coseno con TAD en C++
Bueno amig@s ahora les traigo un programa que muestra la grafica del seno y coseno
Enunciado:
Cree un TAD que permita dibujar la gráfica del coseno y seno mediante coordenadas x,y (la gráfica puede ser dibujada por *ó .) y además que pueda imprimir las coordenadas x,y de cada punto.
Captura:
Codigo:
Graficando.cpp:
#includeGraficas TAD.h:#include #include #include #include #include"time.h" #include #include using namespace std; #include"Graficas TAD.h" void graficar(); int main(){ system("mode 100"); graficar(); return 0; } void graficar(){ coordenadas co; int x=2, c_y; double y=0; for(float i=0; i<=360; i+=5){ c_y=co.coor_y_sin(i); coordenadas coo(x, c_y); coo.imprimir(); x++; } getch(); }
#includedescarga el codigo fuente de aqui#include #include #include #include #include"time.h" #include using namespace std; const double PI=3.141516; class coordenadas{ private: int x; double y; int c; public: coordenadas() { x=0; y=0; c=0; } coordenadas(int a,int b) { x=a; c=b; } float coor_y_sin(float i); float coor_y_cos(float i); void imprimir(); }; float coordenadas::coor_y_sin(float i y=ceil(cos(i/180*PI)*20)/2; return y; } void coordenadas::imprimir(){ HANDLE stdOutput; COORD pos; stdOutput = GetStdHandle(STD_OUTPUT_HANDLE); pos.X =x; pos.Y = 12-c; SetConsoleCursorPosition(stdOutput, pos); cout<<"."<<" ("<<x<<12-c<<")"; }
Conversor de Sistemas Numericos Recursivo en C++
Bueno amig@s ahora les traigo un conversor de sistemas numericos hasta la base 32 de manera recursiva aunque el codigo es algo extenso cumple su funcion.
Captura:
Captura:
Puedes descargar todo el proyecto en visual studio 2010 express aqui
sábado, 13 de julio de 2013
Mini Paint en Java
Mini Paint en Java
Hola amigos hoy les enseñare como programar un mini Paint basico en java utilizando Netbeans 7.2.1 hasta el momento puede hacer lineas circulos, elipses, cuadros, rectangulos tambien cuenta con una opcion de trazo libre
Pasos:
Creamos nuestro proyecto
Ahora extendemos nuestra clase Paint con JFrame
y declaramos las siguientes variables
Creamos el constructor de nuestra clase e inicializamos nuestras variables
Hola amigos hoy les enseñare como programar un mini Paint basico en java utilizando Netbeans 7.2.1 hasta el momento puede hacer lineas circulos, elipses, cuadros, rectangulos tambien cuenta con una opcion de trazo libre
Pasos:
Creamos nuestro proyecto
y declaramos las siguientes variables
hasta ahora solo hemos inicializado nuestra variables ahora crearemos una nueva clase llamada Lienzo y para que utilizaremos esta clase pues dicha clase sera la encargada de mostrar lo que estemos dibujando a su vez sera quien escuchara las acciones de nuestro mouse para ello extenderemos nuestra clase Lienzo con la clase Canvas e implementaremos MouseListener, MouseMotionListener.
Ahora crearemos nuestro constructor el cual recibirá como parámetro el objeto Paint
E implementamos los siguientes métodos los cuales se encargan de manejar las distintas acciones del mouse y los ultimos 3 métodos son paint() seria nuestra funcion que dibujaria los distintos trazos en nuestro lienzo, update() actualizaria nuestros trazos sin borrar los anteriores y por ultimo nuevoColor() tomaria el nuevo color a utilizar
Ahora crearemos 4 nuevas clases las cuales estaran encargadas de manejar las acciones de algunos componentes como los radiobuttons, el boton limpiar y los slider estos ultimos se utilizaran en las opciones de circulo-elipse o cuadro-rectagulo dependiendo de los valores que les demos asi seran las formas a mostrar
Clase ManejadorBotonLimpiar
Clase ManejadorRadioButton
Clase SelectorAlto
Clase SelectorAncho
Si logran apreciar las clases de SelectorAlto y SelectorAncho son iguales la unica diferencia es la variable ancho y alto respectivamente nos vamos a nuestra clase Lienzo y añadimos las acciones correspondientes dentro del constructor de esta manera.
Ahora lo que falta es terminar de darle las respectivas acciones a los elementos de la clase Paint y dentro de nuestro constructor
Acciones a los radioButtons solo añadimos:
rbColores[i].addActionListener(new ManejadorRadioButton(this)); de esta manera:
Accion del boton dibujar
Accion del boton cambiar color al presionar dicho boton se mostrara un JColorShooser (un seleccionador de color)
Accion del comboBox
Accion del boton Salir
al final de nuestro constructor colocamos lo siguiente
La primera linea hace que nuestra ventana se muestre de forma expandida.
Segunda es para establecer la decoracion.
Tercera linea definimos que estilo queremos para nuestra venana.
Cuarta linea definimos la accion del boton cerrar de nuestra ventana.
Quinta linea establecemos que no se pueda cambiar el tamaño de nuestra ventana.
Puedes descargar todo el proyecto desde aqui.
Suscribirse a:
Entradas
(
Atom
)