Ho creato questo programma in c++
main :
#include "table.h"
int main ()
{
char Val;
while(true)
{
cout<<"\n\n";
cout<<"\n _________________________ ";
cout<<"\n° °";
cout<<"\n°---------- MENU: --------°";
cout<<"\n°_________________________°";
cout<<"\n| |";
cout<<"\n| c)rea struttura |";
cout<<"\n| m)odifica struttura |";
cout<<"\n| crea r)ecord |";
cout<<"\n| l)unghezza |";
cout<<"\n| e)sporta |";
cout<<"\n| i)mporta |";
cout<<"\n| q)uery |";
cout<<"\n| f)ine |";
cout<<"\n°_________________________°";
cout<<"\n° °";
cout<<"\n° Cosa vuoi fare? °";
cout<<"\n°_________________________°";
cin>>Val;
switch (Val)
{
case 'f':
case 'c':
break;
case 'm':
break;
case 'r':
// CreaRecord(RecordCampo);
break;
case 'l':
//unghezza(RecordCampo);
break;
case 'e':
// Esporta(RecordCampo);
break;
case 'i':
//Importa(RecordCampo);
break;
case 'q':
//Query(RecordCampo);
break;
default:
break;
}
} return 0;
}
creando anche i file .h record e table .
il mio problema è che non riesco a inserire le funzioniche ho scritto nei file .h nel main , mi hanno detto che devo richiamarle scrivendo tabella.<nome della funzione>(variabili funzione) ... ma non riesco proprio a finire questo programma, vi prego help
#include "record.h"
using namespace std;
class tabella {
public:
bool addrecord(string record);//aggiunge un record (una nuova riga) alla tabella
bool addfield(string campo); //aggiunge a TUTTI i record contenuti un campo di nome "campo"
int length();// restituisce il numero di righe della tabella
tabella select(string campo,string op,string val); //applica l'operatore di confronto
string tostring(); //restituisce una stringa che rappresenta i contenuti della tabella
private:
vector <record> tabella;};
#include "table.h"
using namespace std;
bool tabella::addfield(string campo){
for (int i=0 ; i<tabella.size;i++){
tab[i]addfield(campo)}
return true;
};
bool record::addrecord(string record){
for (int i=0; i< tabella[0].size; i++)
rec.addfield(tabella[0].readfield(i))
tabella.push_back(rec);
return true;
};
int tabella:: length(){
return tabella.size();
};
tabella tabella::select(string campo,string op,string val)
{ record rec;
tabella t;
tab.tabella.push_back(rec);
if (op=="="){
for (int i=0; i<t.size;i++){
if (tab[i].read(campo)==val)t.tab.pushback(tab[i])
}
}
else if (op=="<"){
for (int i=0; i<t.size;i++){
if (tab[i].read(campo) "<" val)t.tab.pushback(tab[i])
}
}
else if (op=="<="){
for (int i=0; i<t.size;i++){
if (tab[i].read(campo) "<=" val)t.tab.pushback(tab[i])
}
}
else if (op==">"){
for (int i=0; i<t.size;i++){
if (tab[i].read(campo) ">" val)t.tab.pushback(tab[i])
}
}
else if (op==">="){
for (int i=0; i<t.size;i++){
if (tab[i].read(campo) ">=" val)t.tab.pushback(tab[i])
}
}
else if (op=="!="){
for (int i=0; i<t.size;i++){
if (tab[i].read(campo) "!=" val)t.tab.pushback(tab[i])
}
}
else (cout<<"operatore non valido/n"
return t;
};
string tabella::tostring();
{
stringa str;
str += tab[0].tostringcampi () "\n";
for (int=0; i<tabella.size();i++){
str += tab[0].contenuto() endl + "\n";
};
return str;
};
#include <iostream>
#include <string>
#include <vector>
using namespace std;
class record {
public:
record ();
bool addfield(string campo); // aggiunge al record un campo di nome "campo"
bool write(string campo, string contenuto); // scrive la stringa "contenuto" nel campo di nome "campo"
string read(string campo); // restituisce il valore del campo
string tostringcampi ();
string tostringcontenuti ();
string readfield (int i);
int size (); // restituisce il numero di righe della tabella
private:
struct cella{
string campo;
string contenuto;};
vector <cella> riga;};
#include "record.h"
record::record(){
cella rec;
rec campo="id";
rec contenuto= "0";
riga.push_back(rec);
}
bool record::addfield(string campo){ // aggiunge al record un campo di nome "campo"
for (int i=0; i<riga.size(); i++){
if (riga[i].campo == campo) return false ;
}
cella rec;
rec campo= "id";
rec contenuto= "0";
riga.push_back(rec);
return true ;
};
string record::tostringcontenuti ()
string str= " ";
for (int i=0; i<riga.size(); i++){
str += string (20 - riga[i].campo.length(), " ") +riga[i].contenuto;
return str;
};
string record::tostringcampi ()
string str= " ";
for (int i=0; i<riga.size(); i++){
str += string (20 - riga[i].campo.length(), " ") +riga[i].campi;
return str;
};
bool record::write(string campo, string contenuto) // scrive la stringa "contenuto" nel campo di nome "campo"
for (int i=0; i<riga.size(); i++){
if (riga[i].campo == campo){ riga[i].contenuto=contenuto;
return true: };
return false;
};
string record::read(string campo)// restituisce il valore del campo "campo"
for (int i=0; i<riga.size(); i++){
if (riga[i].campo == campo) riga[i].contenuto ;}
return ERROR;
};
string record::readfield ( int i){
return riga[i].campo;
};
int record::size (){
return riga.size;
};