Como hacer este programa

d4rkbyte
26 de Noviembre del 2005
hola necesito ayuda con esta tarea espero me puedan ayudar ya que es importante se muy poco de C++ de antemano gracias y pues si algo les puedo
AYUDAR [email protected]


Escribe un programa que toma de un archivo de entrada los datos

Cantidad, Precio Unitario y Descripción

para una lista de artículos, el programa debe mandar la información a un archivo de salida en forma de factura. Sacando el total de la factura y encabezados adecuados.

Por ejemplo el archivo podría contener los siguientes datos:

5 2.5 tornillos
10 2.0 tuercas
20 0.80 clavos

y mostraría una factura similar a la siguiente:

FACTURA
Cantidad
Descripción Precio U Precio
5 tornillos 2.50 12.50
10 tuercas 2.00 20.00
20 clavos 0.80 16.00
________
Total 48.50




[email protected]



kike
26 de Noviembre del 2005
Se trata de utilizar las librerias de E/S standard incluyendo el archivo de cabecera fstream.h.

Esta libreria te facilita tres tipos de flujo para manipular archivos:
ifstream-para leer info de un archivo.
ofstream-para escribir info en archivo.
fstream-para leer y escribir info en un archivo.

Para el problema necesitaras uno de entrada y otro de salida, puedes trabajar directamente con los dos a la vez. primero creas el encabezado en la salida, despues lees la primera linea de la entrada, la descompones en los tres elementos calculas el total de la linea , y los colocas en la salida, repites la operacion hasta que se acaben las lineas del archivo,de entrada, recuerda ir sumando los totales en una variable para incluirla en el final del archivo de salida. Por ultimo cierras los archivos.
Para estos flujos, puedes usar los operadores( << >>), como lo haces con cout, ademas puedes usra los manipuladores E/S.

por ejemplo:
//flujo de entrada
//crear flujo a archivo.txt y abrirlo en modo entrada y
//si no existe archivo fracasa funcion

ifstream flujo("archivo.txt",ios::in|ios::nocreate) ;

//aqui verificas con un if(flujo) que se haya abierto el
//archivo
//obtienes una linea, esto podria ser un bucle para
//leer todo el archivo

flujo.GetLine(variable cadena, tamaño cadena);

//siempre debes cerrar el flujo

flujo.close();
//ejemplo de flujo de salida al no poner mas
//parametros sobreescribira el archivo si existe

ofstream flujoS("archivo.txt");

//utilizar operadores E/S

flujoS<<setw(30)<<"Descripcion";
flujoS<<setw(10)<<"cantidad"<<"precio"<<"total"<<endl
//y aqui podrias compartir el bucle de entrada
//incluyendo linea a linea todos los apuntes de la
//factura.
flujoS.Close();

A ver si te vale?