Inicio > Uncategorized > Certamen 2 [PEF2501]

Certamen 2 [PEF2501]

Aquí dejo el Certamen 2 de la seccion PEF2501 de Programacion Orientada A Objetos.

Enunciado:
El restaurant PINPON ha decidido ofertar almuerzos a todos los trabajadores
de la empresa que así lo soliciten, para esto ha encargado la confección de
un sistema que permita llevar esos pedidos.

DEFINICIÓN DE CLASES – 20 PUNTOS
· Clase MenuEjecutivo.java

ATRIBUTOS TIPO
Entrada String
conConsome boolean
platoFondo String
Postre String
Liquido String
conCafe boolean

MÉTODOS

  • Constructor con parámetros (que reciba todos los atributos)
  • Accesador para cada atributo
  • Mutador para cada atributo
  • toString

 

REQUERIMIENTOS DE INTERFAZ – 30 PUNTOS
Basado en el anterior modelo de clases crear una aplicación que despliegue la
siguiente ventana:

C2

 

Una vez escogidas las alternativas se debe calcular el precio del menú. Para
lo anterior considere las siguientes reglas:

ENTRADA  VALOR
Palta Reina  1.500
Tomate relleno  1.400
Vegetariano  800

PLATO FONFO  VALOR
Arroz con pollo  2.300
Bistec a lo pobre  2.800
Tortilla española  800

POSTRE  VALOR
Fruta  100
De la casa  250

 

Los valores de los líquidos son los que se indican a continuación:

LÍQUIDO  VALOR
Bebida  300
Cerveza  420

Si  escoge  consomé  y  café  se  debe  aplicar  un  recargo  de  100,  si  escoge  sólo
café o sólo consomé se debe aplicar un recargo de 80.

El precio del menú se calcula de la siguiente manera:

PRECIO_MENU  =  VALOR_ENTRADA  +  VALOR_PLATO_FONDO  +  VALOR_POSTRE  +
VALOR_LIQUIDO + RECARGO

Se pide:

Implementar  las  acciones  en  cada  botón  de  la  ventana  de  acuerdo  a  las
siguientes consideraciones:

·  Botón Ingresar debe desplegar el contenido del menú escogido junto con
el valor de este en el TextArea de la ventana, considerar instanciar un
objeto de la clase MenuEjecutivo.

·  Botón Limpiar debe dejar los componentes limpios o en su estado inicial.
·  Botón Salir debe terminar la ejecución de la aplicación.

(50 PUNTOS)

 

MenuEjecutivo.java


import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.border.*;


public class MenuEjecutivo {
	
	private String 	entrada;
	private String 	platoFondo;
	private String 	postre;
	private String 	liquido;
	
	private boolean conConsome;
	private boolean conCafe;
	
	public MenuEjecutivo() { }
    public MenuEjecutivo(String entrada, boolean conConsome, String platoFondo,String postre, String liquido, boolean conCafe) {
    	this.entrada 	= entrada;
    	this.conConsome = conConsome;
    	this.platoFondo = platoFondo;
    	this.postre 	= postre;
    	this.liquido 	= liquido;
    	this.conCafe 	= conCafe;
    }

    /* Accesador */
    
    public String getEntrada(){
    	return this.entrada;
    }
    
    public boolean getConConsome(){
    	return this.conConsome;
    }
    
    public String getPlatoFondo(){
    	return this.platoFondo;
    }
    
    public String getPostre(){
    	return this.postre;
    }
    
    public String getLiquido(){
    	return this.liquido;
    }
    
    public boolean getConCafe(){
    	return this.conCafe;
    }
    
  
    /* Mutadores */

    public void setEntrada(String valor){
    	this.entrada = valor;
    }
    
    public void setConConsome(boolean valor){
    	this.conConsome = valor;
    }
    
    public void setPlatoFondo(String valor){
    	this.platoFondo = valor;
    }
    
    public void setPostre(String valor){
    	this.postre = valor;
    }
    
    public void setLiquido(String valor){
    	this.liquido = valor;
    }
    
