Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Temas - kikian94

#1
Java / Como paso datos entre varios jsp
22 Mayo 2015, 10:29 AM
hola, buenos dias, tengo que realizar una aplicacion para gestionar un almacen de provicncias y poblaciones:
<a href="http://imgur.com/v9ySUBS"><img src="http://i.imgur.com/v9ySUBS.png" title="source: imgur.com" /></a>
<a href="http://imgur.com/BekJHxd"><img src="http://i.imgur.com/BekJHxd.png" title="source: imgur.com" /></a>
<a href="http://imgur.com/jUepkrF"><img src="http://i.imgur.com/jUepkrF.png" title="source: imgur.com" /></a>
<a href="http://imgur.com/Sykcl38"><img src="http://i.imgur.com/Sykcl38.png" title="source: imgur.com" /></a>

de momento estoy con la pagina que muestra las provincias y poblaciones en una tabla, llevo esto:

Código (java) [Seleccionar]
<%@ page language="java" import="java.util.*"%>
<%@ page language="java" import="almacen.*"%>
<%@ page language="java" import="java.io.*"%>
<%@ page language="java" import="paa.provincias.*"%>



<html xmlns="http://www.w3.org/1999/xhtml" lang="es" xml:lang="es">
<head>
    <title>listaPoblaciones</title>
    <link rel="stylesheet" type="text/css" href="estilos.css" />
    <meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1" />

</head>
<body>
<%@ page language="java"
contentType="text/html; harset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<div id="lista">
<%
AlmacenPoblaciones almacen = null;
boolean balmacen;
almacen = new AlmacenPoblaciones();
    String path = getServletConfig().getServletContext().getRealPath("");
balmacen = almacen.recuperar(path + "\\WEB-INF\\almacen.dat");
int numProvincias = almacen.getProvincias().size();
String direccion = "http://localhost:8080/practica3/listaPoblaciones.jsp?";
if(!balmacen){
System.out.println("No se ha cargado el almacen");
}
%>

<h1>Lista de provincias almacenadas</h1>
<h2>Se han recuperado <%=numProvincias%> provincias</h2>
<h3>Pulse sobre el nombre de la provincia para ver las poblaciones</h3>
<%
Set<String> listaProvincias = almacen.getProvincias();
String provincia;
System.out.println("listaProvincias");%>
<ul>
<%for(String a : listaProvincias){%>
<li> Provincias: <a href=<%=direccion%>> <%=a%></a></li>
<%}%>
</ul>
<%
Enumeration<String> nombres = request.getParameterNames();
    if(nombres.hasMoreElements()){
provincia = nombres.nextElement();
        SortedSet<IPoblacion> listaPoblaciones = almacen.getPoblaciones(provincia);
Iterator<IPoblacion> itr = listaPoblaciones.iterator();
Poblacion poblacion;
if(itr.hasNext()){%>
<table align=\center\>
<tr><th>Provincia</th><th>Población</th><th>Habitantes</th><th>Código</th><th>Operación</th></tr>
<%for(IPoblacion s : almacen.getPoblaciones(provincia)){
poblacion = (Poblacion) s;%>
<tr><td><%=poblacion.getProvincia()%></td><td><%=poblacion.getNombre()%></td><td><%=poblacion.getHabitantes()%></td><td><%=poblacion.getCodigoAEMET()%></td><td><a href=borrar.jsp>Borrar</a></td></tr>
<%}%>

</table>
<%}else{%>
<h2>No hay poblaciones en: <%=provincia%></h2>
<%}%>
<%}%>

</div>
</body>
</html>


el problema que tengo es que no se como borrar una poblacion, en el objeto almacen esta el metodo correspondiente al que hay que pasarle la poblacion y la provincia en la que la hay que borrar pero al ser un .jsp no se como debo de hacerlo, es posible saber si se ha pinchado en un href?, habia pensado en crear otro jsp al que le pase los datos pero no se como hacerlo y si seria correcto, alguna ayuda, gracias.
#2
Java / Poner iconos en JTable
17 Abril 2015, 15:22 PM
hola, quiero hacer una tabla para mostrar predicciones meteorologicas, la cual forma parte de una aplicacion:


pero a la hora de actualizar las predicciones queda asi:


lo curioso es que en el codigo del modelo:

Código (java) [Seleccionar]
package principal;

import java.util.Iterator;

import javax.swing.table.AbstractTableModel;

import paa.provincias.IPrediccion;

public class TableModel extends AbstractTableModel{

/**
*
*/
private static final long serialVersionUID = 1L;
String columnas[] = {"Fecha", "Temp. Mínima", "Temp. Máxima", "Icono","Estado del cielo"};
Object[][] data;
public java.util.List<IPrediccion> predicciones;

public TableModel() {
data = new Object[8][5];
int k = 0;
for(int j = 0; j<5; j++){
data[0][j] = columnas[k];
k++;
for(int i=1; i<8; i++){
data[i][j] = new String("*");
}
}
}

public int getColumnCount() {
return columnas.length;
}

@Override
public int getRowCount() {
return data.length;
}

@Override
public Object getValueAt(int row, int col) {

return data[row][col];
}

public String getColumnName(int col){
return columnas[col];
}

public Class getColumnClass(int c){
return getValueAt(0,c).getClass();
}

//public boolean isCellEditable(int row,int col){}
public void setValueAt(Object value, int row, int col){
data[row][col] = value;
fireTableCellUpdated(row,col);
}

public void rellenar(java.util.List<IPrediccion> prediccion){
Iterator<IPrediccion> it;
it = prediccion.iterator();

int i = 1; // si pongo 1 salen imagenes, si pongo 0 salen string wtf?
int j;
while (it.hasNext()){
//Recorremos la lista y colocamos en las celdas de cada fila los datos de las predicciones
IPrediccion pre = it.next();
j=0;
setValueAt(pre.getFecha(), i, j);
j++;
setValueAt(pre.getTemperaturaMinima(), i, j);
j++;
setValueAt(pre.getTemperaturaMaxima(), i, j);
j++;
setValueAt(pre.getIconoEstadoCielo(), i, j);
j++;
setValueAt(pre.getEstadoCielo(), i, j);
j++;
i++;
}
}


}


y me da esto cuando pongo i a 1:


lo cual es como deberia de estar pero desplazado una fila hacia debajo, alguien sabe donde esta el error?
#3
hola, estoy diseñando una aplicacion en swing que se tiene que conectar a la AEMET y descargar los datos de las poblaciones que previamente se le han añadido, el problema que tengo es con los componentes.
En primer lugar este es el codigo:
Código (java) [Seleccionar]
package principal;
import java.awt.*;
import java.awt.event.*;

import javax.swing.Icon;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JSplitPane;
import javax.swing.JToolBar;
import javax.swing.JTree;
import javax.swing.SwingConstants;
import javax.swing.WindowConstants;
import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.tree.DefaultTreeModel;

import Poblacion.VentanaBorrarPoblacion;
import Poblacion.VentanaCrearPoblacion;
import paa.provincias.GestorAEMET;
import paa.provincias.GestorAEMETException;
import paa.provincias.IPoblacion;
import paa.provincias.IPoblacionAEMET;
import paa.provincias.IPrediccion;


/**
* Fichero: InterfazAWT_AEMET.java Clase que implementa la Interfaz Gráfica
* AEMET con awt.
*
* @author PAA
* @version 1.0
*/
public class InterfazAWT_AEMET extends JFrame {
/**
*
*/
private static final long serialVersionUID = 502635761186556414L;

private static final String FICHERO = "almacen.dat";
private AlmacenPoblaciones almacen;

// private IAlmacenPoblaciones almacenPoblaciones;
private List listaPoblaciones = new List();
private List listaPredicciones = new List();
private List listaProvincias = new List();
private InterfazAWT_AEMET gui;
private GestorAEMET gestor = new GestorAEMET();
private Aviso aviso;
/**
* Constructor.
*
* @throws GestorAEMETException
*/
public InterfazAWT_AEMET(String titulo, int ancho, int alto) {
super(titulo);
setSize(ancho, alto);
setLocationRelativeTo(null);
setLayout(new BorderLayout()); // Layout de la aplicación, podría ser otro
almacen = RecuperarAlmacenPoblaciones();
initComponents();
JFrame.setDefaultLookAndFeelDecorated(true);
}

public AlmacenPoblaciones RecuperarAlmacenPoblaciones() {
// Recuperamos el almacén
AlmacenPoblaciones almacenPoblaciones1 = new AlmacenPoblaciones();

if (almacenPoblaciones1.recuperar(FICHERO)){
Icon icono= new ImageIcon(getClass().getResource("/iconos/check.png"));
JOptionPane.showMessageDialog(null, "Recuperado el almacen del fichero " + FICHERO, "Recuperado",JOptionPane.INFORMATION_MESSAGE,icono);
}else{
JOptionPane.showMessageDialog(null, "No se ha podido recuperar el almacen del fichero" + FICHERO, "Error",JOptionPane.ERROR_MESSAGE);

}return almacenPoblaciones1;

}

private void initComponents() {

// Boton salir por defecto
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

setJMenuBar(addJMenuBar());
this.add(addJToolBar(), BorderLayout.NORTH);
this.add(addlineaEstado(), BorderLayout.SOUTH);
this.add(addPanelIzquierda(), BorderLayout.WEST);
  //Create a split pane with the two scroll panes in it.
    JSplitPane splitPane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,addPanelIzquierda(),addpredicciones());
    splitPane.setDividerLocation(150);
    splitPane.setDividerSize(10);
    splitPane.setOneTouchExpandable(true);
   
/*
    // Provide minimum sizes for the two components in the split pane
    Dimension minimumSize = new Dimension(100, 50);
    addPanelIzquierda().setMinimumSize(minimumSize);
    addpredicciones().setMinimumSize(minimumSize);

    // Set the initial location and size of the divider
   

    // Provide a preferred size for the split pane
    splitPane.setPreferredSize(new Dimension(400, 200));*/
this.add(addpredicciones(), BorderLayout.CENTER);
}

private JMenuBar addJMenuBar() {
// Sitúo los menús desplegables
JMenuBar barraDeMenu = new JMenuBar();

// Creo el menú Archivo
JMenu menuArchivo = new JMenu("Archivo");
JMenuItem crearGuardar = new JMenuItem("Guardar");
JMenuItem crearCargar = new JMenuItem("Cargar");
JMenuItem salir = new JMenuItem("Salir");
crearCargar.addActionListener(new Controller());
crearGuardar.addActionListener(new Controller());
salir.addActionListener(new Controller());
menuArchivo.add(crearCargar);
menuArchivo.add(crearGuardar);
menuArchivo.add(salir);

// Creo el menú Provincias
JMenu menuProvincias = new JMenu("Provincias");
JMenuItem crearProvincias = new JMenuItem("Crear provincia");
JMenuItem borrarProvincias = new JMenuItem("Borrar provincia");
crearProvincias.addActionListener(new Controller());
borrarProvincias.addActionListener(new Controller());
menuProvincias.add(crearProvincias);
menuProvincias.add(borrarProvincias);

// Creo el menu Poblaciones
JMenu menuPoblaciones = new JMenu("Poblaciones");
JMenuItem crearPoblacion = new JMenuItem("Crear poblacion");
JMenuItem borrarPoblacion = new JMenuItem("Borrar poblacion");
JMenuItem ordenarNombre = new JMenuItem("Ordenar por nombre");
JMenuItem ordenarHabitantes = new JMenuItem("Ordenar por habitantes");
JMenuItem modPoblacion = new JMenuItem("Modificar poblacion");
JMenuItem movPoblacion = new JMenuItem("Mover poblacion");
crearPoblacion.addActionListener(new Controller());
borrarPoblacion.addActionListener(new Controller());
ordenarNombre.addActionListener(new Controller());
ordenarHabitantes.addActionListener(new Controller());
modPoblacion.addActionListener(new Controller());
movPoblacion.addActionListener(new Controller());
menuPoblaciones.add(crearPoblacion);
menuPoblaciones.add(borrarPoblacion);
menuPoblaciones.add(ordenarNombre);
menuPoblaciones.add(ordenarHabitantes);
menuPoblaciones.add(modPoblacion);
menuPoblaciones.add(movPoblacion);

// Creo el menú de ayuda
JMenu ayuda = new JMenu("Ayuda");
JMenuItem acercaDe = new JMenuItem("Acerca de");
acercaDe.addActionListener(new AcercaDe());
ayuda.add(acercaDe);

// Crea el
barraDeMenu.add(menuArchivo);
barraDeMenu.add(menuProvincias);
barraDeMenu.add(menuPoblaciones);
barraDeMenu.add(ayuda);
return barraDeMenu;
}

private JToolBar addJToolBar() {
// Sitúo la línea de botones
JToolBar lineaDeBotones = new JToolBar();
lineaDeBotones.setBackground(new Color(200,100,100));

// Boton crear provincia
Icon Iprovincia= new ImageIcon(getClass().getResource("/iconos/provincia.png"));
JButton proCrear = new JButton("Crear provincia",Iprovincia);
proCrear.addActionListener(new Controller());

// Boton crear poblacion
Icon Ipoblacion= new ImageIcon(getClass().getResource("/iconos/poblacion.png"));
JButton poCrear = new JButton("Crear poblacion",Ipoblacion);
poCrear.addActionListener(new Controller());

// Boton actualizar prediccion
Icon actualizar= new ImageIcon(getClass().getResource("/iconos/actualizar.png"));

JButton aPrediccion = new JButton("Actualizar Predicción",actualizar);
aPrediccion.setToolTipText("Click para actualizar las predicciones");
aPrediccion.addActionListener(new Controller());

// Añadir los botones a la barra
lineaDeBotones.add(proCrear);
lineaDeBotones.add(poCrear);
lineaDeBotones.add(aPrediccion);
return lineaDeBotones;
}

private JTree addPanelIzquierda() {
// Construccion del arbol
        DefaultMutableTreeNode provinciasPrincipal = new DefaultMutableTreeNode("Provincias");
        DefaultTreeModel modelo = new DefaultTreeModel(provinciasPrincipal);
        JTree tree = new JTree(modelo);

        // Construccion de los datos del arbol
       
        for(String s : almacen.getProvincias()){
        int j = 0;
        DefaultMutableTreeNode provincia = new DefaultMutableTreeNode(s);
        modelo.insertNodeInto(provincia, provinciasPrincipal, j);
        j++;
        for(IPoblacion i : almacen.getPoblaciones(s)){
        int x = 0;
        DefaultMutableTreeNode poblacion = new DefaultMutableTreeNode(i.getNombre());
        modelo.insertNodeInto(poblacion, provincia, x);
        x++;
        }
        }
return tree;
}

private JPanel addpredicciones() {
// Creamos el panel de las predicciones
JPanel predicciones = new JPanel(new BorderLayout());
JLabel lPrediccion = new JLabel("Predicciones de :");
predicciones.add(lPrediccion, BorderLayout.NORTH);
predicciones.add(listaPredicciones, BorderLayout.CENTER);
return predicciones;
}

private JPanel addlineaEstado() {
// Sitúo la línea de estado
JPanel lineaDeEstado = new JPanel();
lineaDeEstado.setLayout(new FlowLayout(FlowLayout.LEFT));
lineaDeEstado.setBackground(new Color(0,80,80));
JLabel ventanaDeeventos = new JLabel("Gestor AEMET v2.0 (PAA)",SwingConstants.CENTER);
ventanaDeeventos.setForeground(new Color(200,200,60));
ventanaDeeventos.setHorizontalAlignment(SwingConstants.CENTER);
ventanaDeeventos.setVerticalAlignment(SwingConstants.CENTER);
lineaDeEstado.add(ventanaDeeventos);
return lineaDeEstado;
}

private void guardarAntesDeSalir() {

// Guardar almacen
almacen.guardar(FICHERO);
System.out.println("Gracias por utilizar nuestro programa");
}

class Controller implements ActionListener {

public void actionPerformed(ActionEvent e) {
String nombre = e.getActionCommand();
EvaluarAccion(nombre);

}

public void EvaluarAccion(String accion) {

switch (accion) {
case "Guardar":
almacen.guardar(FICHERO);
JOptionPane.showMessageDialog(null, "El almacen ha sido guardado", "Guardado", DISPOSE_ON_CLOSE);
break;
case "Cargar":
almacen = RecuperarAlmacenPoblaciones();
break;
case "Salir":
System.exit(0);
break;
case "Crear provincia":
String crearProvincia = JOptionPane.showInputDialog(null,"Provincia:","Nueva provincia",JOptionPane.QUESTION_MESSAGE);
if((crearProvincia != null)&&(!crearProvincia.equals(""))){
almacen.addProvincia(crearProvincia);
}else{
JOptionPane.showMessageDialog(null, "Error al crear provincia", "Error", DISPOSE_ON_CLOSE);
}

break;
case "Borrar provincia":
String borrarProvincia = JOptionPane.showInputDialog(null,"Provincia:","Eliminar provincia",JOptionPane.QUESTION_MESSAGE);
if((borrarProvincia != null)&&(!borrarProvincia.equals(""))){
almacen.delProvincia(borrarProvincia);
}else{
JOptionPane.showMessageDialog(null, "Error al borrar provincia", "Error", DISPOSE_ON_CLOSE);
}
break;
case "Crear poblacion":
break;
case "Borrar poblacion":
new VentanaBorrarPoblacion(gui,almacen,listaPoblaciones,listaProvincias,listaPredicciones).setVisible(true);
break;
case "Ordenar por nombre":
/*almacen.ordenarPor(listaProvincias.getSelectedItem(), almacen.ORDENARPORNOMBRE);
listaProvincias.removeAll();
Iterator<IPoblacion> i = almacen.getPoblaciones(listaProvincias.getSelectedItem()).iterator();
while(i.hasNext()){
i.next();
listaProvincias.add(i.next().getNombre());
}*/
break;
case "Ordenar por habitantes":
/*almacen.ordenarPor(listaProvincias.getSelectedItem(), almacen.ORDENARPORHABITANTES);
listaProvincias.removeAll();
for(IPoblacion p : almacen.getPoblaciones(listaProvincias.getSelectedItem())){
listaProvincias.add(p.getNombre());
}*/
break;
case "Modificar poblacion":
break;
case "Mover poblacion":
break;
case "Actualizar Predicción":

IPoblacion poblacion = almacen.getPoblacion(listaProvincias.getSelectedItem(), listaPoblaciones.getSelectedItem());
try {
listaPredicciones.removeAll();
for(IPrediccion p : gestor.getPredicciones((IPoblacionAEMET) poblacion)){
listaPredicciones.add(p.getFecha() + " : " + p.getEstadoCielo() + " : " +
p.getTemperaturaMaxima() + " : " + p.getTemperaturaMinima());
}
} catch (GestorAEMETException e) {
new Aviso(gui,e.getMessage());
}
break;
case "Acerca de" :
new VentanaAcercaDe(gui);
break;
}
}
}

/**
* Clase que implementa la acción del menú "acerca de".
*/
class AcercaDe implements ActionListener { // Clase interna
public void actionPerformed(ActionEvent e) {
VentanaAcercaDe ventanaAcercaDe = new VentanaAcercaDe(
InterfazAWT_AEMET.this);
ventanaAcercaDe.setVisible(true);
}
}// Acerca de

/**
* Método main.
* @throws GestorAEMETException
*/
public static void main(String[] args) throws GestorAEMETException {

InterfazAWT_AEMET mimarco = new InterfazAWT_AEMET("Gestor AEMET", 1000,
500);
mimarco.setDefaultCloseOperation(DISPOSE_ON_CLOSE);
mimarco.setVisible(true);
} // Main
}


el cual dibuja esto:




tengo el jsplitpane definido para que actue entre el jtree y el panel predicciones el cual tengo que sustituir por una jtable pero parece que no actua por que no aparece en la aplicacion.

tambien en los dialogos de la clase controller:
Código (java) [Seleccionar]
String borrarProvincia = JOptionPane.showInputDialog(null,"Provincia:","Eliminar provincia",JOptionPane.QUESTION_MESSAGE);
if((borrarProvincia != null)&&(!borrarProvincia.equals(""))){
almacen.delProvincia(borrarProvincia);
}else{
JOptionPane.showMessageDialog(null, "Error al borrar provincia", "Error", DISPOSE_ON_CLOSE);
}


quiero modificar lo que pone en los botones para que cuando se pulsa el boton añadir provincia en vez de salir los botones aceptar y cancelar, salgan crear y cancelar

tambien necesito que al pulsar en una poblacion del jtree se cargue en la tabla de la derecha los datos de las predicciones si ya hubiera pulsado el boton actualizar prediccion al menos una vez para evitar que al pulsar en cada poblacion conecte con AEMET Y utilize mas ancho de banda


y por ultimo nos han dicho que la utilizacion del springlayout mejora la interfaz pero no me apaño muy bien a la hora de usarlo con los dialogos crear poblacion
#4
Hola, necesito crear una aplicacion para informar del tiempo de las provincias que se vayan añadiendo y tengo un problema a la hora de configurar la pantalla del programa:


Lo que debo de hacer es que al pulsar en una provincia automaticamente en la lista de debajo aparezcan las poblaciones creadas en esa provincia y que si hago doble click en una provincia en el panel de la derecha me aparezcan los datos relacionados con las predicciones, mis clases son estas:

La principal
Código (java) [Seleccionar]
package principal;
import java.awt.*;
import java.awt.event.*;
import Poblacion.VentanaBorrarPoblacion;
import Poblacion.VentanaCrearPoblacion;
import Provincia.VentanaBorrarProvincia;
import Provincia.VentanaCrearProvincia;
import paa.provincias.GestorAEMET;
import paa.provincias.GestorAEMETException;
import paa.provincias.IPoblacion;

/**
* Fichero: InterfazAWT_AEMET.java Clase que implementa la Interfaz Gráfica
* AEMET con awt.
*
* @author PAA
* @version 1.0
*/
public class InterfazAWT_AEMET extends Frame {
/**
*
*/
private static final long serialVersionUID = 502635761186556414L;

private static final String FICHERO = "almacen.dat";
private AlmacenPoblaciones almacen;

// private IAlmacenPoblaciones almacenPoblaciones;
private List listaPoblaciones = new List();
private List listaPredicciones = new List();
private List listaProvincias = new List();
private InterfazAWT_AEMET gui;
/**
* Constructor.
*
* @throws GestorAEMETException
*/
public InterfazAWT_AEMET(String titulo, int ancho, int alto) {
super(titulo);

setSize(ancho, alto);
setLocationRelativeTo(null);
setLayout(new BorderLayout()); // Layout de la aplicación, podría ser otro
almacen = RecuperarAlmacenPoblaciones();
System.out.println(almacen.getProvincias());
initComponents();
for(String provincia : almacen.getProvincias()){
listaProvincias.add(provincia);
/*if(listaProvincias.getSelectedItem()==null){
listaPoblaciones.add(almacen.getPoblaciones(listaProvincias.getSelectedItem()));
}
for(IPoblacion s : almacen.getPoblaciones(listaProvincias.getSelectedItem())){

}*/
}
//Imprimimos provincias y poblaciones en las listas
}

public AlmacenPoblaciones RecuperarAlmacenPoblaciones() {
// Recuperamos el almacén
AlmacenPoblaciones almacenPoblaciones1 = new AlmacenPoblaciones();

if (almacenPoblaciones1.recuperar(FICHERO))
System.out.println("Recuperado el almacen del fichero " + FICHERO);
else
System.out.println("No se pudo recuperar el almacen del fichero "+ FICHERO);
return almacenPoblaciones1;

}

private void initComponents() {

// Boton salir por defecto
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
guardarAntesDeSalir();
System.exit(0);
}
});

setMenuBar(addMenuBar());
this.add(addToolBar(), BorderLayout.NORTH);
this.add(addlineaEstado(), BorderLayout.SOUTH);
this.add(addPanelIzquierda(), BorderLayout.WEST);
this.add(addpredicciones(), BorderLayout.CENTER);
}

private MenuBar addMenuBar() {
// Sitúo los menús desplegables
MenuBar barraDeMenu = new MenuBar();

// Creo el menú Archivo
Menu menuArchivo = new Menu("Archivo");
MenuItem crearGuardar = new MenuItem("Guardar");
MenuItem crearCargar = new MenuItem("Cargar");
MenuItem salir = new MenuItem("Salir");
crearCargar.addActionListener(new Controller());
crearGuardar.addActionListener(new Controller());
salir.addActionListener(new Controller());
menuArchivo.add(crearCargar);
menuArchivo.add(crearGuardar);
menuArchivo.add(salir);

// Creo el menú Provincias
Menu menuProvincias = new Menu("Provincias");
MenuItem crearProvincias = new MenuItem("Crear provincia");
MenuItem borrarProvincias = new MenuItem("Borrar provincia");
crearProvincias.addActionListener(new Controller());
borrarProvincias.addActionListener(new Controller());
menuProvincias.add(crearProvincias);
menuProvincias.add(borrarProvincias);

// Creo el menu Poblaciones
Menu menuPoblaciones = new Menu("Poblaciones");
MenuItem crearPoblacion = new MenuItem("Crear poblacion");
MenuItem borrarPoblacion = new MenuItem("Borrar poblacion");
MenuItem ordenarNombre = new MenuItem("Ordenar por nombre");
MenuItem ordenarHabitantes = new MenuItem("Ordenar por habitantes");
MenuItem modPoblacion = new MenuItem("Modificar poblacion");
MenuItem movPoblacion = new MenuItem("Mover poblacion");
crearPoblacion.addActionListener(new Controller());
borrarPoblacion.addActionListener(new Controller());
ordenarNombre.addActionListener(new Controller());
ordenarHabitantes.addActionListener(new Controller());
modPoblacion.addActionListener(new Controller());
movPoblacion.addActionListener(new Controller());
menuPoblaciones.add(crearPoblacion);
menuPoblaciones.add(borrarPoblacion);
menuPoblaciones.add(ordenarNombre);
menuPoblaciones.add(ordenarHabitantes);
menuPoblaciones.add(modPoblacion);
menuPoblaciones.add(movPoblacion);

// Creo el menú de ayuda
Menu ayuda = new Menu("Ayuda");
MenuItem acercaDe = new MenuItem("Acerca de");
acercaDe.addActionListener(new AcercaDe());
ayuda.add(acercaDe);

// Crea el
barraDeMenu.add(menuArchivo);
barraDeMenu.add(menuProvincias);
barraDeMenu.add(menuPoblaciones);
// Sitúo el menú de ayuda en su sitio
barraDeMenu.setHelpMenu(ayuda);
return barraDeMenu;
}

private Panel addToolBar() {
// Sitúo la línea de botones
Panel lineaDeBotones = new Panel(new FlowLayout(FlowLayout.LEFT));
lineaDeBotones.setBackground(Color.lightGray);

// Boton crear provincia
Button proCrear = new Button("Crear provincia");
proCrear.addActionListener(new Controller());

// Boton crear poblacion
Button poCrear = new Button("Crear poblacion");
poCrear.addActionListener(new Controller());

// Boton actualizar prediccion
Button aPrediccion = new Button("Actualizar Predicción");
aPrediccion.addActionListener(new Controller());

// Añadir los botones a la barra
lineaDeBotones.add(proCrear);
lineaDeBotones.add(poCrear);
lineaDeBotones.add(aPrediccion);
return lineaDeBotones;
}

private Panel addPanelIzquierda() {
// Creamos panel para mostrar provincias y poblaciones y lo colocamos a
// la izquierda
Panel izquierda = new Panel(new GridLayout(4, 1));
Label lProvincia = new Label("Provincias:");
Label lPoblacion = new Label("Poblaciones:");
izquierda.add(lProvincia);
izquierda.add(listaProvincias);
izquierda.add(lPoblacion);
izquierda.add(listaPoblaciones);
return izquierda;
}

