Upload
sergio-aaron-alvarez
View
4
Download
2
Tags:
Embed Size (px)
DESCRIPTION
Generar una agenda en lenguaje C
Citation preview
1
Instituto Politcnico Nacional
Escuela Superior de Ingeniera Mecnica y
Elctrica
Unidad Zacatenco
Ingeniera en Control y Automatizacin
Programacin Orientada a Objetos
Proyecto Libreria
2AM5
Integrantes:
lvarez Ibarra Sergio Aarn
Profesor:
Manuel Alejandro Lopez
2
INDICE.
Diagrama a Bloque ____________________________________ 3
Explicacin del Diagrama a Bloques __________________ 4
Cdigo en C++ _______________________________________ 6
Capturas de Pantalla _________________________________ 15
3
Libreria
# salida : ofstream
+ GenerarArchivo (int): void
+ VerificarArchivo(int) :void
+ Resultado (int): void
+ CerrarArchivo (): void
Libros
- entrada : ifstream
- precios: ifstream
- n: int
- costos[100]: int
- articulo[100]: string
+ Libro()
+ LeerArchivo():void
+ VerificarArchivo(int):void
+ ImprimirContenido():void
+ AbrirArchivo(int):void
+ CerrarArchivo():void
+ GenerarPrecio(int a): int
+ GenerarTicket(int a): char
+ Getn():int
Revistas
- entrada : ifstream
- precios: ifstream
- n: int
- costos[100]: int
- articulo[100]: string
+ Revistas ()
+ LeerArchivo ():void
+ VerificarArchivo (int):void
+ ImprimirContenido ():void
+ AbrirArchivo(int):void
+ CerrarArchivo():void
+ GenerarPrecio(int a): int
+ GenerarTicket(int a):char
+ Getn():int
4
Este proyecto es una simulacin de una caja en la que se escoge el artculo que
desea comprar y sigue la secuencia hasta que el usuario ya no deseo otro artculo
ms, y al finalizar genera un archivo de salida con todos los datos y el precio a
pagar en caja.
Con el mtodo GenerarArchivo() se abre el archivo de salida de salida con el cual
se va a trabajar y generar el ticket de compra.
En el mtodo Resultado (int) se imprime en el archivo el total a pagar despus de
finalizar todos los pedidos requeridos.
CerrarArchivo() este mtodo tiene como finalidad cerrar todos los archivo
utilizados ya sean de entrada o salida dependiendo que objeto lo llame.
Con el constructor Revistas () o Libro() se inicializan los valores de n que nos sirve
de basa pasa saber cuntos artculos hay en cada archivo seleccionado.
La finalidad de LeerArchivo () es leer de los archivos de entrada los nombres de
libros o revistas que hay en inventario y los costos que le corresponde a cada uno
segn su posicin en el archivo.
Con VerificarArchivo () se checa que no hay ningn error al intentar leer y/o abrir
un archivo de salida o entrada segn sea la situacin de cada archivo.
Con el mtodo ImprimirContenido () se pretende que se imprima el contenido de
los archivos de entrada con un determinado formato en la pantalla principal de
nuestro programa.
El mtodo AbrirArchivo() hace lo que su nombre indica, abre el archivo ya
existente para el inventario de cada uno de los artculos que se tienen en la librera
y abre el archivo que contiene los precios de mismo modo.
CerrarArchivo() este mtodo lo que hace es cerrar cada uno de los archivos que
se est utilizando en el momento de la realizacin del programa cuando ya no los
vamos a utilizar de nuevo en ese mismo instante.
El mtodo GenerarPrecio(int a) como su nombre lo indica genera el precio del
libro o bien lo indica y regresa el valor para que con el valor regresado se realiza
una suma para generar el total a pagar de todos los artculos comprados
5
Con el mtodo GenerarTicket(int a) en primera instancia se le pregunta al usuario
que si es el artculo que desea comprar y si es el artculo se imprime en el ticket
que se realiza y si la respuesta es no, manda un error para que no se sume el costo
del articulo al total.
Con el Getn() se utiliza para que recuperar el valor de n del archivo, donde n es el
nmero total de artculos y si el numero elegido por el usuario es mayor al nmero
total de artculos se manda un error.
6
Main.cpp #include "Libro.h" #include "Revistas.h" int main() { int a,d=0,b=1,e,n; char c,z; Libreria L; L.GenerarArchivo(b); L.VerificarArchivo(b); b++; L.CerrarArchivo(); do { cout
7
R.LeerArchivo(); R.ImprimirContenido(); cout
8
void CerrarArchivo(); protected: ofstream salida; }; #endif // LIBRERIA_H
Librera.cpp #include "Libreria.h" void Libreria::GenerarArchivo(int b) { switch (b) { case 1: salida.open("Recibo.txt"); break; case 2: salida.open("Recibo.txt", ios_base::app); break; } } void Libreria::VerificarArchivo(int b) { if(salida.fail()) { cerr
9
{ salida
10
} void Libro::AbrirArchivo(int b) { Libreria::GenerarArchivo(b); entrada.open("Libros.txt"); precios.open("PLibros.txt"); } void Libro::LeerArchivo() { while(!entrada.eof()) { getline(entrada,articulo[n]); precios >> costos[n]; n++; } } void Libro::VerificarArchivo(int b) { Libreria::VerificarArchivo(b); if(entrada.fail()) { cerr
11
{ int i; cout
12
#define REVISTAS_H #include "Libreria.h" class Revistas : public Libreria { public: Revistas(); void LeerArchivo(); void VerificarArchivo(int b); void ImprimirContenido(); void AbrirArchivo(int); void CerrarArchivo(); int GenerarPrecio(int ); char GenerarTicket(int a); int Getn(); protected: private: ifstream entrada; ifstream precios; int n; int costos[100]; string articulo[100]; }; #endif // REVISTAS_H
Revistas.cpp #include "Revistas.h" Revistas::Revistas() { n = 0; } void Revistas::AbrirArchivo(int b) { Libreria::GenerarArchivo(b); entrada.open("Revistas.txt"); precios.open("PRevistas.txt"); } void Revistas::LeerArchivo() { while(!entrada.eof()) { getline(entrada,articulo[n]); precios >> costos[n];
13
n++; } } void Revistas::VerificarArchivo(int b) { Libreria::VerificarArchivo(b); if(entrada.fail()) { cerr
14
cin >> c; if (c == 's' || c == 'S') { salida
15
Captura de Pantalla
16
17
18