MANUAL TECNICO
1. Descripción del problema............................................................. 2
2. Propuesta de solución.......................................................................2
3. Representación de la solución (Pseudocódigo)................................3
4. Plan de pruebas ………………….. ...................................................11
5. Requerimientos mínimos de HW Y SW para el desarrollo
y mantenimiento ..................................................................................18
1. Descripción del problema
Requerimientos básicos
-El usuario podrá introducir números enteros tales como la clave y la
antigüedad, también cadena como el nombre, la plaza, departamento, y un
sueldo tipo real, por ejemplo: el programa pide el sueldo del empleado
entonces podrás introducir 3000 o más, en donde pide el nombre del empleado
podrá introducir una cadena por ejemplo: Antonio o Marco.
-El usuario podrá dar de alta a los empleados, consultar a los empleados su
información, generar un reporte general y de sueldo de todos los empleados.
-Se podrá editar o cambiar la información del empleado que elijamos de
acuerdo a su clave.
-El usuario podrá dar de baja a un empleado por su clave y por su edad.
Restricciones básicas
-El usuario no podrá introducir números negativos por ejemplo: en el sueldo
poner -4000, en el nombre de empleado tipo cadena no podrá introducir
números solo palabras.
-Los operadores válidos podrán ser +, -, *, /, ^.
-Los operandos podrán ser números de un dígito (0 .. 9) o variables de una
letra (a..z) sin diferenciar entre mayúsculas y minúsculas, por ejemplo, a y A es
el mismo nombre de variable.
2. Propuesta de Solución
- En primer lugar lera los datos que el usuario ingrese: la clave, plaza,
departamento, sueldo, antigüedad
-Después el usuario dará de alta los datos que ingreso asignándoselos en el
vector empleado.
-Para consultar los empleados por medio de su clave, primero verificamos por
medio de una condición si la clave se encuentra o no, si se encuentra entonces
desplegara toda la información de ese empleado.
-Cuando se genera el reporte, recorremos todo el vector por medio de un ciclo,
para que valla escribiendo todos los datos que tenemos en el vector.
-Cuando generamos el reporte solo de los sueldos , lo realizamos también por
medio de un ciclo, pero primero verificamos que exista el sueldo ingresado de
los empleados para poder mostrar el reporte completo.
Limitantes
-La expresión infija solo puede construirse con los siguientes caracteres: (,),
+,-,*,/,^, ,0..9,a..z,A..Z.
-Los nombres de variable (a..z) serán de longitud uno. La letra ñ no puede ser
nombre de variable.
3. Representación de la solución
PROGRAM Gestion_empleados;
CONST
n = 100;
TYPE
Empleado = RECORD
clave: INTEGER;
nombre: [20] STRING;
plaza: [20] STRING;
departamento: [20] STRING;
sueldo: REAL;
antiguedad: INTEGER;
END;
TYPE
Empleados = ARRAY OF Empleado;
VAR
Empresa: Empleados;
opcion: INTERGER;
END;
PROCEDURE Lectura;
VAR
clave, antiguedad: INTEGER;
nombre[20], plaza[20], departamento[20]: STRING;
sueldo: REAL;
BEGIN
WRITE ('¿CUAL ES EL NOMBRE DEL EMPLEADO?')
READ (nombre[])
WRITE ('¿CUAL ES LA CLAVE DEL EMPLEADO?')
READ (clave)
WRITE ('¿QUE PLAZA OCUAPA EL EMPLEADO?')
READ (plaza)
WRITE ('¿EN QUE DEPARTAMENTO TRABAJA EL
EMPLEADO?')
READ (departamento[])
WRITE ('¿CUAL ES EL SUELDO DEL EMPLEADO?')
READ (sueldo)
WRITE ('¿QUE ANTIGÜEDAD TIENE EL EMPLEADO (En
meses)')
READ (antiguedad)
END;
PROCEDURE Altas (nombre [20], plaza[20], departamento[20]: STRING;
clave, antiguedad: INTEGER; sueldo: REAL; Empresa.Empleados: ARRAY);
VAR
i: INTEGER
BEGIN
i:=
Empresa.Empleados[i].nombre:= nombre;
Empresa.Empleados[i].clave:= clave;
Empresa.Empleados[i].plaza:= plaza;
Empresa.Empleados[i].departamento:= departamento;
Empresa.Empleados[i].sueldo:= sueldo;
Empresa.Empleados[i].antiguedad:= antigueda;
END;
PROCEDURE Consulta (clave: INTEGER; Empresa.Empleados: ARRAY);
VAR
i: INTEGER
BEGIN
i:= 0;
REPEAT
WRITE ('INGRESE LA CLAVE DEL EMPLEADO', clave)
READ (clave);
IF Empresa.Empleados[i].clave = clave THEN
WRITE ('EL NOMBRE DEL EMPLEADO ES: ',
Empresa.Empleados[i].nombre)
WRITE ('SU CLAVE DE IDENTIFICACION ES: ',
Empresa.Empleados[i].clave)
WRITE ('LA PLAZA QUE OCUAPA ES: ', Empresa.Empleados[i].plaza)
WRITE ('SE ENCUENTRA EN EL DEPARTAMENTO: ',
Empresa.Empleados[i].departamento)
WRITE ('SU SUELDO ES DE: ', Empresa.Empleados[i].sueldo, 'PESOS')
WRITE ('SU ANTIGÜEDAD ES DE: ', Empresa.Empleados[i]., 'MESES')
ELSE
i:=i+1
UNTIL Empresa.Empleados[i].clave = clave
END;
PROCEDURE Reporte_general (Empresa.Empleados: ARRAY);
VAR
i: INTEGER
BEGIN
FOR i:= 0 TO n DO
BEGIN
WRITE ('--------------------EMPLEADO ', i,'----------------------------')
WRITE ('EL NOMBRE DEL EMPLEADO ES: ',
Empresa.Empleados[i].nombre)
WRITE ('SU CLAVE DE IDENTIFICACION ES: ',
Empresa.Empleados[i].clave)
WRITE ('LA PLAZA QUE OCUAPA ES: ', Empresa.Empleados[i].plaza)
WRITE ('SE ENCUENTRA EN EL DEPARTAMENTO: ',
Empresa.Empleados[i].departamento)
WRITE ('SU SUELDO ES DE: ', Empresa.Empleados[i].sueldo, 'PESOS')
WRITE ('SU ANTIGÜEDAD ES DE: ', Empresa.Empleados[i]., 'MESES')
END
END;
PROCEDURE Reporte_sueldo (Empresa.Empleados: ARRAY; sueldo: REAL);
VAR
i: INTEGER
BEGIN
FOR i:=0 TO n DO
BEGIN
IF Empresa.Empleados.sueldo = sueldoTHEN
WRITE ('--------------------EMPLEADO ', i,'----------------------------')
WRITE ('EL NOMBRE DEL EMPLEADO ES: ',
Empresa.Empleados[i].nombre)
WRITE ('SU CLAVE DE IDENTIFICACION ES: ',
Empresa.Empleados[i].clave)
WRITE ('LA PLAZA QUE OCUAPA ES: ', Empresa.Empleados[i].plaza)
WRITE ('SE ENCUENTRA EN EL DEPARTAMENTO: ',
Empresa.Empleados[i].departamento)
WRITE ('SU SUELDO ES DE: ', Empresa.Empleados[i].sueldo, 'PESOS')
WRITE ('SU ANTIGÜEDAD ES DE: ', Empresa.Empleados[i]., 'MESES')
END
END;
PROCEDURE Editar (Empresa.Empleados: ARRAY; clave: INTEGER);
VAR
i:INTEGER
BEGIN
i:= 0;
REPEAT
IF Empresa.Empleados[i].clave = clave THEN
WRITE ('¿CUAL ES EL NOMBRE DEL EMPLEADO?')
READ (Empresa.Empleados[i].nombre)
WRITE ('¿QUE PLAZA OCUAPA EL EMPLEADO?')
READ (Empresa.Empleados[i].plaza)
WRITE ('¿EN QUE DEPARTAMENTO TRABAJA EL EMPLEADO?')
READ (Empresa.Empleados[i].departamento)
WRITE ('¿CUAL ES EL SUELDO DEL EMPLEADO?')
READ (Empresa.Empleados[i].sueldo)
WRITE ('¿QUE ANTIGÜEDAD TIENE EL EMPLEADO')
READ (Empresa.Empleados[i].antiguedad)
ELSE
i:=i+1
UNTIL Empresa.Empleados[i].clave = clave
END;
PROCEDURE Baja_clave (Empresa.Empleados: ARRAY; clave:
INTEGER);
VAR
i:INTEGER
BEGIN
i:= 0;
REPEAT
IF Empresa.Empleados[i].clave = clave
THEN
Empresa.Empleados[i].nombre:= 0
Empresa.Empleados[i].clave:= 0
Empresa.Empleados[i].plaza:= 0
Empresa.Empleados[i].departamento:=
0
Empresa.Empleados[i].sueldo:= 0
Empresa.Empleados[i].antiguedad:= 0
ELSE
i:=i+1
UNTIL Empresa.Empleados[i].clave = clave
END;
PROCEDURE Baja_edad (Empresa.Empleados: ARRAY; antigueda:
INTEGER);
VAR
i: INTEGER
BEGIN
FOR i:=0 TO n DO
BEGIN
IF Empresa.Empleados[i].antigueda > 35 THEN
Empresa.Empleados[i].nombre:= 0
Empresa.Empleados[i].clave:= 0
Empresa.Empleados[i].plaza:= 0
Empresa.Empleados[i].departamento:= 0
Empresa.Empleados[i].sueldo:= 0
Empresa.Empleados[i].antiguedad:= 0
END;
PROCEDURE Incrementar (Empresa.Empleados: ARRAY; sueldo: REAL);
VAR
i: INTEGER
z: REAL
BEGIN
FOR i:=0 TO n DO
BEGIN
IF Empresa.Empleados[i].sueldo < sueldo THEN
Empresa.Empleados[i].sueldo:= (Empresa.Empleados[i].sueldo +
(Empresa.Empleados[i].sueldo * Z));
END;
PROCEDURE menu;
WRITE (‘Opcion 1: Dar de alta a los empleados’);
WRITE (‘Opcion 2: Consultar los datos de un empleado según su clave’);
WRITE (‘Opcion 3: Generar un reporte general de los empleados’);
WRITE (‘Opcion 4: Generar un reporte del sueldo de los empleados’);
WRITE (‘Opcion 5: Modificar los datos de los empleados ’);
WRITE (‘Opcion 6: Dar de baja a un empleado según su clave’);
WRITE (‘Opcion 7: Dar de baja a un empleado según su edad’);
WRITE (‘Opcion 8: Incrementar el suelo de los empleados ’);
END;
BEGIN
WRITE ('Programa para gestionar los datos de los empleados');
WRITE ('', PROCEDURE (menu));
CASE opcion OF
'1' PROCEDIMIENTO Lectura (empledos[i]: arreglo);
'2' PROCEDIMENTO Consulta (empledos[i].clave): arreglo);
'3' PROCEDIMENTO Reporte_general (empledos: registro);
'4' PROCEDIMENTO Reporte_sueldo (empledos[i].sueldo):
arreglo);
'5' PROCEDIMENTO Editar (empledos: registro);
'6' PROCEDIMENTO Baja_clave (empledos: registro);
'7' PROCEDIMENTO Baja_edad (empledos: registro);
'8' PROCEDIMENTO Incrementar (empledos[i].sueldo: registro);
FIN_CASO
END.
4.Plan de pruebas
MEMORIA
CONSTANTES
n = 100;
TIPOS DE DATOS
Empleado = RECORD
clave:111,0
nombre: Luis,Luis, (VACIO)
plaza: programador, diseñador, (VACIO)
departamento: desarrollo, desarrollo, (VACIO)
sueldo: 7000, 10000,0
antiguedad: 12, 16,0
Empleados = ARRAY OF Empleado;
VARIABLES
Empresa: Empleados;
Opción: 1,2,3,4,5,6,7,8
PANTALLA
Programa para gestionar los datos de los empleados
Opción 1 : Dar de alta un empleado.
Opción 2 : Consultar los datos de un empleado según su clave.
Opción 3 : Generar un reporte de todos los empleados.
Opción 4 : Generar un reporte de todos los empleados según un rango de
sueldo dado (de $x a $y).
Opción 5 : Modificar los datos de un empleado (excepto su clave).
Opción 6 : Dar de baja un empleado según su clave.
Opción 7 : Dar de baja todos los empleados con antigüedad mayor a 35 años.
Opción 8 : Incrementar en x% el sueldo de todos los empleados que ganen
menos de $z.
¿CUAL ES EL NOMBRE DEL EMPLEADO?
Luis
¿CUAL ES LA CLAVE DEL EMPLEADO?
111
¿QUE PLAZA OCUAPA EL EMPLEADO?
programador
¿EN QUE DEPARTAMENTO TRABAJA EL EMPLEADO?
desarrollo
¿CUAL ES EL SUELDO DEL EMPLEADO?
7000
¿QUE ANTIGÜEDAD TIENE EL EMPLEADO (En meses)?
12
Programa para gestionar los datos de los empleados
Opción 1 : Dar de alta un empleado.
Opción 2 : Consultar los datos de un empleado según su clave.
Opción 3 : Generar un reporte de todos los empleados.
Opción 4 : Generar un reporte de todos los empleados según un rango de
sueldo dado (de $x a $y).
Opción 5 : Modificar los datos de un empleado (excepto su clave).
Opción 6 : Dar de baja un empleado según su clave.
Opción 7 : Dar de baja todos los empleados con antigüedad mayor a 35 años.
Opción 8 : Incrementar en x% el sueldo de todos los empleados que ganen
menos de $z.
--------------------EMPLEADO 1----------------------------
ESCRIBRE LA CLAVE DEL EMPLEADO QUE DESEAR BUSCAR
111
SU CLAVE DE IDENTIFICACION ES: 111
LA PLAZA QUE OCUAPA ES: programador
SE ENCUENTRA EN EL DEPARTAMENTO: desarrollo
SU SUELDO ES DE: 7000 PESOS
SU ANTIGÜEDAD ES DE: 12 MESES
Programa para gestionar los datos de los empleados
Opción 1 : Dar de alta un empleado.
Opción 2 : Consultar los datos de un empleado según su clave.
Opción 3 : Generar un reporte de todos los empleados.
Opción 4 : Generar un reporte de todos los empleados según un rango de
sueldo dado (de $x a $y).
Opción 5 : Modificar los datos de un empleado (excepto su clave).
Opción 6 : Dar de baja un empleado según su clave.
Opción 7 : Dar de baja todos los empleados con antigüedad mayor a 35 años.
Opción 8 : Incrementar en x% el sueldo de todos los empleados que ganen
menos de $z.
--------------------EMPLEADO 1----------------------------
EL NOMBRE DEL EMPLEADO ES: Luis
SU CLAVE DE IDENTIFICACION ES: 111
LA PLAZA QUE OCUAPA ES: programador
SE ENCUENTRA EN EL DEPARTAMENTO: desrrollo
SU SUELDO ES DE: 7000 PESOS
SU ANTIGÜEDAD ES DE: 12 MESES
Programa para gestionar los datos de los empleados
Opción 1 : Dar de alta un empleado.
Opción 2 : Consultar los datos de un empleado según su clave.
Opción 3 : Generar un reporte de todos los empleados.
Opción 4 : Generar un reporte de todos los empleados según un rango de
sueldo dado (de $x a $y).
Opción 5 : Modificar los datos de un empleado (excepto su clave).
Opción 6 : Dar de baja un empleado según su clave.
Opción 7 : Dar de baja todos los empleados con antigüedad mayor a 35 años.
Opción 8 : Incrementar en x% el sueldo de todos los empleados que ganen
menos de $z.
ESCRIBE EL MINIMO DE SUELDO QUE QUIERES CONSULTAR
5000
ESCRIBE EL MAXIMO DE SUELDO QUE QUIERES CONSULTAR
1000
--------------------EMPLEADO 1----------------------------
EL NOMBRE DEL EMPLEADO ES: Luis
SU CLAVE DE IDENTIFICACION ES: 111
LA PLAZA QUE OCUAPA ES: programador
SE ENCUENTRA EN EL DEPARTAMENTO: desrrollo
SU SUELDO ES DE: 7000 PESOS
SU ANTIGÜEDAD ES DE: 12 MESES
Programa para gestionar los datos de los empleados
Opción 1 : Dar de alta un empleado.
Opción 2 : Consultar los datos de un empleado según su clave.
Opción 3 : Generar un reporte de todos los empleados.
Opción 4 : Generar un reporte de todos los empleados según un rango de
sueldo dado (de $x a $y).
Opción 5 : Modificar los datos de un empleado (excepto su clave).
Opción 6 : Dar de baja un empleado según su clave.
Opción 7 : Dar de baja todos los empleados con antigüedad mayor a 35 años.
Opción 8 : Incrementar en x% el sueldo de todos los empleados que ganen
menos de $z.
ESCRIBE LA CLAVE DEL EMPLEADO QUE DESEAS EDITAR
111
¿CUAL ES EL NOMBRE DEL EMPLEADO?
Luis
¿QUE PLAZA OCUAPA EL EMPLEADO?
diseñador
¿EN QUE DEPARTAMENTO TRABAJA EL EMPLEADO?
desarrollo
¿CUAL ES EL SUELDO DEL EMPLEADO?
10000
¿QUE ANTIGÜEDAD TIENE EL EMPLEADO (En meses)?
16
Programa para gestionar los datos de los empleados
Opción 1 : Dar de alta un empleado.
Opción 2 : Consultar los datos de un empleado según su clave.
Opción 3 : Generar un reporte de todos los empleados.
Opción 4 : Generar un reporte de todos los empleados según un rango de
sueldo dado (de $x a $y).
Opción 5 : Modificar los datos de un empleado (excepto su clave).
Opción 6 : Dar de baja un empleado según su clave.
Opción 7 : Dar de baja todos los empleados con antigüedad mayor a 35 años.
Opción 8 : Incrementar en x% el sueldo de todos los empleados que ganen
menos de $z.
ESCRIBE EL MAXIMO DE SUELDO DE LOS EMPLEADOS QUE LES DARAS
AUMENTO
12000
Programa para gestionar los datos de los empleados
Opción 1 : Dar de alta un empleado.
Opción 2 : Consultar los datos de un empleado según su clave.
Opción 3 : Generar un reporte de todos los empleados.
Opción 4 : Generar un reporte de todos los empleados según un rango de
sueldo dado (de $x a $y).
Opción 5 : Modificar los datos de un empleado (excepto su clave).
Opción 6 : Dar de baja un empleado según su clave.
Opción 7 : Dar de baja todos los empleados con antigüedad mayor a 35 años.
Opción 8 : Incrementar en x% el sueldo de todos los empleados que ganen
menos de $z.
ESCRIBE LA CLAVE DEL EMPLEADO QUE DESEAS DAR DE BAJA
111
Programa para gestionar los datos de los empleados
Opción 1 : Dar de alta un empleado.
Opción 2 : Consultar los datos de un empleado según su clave.
Opción 3 : Generar un reporte de todos los empleados.
Opción 4 : Generar un reporte de todos los empleados según un rango de
sueldo dado (de $x a $y).
Opción 5 : Modificar los datos de un empleado (excepto su clave).
Opción 6 : Dar de baja un empleado según su clave.
Opción 7 : Dar de baja todos los empleados con antigüedad mayor a 35 años.
Opción 8 : Incrementar en x% el sueldo de todos los empleados que ganen
menos de $z.
ESPERA UN MOMENTO
ACCIÓN TERMINADA
5. Requerimientos hadware y software
-Procesador Intel Pentium,233 MHz o superior
- 64 MB RAM (se recomiendan 128 MB)
-400 MB de espacio disponible en disco duro
-Windows 7/8
-Mouse u otro dispositivo señalador.