private Panel addpredicciones() {
// Creamos el panel de las predicciones
Panel predicciones = new Panel(new BorderLayout());
Label lPrediccion = new Label("Predicciones de :");
List tPrediccion = new List();
predicciones.add(lPrediccion, BorderLayout.NORTH);
predicciones.add(tPrediccion, BorderLayout.CENTER);
return predicciones;
}

private Panel addlineaEstado() {
// Sitúo la línea de estado
Panel lineaDeEstado = new Panel();
lineaDeEstado.setLayout(new FlowLayout(FlowLayout.LEFT));
lineaDeEstado.setBackground(Color.lightGray);
Label ventanaDeeventos = new Label("Gestor AEMET v1.0 (PAA)");
lineaDeEstado.add(ventanaDeeventos);
return lineaDeEstado;
}

private void guardarAntesDeSalir() {

// Guardar almacen
almacen.guardar(FICHERO);
System.out.println("Gracias por utilizar nuestro programa");
}

class Controller implements ActionListener {

public void actionPerformed(ActionEvent e) {
String nombre = e.getActionCommand();
EvaluarAccion(nombre);
}

public void EvaluarAccion(String accion) {

switch (accion) {
case "Guardar":
almacen.guardar(FICHERO);
Aviso guardar = new Aviso(gui, "Archivo guardado");
break;
case "Salir":
System.exit(0);
break;
case "Crear provincia":
new VentanaCrearProvincia(gui,almacen,listaPoblaciones,listaProvincias,listaPredicciones).setVisible(true);
break;
case "Borrar provincia":
new VentanaBorrarProvincia(gui,almacen,listaPoblaciones,listaProvincias,listaPredicciones).setVisible(true);
break;
case "Crear poblacion":
new VentanaCrearPoblacion(gui,almacen,listaPoblaciones,listaProvincias,listaPredicciones).setVisible(true);
break;
case "Borrar poblacion":
new VentanaBorrarPoblacion(gui,almacen,listaPoblaciones,listaProvincias,listaPredicciones).setVisible(true);
break;
case "Ordenar por nombre":
break;
case "Ordenar por habitantes":
break;
case "Modificar poblacion":
break;
case "Mover poblacion":
break;
}
}
}

/**
* Clase que implementa la acción del menú "acerca de".
*/
class AcercaDe implements ActionListener { // Clase interna
public void actionPerformed(ActionEvent e) {
VentanaAcercaDe ventanaAcercaDe = new VentanaAcercaDe(
InterfazAWT_AEMET.this);
ventanaAcercaDe.setVisible(true);
}
}// Acerca de

/**
* Método main.
* @throws GestorAEMETException
*/
public static void main(String[] args) throws GestorAEMETException {

InterfazAWT_AEMET mimarco = new InterfazAWT_AEMET("Gestor AEMET", 1000,
500);
mimarco.setVisible(true);
} // Main
}


La que crea provincia:
Código (java) [Seleccionar]
package Provincia;
import java.awt.Button;
import java.awt.Dialog;
import java.awt.Frame;
import java.awt.GridLayout;
import java.awt.Label;
import java.awt.List;
import java.awt.Panel;
import java.awt.TextField;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

import principal.AlmacenPoblaciones;
import principal.Aviso;


public class VentanaCrearProvincia extends Dialog {

private Button crear;
private Button cancelar;
private AlmacenPoblaciones almacen;
private List listaPoblaciones;
private List listaPredicciones;
private List listaProvincias;
private TextField textField;
private static final long serialVersionUID = -2530069431684593677L;

public VentanaCrearProvincia(Frame gui, AlmacenPoblaciones almacen, List listaPoblaciones, List listaProvincias, List listaPredicciones) {
super(gui);

this.almacen = almacen;
this.listaPoblaciones = listaPoblaciones;
this.listaProvincias = listaProvincias;
this.listaPredicciones = listaPredicciones;
initComponents(gui);
}

public void initComponents (Frame gui){
Panel panel = new Panel(new GridLayout(2,2,0,0));
Label label = new Label("Provincia:");
textField = new TextField();
crear = new Button("Crear");
cancelar = new Button("Cancelar");
setLocationRelativeTo(gui);
this.setTitle("Crear Provincia");
this.setSize(300, 100);
panel.add(label);
panel.add(textField);
panel.add(crear);
panel.add(cancelar);
crear.addActionListener(new Controller());
cancelar.addActionListener(new Controller());
this.add(panel);
addWindowListener (new WindowAdapter (){
          public void windowClosing(WindowEvent e) {
          VentanaCrearProvincia.this.dispose();
             }
          });
}
public class Controller implements ActionListener {
public void actionPerformed(ActionEvent e) {
String label = e.getActionCommand();
if(label.equals("Crear")){
try{
almacen.addProvincia(textField.getText());
listaProvincias.removeAll();
for(String provincia : almacen.getProvincias()){
listaProvincias.add(provincia);
}
System.out.println(almacen.getProvincias());
VentanaCrearProvincia.this.dispose();

}catch (IllegalArgumentException e1){
Aviso aviso = new Aviso(VentanaCrearProvincia.this,e1.getMessage());
}
}else{

VentanaCrearProvincia.this.dispose();
}
}

}
}

y la que crea poblacion

Código (java) [Seleccionar]
package Poblacion;
import java.awt.BorderLayout;
import java.awt.Button;
import java.awt.Dialog;
import java.awt.FlowLayout;
import java.awt.Frame;
import java.awt.GridLayout;
import java.awt.Label;
import java.awt.List;
import java.awt.Panel;
import java.awt.TextField;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

import paa.provincias.IPoblacion;
import principal.AlmacenPoblaciones;
import principal.Aviso;
import principal.Poblacion;

public class VentanaCrearPoblacion extends Dialog {

private Button crear;
private Button cancelar;
private AlmacenPoblaciones almacen;
private List listaPoblaciones;
private List listaPredicciones;
private List listaProvincias;
private TextField nombre;
private TextField habitantes;
private TextField codigo;
private static final long serialVersionUID = 1434307119439314094L;

public VentanaCrearPoblacion(Frame gui, AlmacenPoblaciones almacen, List listaPoblaciones, List listaProvincias, List listaPredicciones) {
super(gui);
this.almacen = almacen;
this.listaPoblaciones = listaPoblaciones;
this.listaProvincias = listaProvincias;
this.listaPredicciones = listaPredicciones;
if(listaProvincias.getSelectedItem() != null){
initComponents(gui);
}else{
Aviso aviso = new Aviso(gui,"Selecciona una provincia");
gui.dispose();
}

}
public void initComponents(Frame gui){
setLocationRelativeTo(gui);
this.setLayout(new BorderLayout());
this.setTitle("Crear Poblacion");
this.setSize(300, 200);
Panel texto = new Panel(new GridLayout(4,1,0,0));
Panel panel = new Panel(new FlowLayout());
crear = new Button("Crear");
cancelar = new Button("Cancelar");
nombre = new TextField("Nombre");
Label nombreP = new Label(listaProvincias.getSelectedItem());
habitantes = new TextField("Habitantes");
codigo = new TextField("CodigoAEMET");
crear.addActionListener(new Controller());
cancelar.addActionListener(new Controller());

texto.add(nombre);
texto.add(nombreP);
texto.add(habitantes);
texto.add(codigo);
panel.add(crear);
panel.add(cancelar);

this.add(texto, BorderLayout.CENTER);
this.add(panel,BorderLayout.SOUTH);

addWindowListener (new WindowAdapter (){
          public void windowClosing(WindowEvent e) {
          VentanaCrearPoblacion.this.dispose();
             }
          });
}
class Controller implements ActionListener {
private VentanaCrearPoblacion gui;
public void actionPerformed(ActionEvent e) {
String label = e.getActionCommand();
if(label.equals("Crear")){
try{
IPoblacion poblacion = new Poblacion(nombre.getText(), Integer.parseInt(habitantes.getText()), listaProvincias.getSelectedItem(), codigo.getText());
almacen.addPoblacion(listaProvincias.getSelectedItem(),poblacion);

//listaPoblaciones2.removeAll();
for(IPoblacion p : almacen.getPoblaciones(listaProvincias.getSelectedItem())){
listaPoblaciones.add(poblacion.getNombre());
}

VentanaCrearPoblacion.this.dispose();



}catch (IllegalArgumentException e1){
Aviso aviso = new Aviso(gui,e1.getMessage());
}
}else{
VentanaCrearPoblacion.this.dispose();
}
}
}

}


las demas clases no importan ya que son de practicas anteriores o ya me las dan implementadas, en lo que dudo es a la hora de añadir la poblacion, he pensado que la clase ventanaCrearPoblacion solo debe de añadir la poblacion al almacen y que la clase que se debe de encargar de que al pulsar una provincia se muestrren las poblaciones asociadas debe de ser la principal
#5
Java / Meter un Frame dentro de otro Frame
12 Marzo 2015, 19:35 PM
Hola, tengo que crear una aplicacion que de informacion sobre el tiempo y necesito crear esto:


y necesito esto:



la organizacion del frame es borderlayout y habia pensado en poner en la parte izquierda otro layout divido en 2 pero no se como hacerlo
#6
Hola, tengo que hacer una practica de un almacen de poblaciones, en el cual, las poblaciones se almacenan en un set el cual esta asociado a un string que es la provincia a la que pertenecen, todo se guarda en un mapa en el que el string de la provincia es la clave y el Set es el valor, he codificado todos los metodos, para añadir poblaciones, quitarlas, guardarlo en un archivo, leerlo etc, pero ahora tengo este metodo:

Código (java) [Seleccionar]
public boolean ordenarPor(String provincia, int ordenarPor)

al cual se le pueden pasar 2 constantes para ordenar por habitantes o por nombre de poblacion, llevo esto codificado:

Código (java) [Seleccionar]
public boolean ordenarPor(String provincia, int ordenarPor) {
if(provincia != null || ordenarPor != ORDENARPORNOMBRE || ordenarPor != ORDENARPORHABITANTES ){
if(ordenarPor == ORDENARPORNOMBRE){
Set<IPoblacion> spoblacion = Aprovincias.get(provincia);
System.out.println(spoblacion);
}else if(ordenarPor == ORDENARPORHABITANTES){


}



return true;
}
return false;
}


por defecto todas las poblaciones hacen uso del metodo CompareTo en el que digo que deben de ordenar las poblaciones por el valor nombre de cada una, pero lo que no se es como ordenarlas por otro valor, me he quedado otra clase en la que tambien implemento la interfaz compareTo y sobreescribo el metodo para ordenar por habitantes, pero no se utilizarlo

#7
Java / Meter un Set en un Map
27 Febrero 2015, 14:43 PM
Hola, necesito crear un almacen de provincias, las cuales a su vez tienen poblaciones asociadas, tiene que hacerse con un map en el que la clave es el nombre de la provincia y el valor un set con las poblaciones, hasta ahi todo bien, el problema lo tengo en añadir las poblaciones al set que no se como hacerlo ya que tengo que pasar por el map antes, tengo esta clase:
Código (java) [Seleccionar]


Map<String, Set<Poblacion>> Aprovincias = new HashMap<String, Set<Poblacion>>();

public boolean addPoblacion(String provincia, IPoblacion poblacion) {
boolean res = false;
if(!!Aprovincias.containsValue(provincia)){
res = false;
System.out.println("La Provincia no existe, creela antes de añadir poblacion");
}else{

//Aprovincias.put(provincia, );
                        Aqui es donde tengo el problema, ya que no se que hacer
}
return res;
}


#8
hola, estoy haciendo un ejercicio de la uni en el que hay que dibujar una serie de rectangulos, tengo tres clases, vector, muro y el main:

vector:
Código (java) [Seleccionar]
public class Vector {

    private final int N;         // length of the vector
    private double[] data;       // array of vector's components

    /**
     * create the zero vector of length N
     * @param N Vector length.
     */
    public Vector(int N) {
        this.N = N;
        this.data = new double[N];
    }

    /**
     * create a vector from either an array or a vararg list
     * this constructor uses Java's vararg syntax to support
     * a constructor that takes a variable number of arguments, such as
     * Vector x = new Vector(1.0, 2.0, 3.0, 4.0);
     * Vector y = new Vector(5.0, 2.0, 4.0, 1.0);
     * @param data Initial value of the vector.
     */
    public Vector(double... data) {
        N = data.length;

        // defensive copy so that client can't alter our copy of data[]
        this.data = new double[N];
        for (int i = 0; i < N; i++)
            this.data[i] = data[i];
    }
//*metodos*/


muro:
Código (java) [Seleccionar]
public class Muro {


public static final double NO_IMPACTO = 999.0;
protected Vector posicion;
private Vector dimensiones;

/**
* Crea un muro.
*
* @param Vector - con las coordenadas del centro del muro.
* @param Vector - con las dimensiones del muro (semianchura, semialtura).
*/
public Muro(Vector posicion,Vector dimensiones){
this.posicion = posicion;
this.dimensiones = dimensiones;


main:

Código (java) [Seleccionar]

import java.awt.*;
public class Main {

public static void main(String[] args) {


Muro muro[5];
int i;
muro[0]= new Muro(0, .5, .005, .5);
muro[1]= new Muro(.5, 1, .505, .005);
muro[2]= new Muro(1, .5, .005, .5);
muro[3]= new Muro(.5, .65, .005, .2);
muro[4]= new Muro(.25, .1, .2, .005);


el caso es que necesito crear 5 muros al inicio del programa pero me dice eclipse que no le puedo pasar esos parametros, que en el constructor no estan declarados, pero si el constructor de muro tiene como parametros 2 vectores y estos a su vez tienen cada uno 2 valores por que no puedo meter 4 valores al constructor? como se le pueden pasar correctamente?
#9
Scripting / script en python con bucle, ayuda
7 Marzo 2014, 18:47 PM
hola, soy novato en esto de los script y mas en python que nunca lo he visto, se C y java, el caso es que quiero crear un script con una funcionalidad muy basica:

Código (python) [Seleccionar]
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.ui import Select
from selenium.common.exceptions import NoSuchElementException
import unittest, time, re

class Prueba3(unittest.TestCase):
    def setUp(self):
        self.driver = webdriver.Firefox()
        self.driver.implicitly_wait(30)
        self.base_url = "http://playfulbet.com/usuarios/"
        self.verificationErrors = []
        self.accept_next_alert = True
   
    def test_prueba3(self):
        for
        b = 4
        i="1"
        driver = self.driver
        driver.get(self.base_url + i)
        driver.find_element_by_link_text("Entra y juega").click()
        driver.find_element_by_link_text("Logueate").click()
        driver.find_element_by_name("commit").click()
        driver.find_element_by_id("follow").click()
        driver.find_element_by_css_selector("#add_friend > b").click()
   
    def is_element_present(self, how, what):
        try: self.driver.find_element(by=how, value=what)
        except NoSuchElementException, e: return False
        return True
   
    def is_alert_present(self):
        try: self.driver.switch_to_alert()
        except NoAlertPresentException, e: return False
        return True
   
    def close_alert_and_get_its_text(self):
        try:
            alert = self.driver.switch_to_alert()
            alert_text = alert.text
            if self.accept_next_alert:
                alert.accept()
            else:
                alert.dismiss()
            return alert_text
        finally: self.accept_next_alert = True
   
    def tearDown(self):
        self.driver.quit()
        self.assertEqual([], self.verificationErrors)

if __name__ == "__main__":
    unittest.main()


haber, lo explico, quiero que el script sea capaz de acceder a todos os usuarios de la pagina y pinche en dos botones por usuario, pero no se como se pone eso en python, como añado un for y lo recorro? tendria que ser un bucle de 1 hasta 50000, he puesto un int pero no se como añadirlo a la direccion base, si lo hago con un string si me deja pero no se como incrementar el valor de dentro del string, alguien me echa una ayuda?. si lo quisiera hacer en java, para ejecutarlo luego como lo haria?
#10
hola, tengo que hacer un programa que cree una imagen en formato pbm a traves de una secuencia de caracteres que se le pase mediante la funcion main, de forma:
nombreprograma.exe secuenciadigital
donde secuencia digital es una secuencia de unos y ceros de 32 caracteres como maximo, y dependiendo de si es un uno o un cero añadira a la imagen una o otra cosa de esta forma:

http://subefotos.com/ver/?0af5e21ed0cbbeddb34934e327b6f513o.png

hasta ahi todo bien, defino dos matrices multidireccionales, una para el 0 y otra para el uno, para que cada vez que haya un uno o un cero se cree cada fragmento, el problema es que no se como almacenar la cadena que me pasan, por ejemplo si me pasan 01001 tendria que verificar si es 0 o 1 el primer elemento y imprimirlo en una nueva matriz, con el segundo elemnto igual con el tercero lo mismo y asi hasta el ultimo, pero no se como se hace con los valores que son pasados como parametros a main.
alguen me echa una mano, gracias
#11
Hola, tengo que realizar un programa que lea de la entrada estandar una cadena compuesta por caracteres '1' y'0' y me diga la media y las veces que se pasa de 0 a 1 y de 1 a 0, debe de omitir cualquier otro caracter. Es decir en 0110. Se debe realizar mediante una funcion que obtenga la cadena y devuelva los dos parametros resultados
La media es 0,25 y el numero de saltos es 2
El problema lo tengo en el planteamiento, como no se la longitud que va a tener la cadena he pensado en leerla del teclado primero, despues le paso a la funcion la cadena y con un if diria que cuando cadena = '1' ||'0' le asigno el valor 1 o 0 a una variable auxiliar y a otra variable el valor de cadena[i+1] y asi hasta que se tope con el final de cadena o encuentre otro caracter en cuyo caso dara error, esto estaria bien? O como debo de hacerlo?. Muchas gracias
#12
hola, tengo que hacer un programa que tenga varias opciones, la primera es la obtencion de un factorial mediante el uso de punteros y funciones de modo que dependiendo de si la variable comprobar es un 1,2 o 0 diga si el numero introducido es negativo, es correcto o ha habido desbordamiento, el problema es que he hecho todo pero al ejecutar el programa no carga y da error, se que el fallo esta en los punteros pero no se como arreglarlo

#include<stdio.h>



int factorial(int numero,int *pfactorial);
int main(void){

int opcion;
int numero;
int *pfactorial;
int comprobar;
int factorial;



do{
printf("**********MENU**********\n");
fflush(stdout);

printf("1.  Factorial de un numero\n");
fflush(stdout);

printf("2.  Seno de un angulo\n");
fflush(stdout);

printf("3.  Estadisticas de una secuencia digital\n");
fflush(stdout);

printf("4.  Evitar n unos seguidos en una secuencia digital\n");
fflush(stdout);

printf("5.  Salir del programa\n");
fflush(stdout);

scanf("%d", &opcion);


if(opcion>0&&opcion<6){
switch(opcion){

case 1:
printf("Introduzca un numero para calcular factorial:");
fflush(stdout);
scanf("%d",&numero);

comprobar=factorial(numero,&factorial);

if(comprobar==1){

printf(" Desbordamiento de memoria \n");
}
if(comprobar==2){
printf(" El numero introduzido es negativo");
}

if(comprobar==0){

printf("El Factorial del numero: %d es: %d \n", numero,*pfactorial);

}


break;
case 2:


break;
case 3:


break;
case 4:


break;

case 5:
printf("Adios!");

break;

default:

printf("Elige una opcion valida");
break;

}
}
}while(opcion!=5);

return 0;
}


int factorial(int numero,int *pfactorial){

int i;
int auxiliar;
int factorial;
int comprobar;
i=1;
auxiliar=1;
if(numero<0){
comprobar=2;
}
if(numero>=0){
    while((i<=numero) && (comprobar!=0)){
    auxiliar=factorial;
    factorial=(factorial*i);
    if((factorial/auxiliar)!=i){
    comprobar=1;
}
    i++;
    }
}
if((factorial/auxiliar)!=i){
    comprobar=0;
}
(*pfactorial)= factorial;
return comprobar;
}

#13
Programación C/C++ / cifrado cesar en c
26 Octubre 2013, 11:18 AM
Hola buenos dias, tengo que hacer un programa que encripte y desencripte una secuencia de caracteres en mayuscula mediante el cifrado cesar, pero no logro que arranque se me queda pillado el programa y no se como resolverlo:

el problema lo tengo en el scanf del do que no entra e imprime directamente el mensaje de salida diciendo que ha habido un error con el caracter introducido

char cifrar(int desplazamiento, char caracter);
char descifrar();

int main(void){

int respuesta;
char caracter;
int desplazamiento;
char caracterConvertido;

printf("¿Desea cifrar o descifrar?\n");
fflush(stdout);
printf("cifrar--> 0\n");
fflush(stdout);
printf("descifrar -->1\n");
fflush(stdout);
scanf("%d",&respuesta);

do{
printf("Introduce la clave de cifrado\n");
fflush(stdout);
scanf("%d",&desplazamiento);


if(desplazamiento<0){
printf("Introduce un valor valido\n");
fflush(stdout);
}
}while(desplazamiento<0);

if(respuesta==0){

printf("Introduce el texto a cifrar:");
fflush(stdout);

do{

fflush(stdin);
scanf("%c",&caracter);

caracterConvertido = cifrar(desplazamiento,caracter);
printf("%c",caracterConvertido);
fflush(stdout);
if((caracter<='A')||(caracter>='Z')){
printf("Error en los caracteres introducidos");
fflush(stdout);
}
}while(((caracter>='A')&&(caracter<='Z'))||(caracter !='\n'));

printf("*** El texto cifrado es (entre flechas): -->");
fflush(stdout);

printf("<-- ***\n");
fflush(stdout);

printf("Fin del programa");
fflush(stdout);

}
if(respuesta==1){
//descifrar();
}
return 0;
}
char cifrar(int desplazamiento, char caracter){

char caracterConvertido;

caracterConvertido=caracter + desplazamiento;

return caracterConvertido;
}
#14
Wireless en Windows / modo monitos intel 6235
20 Marzo 2013, 12:22 PM
Hola tengo un ultrabook con esta tarjeta de red y no encuentro los driverrs para commosview for wifi alguien sabe que tengo que hacer, soy muy novato en esto, como se ddscifran las claves de cualquier router?
#15
Hola, tengo que hacer un programa que calcule la media aritmetica de los dos ultimos valores introducidos por teclado pero no se que tengo que hacer por que al definir las variables me hago un lio ej:
primer valor 10, media 10
segundo valor 2, media 6
tercer valor 6, media 4
y asi sucesivamente alguien sabe que debo de hacer?
#16
hola, necesito hacer un programa que me calcule centros numericos y no tengo ni idea de como comenzar , se tiene que meter el orden del centro numerico y nos tiene que decir cuanto vale, por ejemple el centro numerico 1 es igual a 6, y asi con todos
#17
hola, tengo que hacer esto:
Diseñar y codificar en C un programa que dibuje figuras geométricas en la pantalla (salida estándar) de acuerdo a las siguientes especificaciones:
 El programa inicialmente solicitará por el teclado (entrada estándar) los siguientes datos:
o Número de filas de la figura a dibujar (entre 1 y 15).
o Desplazamiento respecto al comienzo de la pantalla del vértice inferior izquierdo de la figura.
o Carácter que se usará para rellenar la figura.
 Tras pedir los datos anteriores, el programa dibujará la figura solicitada teniendo en cuenta lo siguiente:
o Si el carácter que se usará para rellenar la figura es un dígito numérico, se dibujará un triángulo. Con cualquier otro carácter se dibujará un cuadrado.
o Una vez dibujada una figura, el programa preguntará si dibujar otra o no. Si la respuesta es afirmativa, volverá a empezar un nuevo proceso de dibujo pidiendo nuevos datos. Si la respuesta es negativa, el programa finalizará su ejecución.

el problema es que lo he he hecho pero no hace nada:

#include<stdio.h>
int main(void){


   /*variables*/
   int numero;
   int fila;
   int columna;
   int espacio;
   int blanco;
   char caracter;
   char sino;

   /*entorno*/
   printf("Introduce numero de filas (1-15):");
   scanf("%d",&numero);
   printf("numero de espacios:");
   scanf("%d",&espacio);
   printf("caracter de relleno:");
   scanf("%c",&caracter);
   if((caracter>='0')&&(caracter<='9')){

      for(fila=1;fila<=numero;fila++){
         for(columna=1;columna<=numero-fila+espacio;columna++){

         printf(" ");
      }
      }
      for(columna=1; columna<=2*numero-1; columna++){
         printf("%c",caracter);
      }
      printf("\n");
   }else{
      for(fila=1;fila<=fila;fila++){
         for(blanco=1;blanco<=fila-fila+espacio;blanco++){
            printf(" ");
      }
      }
      for(fila=1;fila<=fila;fila++){
         for(columna=1;columna<=fila;columna++){
         printf("%c",caracter);
      }
         printf("\n");
   }
   }


   printf("otra figura(Ss/Nn):");
   scanf("%c",&sino);

      if(sino ='s'||'S'){
         printf("Introduce numero de filas (1-15):");
         scanf("%d",&fila);
         printf("numero de espacios:");
         scanf("%d",&espacio);
         printf("caracter de relleno:");
         scanf("%c",&caracter);
         if((caracter>='0')&&(caracter<='9')){

               for(fila=1;fila<=numero;fila++){
                  for(columna=1;columna<=numero-fila+espacio;columna++){

                  printf(" ");
               }
               }
               for(columna=1; columna<=2*numero-1; columna++){
                  printf("%c",caracter);
               }
               printf("\n");
            }else{
               for(fila=1;fila<=fila;fila++){
                  for(blanco=1;blanco<=fila-fila+espacio;blanco++){
                     printf(" ");
               }
               }
               for(fila=1;fila<=fila;fila++){
                  for(columna=1;columna<=fila;columna++){
                  printf("%c",caracter);
               }
                  printf("\n");
            }
            }
      }else{

      }

      printf("muchas gracias por utilizar el programa");

   return 0;
}


#18
HOla, tengo que hacer esto: Diseñar y codificar en C un programa que lea por el teclado (entrada estándar) una secuencia de caracteres terminada en '.' (punto), donde el punto no pertenece a la secuencia, y escriba por la pantalla (salida estándar) el número de apariciones en la serie de cada una de las vocales (mayúsculas o minúsculas) y el número de caracteres que no son vocales. Las vocales acentuadas se no se considerarán como vocales en este ejercicio.
#include <stdio.h>
int main(void){
   /*variable*/
   char letra;
   int cona;
   int cone;
   int coni;
   int cono;
   int conu;
   int otrocarac;
   int contadorvoc;

   cona = 0;
   cone = 0;
   coni = 0;
   cono = 0;
   conu = 0;

   otrocarac = 0;
   contadorvoc = 0;

   /*acciones*/
   printf("Introduzca frase:");
   scanf ("%c", &letra);
   while (letra!='.'){
      switch (letra){
         case 'a':
         case 'A':
            cona++;
            break;
         case 'e':
         case 'E':
            cone++;
            break;
         case 'i':
         case 'I':
            coni++;
            break;
         case 'o':
         case 'O':
            cono++;
             break;
          case 'u':
          case 'U':
             conu++;
             break;
          default :
             otrocarac++;
             break;
         }
      contadorvoc = cona+cone+coni+cono+conu;
      }


   printf ("\nEl numero de caracteres que no son vocales es:%d",otrocarac);
   printf ("\nEl numero de vocales es:%d", contadorvoc);
   printf ("\n%d son aes", cona);
   printf ("\n%d son es", cone);
   printf ("\n%d son ies", coni);
   printf ("\n%d son oes", cono);
   printf ("\n%d son ues", conu);

   return 0;
}
lo he hecho pero el problema es que se queda pillado el programa y no se que hacer. Gracias de antemano