jueves, 6 de noviembre de 2014

Duda Ejercicio 1 Control 2010-2011

¿Qué está mal en este ejercicio?

/*1 .- (6 puntos) Se desea hacer un programa en Java para la gestión de datos de los empleados de una empresa.
El programa debe permitir la entrada de datos de una serie de empleados (1 punto) , y después mostrar un resumen
de resultados. La serie de empleados terminará cuando el nombre tecleado sea “fin”. Para cada empleado se
introducirá el nombre, años de antigüedad en la empresa y el tipo de empleado. El tipo de empleado podrá ser “V”
(vendedor), “J” (Jefe de sección) o “A” (administrativo).

Si el tipo es “V”, se pedirá además el número de ventas realizadas.
Para cada una de esas ventas, la cantidad de artículos y el precio unitario de los artículos.

Si el tipo es “J”, se pedirá el nombre de la sección y el número de personas de la sección.

Si el tipo es “A”, el número de expedientes tramitados.

Al finalizar la introducción de datos, se debe mostrar:
- Media de precio de los artículos vendidos. (1 punto)
Nombre del vendedor con más importe total vendido. (1 punto)
- Porcentaje de empleados que son administrativos. (1 punto)
- Nombre de la sección y del jefe de la sección con menos personas. (1 punto)
- Media de antigüedad de los administrativos que tienen menos de 20 expedientes tramitados. (1 punto)
*/

import javax.swing.*;
public class UnoControl2
{
public static void main(String args[])
{
String sNombreEmpleado,sNombreSeccion,sNombreMinSeccion=
"",sJefeSeccion,sJefeMinSeccion="",sNombreMasImporte="";

int iNumEmpleados,iAñosAntiguedad,iNumVentas,iCantidadArticulos,iContadorArticulos=0,iNumPersonas,iNumExp,iContAdmin=0,iMinPersonas=1000,iSumaAnt=0;

char cTipoEmpleado;


float fPrecio,fSumPrecios=0,fVenta,fSumVentas=0,fMaxImporte=-1;


sNombreEmpleado=JOptionPane.showInputDialog(
"Introduce el nombre de un empleado");

while(!sNombreEmpleado.equals("fin"))
{
iAñosAntiguedad=Integer.parseInt(JOptionPane.showInputDialog(
"Años de antigüedad: "));

cTipoEmpleado=Character.toUpperCase(JOptionPane.showInputDialog(
"Tipo de empleado: ").charAt(0));

switch(cTipoEmpleado)
{
case 'V':
iNumVentas=Integer.parseInt(JOptionPane.showInputDialog(
"Nº de ventas"));

for(int i=0;i<iNumVentas;i++)
{
iCantidadArticulos=Integer.parseInt(JOptionPane.showInputDialog(
"Cantidad de artículos"));

fPrecio=Float.parseFloat(JOptionPane.showInputDialog(
"Precio unitario del artículo "+(i+1)+"º: "));

fSumPrecios=fSumPrecios+fPrecio;

fVenta=(
float)(iCantidadArticulos/fPrecio);

fSumVentas=fSumVentas+fVenta;
//importe total vendido

if(fSumVentas>fMaxImporte)
{
sNombreMasImporte=sNombreEmpleado;

}
}
break;

case 'J':
sNombreSeccion=JOptionPane.showInputDialog(
"Nombre de la sección: ");
iNumPersonas=Integer.parseInt(JOptionPane.showInputDialog(
"Número de personas de la sección: "));
sJefeSeccion=JOptionPane.showInputDialog(
"Jefe de sección: ");

if(iNumPersonas<iMinPersonas)
{
sNombreMinSeccion=sNombreSeccion;
sJefeMinSeccion=sJefeSeccion;

}
break;

case 'A':
iNumExp=Integer.parseInt(JOptionPane.showInputDialog(
"Número de expediente: "));

if(iNumExp<20)
{
iSumaAnt=iSumaAnt+iAñosAntiguedad;
iContAdmin++;

}
break;

default:
JOptionPane.showMessageDialog(
null,"Esa letra no representa ningún tipo de empleado");
}
sNombreEmpleado=JOptionPane.showInputDialog(
"Introduce el nombre de un empleado");
}

JOptionPane.showMessageDialog(
null,"Media de precio de los articulos vendidos: " + (fSumPrecios/fSumVentas)); // Media de precio de los artículos vendidos. (1 punto)
JOptionPane.showMessageDialog(null,"Vendedor con más importe total vendido: " + sNombreMasImporte ); //Nombre del vendedor con más importe total vendido. (1 punto)
JOptionPane.showMessageDialog(null,"Porcentaje de empleados que son administrativos: " + (float)(iContAdmin/100));
JOptionPane.showMessageDialog(
null,"Nombre de la sección con menos personas: " + sNombreMinSeccion);
JOptionPane.showMessageDialog(
null,"Nombre del jefe de la sección con menos personas: " + sJefeMinSeccion);
JOptionPane.showMessageDialog(
null,"Media de antigüedad de los administrativos que tienen menos de 20 expedientes tramitados: " + iSumaAnt/iContAdmin);

}
}

No hay comentarios:

Publicar un comentario

Nota: solo los miembros de este blog pueden publicar comentarios.