-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathinventario.h
85 lines (54 loc) · 2.22 KB
/
inventario.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
#ifndef INVENTARIO_H
#define INVENTARIO_H
#include <string>
#include <fstream>
#include <iomanip>
#include "material.h"
#include "parser.h"
#include "lista.h"
using namespace std;
class Inventario{
private:
// Atributos
Lista<Material*> lista_materiales;
int cantidad_materiales;
public:
// Metodos
// pre: el archivo debe estar bien formado (por ejemplo: no vacio)
// pos: Constructor a partir de un archivo a la entrada
Inventario(ifstream& archivo);
// pre: -
// pos: CONSTRUCTOR un inventario vacio con una capacidad inicial para cargar materiales
Inventario(); // Constructor por default
// pre: -
// pos: DESTRUCTOR del inventario (especificamente la lista de materiales dinamica)
~Inventario(); // destructor
// pre: -
// pos: devuelve la ubicacion de un material en la lista de materiales
int ubicacion_material_en_lista(char identificador);
// pre: -
// pos: obtiene cuanta cantidad de piedra hay en el inventario
double obtener_cantidad_de_piedra();
// pre: -
// pos: obtiene cuanta cantidad de madera hay en el inventario
double obtener_cantidad_de_madera();
// pre: -
// pos: obtiene cuanta cantidad de metal hay en el inventario
double obtener_cantidad_de_metal();
// pre: deberia ya estar chequeado que la resta queda > 0 como cantidad final de c/material
// pos: resta una cantidad de material de los 3 elementos de construccion
void restar_cantidad_materiales_construccion(double costo_piedra, double costo_madera, double costo_metal);
// pre: -
// pos: resta una cantidad de material de los 3 elementos de construccion
void sumar_cantidad_materiales_construccion(double costo_piedra, double costo_madera, double costo_metal);
// pre: -
// pos: se suma una cantidad especifica de un material especifico en funcion de su identificador
void sumar_cantidad_material(char identificador, double cantidad);
// pre: -
// pos: mustra el inventario
void mostrar_inventario();
// pre: -
// pos: guarda el inventario
void guardar_inventario(ofstream& archivo_materiales);
};
#endif // INVENTARIO_H