Está en la página 1de 12

UNIVERSIDAD RICARDO PALMA

FACULTAD DE INGENIERA Escuela Profesional de Ingeniera Industrial

ALGORITMOS COMPUTACIONALES PROYECTO

GRUPO 3

INTEGRANTES: 201021201

VILCHEZ ORCON HAYDEE PILAR

PROFESOR: CEBREROS DELGADO DE LA FLOR FECHA: 10 DE JUNIO

2012 - I

BASE TERICA

El programa que realizaremos nos ayudara a generar una boleta de pago teniendo en cuenta los descuentos que realizan en una empresa. Lleva como ttulo BOLETA DE PAGO DE REMUNERACIONES DE TRABAJADORES. Nuestro programa consiste en ingresar la cantidad de obreros de una lnea de produccin, seguidamente el programa nos debe mostrar una lista donde nos pida ingresar una informacin de cada trabajador (nombre, DNI, Remuneracin, Das trabajados, Porcentaje de AFP, Das de falta y Numero de tardanzas) y realizando distintas operaciones obtener finalmente el sueldo neto de cada trabajador. Comenzamos utilizando una instruccin que permita controlar de una u otra manera algunos o todos los errores posibles que pueden ocurrir en un bloque de cdigo determinado (Try- Cath). En este caso, al ingresar la cantidad de obreros (num =short), el usuario digita un letra, un numero decimal u otra informacin incompatible, entonces el programa no se detendr, sino continuara pidiendo que ingrese la cantidad de trabajadores hasta que se logre coincidir con lo que declaramos al comienzo. Luego procederemos a declarar los arreglos, un arreglo viene a ser un indicador que puede llegar a almacenar varios valores simultneamente. Cada uno de estos valores se identifica mediante un nmero (posicin) al cual se llama ndice. As, para acceder el primer elemento del arreglo habra que usar el ndice cero, para el segundo ndice uno, para el tercero dos, y as sucesivamente. En nuestro programa tenemos los siguientes arreglos:

string[] Nombre =new string[num]; string[] DNI =new string[num]; int[] Dias =new int[num]; int[] Diasfalta =new int[num]; int[] Diastardanza =new int[num]; double[] x =new double[num]; double[] Remuneracion = new double [num]; double[] AFP =new double[num]; double[] xAFP =new double[num];

double[] vxdia =new double[num]; double[] vxhora =new double[num]; double[] totTardanza =new double[num]; double[] totFaltas =new double[num]; double[] totDesc =new double[num];

A continuacin explicaremos cada arreglo: Nombre [i] = Nos permite almacenar el nombre de cada trabajador que ingresemos. DNI [i] = Almacenara el nmero de DNI de cada trabajador. Das [i] = Este arreglo almacenara los das trabajados de cada trabajador. Diasfalta [i] = Almacenara la cantidad de das que falto cada trabajador. Diastardanza [i] = Almacenara la cantidad de tardanzas que tiene cada trabajador. X [i] = Este arreglo recepcionar el descuento del seguro social para cada trabajador. Remuneracin [i] = Aqu se acumulara el sueldo que se le otorga a cada trabajador. AFP [i] = En este arreglo se almacenara la cantidad de descuento de AFP (en nmero) por cada trabajador. xAFP [i] = Aqu se reservara el descuento que se realizara a cada trabajador, luego de realizar una operacin matemtica que consiste en multiplicar el porcentaje de AFP y la remuneracin. vxda [i] = En este arreglo se guardara el valor por cada da trabajado ad cada trabajador. vxhora [i] = En este arreglo se guardara el valor por hora de cada trabajador. totTardanza [i] = Aqu se almacenara la cantidad de descuento por el total de tardanzas de cada empleado, para ello se realizar la siguiente operacin: vxhora[i] *diastardanza [i]

totFalta [i] = En este arreglo se reservara la cantidad de descuento por el total de das faltados de cada trabajador, y tambin, para encontrar esta cantidad se tiene que realizar la siguiente operacin: vxdia [i] *diasFalta [i] totDesc [i] = Se almacenara la cantidad total de descuento que se va a disminuir a cada trabajador. Seguidamente aadiremos la variable que en este caso es i (contador) y la constante SS =0.10 que es el porcentaje de descuento del seguro social. Continuamos con el proceso de entrada, en el cual utilizaremos la instruccin for que nos permite leer desde el ndice cero hasta el ndice num .Luego de digitar los datos que vamos a requerir para diversas operaciones que se tiene que realizar para obtener el sueldo neto, terminamos con la instruccin y aadimos el System.Console.Clear que me permite limpiar la pantalla y seguir con las dems instrucciones. Procederemos con el proceso de clculo, aqu utilizaremos las siguientes operaciones: xAFP = (AFP [i]/100) * Remuneracion [i] vxdia [i] = Remuneracion[i] / 30 vxhora [i] = vxdia[i] / 8 x [i] = Remuneracin [i] *SS Dentro de la instruccin for aadimos dos instrucciones if para obtener la cantidad total de descuento por tardanza y la cantidad total de descuento por faltas. Si el nmero de tardanzas es mayor que 0, entonces utilizaremos la siguiente formula: totTardanza [i] = vxhora [i] y si el nmero de faltas es mayor que 0, entonces utilizaremos la siguiente formula: XAFP [i] + x[i]. Finalizamos con el proceso de salida, donde utilizaremos la instruccin for imprimiendo los resultados de salida que son: Personal = Nombre [i] AFP = (xAFP [i], 2)

Desc. Tardanza = (totTardanza [i] ,2) Desc. Falta = (totFaltas [i] ,2) Desc. Seguro= (x [i] ,2) Desc. Total = (totDesc [i] ,2) Total Pagar = ((Remuneracin [i]) (totDesc[i] ,2)) Para esta ltima seccin utilizaremos System.Console.Set Cursor Position (x,y) , el cual nos ayudara a darle una posicin a cada dato de salida y as poder formar columnas. Tambin utilizaremos Math.Round (variable[i], 2), el cual me va a permitir redondear a dos decimales cada resultado obtenido. El programa finaliza de esta forma:

DIAGRAMA DE FLUJO INICI O


SS= const; i= int

Ingresar num

num = int

i = 0 (+1) num Nombre [i] DNI [i] Das Trabajados [i] Remuneracin [i] AFP [i] Dias Falta [i] Dias Tardanza [i]

i = 0 (+1) num

xAFP = (AFP [i]/100) * Remuneracion [i] vxdia [i] = Remuneracion[i] / 30 vxhora [i] = vxdia[i] / 8 x [i] = Remuneracin [i] *SS

diasTardanza [i] >0

totTardanza[i] = vxhora[i] * diasTardanza[i] Escribir totTardanza [i]

diasFalta [i] > 0

totFalta[i] = vxhora[i] * diasFalta[i] Escribir totFaltas [i]

totDesc[i] = totFaltas[i] + totTardanzas[i] + xAFP[i] + x[i]

i = 0 (+1) num Personal + Nombre [i] AFP + (xAFP [i] Desc. Tardanza + (totTardanza [i] Desc. Falta + totFaltas [i] Desc. Seguro+ x [i] Desc. Total + totDesc [i] Total Pagar + (Remuneracin [i] (totDesc[i])

FIN

CODIFICACION

using using using using

System; System.Collections.Generic; System.Linq; System.Text;

namespace ConsoleApplication4 { class Program { static void Main(string[] args) { //PROCESO DE DESCRIPCION DEL ARRAY short num=0; do { try { Console.WriteLine("Cuantos trabajadores va a ingresar?"); num =short.Parse(Console.ReadLine()); } catch { continue; } } while (num ==0); Console.Clear(); //DECLARACION DE INSTANCIACION DEL ARRAY string[] Nombre =new string[num]; string[] DNI =new string[num]; int[] Dias =new int[num]; int[] Diasfalta =new int[num]; int[] Diastardanza =new int[num]; double[] x =new double[num]; double[] Remuneracion = new double [num]; double[] AFP =new double[num]; double[] xAFP =new double[num]; double[] vxdia =new double[num]; double[] vxhora =new double[num]; double[] totTardanza =new double[num]; double[] totFaltas =new double[num]; double[] totDesc =new double[num]; //DECLARACION DE VARIABLES int i; //CONSTANTE const double SS= 0.10;

//PROGRESO DE INGRESO

Console.WriteLine("BOLETA DE PAGO DE REMUNERACIONES DE TRABAJADORES"); Console.WriteLine("------------------------------------------------"); for(i=0 ; i<num; i++) { Console.WriteLine("--------------Trabajador"+i+"--------------"); Console.WriteLine("Ingrese el nombre del trabajador"); Nombre [i] =Console.ReadLine(); Console.WriteLine("Ingrese Numero del DNI"); DNI [i] =Console.ReadLine(); Console.WriteLine("Ingrese los dias trabajados"); Dias [i] =int.Parse(Console.ReadLine()); Console.WriteLine("Ingrese Remuneracion"); Remuneracion [i] =double.Parse(Console.ReadLine()); Console.WriteLine("Ingrese porcentaje de AFP"); AFP [i] =double.Parse(Console.ReadLine()); Console.WriteLine("Ingrese los dias de falta"); Diasfalta [i] =int.Parse(Console.ReadLine()); Console.WriteLine("Numero de tardanzas"); Diastardanza [i] =int.Parse(Console.ReadLine()); } Console.Clear(); //PROCESO DE CALCULO for(i=0; i<num; i++) { xAFP[i] = (AFP[i]/100)*Remuneracion[i]; vxdia[i] = Remuneracion[i]/30; vxhora[i] = vxdia[i]/8; x[i] = Remuneracion[i]*SS; if(Diastardanza[i]>0) { totTardanza[i] = vxhora[i]*Diastardanza[i]; } if(Diasfalta[i]>0) { totFaltas[i] = vxdia[i]*Diasfalta[i]; } totDesc[i] = totFaltas[i] +totTardanza[i] + xAFP[i] +x[i]; } //RESULTADOS Console.WriteLine(); Console.SetCursorPosition(35,2); Console.WriteLine("Planilla de Trabajadores"); Console.SetCursorPosition(35,3); Console.WriteLine("---------------"); Console.SetCursorPosition(1,5); Console.WriteLine("Personal"); Console.SetCursorPosition(10,5); Console.WriteLine("AFP"); Console.SetCursorPosition(16,5); Console.WriteLine("Desc. Tardanza"); Console.SetCursorPosition(30,5); Console.WriteLine("Desc. Falta"); Console.SetCursorPosition(41,5); Console.WriteLine("Desc. Seguro"); Console.SetCursorPosition(53,5);

Console.WriteLine("Desc. Total"); Console.SetCursorPosition(65,5); Console.WriteLine("Total a pagar"); Console.SetCursorPosition(16,5); int xpos = 6; for (i=0; i<num; i++) { Console.SetCursorPosition(1,xpos); Console.WriteLine(Nombre[i]); Console.SetCursorPosition(10,xpos); Console.WriteLine(Math.Round(xAFP[i],2)); Console.SetCursorPosition(30,xpos); Console.WriteLine(Math.Round(totTardanza[i],2)); Console.SetCursorPosition(41,xpos); Console.WriteLine(Math.Round(x[i],2)); Console.SetCursorPosition(53,xpos); Console.WriteLine(Math.Round(totDesc[i],2)); Console.SetCursorPosition(65,xpos); Console.WriteLine(Math.Round(Remuneracion[i]-totDesc[i]- totDesc[i],2)); xpos++; } //PAUSA ANTES DE SALIR string a= Console.ReadLine();

} } }

CONCLUSIONES

A travs de este proyecto podemos tener un seguimiento detallado de los ingresos y descuentos que se le hace a un trabajador de una empresa y aplicarlo a distintos tipos de casos. Dentro de la codificacin hemos logrado indagar nuevas instrucciones que nos ayudaran a tener una mejor presentacin y orden, este es el caso del System.Console, Set Cursor Position (x, y), try catch, Math.Round (variable[i] ,2) y System.Console. Clear . En este programa tenemos la facilidad de ingresar un nmero indefinido de trabajadores obteniendo como resultado el sueldo neto para cada trabajador.

También podría gustarte