-
Notifications
You must be signed in to change notification settings - Fork 0
/
arbol.h
84 lines (61 loc) · 2.77 KB
/
arbol.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
/*-----------------------
| Arbol.h
| Author: Leandro Blandi
------------------------*/
#ifndef ARBOL_H_INCLUDED
#define ARBOL_H_INCLUDED
struct _Arbol;
typedef struct _Arbol * Arbol;
/*---------------
| Constructores
----------------*/
/// @pre: ninguno
/// @post: devuelve un Arbol
Arbol crearArbol(char nombre[], int edad, float altura);
/// @pre: se ingresa por teclado
/// @post: devuelve un Arbol
Arbol crearArbolPorTeclado();
/// @pre: debe existir el array
/// @post: devuelve un entero que sera usado en otras funciones
/// @return: -1 si no hay mas espacio, [-1 < n < 100] si hay espacio
int buscarPosicionLibre(Arbol arboles[]);
/*-----------------------------
| Procedimientos individuales
-----------------------------*/
/// @pre: el Arbol debe ser 'no filtrable' (edad != -1)
/// @post: muestra todos los datos del Arbol por pantalla
void mostrarArbol(Arbol arbol);
/// @pre: debe haber espacio, depende de buscarPosicionLibre() y debe existir el array
/// @post: agrega un Arbol en alguna posicion libre, por teclado
void agregarArbol(Arbol arboles[]);
/// @pre: el Arbol a modificar debe existir
/// @post: modifica la edad y altura del Arbol a modificar
void modificarArbol(Arbol arboles[], char nombreArbol[]);
/// @pre: el Arbol a 'eliminar' debe existir
/// @post: setea como 'filtrable' al Arbol
void eliminarArbol(Arbol arboles[], char nombreArbol[]);
/*---------------------------
| Procedimientos de arreglo
----------------------------*/
/// @pre: debe existir el array
/// @post: setea las edades y las alturas en -1
void inicializarArboles(Arbol arboles[]);
/// @pre: debe existir el arreglo y cantidadAgregar > 0
/// @post: agrega una cantidad especifica de arboles en las posiciones libres
void agregarArboles(Arbol arboles[], int cantidadAgregar);
/// @pre: debe existir el array y los Arboles deben ser 'no-filtrables'
/// @post: muestra todos los datos de los Arboles en las posiciones
void mostrarArboles(Arbol arboles[]);
/*---------------------------
| Procedimientos de archivo
----------------------------*/
/// @pre: Recibe una cadena de texto con el formato '%s+%d+%.2f\n'
/// @post: Devuelve un struct _Arbol con los datos parseados
Arbol parsearArboles(char datosSinParsear[30]);
/// @pre: Deberia de existir el vector y tener posicion libre, el archivo no debe estar vacio
/// @post: Carga los datos parseados en cada posicion de Arboles arboles[]
void cargarArboles(Arbol arboles[]);
/// @pre: debe existir 'arboles.txt', los Arboles deben ser 'no-filtrabes' y debe existir el array
/// @post: crea/sobreescribe el archivo 'arboles.txt' con todos los datos del arreglo separados por el delimitador '+'
void guardarArboles(Arbol arboles[]);
#endif // ARBOL_H_INCLUDED