Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Una empresa que fabrica piezas torneadas para vehículos, paga a sus empleados de acuerdo
a las horas trabajadas y a una tarifa de pago por hora, de acuerdo a la siguiente tabla:
Categoría tarifa
1 12000
2 17000
3 22000
CODIGO
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace laboratorio19
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
int tipotarifa;
double tarifa1 = 12000;
double tarifa2 = 17000;
double tarifa3 = 22000;
double Horas = 0;
double Sueldo;
double sueldoTotal;
/* Nodo T
*/
if (string.IsNullOrEmpty(txtHorasTrabajadas.Text))
{
MessageBox.Show("No ha introducido horas validas", "Horas",
MessageBoxButtons.OK, MessageBoxIcon.Information);
return;
}
else {
Horas = Convert.ToDouble(txtHorasTrabajadas.Text);
}
/* Nodo P
*/
if (string.IsNullOrEmpty(txtCateTarifa.Text))
{
MessageBox.Show("No ha Seleccionado una tarifa", "Tarifa",
MessageBoxButtons.OK, MessageBoxIcon.Information);
return;
}
else
{
tipotarifa = Convert.ToInt32(txtCateTarifa.Text);
}
/* Categoria 1
*/
/* Nodo A
*/
switch (tipotarifa)
{
/* Nodo B
*/
case 1:
{
/* Nodo C
*/
if (Horas>40)
{
/* Nodo G
*/
Sueldo = Horas * tarifa1;
/* Nodo D
*/
sueldoTotal = Sueldo + (Sueldo * 0.25);
/* Nodo E
*/
txtSalarioTrabajador.Text = sueldoTotal.ToString();
break;
}
/* Nodo F
*/
else
{
/* Nodo G
*/
Sueldo = Horas * tarifa1;
/* Nodo I
*/
sueldoTotal = Sueldo;
/* Nodo J
*/
txtSalarioTrabajador.Text = sueldoTotal.ToString();
break;
}
/* Categoria 2
*/
/* Nodo B
*/
case 2:
{
/* Nodo C
*/
if (Horas > 40)
{
/* Nodo G
*/
Sueldo = Horas * tarifa2;
/* Nodo D
*/
sueldoTotal = Sueldo + (Sueldo * 0.25);
/* Nodo E
*/
txtSalarioTrabajador.Text = sueldoTotal.ToString();
break;
}
/* Nodo F
*/
else
{
/* Nodo G
*/
Sueldo = Horas * tarifa2;
/* Nodo I
*/
sueldoTotal = Sueldo;
/* Nodo J
*/
txtSalarioTrabajador.Text = sueldoTotal.ToString();
break;
}
/* Categoria 3
*/
/* Nodo B
*/
case 3:
{
/* Nodo C
*/
if (Horas > 40)
{
/* Nodo G
*/
Sueldo = Horas * tarifa3;
/* Nodo D
*/
sueldoTotal = Sueldo + (Sueldo * 0.25);
/* Nodo E
*/
txtSalarioTrabajador.Text = sueldoTotal.ToString();
break;
}
/* Nodo F
*/
else
{
/* Nodo G
*/
Sueldo = Horas * tarifa3;
/* Nodo I
*/
sueldoTotal = Sueldo;
/* Nodo J
*/
txtSalarioTrabajador.Text = sueldoTotal.ToString();
break;
}
default:
MessageBox.Show("No ha selecionado una Tarifa", "Tarifa",
MessageBoxButtons.OK, MessageBoxIcon.Information);
break;
}
}
{
e.Handled = false;
else if (char.IsPunctuation(e.KeyChar))
{
e.Handled = false;
}
else
{
e.Handled = true;
}
}
}
}
INFORME HORAS
D T
TARIFA
W
2 3
CON HORAS SIN HORAS
EXTRAS C EXTRAS
4 5 6 7 8 9
10 11
12 13 14 15
SUELDO
E SUELDO CON
HORAS EXTRAS
L
17
16
SUELDO TOTAL
18
M
2. Complejidad ciclomática
V(G) = #Aristas - #Nodos + 2
V(CDM) = 18-14+2=6
ARISTRAS
CAMINOS 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 1 1 19 2 CASOS PRUEBA
6 7 8 0
TDM 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 Default
TBAEKM 1 1 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 sueldo=tarifa*hora
s;
TBAFKM 1 1 0 0 1 0 0 0 0 0 1 1 0 0 0 0 1 0 0 0 sueldo=tarifa*hora
s
TBAGKM 1 1 0 0 0 1 0 0 0 0 0 1 1 0 0 0 1 0 0 0 sueldo=tarifa*hora
s;
TBCHLM 1 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 sueldoTotal=sueldo
+sueldo*2
5/100;
TBCILM 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 sueldoTotal=sueldo
+sueldo*2
5/100;
TBCJLM 1 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 sueldoTotal=sueldo
+sueldo*2
5/100;
Prueba de condición
D1: (Categoría=1)
C1.1 Categoría=1
E1: (Categoría=2)
C3.1 Categoría=2
E2: (Horas extras>40)
C4.1 Horas extras>40
F1: (Categoría=3)
C5.1 Categoría=3
Caso de prueba 1:
C1.1=Verdadero; C2.1=Verdadero;
(Categoría=1; Horas extras=41)
Caso de prueba 2:
C1.1=Verdadero; C2.1=Falso;
(Categoría=1; Horas extras=39)
Caso de prueba 3:
C1.1=Falso; C2.1=Verdadero;
(Categoría=2)
Caso de prueba 4:
C3.1=Verdadero; C4.1=Verdadero;
(Categoría=2; Horas extras=41)
Caso de prueba 5:
C3.1=Verdadero; C4.1=Falso;
(Categoría=2; Horas extras=39)
Caso de prueba 6:
C3.1=Falso; C4.1=Verdadero;
(Categoría=3)
Caso de prueba 7:
C5.1=Verdadero; C6.1=Verdadero;
(Categoría=3; Horas extras=41)
Caso de prueba 8:
C5.1=Verdadero; C6.1=Falso;
(Categoría=3; Horas extras=39)
Caso de prueba 9:
C5.1=Falso; C6.1=Verdadero;
(Categoría=1)
Partición de equivalencia
Caso de prueba 1:
1=Valida; 2=Valida;
(Categoría=1; Horas extras=41)
Caso de prueba 2:
1=Valida; 2=Invalida;
(Categoría=1; Horas extras=39)
Caso de prueba 3:
1= Invalida; 2= Valida;
(Categoría=2)
Caso de prueba 4:
3= Valida; 4= Valida;
(Categoría=2; Horas extras=41)
Caso de prueba 5:
3= Valida; 4= Invalida;
(Categoría=2; Horas extras=39)
Caso de prueba 6:
3= Invalida; 4= Valida;
(Categoría=3)
Caso de prueba 7:
5= Valida; 6= Valida;
(Categoría=3; Horas extras=41)
Caso de prueba 8:
5= Valida; 6=Invalida;
(Categoría=3; Horas extras=39)
Caso de prueba 9:
5=Invalida; 6= Valida;
(Categoría=1)
Caso de prueba 1:
1=Verdadero; 2=Verdadero;
(Categoría=1; Horas extras=90000.1)
Caso de prueba 2:
1= Verdadero; 2=Falso;
(Categoría=1; Horas extras=0.00001)
Caso de prueba 3:
1= Falso; 2= Verdadero;
(Categoría=2)
Caso de prueba 4:
3= Verdadero; 4= Verdadero;
(Categoría=2; Horas extras=90000.1)
Caso de prueba 5:
3= Verdadero; 4= Falso;
(Categoría=2; Horas extras=0.00001)
Caso de prueba 6:
3= Falso; 4= Verdadero;
(Categoría=3)
Caso de prueba 7:
5= Verdadero; 6= Verdadero;
(Categoría=3; Horas extras=90000.1)
Caso de prueba 8:
5= Verdadero; 6=Falso;
(Categoría=3; Horas extras=0.00001)
Caso de prueba 9:
5=Falso; 6= Verdadero;
(Categoría=1)