Evaluacion Practica Del Banco, Los Gerentes, Los Subgerentes y Los Cajeros

download Evaluacion Practica Del Banco, Los Gerentes, Los Subgerentes y Los Cajeros

of 23

Transcript of Evaluacion Practica Del Banco, Los Gerentes, Los Subgerentes y Los Cajeros

  • 8/16/2019 Evaluacion Practica Del Banco, Los Gerentes, Los Subgerentes y Los Cajeros

    1/23

    República Bolivariana de Venezuela

    Universidad Nacional Experimental del Táchira

    Departamento de Inenier!a In"ormática

    #omputacion II$Inenier!a Electr%nica &'()*+(,

    -an #rist%bal$Venezuela

     

  • 8/16/2019 Evaluacion Practica Del Banco, Los Gerentes, Los Subgerentes y Los Cajeros

    2/23

    Tema Perteneciente a la Unidad Nº II:

     Programación Orientada a Objetos en C++.

     

     Autor: Lcdo. José Froilán Guerrero Pulid

     

    .a/o0 *++)

  • 8/16/2019 Evaluacion Practica Del Banco, Los Gerentes, Los Subgerentes y Los Cajeros

    3/23

     

    Clases 

    Una clase es la descripción de un tipo de objeto. La descripción abarca la definición de los distintos atributo

    y métodos inherentes al objeto.

     Sintaxis: class tipo_objeto

    {  public:  tipo_dato metodo1 (parámetros);  :  tipo_dato metodoN (parámetros);  private:  tipo_dato atributo1;  :  tipo_dato atributoN;}; 

    tipo_dato tipo_objeto::metodo1 (parámetros){  instrucciones;

      }  :

    tipo_dato tipo_objeto::metodoN (parámetros){  instrucciones;

      } 

    En alunos casos se puede pensar en la declaración de atributos en la parte p!blica y as" mismo el declara

    métodos en la parte pri#ada.

    La parte p!blica de la clase implica $ue los elementos definidos en este blo$ue solo se pueden manipular e

    cual$uier luar del prorama a tra#és de un identificador de acceso %#ariable o arrelo&.

    La parte pri#ada de la clase implica $ue los elementos definidos en este blo$ue solo se pueden manipular so

     por métodos definidos en la parte p!blica.

    Constructores.

    'uando se crean objetos( una de las operaciones más comunes $ue se reali)an sus proramas es iniciali)ar lo

    datos miembros del objeto. Para simplificar el proceso de iniciali)ación de los datos miembros de la clase( el '* proporciona una función constructora $ue se ejecuta por si sola cada #e) $ue se crea un objeto. + continuación s

     presentan las siuientes caracter"sticas de los constructores, 

    • Las funciones constructoras son métodos de la clase $ue facilitan a los proramas la iniciali)ación d

    los datos miembros de la clase.

    • Las funciones constructoras tienen el mismo nombre $ue la clase.

    • Las funciones constructoras no retornan #alores.

    • 'ada #e) $ue el prorama crea un objeto de la clase( '** llama a la función constructora de la clas

    si e-iste.

  • 8/16/2019 Evaluacion Practica Del Banco, Los Gerentes, Los Subgerentes y Los Cajeros

    4/23

    • Pueden e-istir #arias funciones constructoras( pero con diferentes parámetros( esto se conoce com

    sobrecara.

     

     Destructores.

    Una función destructora automáticamente se ejecuta cada #e) $ue se finalice la ejecución de un proram

    uchos de los objetos pueden asinar memoria para almacenar información( cuando se descarta a un objeto( el '

    * llama a una función destructora especial $ue puede liberar dicha memoria( limpiando la basura dejada por

    desaparición del objeto. + continuación se presentan las siuientes caracter"sticas de los constructores, 

    • Las funciones destructoras tienen el mismo nombre $ue la clase( con la e-cepción de $ue deb

    anteponer a su nombre el carácter tilde %/&.

    • Las funciones destructoras no retornan #alores.

     

    unciones Amigas

    Una función amia de una clase se define por fuera del alcance directo de los miembros pri#ados de dich

    clase( pero aun as" tiene el derecho de acceso a los miembros !ri"ate de la clase. 0e puede declarar una funcióntoda una clase como #riend  de otra clase. Para declarar una función como #riend  en una clase( en la definición d

    clase procede el prototipo de la función con la palabra reser#ada  #riend. 

    Sintaxis: 

    class tipo_objeto{  friend tipo_dato funcionamia (tipo_objeto !" parámetros);  public:  :  private:  :};tipo_dato funcionamia (tipo_objeto !" parámetros){  instrucciones;

      } 

     $jercicios %esueltos 

    //Programa 1: Procesar información de un empleado por medio de una clase. #include #include  class empleado{  public:

    void leer_empleado(void);void mostrar_empleado(void);char nombre[15;lon! numero_empleado;"loat salario;

  • 8/16/2019 Evaluacion Practica Del Banco, Los Gerentes, Los Subgerentes y Los Cajeros

    5/23

    ; void empleado::leer_empleado(void){  cout> nombre;  cout> numero_empleado;  cout

  • 8/16/2019 Evaluacion Practica Del Banco, Los Gerentes, Los Subgerentes y Los Cajeros

    6/23

    //Programa 2: Procesar información de cinco empleados por medio de una clase.

     #include #include  class empleado{ 

    public:

      void leer_empleado(void);  void mostrar_empleado(void);

      private:  char nombre[15;  lon! numero_empleado;  "loat salario;; void empleado::leer_empleado(void){  cout> nombre;  cout> numero_empleado;  cout

  • 8/16/2019 Evaluacion Practica Del Banco, Los Gerentes, Los Subgerentes y Los Cajeros

    7/23

    //Programa 3: Efectuar la asignación y lectura de datos fuera de la clase.

     #include #include  class perros{  public:

    char raa[15;

    int peso_promedio;int altura_promedio;void mostrar_raa(void);

    ; void perros::mostrar_raa(void){  cout

  • 8/16/2019 Evaluacion Practica Del Banco, Los Gerentes, Los Subgerentes y Los Cajeros

    8/23

    //Programa 4: Efectuar la lectura y validacion de los miembros de la parte privada de lclase. #include #include  class empleado{  public:

      int asi!nar_valores(char 7 lon!7 "loat);  void mostrar_empleado(void);  void cambiar_salario(void);  private:  char nombre[15;  lon! numero;  "loat salario;; int empleado::asi!nar_valores(char t_nom7 lon! t_num7 "loat t_sal){  strcp8(nombre7t_nom);  numero 0 t_num;  i" (t_sal > 1?. @@ t_sal < A.)

      {  salario 0 t_sal;  return(); BB salario incorrecto    else return(C1); BB salario eDuivocado void empleado::mostrar_empleado(void){  cout

  • 8/16/2019 Evaluacion Practica Del Banco, Los Gerentes, Los Subgerentes y Los Cajeros

    9/23

    void main(){  empleado trabaador; 

    i" (trabaador.asi!nar_valores($6na -,re$7 117 5.)00 )  {  cout

  • 8/16/2019 Evaluacion Practica Del Banco, Los Gerentes, Los Subgerentes y Los Cajeros

    10/23

    //Programa 5: Efectuar la invocación y lectura de los miembros de la clase luego//de efectuar la lectura de una clave de seguridad. #include #include #include #de"ine 3%3+ 1I class empleado

    {  public:  void leer_clave(void);  void validar_clave(char );  private:  void asi!nar_valores(void);  void mostrar_empleado(void);  char clave[A;  char nombre[15;  "loat salario;; void empleado::leer_clave(void){

      int 0;  char t_clave[A;  do  {  t_clave[0!etch();  i" (t_clave[J03%3+) cout

  • 8/16/2019 Evaluacion Practica Del Banco, Los Gerentes, Los Subgerentes y Los Cajeros

    11/23

    void empleado::asi!nar_valores(void){  cout> nombre;  cout

  • 8/16/2019 Evaluacion Practica Del Banco, Los Gerentes, Los Subgerentes y Los Cajeros

    12/23

     //Programa !: "mplementación de una función constructora sin par#metros. #include #include  BB /onstruccion de la clase tiempoclass tiempo{  public:

      tiempo();  void activar_tiempo (int7 int7 int );  void imprimir_"ormato_militar ();  void imprimir_"ormato_estandar ();  private:  int hora; BB CI  int minuto; BB C5?  int se!undo; BB C5?; BB 4a "uncion tiempo inicialia a los miembros de datos de la clasetiempo::tiempo (){

    hora0minuto0se!undo0;

     BB 6ctiva un nuevo tiempo usando el "ormato militar. /heDuea los datosBB introducidos7 si los datos son invalidos inicilia los valores deBB los miembros de datos en cero.void tiempo::activar_tiempo (int h7 int m7 int s){  hora 0 (h >0 @@ h < N) O h : ;  minuto 0 (m >0 @@ m < A) O m : ;  se!undo 0 (s >0 @@ s < A) O s : ; BB Puncion para imprimir el tiempo en "ormato militar

    void tiempo::imprimir_"ormato_militar (){  cout

  • 8/16/2019 Evaluacion Practica Del Banco, Los Gerentes, Los Subgerentes y Los Cajeros

    13/23

      cout

  • 8/16/2019 Evaluacion Practica Del Banco, Los Gerentes, Los Subgerentes y Los Cajeros

    14/23

    //Programa $: "mplementación de una función constructora sin par#metros.//"niciali%ación de un vector num&rico a trav&s del constructor. 

    #include #include  class entero{  public:

      entero()  {  T0;  ;  void mostrar_valor(void);  private:  int T;; void entero::mostrar_valor(void){  cout

  • 8/16/2019 Evaluacion Practica Del Banco, Los Gerentes, Los Subgerentes y Los Cajeros

    15/23

    //Programa ': "mplementación de una función constructora con par#metros. #include #include #include  class empleado{  public:

      empleado(char 7 int7 "loat);  void mostrar_empleado(void);  private:  char nombre[15;  int numero;  "loat salario;; empleado::empleado(char t_nom7 int t_num7 "loat t_sal){  strcp8(nombre7 t_nom);  numero 0 t_num;  salario 0 (t_sal < 5.)O t_sal: .;

     void empleado::mostrar_empleado(void){  cout > sal;  empleado trabaador(nom7 num7 sal);  cout

  • 8/16/2019 Evaluacion Practica Del Banco, Los Gerentes, Los Subgerentes y Los Cajeros

    16/23

    //Programa (: )obrecarga de funciones constructoras.

     #include #include #include  class empleado{  public:

      empleado(char 7 lon!7 "loat);  empleado(char 7 lon!);  void mostrar_empleado(void);  int cambiar_salario("loat);  lon! leer_numero(void);  private:  char nombre[5;  lon! numero_empleado;  "loat salario;; empleado::empleado(char nombre7 lon! numero_empleado7"loat salario){

    strcp8(empleado::nombre7 nombre);

    empleado::numero_empleado 0 numero_empleado;i" (salario < 5.) empleado::salario 0 salario;else empleado::salario 0 .; BB salario especi"icado no vHlido

     empleado::empleado(char nombre7 lon! numero_empleado){  strcp8(empleado::nombre7 nombre);  empleado::numero_empleado 0 numero_empleado;  do  {  cout 0 5.); void empleado::mostrar_empleado(void){  cout

  • 8/16/2019 Evaluacion Practica Del Banco, Los Gerentes, Los Subgerentes y Los Cajeros

    17/23

    //Programa 1*: "mplementación de una función destructora. #include #include #include  class empleado{  public:

      empleado(char 7 int7 "loat);  Xempleado(void);  void mostrar_empleado(void);  private:  char nombre[15;  int numero;  "loat salario;; empleado::empleado(char t_nom7 int t_num7 "loat t_sal){  strcp8(nombre7 t_nom);  numero 0 t_num;  salario 0 (t_sal < 5.)O t_sal: .;

     empleado::Xempleado(void){  cout

  • 8/16/2019 Evaluacion Practica Del Banco, Los Gerentes, Los Subgerentes y Los Cajeros

    18/23

    //Programa 11: "mplementación de una clase cadena para crear y manipular ob+etos tipo cadende caracteres. #include #include #include  class cadena{

      public:  cadena(char ); BB /onstructor  void sumar_cadena(char );  void restar_caracter(char);  void mostrar_cadena(void);  private:  char datos[1;; cadena::cadena(char letras){  strcp8(datos7 letras); 

    void cadena::sumar_cadena(char letras){  strcat(datos7 letras); void cadena::restar_caracter(char letra){  char temp[1;  int i7 ;  "or (i 0 7 0 ; datos[i; i22)  {  i" (datos[i J0 letra) temp[22 0 datos[i; 

      temp[ 0 %M44;  strcp8(datos7 temp); void cadena::mostrar_cadena(void){  cout

  • 8/16/2019 Evaluacion Practica Del Banco, Los Gerentes, Los Subgerentes y Los Cajeros

    19/23

     //Programa 12: "mplementación de una funcion amiga.

     #include #include  class numero{  "riend void asi!nar_valor(numero 7int );  public:

      numero(){T0;  void imprimir(void);  private:  int T;; void asi!nar_valor (numero c7int nT){  cC>T0nT; void numero::imprimir(void){  cout

  • 8/16/2019 Evaluacion Practica Del Banco, Los Gerentes, Los Subgerentes y Los Cajeros

    20/23

     

    //Programa 13: ,anipulación de una función amiga y variables por referencia. 

    #include #include  

    class entero{  "riend "loat suma_condicionada(entero 7 int @);  public:  void car!ar();

      private:  "loat 8;; void entero::car!ar(){  cin>>8; "loat suma_condicionada(entero num7 int @c){  "loat T;  i" (numC>8>01 @@ numC>88;    else T0;  return T; void main(){  entero vec[1;  "loat pro7 acum0;  char resp;  int i0C17con0;

      do  {  i22;  cout

  • 8/16/2019 Evaluacion Practica Del Banco, Los Gerentes, Los Subgerentes y Los Cajeros

    21/23

     //Programa 14: "mplementación de una función amiga dentro de una clase perteneciente a otraclase.

     #include #include #include  class libro; 

    class biblioteca{  public:  void cambiar_catalo!o(libro 7 char );; 

    class libro{  public:  libro(char 7 char 7 char );  void mostrar_libro(void);  "riend void biblioteca::cambiar_catalo!o(libro 7char );  private:  char titulo[5;  char autor[5;  char catalo!o[5;; 

    void biblioteca::cambiar_catalo!o(libro este_libro7 char catalo!o_nuevo){  strcp8(este_libroC>catalo!o7 catalo!o_nuevo); 

    libro::libro(char t_titulo7 char t_autor7 char t_catalo!o){  strcp8(titulo7 t_titulo);  strcp8(autor7 t_autor);  strcp8(catalo!o7 t_catalo!o); 

    void libro::mostrar_libro(void){  cout

  • 8/16/2019 Evaluacion Practica Del Banco, Los Gerentes, Los Subgerentes y Los Cajeros

    22/23

     $jercicios Pro!uestos 1. El obierno reional ha reali)ado una encuesta( donde se han solicitado los datos más rele#antes( sobre

     preferencia de los #eh"culos disponibles en el mercado( para determinar cuales modelos se escoerán para

     puesta en marcha de un plan denominado 2Fon3ienes4. Los datos reistrados( para cada encuestado se refiere

    a, 5ombre del encuestado( marca del #eh"culo( modelo( monto disponible para entrear como cuota inicialn!mero de meses para paar. El obierno desea un prorama en '**( $ue posea las siuientes caracter"sticas

    a&  La función constructora y destructora de la respecti#a clase. b&  +lmacenar los datos recopilados en un arrelo de objetos. Utilice una función miembro p!blica.

    c&  Generar un listado por pantalla con los nombres de a$uellos encuestados $ue hayan seleccionad

    #eh"culos de la marca 2Ford4 a e-cepción del modelo 2Laser4 y $ue re$uieran un pla)o mayor a doa6os para cancelar el #eh"culo. Utilice una función miembro p!blica.

    d&  7eterminar si el modelo 2'orsa4 de la marca 2'he#rolet4 tiene mayor preferencia $ue el model

    2Fiesta4 de la marca 2Ford4. Utilice una función amia.

     8. La biblioteca de la U5E9 desea ad$uirir 5 cantidad de libros( los cuales se identifican mediante los siuient

    datos, :035( 9"tulo( Editorial( +6o de Publicación( 'osto y ;bser#ación. La biblioteca desea un prorama e

    '**( $ue posea las siuientes caracter"sticas,

    a&  Una función amia para carar los datos de los atributos del objeto.

     b&  Una función miembro p!blica para #alidar el costo del libro %el costo debe se mayor a ==== 3s. o la publicación del libro es menor al a6o 8==

    este libro no lo puede ad$uirir la uni#ersidad? en caso contrario el libro si se lo puede ad$uirir

    uni#ersidad.d&  Una función miembro p!blica para listar los datos de a$uellos libros $ue la biblioteca no puede ad$uirir.

    e&  Una función amia para determinar el costo promedio de los libros de una determinada editori

    suministrada por el usuario.f&  La función constructora y destructora de la respecti#a clase.

     

    @.  Una inmobiliaria posee el reistro para cado uno de los tipos de inmuebles $ue administra %casas( $uintas apartamentos& y $ue están actualmente disponibles con los siuientes campos, 5ombre del propietario( tipo d

    transacción %#enta o al$uiler&( costo de la transacción( caracter"sticas del inmueble %cantidad de habitacione

    cantidad de ba6os( con o sin telefono&( para este !ltimo atributo hacer uso de un campo tipo estructura. Escribun prorama en '** para,

    a&  +lmacenar los datos de la siuiente cantidad de inmuebles, seis casas( tres $uintas y cuat

    apartamentos. b&  'alcular mediante una función amia el costo promedio de las casas en #enta.

    c&  Listar en un archi#o de te-to el nombre del propietario y el costo de los apartamentos de tr

    habitaciones( disponibles para al$uilar. Use una función miembro p!blica. 

  • 8/16/2019 Evaluacion Practica Del Banco, Los Gerentes, Los Subgerentes y Los Cajeros

    23/23

     

    >.  En un banco de la ciudad e-iste un erente( tres suberentes y seis cajeros( cada uno de estos empleadomencionados poseen por jerar$uia un nombre de usuario y una contrase6a iuales para tener acceso al sistem

    de transacciones u operaciones de los clientes del banco. 7ise6ar un prorama en '** con men!s d

    operaciones para efectuar lo siuiente,

    a&  Use funciones miembros p!blicas para introducir y #alidar el nombre de usuario y contrase6

    dependiendo del tipo de empleado seleccionado por el usuario. b&  0i la #alidación reali)ada en el punto anterior es correcta a tra#és de funciones miembros pri#ad

    carar( modificar y consultar datos de los clientes desde archi#os binarios. Pero e-isten ciert

    restricciones por cada ni#el de jerar$uia e-istente en el banco para el manejo de las transacciones

    operaciones de los clientes( estas son,

    •  Gerente, Puede carar( modificar y consultar datos de los clientes.•

      0uberente, 0olo puede carar y consultar datos de los clientes.•

      'ajeros, 0olo puede consultar datos de los clientes.

    Los datos almacenados acerca de los clientes en el archi#o son los siuientes, 5ro. de cuenta( 5ro. de libret

    fecha de apertura de la cuenta %un campo de tipo estructura, dia( mes y a6o& y nombre del cliente.

    En otra clase independiente a los clientes manejar los datos de los empleados de los cuales se tienen lo

    siuientes datos pri#ados y funciones miembros p!blicas, 5ombre del empleado( nombre de usuario( contrase6

    tipo de empleado( sueldo y prima? carar y listar los datos de los empleados. +plicar sobrecara de funcioneconstructoras