Control de Asistencia

“Control de Asistencia” es una aplicación de consola hecha como un ejercicio para integrar los diferentes conceptos de C++ enseñados en clase hasta la mitad del año.

El objetivo principal es ser capaz de desarrollar un control de asistencia de personal que registre los horarios (y justificaciones, si corresponde) de cada vez que los empleados lleguen, vayan a almorzar, vuelvan del almuerzo o retornen a sus casas.

Sistema de control de asistencia de personal
--------------------------------------------

DNI:

El enunciado completo dice:

Hacer un sistema de control de asistencia de personal (para posterior verificación de ausencias y llegadas tarde con sus correspondientes justificaciones) y su parte de gestión privada (alta de usuarios y visualización de datos obtenidos a partir de la carga).

La pantalla principal debe quedar a la espera de DNI y contraseña.

Debe haber un usuario prefijado como administrador con DNI = -1234 y Contraseña = prueba.

En el caso de ser un usuario administrador, se podrá acceder a la parte de gestión, con las siguientes opciones:

1- Alta de usuario
2- Lista de usuarios (datos adquiridos)
3- Salida a archivo
4- Cerrar la aplicación
0- Volver a la pantalla principal

De lo contrario, se solicitará qué tipo de acción se está realizando (Ingreso, salida, salida a almuerzo o retorno de almuerzo) y su justificación en el caso de que corresponda, y se procederá a guardar dichos datos junto a la hora actual en un registro de “Eventos” del usuario que corresponda.

Los datos necesarios de cada usuario son:
DNI
Nombre completo
Contraseña
Si es administrador
Eventos relacionados

Se desea utilizar como base una clase “PersonaBasica” que ya fue desarrollada por el departamento de sistemas, cuyo encabezado “PersonaBasica.h” se adjunta a
continuación:

#include "String.h"
#include <iostream>

class PersonaBasica
{
	String m_sNombreCompleto;
	long m_nDNI;

public:
	//Construcción
	PersonaBasica() { m_nDNI = 0; }

	//Encapsulaciones
	long DNI() const { return m_nDNI; }
	void DNI(long val) { m_nDNI = val; }

	String NombreCompleto() const { return m_sNombreCompleto; }
	void NombreCompleto(String val) { m_sNombreCompleto = val; }
};

std::ostream& operator<<(std::ostream& oStream, PersonaBasica& rpPersonaBasica);

Nota: no se conocen en absoluto los tamaños de los datos a ingresar y se comenta que los usuarios suelen escribir justificaciones bastante elaboradas.

Cuando se inicia el programa, sólo se puede ingresar como administrador (-1234:prueba)…

Sistema de control de asistencia de personal
--------------------------------------------

DNI: -1234
Contraseña: prueba
Usuario "Administrador" reconocido.

Presione una tecla para continuar...

Luego, se llega al menú de administración:

Sistema de control de asistencia de personal (ADMNISTRACION)
------------------------------------------------------------

1- Alta de usuario
2- Lista de usuarios (datos adquiridos)
3- Salida a archivo
4- Cerrar la aplicación
0- Volver a la pantalla principal

Ingrese la opción deseada:

El siguiente paso debería ser dar de alta a los diferentes usuarios utilizando la primera opción:

Sistema de control de asistencia de personal (Alta de usuario)
--------------------------------------------------------------

DNI: 12345678
Nombre completo: Pedro Gutierrez
Password: 123bbb
Administrador [1 = Sí/0 = No]: 0

Persona agregada satisfatoriamente.

Presione una tecla para continuar...

Luego de esto, ellos podrán ingresar por sí mismos:

Sistema de control de asistencia de personal
--------------------------------------------

DNI: 12345678
Contraseña: 123bbb
Usuario "Pedro Gutierrez" reconocido.

Presione una tecla para continuar...

Para llegar a la pantalla de asistencia y así poder registrar sus acciones:

Asistencia de "Pedro Gutierrez"
-------------------------------

Tipo de asistencia:
        1- Ingreso
        2- Salida
        3- Salida a almorzar
        4- Vuelta de almorzar
Selección: 1

Justificación (si corresponde): Llegué tarde porque había
corte de calles.

Evento agregado satisfactoriamente.

Presione una tecla para continuar...

Cada una de ellas hasta que vuelvan a sus casas…

Asistencia de "Pedro Gutierrez"
-------------------------------

Tipo de asistencia:
        1- Ingreso
        2- Salida
        3- Salida a almorzar
        4- Vuelta de almorzar
Selección: 2

Justificación (si corresponde): Me voy más temprano porque
tengo que llevar a mi hijo al médico.

Evento agregado satisfactoriamente.

Presione una tecla para continuar...

Cuando cualquier administrador desee observar el listado completo de usuarios y acciones, simplemente tiene que ingresar e ir a la segunda opción del menú de administración.

Sistema de control de asistencia de personal (Lista de
usuarios)
------------------------------------------------------

DNI: -1234
Nombre completo: Administrador
Password: ********
Administrador: 1
Cantidad de eventos: 0
Eventos:

[Esta persona no posee eventos]


DNI: 12345678
Nombre completo: Pedro Gutierrez
Password: ********
Administrador: 0
Cantidad de eventos: 4
Eventos:

Hora: 28/07/2009 14:13:27
Tipo: Ingreso
Justificación: Llegué tarde porque había corte de calles.

Hora: 28/07/2009 14:14:23
Tipo: Salida a almorzar
Justificación:

Hora: 28/07/2009 14:14:44
Tipo: Vuelta de almorzar
Justificación:

Hora: 28/07/2009 14:14:52
Tipo: Salida
Justificación: Me voy más temprano porque tengo que llevar a
mi hijo al médico.

Presione una tecla para continuar...

Si lo desea, puede guardar esa información a un archivo utilizando, en cambio, la tercera opción:

Sistema de control de asistencia de personal (ADMNISTRACION)
------------------------------------------------------------

1- Alta de usuario
2- Lista de usuarios (datos adquiridos)
3- Salida a archivo
4- Cerrar la aplicación
0- Volver a la pantalla principal

Ingrese la opción deseada: 3

Ingrese la ruta del archivo a guardar: c:asistencia.txt
Archivo guardado satisfactoriamente

Presione una tecla para continuar...

Finalmente, puede cerrar el programa yendo a la cuarta opción (perdiendo todos los datos)…

Sistema de control de asistencia de personal (ADMNISTRACION)
------------------------------------------------------------

1- Alta de usuario
2- Lista de usuarios (datos adquiridos)
3- Salida a archivo
4- Cerrar la aplicación
0- Volver a la pantalla principal

Ingrese la opción deseada: 4
Saliendo de la aplicación...

Presione una tecla para continuar...

Esa es la idea de la aplicación…

Ahora voy a dejar los links para aquellos que no quieran resolverlo por sí mismos (o los que quieran ejecutarlo y verlo funcionando).

El código es portable entre Linux y Windows (lo testeé personalmente en ambas plataformas y funcionó idénticamente).

Ha sido desarrollado, compilado y testeado utilizando wxDev-C++ para Windows con el compilador MinGW (incluído en el paquete). En Linux, fue compilado utilizando el compilador GNU GCC.

GNU GPL v3 ControlAsistencia está liberado bajo la licencia GNU GPL v3 (attached)…

Actualización: bug menor solucionado en String.cpp => version 1.01

Support appreciated!

All the content offered in this website is, except noted otherwise, of free nature. This means you can share it wherever you want if you do it freely and stating its source.

If it was useful for you and you’d like to contribute, you can make a donation or, at least, visit one of our advertisers of your choice; they are all around the site.

Incoming search terms for the article:



0 Response to “Control de Asistencia”


  • No Comments

Leave a Reply