Tabla de fichas Indice del Tema 0504
0501 0502 0503 0504 0505 0506 0507 0508

Ejemplo: Visualización de distintos formatos.






Análisis del problema
Nuestro objetivo es mostrar el aspecto que tienen distintos formatos en pantalla. Vamos a aplicar lo visto en las secciones anteriores para escribir construir, en pantalla, distintos listados. Estos listados, que ahora son mera curiosidad, son un buen ejemplo del formato que puede adoptar un fichero de texto; en otras secciones se verá la forma de escribir todo esto en disco (mediante un operador de redirección, sin ir más lejos) y, especialmente, se estudiará la forma de leer correctamente de disco toda esta información.
Vamos a considerar una ficha de datos de un automóvil. La ficha consta de campos adecuados para fabricante, modelo, año, peso, longitud, altura, anchura, potencia y consumo. Nuestro objetivo es mostrar distintos listados de estos campos, bien con forma de listados tabulares o empleando algún formato delimitado. Jugaremos también con los ajustes a izquierda y derecha y con la precisión de los números de coma flotante.

Diseño del programa
Este programa constará de una colección de opciones, cada una de las cuales producirá un listado diferente. Construiremos funciones adecuadas para cada formato, que recibirán la información a través del oportuno parámetro. Se considera también una estructura de main(), llamada Modelo, que contiene la información. Las opciones van a ser las siguientes:

  1. Encolumnado (10 columnas para cadenas, 8 el resto de campos). Ajuste a la izquierda, sin formato en valores numéricos.
  2. Encolumnado (10 columnas para cadenas, 8 el resto de campos). Ajuste a la derecha, 8 columnas y 3 decimales (si procede) en camps numéricos.
  3. Encolumnado. Sólo campos numéricos, con signo.
  4. Delimitado. Sólo campos alfanuméricos,longitud mínima.
  5. Delimitado. Todos los campos, longitud mínima.
  6. Delimitado. Todos los campos; valores numéricos sin pérdida de precisión.

Implementación
La estructura de datos puede ser la siguiente:
struct Registro {
	char fabricante[10], modelo[10];
	int fecha;
	double peso;
	long longitud, altura, anchura;
	float potencia, consumo;
};


Comprobación y Depuración

Documentación