lunes, 1 de marzo de 2010

P1E12 – Calcular sueldo neto de trabajador

Se te recomienda antes de hacer cualquier ejercicio leerlo completamente, al estarlo realizando anota todas las preguntas o dudas que te surjan para su aclaración en clase, así como los elementos nuevos que descubras.

Recuerda que no se trata de copiar y pegar o de transcribir contenidos, ante todo es descubrir su operatividad y comprobar su funcionalidad.

Se desea elaborar la boleta de pago de los trabajadores de una fábrica. Para ello se cuenta con los siguientes datos de entrada:

Apellidos y nombres del trabajador

Sueldo básico

Horas extras trabajadas

Además, se sabe que los trabajadores laboran en dos turnos: diurno y nocturno. Y que la tarifa por las horas extras diurnas es de 10 pesos y por las horas extras nocturnas es de 15 pesos.

Los descuentos a aplicar son sobre el sueldo básico y se obtienen de la siguiente manera:

dblRenta = dblSueldoBasico * 0.1

dblFonavi = dblSueldoBasico * 0.07

dblISR = dblSueldoBasico * 0.03

Finalmente el sueldo neto del trabajador se calcula mediante las siguientes expresiones:

dblIngresos = dblSueldoBasico + intHorasExtras * dblPagoHoraExtra

dblEgresos = dblRenta + dblFonavi + dblISR

dblSueldoNeto = dblIngresos - dblEgresos

El diseño de la interfaz deberá ser similar a la figura mostrada:

clip_image002

Para el desarrollo de esta aplicación, proceda a ubicar los siguientes controles en el formulario:

2 marcos

5 etiquetas

8 cajas de texto

2 botones de opción

3 casillas de verificación

3 botones de comando

Luego, proceda a establecer las propiedades según se indica a continuación:

Form1

Nombre

frmBoletaDePago

BorderStyle

3-Fixed Dialog

Caption

Boleta de pago

Moveable

False

Label1

Nombre

lblTrabajador

AutoSize

True

Caption

Trabajador:

Label2

Nombre

lblSueldoBasico

AutoSize

True

Caption

Sueldo Bruto

Label3

Nombre

lblHorasExtras

AutoSize

True

Caption

Horas extras:

Label4

Nombre

lblPagoHoraExtra

AutoSize

True

Caption

Pago hora extra

Label5

Nombre

lblSueldoNeto

AutoSize

True

Caption

Sueldo neto

Text1

Nombre

txtTrabajador

Text

Text2

Nombre

txtSueldoBasico

Text

Text3

Nombre

txtHorasExtras

Text

Text4

Nombre

txtPagoHoraExtra

BackColor

&H80000004&

Text

Text5

Nombre

txtRenta

BackColor

&H80000004&

Locked

True

Text

Text6

Nombre

txtFonavi

BackColor

&H80000004&

Locked

True

Text

Text7

Nombre

txtISR

BackColor

&H80000004&

Locked

True

Text

Text8

Nombre

txtSueldoNeto

BackColor

&H80000004&

Locked

True

Text

option1

Nombre

optDiurno

Caption

Diurno

Value

True

option2

Nombre

optNocturno

Caption

Nocturno

Value

False

Check1

Nombre

chkRenta

Caption

Renta

Check2

Nombre

chkFonavi

Caption

Fonavi

Check3

Nombre

chkISR

Caption

ISR

Command1

Nombre

cmdAceptar

Caption

&Aceptar

Default

True

Command2

Nombre

cmdLimpiar

Caption

&Limpiar

Command3

Nombre

cmdSalir

Cancel

True

Caption

&Salir

Una vez establecidas las propiedades, proceda a ingresar el código que se indica a continuación:

Private Sub cmdAceptar_Click()

Dim dblSueldoBasico As Double

Dim intHorasExtras As Integer, dblPagoHoraExtra As Double

Dim dblRenta As Double, dblFonavi As Double, dblISR As Double

Dim dblIngresos As Double, dblEgresos As Double

Dim dblSueldoNeto As Double

dblSueldoBasico = Val(txtSueldoBasico.Text)

intHorasExtras = Val(txtHorasExtras.Text)

If optDiurno.Value Then

dblPagoHoraExtra = 10

End If

If optNocturno.Value Then

dblPagoHoraExtra = 15

End If

If chkRenta.Value Then

dblRenta = dblSueldoBasico * 0.1

Else

dblRenta = 0

End If

If chkFonavi.Value Then

dblFonavi = dblSueldoBasico * 0.07

Else

dblFonavi = 0

End If

If chkISR.Value Then

dblISR = dblSueldoBasico * 0.03

Else

dblISR = 0

End If

dblIngresos = dblSueldoBasico + intHorasExtras * dblPagoHoraExtra

dblEgresos = dblRenta + dblFonavi + dblISR

dblSueldoNeto = dblIngresos - dblEgresos

txtPagoHoraExtra.Text = Str(dblPagoHoraExtra)

txtRenta.Text = Str(dblRenta)

txtFonavi = Str(dblFonavi) : txtISR = Str(dblISR)

txtSueldoNeto = Str(dblSueldoNeto)

End Sub

Private Sub cmdSalir_Click()

End

End Sub

Guarde y ejecute su aplicación.

Anote sus observaciones:

- Que descubriste que sucede con el siguiente segmento de código:

If optDiurno.Value Then

dblPagoHoraExtra = 10

End If

If optNocturno.Value Then

dblPagoHoraExtra = 15

End If

- Consideras que es lo mismo utilizar opt y/o utilizar chk.

- En el siguiente segmento de código existe una condición, cuando se ejecutará la línea dblFonavi = 0.

If chkFonavi.Value Then

dblFonavi = dblSueldoBasico * 0.07

Else

dblFonavi = 0

End If

- Habiendo concluido el ejercicio. Describe la parte consideras necesario volver a repasar:

P1E11 Microsoft Flex Grid

Se te recomienda antes de hacer cualquier ejercicio leerlo completamente, al estarlo realizando anota todas las preguntas o dudas que te surjan para su aclaración en clase, así como los elementos nuevos que descubras.

Recuerda que no se trata de copiar y pegar o de transcribir contenidos, ante todo es descubrir su operatividad y comprobar su funcionalidad.

El menú de un restaurante rápido se muestra a continuación:

MENÚ

PRECIO

Hamburguesa

2.50

Cerveza

4.00

Gaseosa

3.00

Ensalada

1.50

Salchichas

2.00

Refresco

1.00

Sopa

1.50

Postre

1.50

Se desea construir una aplicación que calcule las ventas totales al final del día, así como los impuestos a pagar del 16%.

La interfaz de entrada y salida deberá ser similar a la figura mostrada a continuación:

clip_image002

Para el diseño del cuadro de menú utilizaremos el control Microsoft Hierarchical FlexGrid. Para tal fin, seleccione el Menú Proyecto y elija la opción Componentes:

clip_image004

A continuación active la casilla de verificación Microsoft Hierarchical FlexGrid Control 6.0 OLEDB y haga click sobre el botón Aceptar. En seguida este control se añadirá al Cuadro de Herramientas.

Para el desarrollo de esta aplicación, proceda a ubicar los siguientes controles en el formulario:

10 etiquetas

10 cajas de texto

1 control MSHFlexGrid

3 botones de comando

En seguida, elabore el diseño de entrada y salida. Para ello proceda a establecer las propiedades según se indica a continuación:

Form1

Nombre

frmRestaurante

BorderStyle

3-Fixed Dialog

Caption

Restaurante

Moveable

False

StartUpPosition

2-CenterScreen

Label1

Nombre

lblHamburguesa

AutoSize

True

Caption

Hamburguesa:

Label2

Nombre

lblCerveza

AutoSize

True

Caption

Cerveza:

 

Label3

Nombre

lblGaseosa

AutoSize

True

Caption

Gaseosa:

Label4

Nombre

lblEnsalada

AutoSize

True

Caption

Ensalada:

Label5

Nombre

lblSalchichas

AutoSize

True

Caption

Salchichas:

 

Label6

Nombre

lblRefresco

AutoSize

True

Caption

Refresco:

 

Label7

Nombre

lblSopa

AutoSize

True

Caption

Sopa:

 

Label8

Nombre

lblPostre

AutoSize

True

Caption

Postre:

 

Label9

Nombre

lblVentaTotal

Caption

Venta Total

 

Label10

Nombre

lblImpuesto

Caption

Impuesto

 

MSHFlexGrid1

Nombre

grdMenu

Font

Arial (Negrita 10)

FontFixed

Arial (Negrita 10)

 

Text1

Nombre

txtHamburguesa

Text

 

 

Text2

Nombre

txtCerveza

Text

 

Text3

Nombre

txtGaseosa

Text

 

Text4

Nombre

txtEnsalada

Text

 

Text5

Nombre

txtSalchichas

Text

 

Text6

Nombre

txtRefresco

Text

 

Text7

Nombre

txtSopa

Text

 

Text8

Nombre

txtPostre

Text

 

Text9

Nombre

txtVentaTotal

Locked

True

Text

 

Text10

Nombre

txtImpuesto

Locked

True

Text

 

Command1

Nombre

cmdAceptar

Caption

&Aceptar

Command2

Nombre

cmdLimpiar

Caption

&Limpiar

Command3

Nombre

cmdSalir

Caption

&Salir

Picture

C:\Archivos de programa\Microsoft Visual

Studio\Common\Graphics\Icons\Arrows\Point04.ico

Style

1-Graphical

En primer lugar debemos cargar los datos a la cuadrícula. Esto lo vamos a realizar en tiempo de ejecución al momento de cargarse en memoria el formulario. Para ello, haga doble click sobre el formulario y añada el siguiente código:

Private Sub Form_Load()

grdMenu.Cols = 2

grdMenu.Rows = 9

grdMenu.FixedCols = 0

grdMenu.FixedRows = 1

grdMenu.TextArray(0) = “Menú”

grdMenu.TextArray(1) = “Precio”

grdMenu.TextArray(2) = “Hamburguesa”

grdMenu.TextArray(3) = “2.50”

grdMenu.TextArray(4) = “Cerveza”

grdMenu.TextArray(5) = “4.00”

grdMenu.TextArray(6) = “Gaseosa”

grdMenu.TextArray(7) = “3.00”

grdMenu.TextArray(8) = “Ensalada”

grdMenu.TextArray(9) = “1.50”

grdMenu.TextArray(10) = “Salchichas”

grdMenu.TextArray(11) = “2.00”

grdMenu.TextArray(12) = “Refresco”

grdMenu.TextArray(13) = “1.00”

grdMenu.TextArray(14) = “Sopa”

grdMenu.TextArray(15) = “1.50”

grdMenu.TextArray(16) = “Postre”

grdMenu.TextArray(17) = “1.50”

End Sub

Luego debemos añadir el código que se encargará de realizar los cálculos. Para tal fin haga doble clic sobre el botón Aceptar y proceda a ingresar lo siguiente:

Private Sub cmdAceptar_Click()

Dim intHamburguesa As Integer, intCerveza As Integer

Dim intGaseosa As Integer, intEnsalada As Integer

Dim intSalchichas As Integer, intRefresco As Integer

Dim intSopa As Integer, intPostre As Integer

Dim dblVentaTotal As Double, dblImpuesto As Double

intHamburguesa = Val(txtHamburguesa.Text)

intCerveza = Val(txtCerveza.Text)

intGaseosa = Val(txtGaseosa.Text)

intEnsalada = Val(txtEnsalada.Text)

intSalchichas = Val(txtSalchichas.Text)

intRefresco = Val(txtRefresco.Text)

intSopa = Val(txtSopa.Text)

intPostre = Val(txtPostre.Text)

dblVentaTotal = intHamburguesa * 2.5 + intCerveza * 4.0 _

+ intGaseosa * 3.0 + intEnsalada * 1.5 + intSalchichas * 2.0 _

+ intRefresco * 1.0 + intSopa * 1.5 + intPostre * 1.5

dblImpuesto = 0.18 * dblVentaTotal

txtVentaTotal.Text = Str(dblVentaTotal)

txtImpuesto.Text = Str(dblImpuesto)

End Sub

Luego, haga doble clic sobre el botón Limpiar y añada el siguiente código:

Private Sub cmdLimpiar_Click()

txtHamburguesa.Text = “” : txtCerveza.Text = “”

txtGaseosa.Text = “” : txtEnsalada.Text = “”

txtSalchichas.Text = “” : txtRefresco.Text = “”

txtSopa.Text = “” : txtPostre.Text = “”

txtVentaTotal.Text = “” : txtImpuesto.Text = “”

txtHamburguesa.SetFocus

End Sub

A continuación haga doble clic sobre el botón Salir y añada el siguiente código:

Private Sub cmdSalir_Click()

End

End Sub

Guarde y ejecute su aplicación.

Al terminar conteste los siguientes puntos:

  • Señale como se agrega un componente que no aparece en la Caja de Herramientas común.
  • Cuando utilizarías la propiedad Locked de un Textbox:
  • Para que se utiliza la propiedad Picture en un Command. Para su correcto funcionamiento, de que otra propiedad requiere.
  • Cual es la función que desempeñan los dos puntos en el procedimiento de Limpiar.
  • De esta practica, describe lo que no entendiste o que consideras requiere de más práctica.