650
Capítulo 14 Archivos y fl ujos
Los programas para asociar archivos deben tratar con ciertos problemas que no existen en programas de un solo
archivo. Por ejemplo, no siempre ocurre una asociación. Si un cliente en el archivo maestro no ha realizado compras
ni pagos en efectivo en el periodo actual de negocios, no aparecerá ningún registro para este cliente en el archivo de
transacciones. De manera similar, un cliente que haya realizado compras o pagos en efectivo podría haberse mudado
recientemente a esta comunidad, y tal vez la compañía no haya tenido la oportunidad de crear un registro maestro para
este cliente.
Escriba un programa completo para asociar archivos de cuentas por cobrar. Utilice el número de cuenta en cada
archivo como la clave de registro para fi nes de asociar los archivos. Suponga que cada archivo es un archivo de texto
secuencial con registros almacenados en orden ascendente, por número de cuenta.
a)
Defi na la clase
RegistroTransaccion
. Los objetos de esta clase contienen un número de cuenta y un
monto para la transacción. Proporcione métodos para modifi car y obtener estos valores.
b)
Modifi que la clase
RegistroCuenta
de la fi gura 14.6 para incluir el método
combinar
, el cual recibe un
objeto
RegistroTransaccion
y combina el saldo del objeto
RegistroCuenta
con el valor del monto
del objeto
RegistroTransaccion
.
c) Escriba un programa para crear datos de prueba para el programa. Use los datos de la cuenta de ejemplo de
las fi guras 14.24 y 14.25. Ejecute el programa para crear los archivos
trans.txt
y
antmaest.txt
, para que
los utilice su programa de asociación de archivos.
d) Cree la clase
AsociarArchivos
para llevar a cabo la funcionalidad de asociación de archivos. La clase debe
contener métodos para leer
antmaest.txt
y
trans.txt
. Cuando ocurra una coincidencia (es decir, que
aparezcan registros con el mismo número de cuenta en el archivo maestro y en el archivo de transacciones),
sume el monto en dólares del registro de transacciones al saldo actual en el registro maestro, y escriba el
registro
"nuevomaest.txt"
. (Suponga que las compras se indican mediante montos positivos en el archivo
de transacciones, y los pagos mediante montos negativos). Cuado haya un registro maestro para una cuen-
ta específi ca, pero no haya un registro de transacciones correspondiente, simplemente escriba el registro
maestro en
"nuevomaest.txt".
Cuando haya un registro de transacciones pero no un registro maestro co-
rrespondiente, imprima en un archivo de registro el mensaje
"Hay
un
registro
de
transacciones
no
asociado para
ese
numero
de
cliente..."
(utilice el número de cuenta del registro de transacciones). El
archivo de registro debe ser un archivo de texto llamado
"registro.txt"
.
14.9
(Asociación de archivos con varias transacciones) Es posible (y muy común) tener varios registros de transacciones
con la misma clave de registro. Esta situación ocurre cuando un cliente hace varias compras y pagos en efectivo durante
un periodo de negocios. Rescriba su programa para asociar archivos de cuentas por cobrar del ejercicio 14.8, para pro-
porcionar la posibilidad de manejar varios registros de transacciones con la misma clave de registro. Modifi que los datos
de prueba de
CrearDatos.java
para incluir los registros de transacciones adicionales de la fi gura 14.26.
14.10
(Asociación de archivos con serialización de objetos) Vuelva a crear su solución para el ejercicio 14.9, usando la
serialización de objetos. Use las instrucciones del ejercicio 14.4 como base para este programa. Tal vez sea conveniente
crear aplicaciones para que lean los datos almacenados en los archivos
.ser
; puede modifi car el código de la sección
14.6.2 para este fi n.
Número
de cuenta
Nombre
Saldo
100
Alan Jones
348.17
300
Mary Smith
27.19
500
Sam Sharp
0.00
700
Susy Green
-14.22
Figura 14.24
| Datos de ejemplo para el archivo maestro.
14_MAQ_CAP_14_DEITEL.indd650
4/19/081:28:28AM