Algorítmica - datos de fase, saltos de página
Objetivos del capítulo
Los programas que se van a realizar en este capítulo requieren comprobar los datos que no están presentes en el archivo o los archivos de entrada. Estos son los datos calculados a lo largo de la ejecución del programa. Se llaman datos de fase. Algunos saltos de página hacen necesario comprobar un contador de filas. Este contador de filas es un caso particular de dato de fase.
Estado de las cifras de negocio por cliente y sector
1. Tema
El programa que se va a realizar consiste en editar un estado estadístico a partir de un archivo de productos.
a. Estado de salida
b. Archivo de entrada: productosCN
Descripción del archivo productosCN
Un registro del archivo productosCN contiene:
-
noSect: número de sector
-
noCli: número de cliente
-
noPro: número de producto
-
cant: cantidad
-
PU: precio unitario
Estructura correspondiente:
typedef struct
{
char noSect[4];
char noCli[5];
char noPro[4];
int cant;
float PU;
} PRODUCTO;
Organización del archivo: secuencial
Criterios de ordenación:
-
noSect (N.° de sector)
-
noCli (N.° de cliente)
Hay un registro por producto.
Este archivo se proporciona. Su ruta de acceso es: C:\C\archivos\productosCN
c. Tratamiento
Para un cliente: cn = Suma de las cant * PU (cn: cifra de negocio).
Se acuerda un descuento del 10 % para todo cliente cuyo CN sea superior o igual a 1000.
Se totaliza por sector las cifras de negocio y los descuentos.
El cambio de página se realiza cada 20 filas (encabezado no incluido). No hay cambio antes del total del sector, eventualmente mostrado en la fila número 21.
d. Los saltos de página
Los saltos de página se relacionan con problemas de presentación: formato del papel, zonas preimpresas, etc. No cambian el programa durante de la impresión, es decir, cuando se ejecutan las órdenes de escritura.
Es más sencillo interesarse por esto cuando se han escrito las órdenes de impresión.
En consecuencia: hacer el programa sin preocuparse de los saltos de página. Añadirlos después.
2. Descomposiciones
Estado
El estado se presenta como un conjunto de datos relativos a un sector, tantas veces como sectores (conjuntos en gris).
Cada sector contiene un número de sector, un conjunto de datos relativos a un cliente, tantas veces como clientes (conjuntos en gris), un total CN y un total DESCUENTO.
Cada cliente contiene un número de cliente, un CN y un descuento presente 0 o 1 vez (dato en gris).
A continuación se muestra un ejemplo de archivo en entrada:
El archivo se presenta como un conjunto de datos relativos a un sector, tantas veces como sectores hay (conjuntos...
Trabajo práctico: edición de facturas
1. Tema
a. Objetivo del programa
Se trata de editar las facturas de los clientes y hacer la actualización del archivo cliente.
b. Esquema del tratamiento
-
El archivo ped contiene los registros de pedidos de cliente. Estos pedidos se llaman «normales».
-
El archivo pedd contiene también los registros de pedidos de clientes. Estos pedidos se llaman «de ayuda».
-
El archivo cliente contiene información de los clientes. Para cada cliente con una factura, hay que actualizar un saldo en función de la cantidad de la factura.
Se edita una factura por cliente con, al menos, un pedido normal y eventualmente pedidos de ayuda.
c. Impresión
d. Filas de impresión
e. Característica del estado
-
Salto de página: una vez por cliente y por página completa.
-
En el caso de un salto de página para una página completa:
-
En fin de página:
-
Dejar las cantidades descuento, SIN_IVA y CON_IVA en blanco.
-
Imprimir ./. en la ubicación NETO A PAGAR.
-
En la siguiente página:
-
Mostrar los encabezados con el número de página incrementado (+1).
-
Recordar el número de pedido y su fecha.
-
Una sola factura por cliente.
-
Se editan inicialmente los pedidos normales y después los pedidos de ayuda.
-
Se edita una fila de producto cada dos filas.
f. Archivo cliente
Descripción del archivo cliente
Un registro del archivo cliente contiene:
-
noCli: número de cliente (identificador)
-
nombre: nombre (apellido) del cliente
-
direccion: dirección del cliente
-
cPost: código postal
-
ciudad: ciudad
-
noRep: número de representante
-
codPais: código de país
-
codSit: código de situación (D: débito, C: crédito)
-
saldo: cantidad del saldo
Este archivo se proporciona. Su ruta de acceso es: C:\C\archivos\cliente
Contiene:
El saldo del cliente siempre es un número positivo. El código de situación indica si el cliente paga a crédito (C) o es deudor (D).
Programa de acceso al archivo cliente
El archivo de encabezados de la librería de acceso al archivo cliente es: cliente.h. Su contenido es:
/* =================================================================== *
/* Estructura CLIENTE */ ...