evaluacion practica del banco, los gerentes, los subgerentes y los cajeros
TRANSCRIPT
-
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