domingo, 21 de noviembre de 2010

Lenguajes orientados a objetos Reporte

C++
En este lenguaje cree una clase a la que llamé Áreas y esta contiene varios métodos para obtener las áreas de un cuadrado, rectángulo, circulo y triángulo. Todos los métodos y atributos los declaré público. La manera de definir los métodos se hace con el nombreclase::nombremetodos la forma de llamarlos es escribiendo simplemente el nombre del método.

#include <iostream>

using std::cout;
using std::endl;
using std::cin;

// Esto crea la clase Areas
class Areas {
public:
float resultado;
void triangulos(float largo, float ancho);
void cuadrado(float lados);
void circulo(float radio);
void rectangulo(float largo, float ancho);
};


/* implementar trangulos() */
void Areas :: triangulos(float x, float y)
{
resultado = (x * y)/2;
cout << "El area del triangulo es:" << endl;
cout << resultado << endl;
return;
}


/* implementar cuadrado() */
void Areas :: cuadrado(float lados)
{
resultado = lados * lados;
cout << "El area del cuadrado es:" << endl;
cout << resultado << endl;
return;
}

void Areas :: rectangulo(float x, float y)
{
resultado = x * y;
cout << "El area del rectangulo es:" << endl;
cout << resultado << endl;
return;
}

void Areas :: circulo(float radio)
{
resultado = 3.1416 * radio * radio;
cout << "El area del circulo es:" << endl;
cout << resultado << endl;
return;
}


int main (int argc, char** args)
{
// crear 2 objetos CRender
Areas area1;
int opcion;
float lados, x, y, radio;
cout << "Elige una opción" << endl;
cout << "1.-Area cuadrado" << endl;
cout << "2.-Area circulo" << endl;
cout << "3.-Area triangulo" << endl;
cout << "4.-Area rectangulo" << endl;
cin >> opcion;

switch (opcion)
{
case 1: cout << "Cual es el lado del cuadrado" << endl;
cin >> lados;
area1.cuadrado(lados);
break;
case 2: cout << "Cual es el radio del circulo" << endl;
cin >> radio;
area1.circulo(radio);
break;
case 3: cout << "Cual es la base del triangulo" << endl;
cin >> x;
cout << "Cual es la altura del triangulo" << endl;
cin >> y;
area1.triangulos(x, y);
break;
case 4: cout << "Cual es la base del rectangulo" << endl;
cin >> x;
cout << "Cual es la altura del rectangulo"<< endl;
cin >> y;
area1.rectangulo(x, y);
break;

default: cout << "Elija una opcion entre 1 y 4";
}

return (0);
}


Ejecución


Python
En python cree una ventanita con un botón y una programa parecido al que hicimos en clase, tiene una clase a la que llamé Ciudad, esta clase tiene nombre de ciudad y numero de habitantes, hicé uso de self.
Ventanita:


#!/usr/bin/env python
import pygtk
pygtk.require("2.0")
import gtk

class VentanaBoton:

def __init__(self):
self.window=gtk.Window(gtk.WINDOW_TOPLEVEL)
self.window.set_border_width(50)
self.button = gtk.Button("Botoncito")
self.window.add(self.button)
self.button.show()
self.window.show()



def main(self):
gtk.main()

if __name__ == "__main__":
ventanita = VentanaBoton()
ventanita.main()

Ejecución:


Y programa con la clase ciudad:

#!/usr/bin/env python
class Ciudad:
def __init__(self, nombre, numhabitantes):
# Asignamos valores a los atributos
self.nombrec = nombre
self.habitantes = numhabitantes
def getNombre(self):
return self.nombrec

def getNumeroHabitantes(self):
return self.habitantes


def main():
ciudad1 = Ciudad("NY", 100000)
ciudad2 = Ciudad("PARIS", 400000)


print ciudad1.getNombre()
print ciudad1.getNumeroHabitantes()
print ciudad2.getNombre()
print ciudad2.getNumeroHabitantes()

main()

Ejecución:


Y en java
Este lenguaje en su caracteristica de orientado a objetos ya lo conocía, no como python y C++ que son totalmente nuevos para mí, sin embargo si tuvé que volver a leer sobre algunas funciones que ya no recordaba exactamente que hacian, bueno el primer programita que hice en java es una ventana que tiene dos botones:


import javax.swing.*;
import java.awt.*;
class Programita extends JFrame {
JButton uno = new JButton("Primero");
JButton dos = new JButton("Anterior");

Programita(){
//Añadimos el formato de FlowLayout al JFrame
this.setLayout(new FlowLayout());
//Añadimos componentes
add(uno);
add(dos);
setTitle("Ejemplos simple java");
setSize(200,200);
setVisible(true);
}

public static void main (String []args){
new Programita();
}

}


Ejecución:


Y uno más que detecta el movimiento del ratón en la ventana y escribe en el terminal las coordenadas.


// componentes GUI
import javax.swing.*;
import java.awt.*;


// eventos
import java.awt.event.*;


public class Prueba extends JPanel // es un panel (para dibujo)
implements MouseListener, // escucha eventos de raton
MouseMotionListener, // de movimiento del cursos
ActionListener { // de botones
protected double px, py;
public Prueba(){
super(); // siempre llamar primero a super si extends
super.setBackground(Color.BLACK); // color de fondo
this.addMouseListener(this); // registrar escuchadores
this.addMouseMotionListener(this);
}


public void actionPerformed(ActionEvent e){
// que fue solicitado
String cmd = e.getActionCommand();

if (cmd.equals("EXIT")) { // si quieren salir
System.exit(1); // salir del programa
}
return;
}

public void mouseClicked(MouseEvent e){

return;
}

public void mouseEntered(MouseEvent e){

return;
}

public void mouseExited(MouseEvent e){

return;
}

public void mousePressed(MouseEvent e){

return;
}

public void mouseReleased(MouseEvent e){

return;
}

public void mouseDragged(MouseEvent e){

return;
}

public void mouseMoved(MouseEvent e){
this.px = e.getX();
this.py = e.getY();
System.out.println("Movieron " + px + " , " + py);

return;
}

public static void main(String args[]){
JFrame v = new JFrame(); // ventana
v.setTitle("Mueves el mousee!!!");
v.setLocation(250, 250); // posicionar
v.setSize(500, 300); // ajustar tamano
v.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

JPanel auxi = new JPanel(); // panel auxiliar
auxi.setLayout(new BorderLayout()); // acomodo
auxi.setBackground(Color.WHITE); // debug

Prueba o = new Prueba(); // el panel principal de dibujo

// poner los botones en otros paneles auxiliares

// para salir
JButton b = new JButton("Salir");
b.addActionListener(o);
b.setActionCommand("EXIT");
JPanel p = new JPanel();
p.add(b);
auxi.add(p, BorderLayout.SOUTH);
// poner todo el contenido a la ventana
auxi.add(o, BorderLayout.CENTER);
v.setContentPane(auxi);
v.setVisible(true);
return;
} // termina main(...)


}



Ejecución:

2 comentarios:

  1. The Buffet at Harrah's Resort Southern California - Mapyro
    Explore reviews, 대전광역 출장마사지 hours, directions, and find 춘천 출장샵 the best deal 제주도 출장샵 for The Buffet at Harrah's Resort Southern California in Southern California (formerly Harrah's 경상남도 출장샵 Rincon). Rating: 3.7 당진 출장마사지 · ‎21 reviews

    ResponderEliminar