Está en la página 1de 11

EJERCICIO 01

PRODUCCIÓN:

package clases;
public class produccion {
private int cod;
private String nom;
private int horas;
private int areas;
int cuenta=10;

public produccion( String nom,int horas, int areas) {


this.cod = cuenta++;
this.nom = nom;
this.horas = horas;
this.areas = areas;
}

public produccion() {
this.cod=cuenta++;
}
public double SueldoNeto(){
return tarifa()*horas;
}
public Double tarifa(){
double t=0;
switch(areas){
case 1:t=18;break;
case 2:t=19.5;break;
case 3:t=21.5;break;
}
return t;
}

public int getCod() {


return cod;
}

public void setCod(int cod) {


this.cod = cod;
}

public String getNom() {


return nom;
}

public void setNom(String nom) {


this.nom = nom;
}

public int getHoras() {


return horas;
}

public void setHoras(int horas) {


this.horas = horas;
}

public int getAreas() {


return areas;
}

public void setAreas(int areas) {


this.areas = areas;
}
}

ARREGLO PRODUCCION
package clases;

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.PrintWriter;

public class arreglo_produccion {


produccion vec[]=new produccion[50];
int cuenta;
public int tamaño(){
return cuenta;
}
public produccion obtener(int pos){
return vec[pos];
}
public void adicion (produccion p){
p.setCod(genera());
vec[cuenta]=p;//almacena
cuenta++;
graba();
}
int genera(){
int cod=0;
if(cuenta==0) cod=10;
else cod=vec[cuenta-1].getCod()+1;
return cod;
}
void graba(){
try{
String linea;
PrintWriter fw=new PrintWriter(new FileWriter("Trabajador.txt"));
for(int f=0;f<cuenta;f++){
produccion b=vec[f];
linea=b.getCod()+";"+b.getNom()+";"+b.getAreas()
+";"+b.getHoras();
fw.println(linea);
}
fw.close();
}catch(Exception ex){
ex.printStackTrace();
}

}
void lee(){
try{
FileReader f=new FileReader("Trabajador.txt");
BufferedReader fr=new BufferedReader(f);
String linea=fr.readLine();
while(linea!=null){
String v[]=linea.split(";");
produccion p=new produccion();
p.setCod(Integer.parseInt(v[0]));
p.setNom(v[1]);
p.setHoras(Integer.parseInt(v[2]));
p.setAreas(Integer.parseInt(v[3]));
vec[cuenta]=p;
cuenta++;
linea=fr.readLine();
}
f.close();
}catch (Exception ex){}
}
public double SumadeSueldos(){
double suma=0;
for (int p = 0; p < cuenta; p++) {
suma=suma+vec[p].SueldoNeto();
}
return suma;
}

public double MayorSueldo(){


double max=0;
for(int p=0;p<cuenta;p++){
if(vec[p].SueldoNeto()>max){
max=vec[p].SueldoNeto();
}
}
return max;
}

public int CantidadTrabajadores(){


int cant=0;

for(int p=0;p<cuenta;p++){
if(vec[p].SueldoNeto()>2800){
cant++;
}
}
return cant;
}
public void OrdenarporNombre(){//ordernar por nombre
int p,c;
produccion aux;
for(p=0;p<cuenta-1;p++)
for(c=p+1;c<cuenta;c++)
if(vec[p].getNom().compareTo(vec[c].getNom())>0){
aux=vec[p];
vec[p]=vec[c];
vec[c]=aux;
}
}
public void OrdenSueldo(){
int p,c;
produccion aux;
for(p=1;p<cuenta;p++){
aux=vec[p];
for(c=p;(c>0 && aux.SueldoNeto()<vec[c-1].SueldoNeto());c--){
vec[c]=vec[c-1];
}
vec[c]=aux;
}
}
public void OrdenPorCodigo(){
int p,c,pmin;
produccion aux;
for( p=0;p<cuenta-1;p++){
pmin=p;
//comparar con los otros datos
for(c=p+1;c<cuenta;c++){
if(vec[c].getCod()<vec[pmin].getCod())
pmin=c;
}//finc
aux=vec[p];
vec[p]=vec[pmin];
vec[pmin]=aux;
}//finp
}
public produccion buscar(int cod){
OrdenPorCodigo();//ordenar por codigo
int inicio, fin, pm;//pm:punto medio
inicio=0; fin=cuenta-1;
while(inicio<=fin){
pm=(inicio+fin)/2;
if(vec[pm].getCod()==cod)
return vec[pm];
if (cod>vec[pm].getCod())
inicio=pm+1;//buscar en la parte superior
else
fin=pm-1;
}
return null;

}
}

FORMULARIO
arreglo_produccion x=new arreglo_produccion();
public fmrproduccion() {
initComponents();
muestra();
}
void muestra(){
DefaultTableModel dt=(DefaultTableModel)tabla1.getModel();
dt.setRowCount(0);//LIMPIA TABLA
for(int f=0;f<x.tamaño();f++){//RECOORE LOS REGISTROS
produccion ep=x.obtener(f);//leer un empleado y asignarlo a una
variable
Object
v[]={ep.getCod(),ep.getNom(),ep.getHoras(),ep.getAreas(),ep.SueldoNeto()
};
dt.addRow(v);
}
}
private void rbNomActionPerformed(java.awt.event.ActionEvent evt) {
x.OrdenarporNombre();
muestra();
}
private void rbSueldoActionPerformed(java.awt.event.ActionEvent evt) {
x.OrdenSueldo();
muestra();
}
private void rbCodigoActionPerformed(java.awt.event.ActionEvent evt) {
x.OrdenPorCodigo();
muestra();
}
private void cbAdicionarActionPerformed(java.awt.event.ActionEvent evt) {
String nombre=txtNombre.getText();
int horas=Integer.parseInt(txtHoras.getText());
int area=cbArea.getSelectedIndex();
produccion b=new produccion(nombre,horas,area);
x.adicion(b);
muestra();
txtNombre.setText("");
txtHoras.setText("");
JOptionPane.showMessageDialog(null, "REGISTRADO!!");

}
private void cbBuscarActionPerformed(java.awt.event.ActionEvent evt) {
int cod=Integer.parseInt(txtCod.getText());
produccion busqueda=x.buscar(cod);
if (busqueda==null) {
JOptionPane.showMessageDialog(null, "No existe el código. Vuelva a
ingresar.");
txtRes.setText("");
return;
}
txtRes.setText("Código: "+busqueda.getCod());
txtRes.append("\nNombre: "+busqueda.getNom());
txtRes.append("\nHoras trabajadas: "+busqueda.getHoras());
txtRes.append("\nArea de trabajo: "+busqueda.getAreas());
txtRes.append("\nSueldo Neto: "+busqueda.SueldoNeto());
}
public int sumaDemultiplosDe3 (int num, int d){
if(d<=num*3){
return sumamultiplos3(num,d+1)+(d%3==0?d:0);
}else{
return 0;
}
}

También podría gustarte