ejercicios programacion en consola c#
DESCRIPTION
Programacion consolaTRANSCRIPT
UNIVERSIDAD RICARDO PALMA
FACULTAD DE INGENIERÍA
Escuela Profesional de Ingeniería Industrial
ALGORITMOS COMPUTACIONALES
PROYECTO
GRUPO 3
INTEGRANTES:
VILCHEZ ORCON HAYDEE PILAR 201021201
PROFESOR:
CEBREROS DELGADO DE LA FLOR
FECHA:
10 DE JUNIO
2012 - I
BASE TEÓRICA
El programa que realizaremos nos ayudara a generar una boleta de pago teniendo en cuenta los descuentos que realizan en una empresa. Lleva como título “BOLETA DE PAGO DE REMUNERACIONES DE TRABAJADORES”.
Nuestro programa consiste en ingresar la cantidad de obreros de una línea de producción, seguidamente el programa nos debe mostrar una lista donde nos pida ingresar una información de cada trabajador (nombre, DNI, Remuneración, Días trabajados, Porcentaje de AFP, Días de falta y Numero de tardanzas) y realizando distintas operaciones obtener finalmente el sueldo neto de cada trabajador.
Comenzamos utilizando una instrucción que permita controlar de una u otra manera algunos o todos los errores posibles que pueden ocurrir en un bloque de código determinado (Try- Cath). En este caso, al ingresar la cantidad de obreros (num =short), el usuario digita un letra, un numero decimal u otra información 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 simultáneamente. Cada uno de estos valores se identifica mediante un número (posición) al cual se llama índice. Así, para acceder el primer elemento del arreglo habría 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 continuación explicaremos cada arreglo:
Nombre [i] = Nos permite almacenar el nombre de cada trabajador que ingresemos.
DNI [i] = Almacenara el número de DNI de cada trabajador.
Días [i] = Este arreglo almacenara los días trabajados de cada trabajador.
Diasfalta [i] = Almacenara la cantidad de días 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.
Remuneración [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 número)
por cada trabajador.
xAFP [i] = Aquí se reservara el descuento que se realizara a cada trabajador, luego de
realizar una operación matemática que consiste en multiplicar el porcentaje de AFP y la
remuneración.
vxdía [i] = En este arreglo se guardara el valor por cada día 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 operación:
vxhora[i] *diastardanza [i]
totFalta [i] = En este arreglo se reservara la cantidad de descuento por el total de días
faltados de cada trabajador, y también, para encontrar esta cantidad se tiene que realizar
la siguiente operación:
vxdia [i] *diasFalta [i]
totDesc [i] = Se almacenara la cantidad total de descuento que se va a disminuir a cada
trabajador.
Seguidamente añadiremos 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 instrucción 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 instrucción y añadimos el “System.Console.Clear “que me
permite limpiar la pantalla y seguir con las demás instrucciones.
Procederemos con el proceso de cálculo, aquí utilizaremos las siguientes operaciones:
xAFP = (AFP [i]/100) * Remuneracion [i]
vxdia [i] = Remuneracion[i] / 30
vxhora [i] = vxdia[i] / 8
x [i] = Remuneración [i] *SS
Dentro de la instrucción for añadimos dos instrucciones if para obtener la cantidad total
de descuento por tardanza y la cantidad total de descuento por faltas. Si el número de
tardanzas es mayor que 0, entonces utilizaremos la siguiente formula: totTardanza [i] =
vxhora [i] y si el número de faltas es mayor que 0, entonces utilizaremos la siguiente
formula: XAFP [i] + x[i].
Finalizamos con el proceso de salida, donde utilizaremos la instrucción 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 “= ((Remuneración [i]) – (totDesc[i] ,2))
Para esta última sección utilizaremos “System.Console.Set Cursor Position (x,y)” , el
cual nos ayudara a darle una posición a cada dato de salida y así poder formar columnas.
También 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
INICIO
SS= const; i= int
Ingresar “num”
num = int
i = 0 (+1)… num
Nombre [i]DNI [i]Días Trabajados [i]Remuneración [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] = Remuneración [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]
CODIFICACION
using System;using System.Collections.Generic;using System.Linq;using System.Text;
namespace ConsoleApplication4{ class Program { static void Main(string[] args) { //PROCESO DE DESCRIPCION DEL ARRAY short num=0; do { try {
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 “+ (Remuneración [i] – (totDesc[i])
FIN
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 través 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 codificación hemos logrado indagar nuevas
instrucciones que nos ayudaran a tener una mejor presentación 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 número
indefinido de trabajadores obteniendo como resultado el sueldo neto para
cada trabajador.