Gestor de Empleados C++

septiembre 17, 2009 at 2:38 pm (Cpp)

Buenas, pues hoy quiero presentaros mi último programa.. Es bastante simple de momento, pero tiene varias funciones que me parecieron necesarias.. El programa es un gestor de empleados diseñado para cualquier empresa, consta de 7 funciones entre las que destacan añadir empleado, borrar empleado, mandar mensajes entre empleados y leer mensajes.. Son bastante simples, pero en la función de mandar mensaje tengo un error identificado en 4 líneas continuas.. El programa me parece que está bastante logrado, y bien pensado, ya me diréis algo, mientras tanto iré mejorándolo.

V1:

#include <stdio.h>
#include <iostream>
using namespace std;

int Empleados = 0;
int plantilla = Empleados;
char sn[3];
int opcion;

//Todas las funciones necesarias para el programa
void AnadirEmpleado();
void BorrarEmpleado();
void ConsultarNumEmpleado();
void ConsultarTelefonos();
void ConsultarRango();
void MandarMensaje();
void LeerMensajes();
void ConsultarNumMensajes();

struct Plantilla
{
char Nombre[32];
char Apellido[32];
int TelefonoMovil;
int TelefonoParticular;
int EmpleadoNum;
int totalmensajes;
Plantilla(){ totalmensajes = 0; }
struct BandejaDeEntrada
{
char Texto[499];
char subject[32];
char destinoNombre[32];
char destinoApellido[32];
char remiteNombre[32];
char remiteApellido[32];
} Mensajes[50];
float Sexo;
char Direccion[32];
float Rango; //1 = empleado, 2 = ejecutivo, 3 = directivo
} Plantilla[200];

int main()
{
system("cls");
int opc;

cout << "Bienvenido al Gestor de Empleados, A continuacion seleccione la gestion que desee." << endl;
cout << "1.- Anadir Empleado" << endl << "2.- Borrar Empleado" << endl << "3.- Consultar Numero de Empleado" << endl;
cout << "4.- ConsultarTelefonos" << endl << "5.- Consultar Cargo" << endl << "6.- Mandar Mensaje" << endl;
cout << "7.- Consultar Mensaje" << endl << "8.- Consultar Bandeja de Entrada" << endl;
cin >> opc;

switch(opc)
{
case 1:
AnadirEmpleado();
break;
case 2:
BorrarEmpleado();
break;
case 3:
ConsultarNumEmpleado();
break;
case 4:
ConsultarTelefonos();
break;
case 5:
ConsultarRango();
break;
case 6:
MandarMensaje();
break;
case 7:
LeerMensajes();
break;
case 8:
ConsultarNumMensajes();
default:
cout << "Opcion incorrecta" << endl;
system("pause");
main();
break;
}
}

void AnadirEmpleado()
{

system("cls");
cout << "Nombre: ";
cin >> Plantilla[Empleados].Nombre;
cout << "\nApellido: ";
cin >> Plantilla[Empleados].Apellido;
cout << "\nDireccion: ";
cin >> Plantilla[Empleados].Direccion;
cout << "\nTelefono Movil: ";
cin >> Plantilla[Empleados].TelefonoMovil;
cout << "\nTelefono Particular: ";
cin >> Plantilla[Empleados].TelefonoParticular;
cout << "\nSexo (H=1, M=2): ";
cin >> Plantilla[Empleados].Sexo;
cout << "\nCargo (Empleado=1, Ejecuto=2, Directivo=3): ";
cin >> Plantilla[Empleados].Rango;
Plantilla[Empleados].EmpleadoNum = Empleados+1;
cout << "\n\nAnadir? (s/n): ";
cin >> sn;
if(sn == "s" || sn == "S")
{
FILE *fichero;
char NombreFichero[64] = "Plantilla[Empleados].Nombre.txt";
fichero = fopen(NombreFichero, "w");
cout << "Nombre: " << Plantilla[Empleados].Nombre << endl;
cout << "Apellido: " << Plantilla[Empleados].Apellido << endl;
cout << "Direccion: " << Plantilla[Empleados].Direccion << endl;
cout << "Telefono Movil: " << Plantilla[Empleados].TelefonoMovil << endl;
cout << "Telefono Particular: " << Plantilla[Empleados].TelefonoParticular << endl;
cout << "Sexo (H=1, M=2): " << Plantilla[Empleados].Sexo << endl;
cout << "Cargo (Empleado=1, Ejecuto=2, Directivo=3): " << Plantilla[Empleados].Rango << endl;
cout << "Numero de Empleado: " << Plantilla[Empleados].EmpleadoNum << endl;
cout << "Numero de Mensajes: " << Plantilla[Empleados].totalmensajes << endl;
fclose(fichero);
cout << "Empleado Anadido con exito, redireccionando al menu principal";
system("pause");
main();
} else {
cout << "Empleado NO anadido, redireccionando al menu principal" << endl;
system("pause");
main();
}
Empleados += 1;
plantilla += 1;
}

void BorrarEmpleado()
{
char Nombre[32];
int NumEmpl;
system("cls");
cout << "Nombre: ";
cin >> Nombre;
if(Nombre)
{
for(int i = 0; i == Empleados; i++)
{
if(Plantilla[i].Nombre == Nombre)
{
Plantilla[i] = Plantilla[Empleados];
plantilla -= 1;
cout << "\n\nEmpleado Borrado con exito, redireccionando a menu principal" << endl;
system("pause");
main();
}
}
} else {
cout << "Numero de Empleado: ";
cin >> NumEmpl;
if(!NumEmpl)
{
cout << "\nDebe introducir al menos un parametro, redireccionando al menu de borrar empleado." << endl;
system("pause");
system("cls");
BorrarEmpleado();
} else {
Plantilla[NumEmpl] = Plantilla[Empleados];
plantilla -= 1;
cout << "\n\nEmpleado Borrado con exito, redireccionando a menu principal" << endl;
system("pause");
main();
}
}
}

void ConsultarNumEmpleado()
{
char Nombre[32];
char Apellido[32];
system("cls");
cout << "Indique el nombre del empleado: ";
cin >> Nombre;
cout << "\nIndique el apellido del empleado :";
cin >> Apellido;
if(Nombre && Apellido)
{
for(int i = 0; i == Empleados; i++)
{
if(Plantilla[i].Nombre == Nombre && Plantilla[i].Apellido == Apellido)
{
cout << i << "es el numero de identificacion del empleado " << Plantilla[i].Nombre
<< " " << Plantilla[i].Apellido << endl;
cout << "Para realizar cualquier otra gestion ve al menu principal, redireccionando" << endl;
system("pause");
main();
} else {
continue;
}
}
} else {
cout << "\nDebe introducir el nombre y el apellido del empleado, redireccionando al menu de consultar empleado" << endl;
system("pause");
ConsultarNumEmpleado();
}
}

void ConsultarTelefonos()
{
char Nombre[32];
char Apellido[32];
int NumEmp;
system("cls");

cout << "Introduzca el Nombre del empleado: ";
cin >> Nombre;
cout << "\nIntroduzca el Apellido del empleado: ";
cin >> Apellido;
if(!Nombre || !Apellido)
{
cout << "\nO si no, introduzca el numero de empleado: ";
cin >> NumEmp;
if(!NumEmp)
{
cout << "\nDebe introducir al menos el nombre y apellido o el numero de empleado, redireccionando al menu de consulta de telefonos" << endl;
system("pause");
ConsultarTelefonos();
} else {
cout << "\nTelefono movil: " << Plantilla[NumEmp].TelefonoMovil << endl;
cout << "Telefono particular: " << Plantilla[NumEmp].TelefonoParticular << endl;
cout << "Redireccionando al menu principal" << endl;
system("pause");
main();
}
} else {
for(int i = 0; i == Empleados; i++)
{
if(Plantilla[i].Nombre == Nombre && Plantilla[i].Apellido == Apellido)
{
cout << "\nTelefono movil: " << Plantilla[i].TelefonoMovil << endl;
cout << "Telefono particular: " << Plantilla[i].TelefonoParticular << endl;
cout << "Redireccionando a menu principal" << endl;
system("pause");
main();
} else {
continue;
}
}
}
}

void ConsultarRango()
{
char Nombre[32];
char Apellido[32];
int NumEmp;
system("cls");

cout << "Introduzca el Nombre del empleado: ";
cin >> Nombre;
cout << "\nIntroduzca el Apellido del empleado :";
cin >> Apellido;
if(!Nombre || !Apellido)
{
cout << "\nEscriba el numero de empleao: ";
cin >> NumEmp;
if(!NumEmp)
{
cout << "Debe introducir el nombre y apellido o el numero de empleado, redireccionando al menu de consulta de cargo" << endl;
system("pause");
ConsultarRango();
} else {
cout << "El cargo del empleado es (1=Empleado, 2=Ejecutivo, 3=Directivo): " << Plantilla[NumEmp].Rango << endl;
cout << "Redireccionando al menu principal" << endl;
system("pause");
main();
}
} else {
for(int i = 0; i == Empleados; i++)
{
if(Plantilla[i].Nombre == Nombre && Plantilla[i].Apellido == Apellido)
{
cout << "El cargo del empleado es (1=Empleado, 2=Ejecutivo, 3=Directivo): " << Plantilla[i].Rango << endl;
cout << "Redireccionando al menu principal" << endl;
system("pause");
main();
} else {
continue;
}
}
}
}

void MandarMensaje()
{
char Texto[499];
char subject[32];
char destinoNombre[32];
char destinoApellido[32];
char remiteNombre[32];
char remiteApellido[32];
system("cls");

cout << "Escribe el nombre del destinatario: ";
cin >> destinoNombre;
cout << "\nEscribe el apellido del destinatario: ";
cin >> destinoApellido;
cout << "\nEscribe tu nombre: ";
cin >> remiteNombre;
cout << "\nEscribe tu apellido: ";
cin >> remiteApellido;
cout << "\nEscribe el asunto del mensaje: ";
cin >> subject;
cout << "\nEscribe el texto del mensaje: " << endl;
cin >> Texto;
if(destinoNombre && destinoApellido && remiteNombre && remiteApellido && subject && Texto)
{
cout << "\n\nDesea enviar el mensaje? s/n: ";
cin >> sn;
if(sn == "S" || sn == "s")
{
for(int i = 0; i == Empleados; i++)
{
if(Plantilla[i].Nombre == destinoNombre && Plantilla[i].Apellido == destinoApellido)
{
Plantilla[i].Mensajes[Plantilla[i].totalmensajes].remiteNombre = remiteNombre;
Plantilla[i].Mensajes[Plantilla[i].totalmensajes].remiteApellido = remiteApellido;
Plantilla[i].Mensajes[Plantilla[i].totalmensajes].subject = subject;
Plantilla[i].Mensajes[Plantilla[i].totalmensajes].Texto = Texto;
Plantilla[i].totalmensajes += 1;
} else {
continue;
}
}
} else {
cout << "\nEl mensaje no ha sido enviado, redireccionando al menu de enviar mensaje" << endl;
system("pause");
MandarMensaje();
}
} else {
cout << "\nDebes introducir todos los parametros, redireccionando a menu de mandar mensaje" << endl;
system("pause");
MandarMensaje();
}
}

void LeerMensaje()
{
char Nombre[32];
char Apellido[32];
int NumMensaje;
system("cls");

cout << "Introduzca el nombre: ";
cin >> Nombre;
cout << "\nIntroduzca el apellido: ";
cin >> Apellido;
cout << "\nIntroduzca el numero de mensaje a leer: ";
cin >> NumMensaje;
if(!Nombre || !Apellido || !NumMensaje)
{
cout << "\nDebe introducir todos los parametros, redireccionando al menu de leer mensaje" << endl;
system("pause");
LeerMensaje();
} else {
for(int i = 0; i == Empleados; i++)
{
if(Plantilla[i].Nombre == Nombre && Plantilla[i].Apellido == Apellido)
{
cout << "Asunto: " << Plantilla[i].Mensajes[NumMensaje].subject << endl;
cout << "Remitente: " << Plantilla[i].Mensajes[NumMensaje].remiteNombre << " " << Plantilla[i].Mensajes[NumMensaje].remiteApellido << endl;
cout << "Texto: " << Plantilla[i].Mensajes[NumMensaje].Texto << endl;
cout << "Redireccionando al menu principal" << endl;
system("pause");
main();
}
}
}
}

Bueno, el programa es bastante extenso, y tiene errores entre las líneas 325-328, el error es

ISO C++ forbids assignment of arrays

Gracias por leerme, espero que os esté resultando agradable. Saludos.

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: