-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathGestor_de_textos.hh
115 lines (92 loc) · 4.08 KB
/
Gestor_de_textos.hh
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
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
/** @file Gestor_de_textos.hh
@brief Especificació de la classe principal Gestor_de_textos.
Classe encarregada de gestionar el main principal del programa.
*/
#ifndef GESTOR_DE_TEXTOS_HH
#define GESTOR_DE_TEXTOS_HH
#include "Conjunt_cites.hh"
#include "Conjunt_autors.hh"
#include "Consultes.hh"
#include <vector>
#include <iostream>
#include <string>
using namespace std;
/*
* Classe Gestor_de_textos
*/
/** @class Gestor_de_textos
@brief Representa un gestor de de textos, autors i cites.
*/
class Gestor_de_textos
{
private:
Conjunt_autors autors;
Conjunt_cites cites;
//Constructores
//Modificadores
/** @brief Afegeix el text especificat a la consulta a l'autor de la classe Conjunt_autors (si no existia l'autor, el crea).
@param consulta: String corresponent a la consulta a tractar.
\pre El primer que trobem al paràmetre es el títol del text entre cometes ("). La consulta ha d'estar ben formada.
\post S'haurà afegit el text a l'autor, que també s'haurà afegit si encara no existia.
*/
void afegir_text(string consulta);
/** @brief Afegeix la cita especificada a la consulta a l'objecte Conjunt_cites.
@param consulta: String corresponent a la consulta a tractar.
\pre El primer que trobem al paràmetre es el títol del text entre cometes ("). Ha d'haber un text triat previament a l'execució de la comanda. La consulta ha d'estar ben formada.
\post S'haurà afegit la cita a l'objecte Conjunt_cites.
*/
void afegir_cita(string consulta);
/** @brief Elimina el text seleccionat amb anterioritat.
@param consulta: String corresponent a la consulta a tractar.
\pre Hi ha d'haber un text seleccionat i existent.
\post S'haurà eliminat el text seleccionat i ja no hi haurà cap text seleccionat.
*/
void eliminar_text();
/** @brief Elimina la cita especificada pel paràmetre.
@param consulta: String corresponent a la consulta a tractar.
\pre La cita especificada a la consulta ha d'existir.
\post S'haurà eliminat la cita especificada o emés un error en cas que aquesta no existeixi.
*/
void eliminar_cita(string consulta);
public:
Consultes consultes;
//Consultores
Gestor_de_textos();
/** @brief Obtenir el conjunt d'autors de la classe.
\pre cert
\post Retorna l'objecte Conjunt_autors de la classe.
*/
Conjunt_autors obtenir_conjunt_autors();
/** @brief Obtenir el conjunt de cites de la classe.
\pre cert
\post Retorna l'objecte Conjunt_cites de la classe.
*/
Conjunt_cites obtenir_conjunt_cites();
/** @brief Primer nivell d'accés a una consulta de l'estil "afegir".
@param consulta: String corresponent a la consulta a tractar.
\pre La consulta enviada havia de tenir (l'string enviat per paràmetre
ja no té aquesta paraula) la paraula "afegir" en la posició inicial.
\post S'haurà afegit el text o la cita (depenent del tipus de consulta) o s'haurà emés un error.
*/
void afegir(string consulta);
/** @brief Primer nivell d'accés a una consulta de l'estil "eliminar".
@param consulta: String corresponent a la consulta a tractar.
\pre La consulta enviada habia de tenir (l'string enviat per paràmetre
ja no té aquesta paraula) la paraula "eliminar" en la posició inicial.
\post S'haurà eliminat el text seleccionat o la cita especificada.
*/
void eliminar(string consulta);
/** @brief Tria un text emmagatzemat al sistema per duur a terme accions posteriors.
@param consulta: String corresponent a la consulta a tractar.
\pre La consulta ha d'estar ben formada i ser del tipus "triar text".
\post S'haurà seleccionat el text que contingui totes les paraules especificades a la consulta. En el cas que no existeixi o hi hagi més d'un, s'emetrà un error.
*/
void triar_text(string consulta);
/** @brief Substitueix l'aparició d'una paraula per una altre al text triat anteriorment.
@param consulta: String corresponent a la consulta a tractar.
\pre Ha d'haber un text triat amb anterioritat. La consulta ha d'estar ben formada i ser del tipus "substituir".
\post S'hauran substituit totes les aparicions de la paraula a substituir per la paraula de substitució.
*/
void substituir_paraules(string consulta);
};
#endif