Você está na página 1de 12

Fichero Datos_Servicio.

#ifndef DATOS_SERVICIO_H #define DATOS_SERVICIO_H #include<iostream> using namespace std; class Datos_Servicio { private: int codigo; string nombre; string direccion; double precio; public: Datos_Servicio();//Metodo constructor de la clase por defecto de la clase Datos_Servicio //Mtodo constructor pasando los atributos de la clase como parmetro. Datos_Servicio(int cod,string nom,string Dir,double Pre); //Mtodos modificadores para los atributos de la clase Datos_Servicio. void setCodigo(int cod); void setNombre(string nom); void setDireccion(string Dir); void setPrecio(double Pre ); //Mtodos selectores para los atributos de la clase Datos_Servicio. int getCodigo(); string getNombre();

string getDireccion(); double getPrecio(); virtual ~Datos_Servicio();//Mtodo destructor de la clase.

};

Fichero Datos_Servicio.cpp #include "Datos_Servicio.h" #include<iostream> using namespace std; Datos_Servicio::Datos_Servicio()//Se asignan los valores iniciales a los atributos de la Datos_Servicio. { codigo=0; nombre=""; direccion=""; precio=0; } Datos_Servicio::Datos_Servicio(int cod,string nom,string Dir,double Pre)//Se pasan por parmetro los valores de los atributos. { codigo=cod; nombre=nom; direccion=Dir; precio=Pre; } void Datos_Servicio::setCodigo(int cod) { codigo=cod; } int Datos_Servicio::getCodigo() { return codigo; } void Datos_Servicio::setNombre(string nom) { nombre=nom;

} string Datos_Servicio::getNombre() { return nombre; } void Datos_Servicio::setDireccion(string Dir) { direccion=Dir; } string Datos_Servicio::getDireccion() { return direccion; } void Datos_Servicio::setPrecio(double Pre ) { precio=Pre; } double Datos_Servicio::getPrecio() { return precio; } Datos_Servicio::~Datos_Servicio() { //dtor } Fichero Declarar Vector.cpp

#ifndef DECLARARVECTOR_H #define DECLARARVECTOR_H #include"Datos_Servicio.h"

class DeclararVector { private: int tamano;//Se define un atributo para asignar el tamao que tendr el vector. Datos_Servicio*vectorServicios; void limpiar();//Mtodo para liberar la memoria del vector.

public: DeclararVector(); virtual ~DeclararVector(); //Mtodos modificadores y selectores para asignar y obtener el tamao del vector. void setTamano(int N); int getTamano(); //Mtodos modificadores y selectores para agregar informacin al vector y obtener elementos del vector. //Se pasan como parmetros la posicin (dato entero) y un objeto de la clase Datos_Servicio(ve) void setvectorServicios(int p,Datos_Servicio ve); Datos_Servicio getvectorServicios(int p);//El mtodo devuelve un objeto de la clase Datos_Servicio. //Mtodos para realizar operaciones sobre los objetos de la clase Datos_Servicio. int ContarserviciosAseo(); int contarservicioCelador(); int contarservicioDomicilios(); float valorAseo(); float valorDomicilios(); float valorCeladores(); float valorTotal();

}; Fichero DeclararVector.cpp #include "DeclararVector.h" #include"Datos_Servicio.h" #include<iostream> using namespace std; DeclararVector::DeclararVector() { tamano=0; vectorServicios=NULL; } void DeclararVector::limpiar() { if(tamano>0) { tamano=0;

delete[]vectorServicios;//Las llaves se utilizan siempre que el objeto a eliminar sea de tipo vector. } } void DeclararVector::setTamano(int N) { tamano=N; if(N>0) //Se asigna el tamao y se declara el vector de objetos de la clase Estudiantes en tiempo de ejecucin. { vectorServicios=new Datos_Servicio[N]; } } int DeclararVector::getTamano() { return tamano; } void DeclararVector::setvectorServicios(int p,Datos_Servicio ve) { vectorServicios[p]=ve; } Datos_Servicio DeclararVector::getvectorServicios(int p) { return vectorServicios[p]; } int DeclararVector::ContarserviciosAseo() { string a; a="ASEO"; int suma; suma=0; float valor; valor=0; for(int i=0;i<=getTamano()-1;i++) { if(getvectorServicios(i).getNombre()=="ASEO") { suma++; } }

return suma; } int DeclararVector::contarservicioCelador() { string b; b="CELADORES"; int suma; suma=0; float valor; valor=0; for(int i=0;i<=getTamano()-1;i++) { if(getvectorServicios(i).getNombre()=="CELADORES"&&getvectorServicios(i).getPrecio()) { suma++; valor++; } } return valor; return suma; } int DeclararVector::contarservicioDomicilios() { string c; c="DOMICILIOS"; int suma; suma=0; for(int i=0;i<=getTamano()-1;i++) { if(getvectorServicios(i).getNombre()=="DOMICILIOS") { suma++; } } return suma; } float DeclararVector::valorAseo() { float valor; valor=0;

for(int i=0;i<=getTamano()-1;i++) { if(getvectorServicios(i).getPrecio()&&getvectorServicios(i).getNombre()=="ASEO") { valor=valor+getvectorServicios(i).getPrecio(); } } return valor; } float DeclararVector::valorDomicilios() { float val; val=0; for(int i=0;i<=getTamano()-1;i++) { if(getvectorServicios(i).getPrecio()&&getvectorServicios(i).getNombre()=="DOMICILIOS") { val=val+getvectorServicios(i).getPrecio(); } } return val; } float DeclararVector::valorCeladores() { float valor; valor=0; for(int i=0;i<=getTamano()-1;i++) { if(getvectorServicios(i).getPrecio()&&getvectorServicios(i).getNombre()=="CELADORES") { valor=valor+getvectorServicios(i).getPrecio(); } } return valor; } float DeclararVector::valorTotal() { float total; total=0; total=valorAseo()+valorCeladores()+valorDomicilios();

return total; } DeclararVector::~DeclararVector() { //dtor }

Fichero main.cpp #include <iostream> #include"Datos_Servicio.h" #include"DeclararVector.h" using namespace std;

//Se define el mtodo PedirDatos al cual se le pasa un parmetro (est) por referencia. void PedirDatos(Datos_Servicio*est); int main() { int tam; Datos_Servicio est;//Se declara un objeto esttico de la clase Datos_Servicio.

//A continuacin se declara un objeto (obj) con apuntador (*) de la clase DeclararVector para esto //Se utiliza el operador new.

DeclararVector*obj=new DeclararVector(); cout << "________________________________________________ \n"; cout << "\n DIGITE EL NUMERO DE ELEMENTOS DEL VECTOR \n"; cout << "__________________________________________________ \n \n";

cout <<"Cuantos elementos tendra en vector: "; cin >> tam; obj->setTamano(tam); cout << "__________________________________________________\n"; cout << "\nDIGITE LOS VALORES DE LOS ELEMENTOS DEL VECTOR \n"; cout << "________________________________________________ \n \n"; cout<<"*****************************************************\n"; cout<<"\n SERVICIOS LORICA \n";

cout<<"*****************************************************\n"; cout<<"________________________________________________________\n"; cout<<"\n ----ASEO--- CELADORES----DOMICILIOS \n"; cout<<"________________________________________________________\n"; for(int i=0;i<=obj->getTamano()-1;i++){ cout<<"--------------> informacion del servicio"<<i+1<<"\n"; //Se llama a el mtodo PedirDatos (ver implementacin debajo) que asigna los valores a los atributos //de la clase Datos_Servicio dentro del objeto est. Aqu se pasa el objeto est precedido del smbolo "&" (&est) //para indicar que se pasa por referencia y toma la direccin de memoria en donde se almacenaron los valores //de cada atributo de la clase Datos_Servicio (codigo, nombre y nota).

PedirDatos(&est); //El objeto obj accede a los mtodos de la clase DeclararVector usando apuntador (->). obj->setvectorServicios(i,est); cout<<"\n"; }

cout<<"___________________________________________________________\n"; cout<<"\n TOTAL DE SERVICIOS PRESTADO\n"; cout<<"____________________________________________________________\n"; cout<<"\n"; cout<<"el total de servicios prestados en "<<"ASEO: "<<obj->ContarserviciosAseo()<<"\n"; cout<<"el total de servicios prestados en "<<"CELADORES: "<<obj->contarservicioCelador()<<"\n"; cout<<"el total de servicios prestados en "<<"DOMICILIOS: "<<obj>contarservicioDomicilios()<<"\n"; cout<<"_______________________________________________________________\n"; cout<<"\n VALOR INDIVIDUAL POR CADA SERVICIO \n"; cout<<"_______________________________________________________________\n"; cout<<"\n"; cout<<"valor total ASEO :"<<obj->valorAseo()<<"\n"; cout<<"valor total CELADORES :"<<obj->valorCeladores()<<"\n"; cout<<"valor total DOMICILIOS :"<<obj->valorDomicilios()<<"\n"; cout<<"_______________________________________________________________\n"; cout<<"\n VALOR TOTAL POR TODOS LOS SERVICIOS PRESTADOS \n"; cout<<"_______________________________________________________________\n"; cout<<"\n"; cout<<" El valor total que se cobra por todos los servicios es :"<<obj->valorTotal(); cout << "\n"; cout << "________________________________________________ \n"; cout << "\n DATOS DEL VECTOR SERVICIOS \n"; cout << "________________________________________________ \n"; for(int i=0;i<=obj->getTamano()-1;i++) {

cout<<"CODIGO :"<<obj->getvectorServicios(i).getCodigo()<<" NOMBRE :"<<obj>getvectorServicios(i).getNombre()<< " DIRRECCION :"<<obj>getvectorServicios(i).getDireccion()<< " PRECIO SERVICIO :"<<obj>getvectorServicios(i).getPrecio()<<"\n";

} } //Se pasa el objeto est de la clase Datos_Servicio como parmetro por referencia, es decir se pasa como puntero //(*est) para asignar una direccin de memoria en donde se almacenaran los 4 datos de la clase Datos_Servicio, //esto permite tomar la informacin del objeto est en cualquier parte del programa. Este mtodo asigna los //valores a cada atributo de la clase Datos_Servicio (codigo, nombre ,dirrecion,precio), los almacena en el objeto est y los //guarda en la memoria. void PedirDatos(Datos_Servicio*est) { int cod; string nb; string dr; double pre; cout<<"Digite Codigo del servicio:"; cin>>cod; cout<<"Digite Nombre del servicio: "; cin>>nb; cout<<"Digite la direccion del cliente: "; cin>>dr;

cout<<"Digite el precio del servicio: "; cin>>pre; //Como el objeto est es de tipo apuntador (*) se accede a los mtodos modificadores de la Datos_Servicio. //utilizando apuntadores (->). est->setCodigo(cod); est->setNombre(nb); est->setDireccion(dr); est->setPrecio(pre);

Você também pode gostar