    public void setConCafe(boolean valor){
    	this.conCafe = valor;
    }
    public int getValorEntrada() {
    	int valorEntrada = 0;
    	if(this.getEntrada().equals("Palta Reina")) {
    		valorEntrada = 1500;
    	} 
    	else if(this.getEntrada().equals("Tomate Relleno")) {
    		valorEntrada = 1400;
    	}
    	else if(this.getEntrada().equals("Vegetariano")) {
    		valorEntrada = 800;
    	}
    	return valorEntrada;
    }
    public int getValorPlatoFondo() {
    	int valorPlatoFondo = 0;
    	if(this.getPlatoFondo().equals("Arroz con Pollo")) {
    		valorPlatoFondo = 2300;
    	}
    	else if(this.getPlatoFondo().equals("Bistec a lo Pobre")) {
    		valorPlatoFondo = 2800;
    	}
    	else if(this.getPlatoFondo().equals("Tortilla Española")) {
    		valorPlatoFondo = 800;
    	}
    	return valorPlatoFondo;
    }
    public int getValorPostre() {
    	int valorPostre = 0;
    	if(this.getPostre().toLowerCase().equals("fruta")) {
    		valorPostre = 100;
    	}
    	else if(this.getPostre().toLowerCase().equals("de la casa")) {
    		valorPostre = 250;
    	} else {
    		valorPostre = 0;
    	}
    	return valorPostre;
    }
    public int getValorLiquido() {
    	int valorLiquido = 0;
    	if(this.getLiquido().equals("Bebida")) {
    		valorLiquido = 300;
    	}
    	else if(this.getLiquido().equals("Cerveza")) {
    		valorLiquido = 420;
    	}
    	return valorLiquido;
    }
    public int getValorRecargo() {
    	int recargo = 0;
    	if(conCafe && conConsome) {
    		recargo = 100;
    	} else if(conCafe || conConsome) {
    		recargo = 80;
    	}
    	return recargo;
    }
    public int getValorTotal() {
    	return this.getValorEntrada() + this.getValorPlatoFondo() + this.getValorPostre() + this.getValorLiquido() + this.getValorRecargo();
    }
    /* Sobrescritura del toString() */
    public String toString() {
    	return "Entrada: "+this.getEntrada()+"\t$"+String.valueOf(this.getValorEntrada())+"\nPlato de Fondo: "+this.getPlatoFondo()+"\t$"+String.valueOf(this.getValorPlatoFondo())+"\nPostre: "+this.getPostre()+"\t$"+String.valueOf(this.getValorPostre())+"\nLiquido: "+this.getLiquido()+"\t$"+String.valueOf(this.getValorLiquido())+"\nCon Consome: "+((this.getConConsome()) ? "Si" : "No")+"\nCon Café: "+((this.getConCafe()) ? "Si" : "No")+"\nRecargo: $"+String.valueOf(this.getValorRecargo())+"\nTotal: "+this.getValorTotal();
    }
}

WCertamen2.java

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.border.*;

public class WCertamen2 extends JFrame {
	
	private JComboBox 		cmbEntrada,cmbFondo;
	private JTextField 		txtPostre;
	private JRadioButton 	rbCafe,rbConsome,rbAmbos,rbBebida,rbCerveza;
	private JButton			btnIngresar,btnLimpiar,btnCerrar;
	private JTextArea		areaDetalle;
	private ButtonGroup 	grupoA,grupoB;
	
	private MenuEjecutivo	menu;
	
	public WCertamen2() {
		super("Registro de Pedido");
		this.cmbEntrada		= new JComboBox();
			this.cmbEntrada.addItem("Palta Reina");
			this.cmbEntrada.addItem("Tomate Relleno");
			this.cmbEntrada.addItem("Vegetariano");
		this.cmbFondo 		= new JComboBox();
			this.cmbFondo.addItem("Arroz con Pollo");
			this.cmbFondo.addItem("Bistec a lo Pobre");
			this.cmbFondo.addItem("Tortilla Española");
		
		this.txtPostre 		= new JTextField();
		
		this.rbCafe			= new JRadioButton("Café");
		this.rbConsome		= new JRadioButton("Consome");
		this.rbAmbos		= new JRadioButton("Ambos");
		
		this.rbBebida		= new JRadioButton("Bebida");
		this.rbCerveza		= new JRadioButton("Cerveza");
		
		this.btnIngresar	= new JButton("Ingresar");
		this.btnLimpiar		= new JButton("Limpiar");
		this.btnCerrar		= new JButton("Cerrar");
		
		this.areaDetalle	= new JTextArea();
		this.init();
	}
	public void init() {
		this.setSize(300,450);
		this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
		
	
		grupoA = new ButtonGroup();
		grupoA.add(rbCafe);
		grupoA.add(rbConsome);
		grupoA.add(rbAmbos);
		
		grupoB = new ButtonGroup();
		grupoB.add(rbBebida);
		grupoB.add(rbCerveza);
		
		
		JPanel panelComida	= new JPanel();
		panelComida.setBorder(new TitledBorder(new EtchedBorder(),"Comida"));
		panelComida.setLayout(new GridLayout(2,2));
			panelComida.add(new JLabel("Entrada"));
			panelComida.add(cmbEntrada);
			panelComida.add(new JLabel("Plato Fondo"));
			panelComida.add(cmbFondo);
		
		Box horizontal = Box.createHorizontalBox();
		horizontal.setBorder(new TitledBorder(new EtchedBorder(),"Postre"));
			horizontal.add(new JLabel("Postre "));
			horizontal.add(txtPostre);
			horizontal.add(new JLabel(" Fruta,de la casa, sin postre"));
		
		
		JPanel panelAbajo = new JPanel();
		panelAbajo.setLayout(new GridLayout(2,2));
		
			JPanel panelCafeConsome = new JPanel();
			panelCafeConsome.setBorder(new TitledBorder(new EtchedBorder(),"Café/Consomé"));
			panelCafeConsome.setLayout(new GridLayout(3,1));
				panelCafeConsome.add(rbCafe);
				panelCafeConsome.add(rbConsome);
				panelCafeConsome.add(rbAmbos);
		panelAbajo.add(panelCafeConsome);
		
			JPanel panelLiquido = new JPanel();
			panelLiquido.setBorder(new TitledBorder(new EtchedBorder(),"Líquido"));
			panelLiquido.setLayout(new GridLayout(2,1));
				panelLiquido.add(rbBebida);
				panelLiquido.add(rbCerveza);
		panelAbajo.add(panelLiquido);
		
			JPanel panelDetalle = new JPanel();
			panelDetalle.setBorder(new TitledBorder(new EtchedBorder(),"Detalle Menú"));
			panelDetalle.setLayout(new GridLayout());
				panelDetalle.add(areaDetalle);
		panelAbajo.add(panelDetalle);
		
			JPanel panelBotones = new JPanel();
			panelBotones.setLayout(new GridBagLayout());
				panelBotones.add(btnIngresar);
				panelBotones.add(btnLimpiar);
				panelBotones.add(btnCerrar);
		panelAbajo.add(panelBotones);
		
		
		this.getContentPane().add(panelComida,BorderLayout.NORTH);
		this.getContentPane().add(horizontal,BorderLayout.CENTER);
		this.getContentPane().add(panelAbajo,BorderLayout.SOUTH);
		
		this.programarEventos();
		this.pack();
		this.setLocationRelativeTo(null);
		this.setResizable(false);
		this.setVisible(true);
	}
	public void programarEventos() {
		
		ActionListener agregar = new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				String entrada 		= cmbEntrada.getSelectedItem().toString();
				String platoFondo 	= cmbFondo.getSelectedItem().toString();
				String postre 		= txtPostre.getText();
				
				boolean conCafe 	= false;
				boolean conConsome 	= false;
				if(rbCafe.isSelected()) {
					conCafe 	= true;
				}
				if(rbConsome.isSelected()) {
					conConsome 	= true;
				}
				if(rbAmbos.isSelected()) {
					conCafe 	= true;
					conConsome 	= true;
				}
				
				String liquido		= "";

				if(rbBebida.isSelected()) {
					liquido = "Bebida";
				}
				if(rbCerveza.isSelected()) {
					liquido = "Cerveza";
				}
				//MenuEjecutivo(String entrada, boolean conConsome, String platoFondo,String postre, String liquido, boolean conCafe)
				menu = new MenuEjecutivo(entrada,conConsome,platoFondo,postre,liquido,conCafe);
				areaDetalle.setText(menu.toString());
				pack();
			}	
		};
		this.btnIngresar.addActionListener(agregar);
		
		ActionListener limpiar = new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				txtPostre.setText("");
				grupoA.clearSelection();
				grupoB.clearSelection();
				areaDetalle.setText("");
				pack();
			}	
		};
		this.btnLimpiar.addActionListener(limpiar);
		
		ActionListener cerrar = new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				System.exit(0);
			}	
		};
		this.btnCerrar.addActionListener(cerrar);
		
	}
}
public class CertamenDos {
    public static void main(String[] args) {
    	new WCertamen2();
    }
}

Descargar Codigo de Fuente:
http://estebanfuentealba.net/ayudantia/Certamen2-PEF2501.rar

  1. Aún no hay comentarios.
  1. No trackbacks yet.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: