trabajo tres

Upload: paromarye1

Post on 10-Jan-2016

212 views

Category:

Documents


0 download

DESCRIPTION

Trabajo

TRANSCRIPT

Trabajo Numero 3:

Trabajo Numero 3:Mantenimiento y uso de vectores:

Elaborar un programa que permita la administracion de un arreglo unidimensional,. Que conste de metodos de insercin de elemento por valor y por posicin, eliminacin de elemento por posicion o valor y el ordenamiento del arreglo.Codigo:

FRAME:package cciiitrabajo03;

import javax.swing.*;

public class Frame extends JFrame {

// Metodo constructor

Frame(JPanel panel){

super("Mantenimiento de Vectores");

this.setContentPane(panel);

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

this.setResizable(false);

this.setBounds(0,0,650,500);

this.setVisible(true);

}

}

MAIN:package cciiitrabajo03;

public class Main {

public static void main(String[] args) {

Panel panel = new Panel();

Frame frame = new Frame(panel);

}

}PANEL:package cciiitrabajo03;

import java.awt.Color;

import java.awt.Font;

import java.awt.event.*;

import javax.swing.*;

public class Panel extends JPanel implements ActionListener {

JLabel lblArreglo;

JButton[] btn = new JButton[10];

JTextArea txtS;

JScrollPane scpScroll;

int amplitud;

int n[];

int indice = 0;

Panel() {

this.setLayout(null);

lblArreglo = new JLabel("Arreglos Lineales", JLabel.CENTER);

lblArreglo.setForeground(Color.blue);

lblArreglo.setFont(new Font("dialog", 3, 24));

lblArreglo.setBounds(20, 20, 300, 40);

add(lblArreglo);

for (int i = 0; i < 10; i++) {

btn[i] = new JButton("");

btn[i] = new JButton(etiqueta(i));

btn[i].addActionListener(this);

btn[i].setBounds(320, (23 * i) + 100, 300, 23);

this.add(btn[i]);

}

btn[6].setVisible(false);

txtS = new JTextArea();

scpScroll = new JScrollPane(txtS);

scpScroll.setBounds(10, 80, 300, 298);

add(scpScroll);

}

// Procesa eventos de tipo ActionEvent

public void actionPerformed(ActionEvent e) {

for (int i = 0; i < btn.length; i++) {

if (e.getSource() == btn[i]) {

botonPulsado(i);

}

}

}

// Mtodos que retornan valor (con parmetros)

String etiqueta(int i) {

switch (i) {

case 0:

return "Ingresar el arreglo";

case 1:

return "Eliminar por indice";

case 2:

return "Eliminar por valor";

case 3:

return "Ingresar por posicion";

case 4:

return "Ingresar por valor";

case 5:

return "Obtener Elemento";

case 7:

return "Ordenar Ascendente";

case 8:

return "Listar";

case 9:

return "Limpiar";

}

return "";

}

// Mtodos tipo void (con parmetros)

void botonPulsado(int i) {

switch (i) {

case 0:

leerArreglo();

break;

case 1:

eliminacion(leerDato("Ingresar Posicion a eliminar"));

break;

case 2:

eliminacionPorValor(leerDato("Ingresar Valor a eliminar"));

break;

case 3:

insercion(leerDato("Ingresar posicion"), leerDato("Ingresar Valor"));

break;

case 4:

insercionPorValor(leerDato("Ingresar Valor a agreagar"));

break;

case 5:

obtener(leerDato("Ingresar indice"));

break;

case 7:

ordenarEnAscenso();

break;

case 8:

listar();

break;

case 9:

limpiar();

break;

}

}

void leerArreglo() {

limpiar();

amplitud = leerDato("Ingresar tamao del Arreglo");

n = new int[amplitud];

for (int i = 0; i < amplitud; i++) {

n[i] = leerDato("Ingresar elemento n["+i+"]");

}

indice = n.length;

listar();

}

void eliminacion(int pos) {

for (int i = pos; i < indice - 1; i++) {

n[i] = n[i + 1];

}

indice--;

reducirArreglo();

listar();

}

void eliminacionPorValor(int valor) {

ordenarEnAscenso();

int c = 0;

int pos = 0;

for (int i = 0; i < indice; i++) {

if (n[i] == valor) {

pos = i;

break;

}

}

for (int i = 0; i < indice; i++) {

if (n[i] == valor) {

c++;

}

}

if (c == 0) {

JOptionPane.showMessageDialog(this, " No existe elemento " + valor);

} else {

for (int i = 0; i < c; i++) {

eliminacion(pos);

}

}

}

void insercion(int pos, int num) {

ampliarArreglo();

for (int i = indice; i > pos; i--) {

n[i] = n[i - 1];

}

n[pos] = num;

indice++;

listar();

}

void insercionPorValor(int valor) {

ordenarEnAscenso();

int pos = 0;

for (int i = 0; i < indice; i++) {

if (valor >= n[i]) {

pos = i + 1;

}

}

insercion(pos, valor);

}

void obtener(int pos) {

limpiar();

txtS.setText("n[" + pos + "] = " + n[pos]);

}

// Metodos Auxiliares

void ampliarArreglo() {

int aux[] = n;

n = new int[indice + 1];

for (int i = 0; i < indice; i++) {

n[i] = aux[i];

}

}

void reducirArreglo() {

int aux[] = n;

n = new int[indice];

for (int i = 0; i < indice; i++) {

n[i] = aux[i];

}

}

int leerDato(String mensaje) {

int dato = 0;

dato = Integer.parseInt(JOptionPane.showInputDialog(mensaje));

return dato;

}

void listar() {

limpiar();

for (int i = 0; i < indice; i++) {

imprimir("n[ " + i + " ] = " + n[i]);

}

}

void limpiar() {

txtS.setText("");

}

void imprimir(String cadena) {

txtS.append(cadena + "\n");

}

int aleatorio(int min, int max) {

return (int) ((max - min + 1) * Math.random()) + min;

}

void ordenarEnAscenso() {

int i, j, aux;

for (i = 0; i < indice - 1; i++) {

for (j = i + 1; j < indice; j++) {

if (n[i] > n[j]) {

aux = n[i];

n[i] = n[j];

n[j] = aux;

}

}

}

listar();

}

}RESULTADOS:

Llenado:

Ordenamiento:

Eliminacion por valor: