files gestaluno

#include <iostream>

#include <fstream>

#include <string>

#include <cstdlib>





using namespace std;

#define NMAX 20

#define CONTROL_D ('D' - 0x40)



int procurarAluno(string sigla, char *path)

{

ifstream inClientFile(path, ios::in);

string s,r,s_aux,n;

int idx=0,tam=0,i=0;

int nr;

char*vec;



while(getline(inClientFile, s, '\n'))

{

r="";

n="";

s_aux=s;

idx=0;

tam=0;

while(idx!=-1)

{

idx = s_aux.find(' ');

if (idx!=-1)

{

if (n=="")

n = n + s_aux.substr(0,idx);

r = r + s_aux[idx+1];

s_aux = s_aux.substr(idx+1,s.length()-tam);

tam = tam+idx+1;

}

}

if(sigla==r)

break;

}

nr=atoi(n.c_str());

if (sigla==r)

return nr;

else

return 0;



}



void lerTurma(char *path)

{

string s,r,s_aux;

int idx=0,tam=0;

int vec[100],i;

ifstream inClientFile(path, ios::in);



while(getline(inClientFile, s, '\n'))

{

r="";

s_aux=s;

idx=0;

i=0;

tam=0;

while(idx!=-1)

{

idx = s_aux.find(' ');

if (idx!=-1)

{

vec[i]=idx+tam;

i++;

s_aux = s_aux.substr(idx+1,s.length()-tam);

tam = tam+idx+1;

}

}

r = r + s.substr(0,vec[1]);

r = r + s.substr(vec[i-1],s.length()-i-1);

cout << r << endl;

}

inClientFile.close();

}



int nrAlunos(char *path)

{

int lineCount = 0;

string s;

ifstream inClientFile(path, ios::in);



while(getline(inClientFile, s, '\n'))

++lineCount;



inClientFile.close();



return lineCount;

}



int inscreverAluno(char *path)

{

int alunos = nrAlunos(path);

string s;

ofstream outClientFile(path, ios::app);



cout << "Introduza o nome do aluno a inscrever" << endl;



getline(cin,s);



outClientFile << alunos + 1 << ' ' << s << endl;

outClientFile.close();

return 0;

}



int main()

{

bool fim = false;

string s,sigla;

int alunos=0;

int nr;



char *path = {"turma.txt"};

char f[100];



alunos=nrAlunos(path);



while (fim == false)

{

cout << "Para inserir aluno prima I" << endl << "Para ler lista de alunos prima L" << endl << "Para procurar siglas prima P" << endl << "Para terminar CTRL+D" << endl;

getline(cin,s);



if (s[0] == CONTROL_D)

{

fim = true;

cout << "Fim de insercao" << endl;

}

else if (s[0] == 'I')

alunos = inscreverAluno(path);

else if (s[0] == 'L')

lerTurma(path);

else if (s[0] == 'P')

{

cout << "qual a sigla que quer procuras" << endl;

cin >> sigla;

nr = procurarAluno(sigla, path);

if (nr!=0)

cout << "posicao do aluno=" << nr << endl;

else

cout << "aluno nao encontrado" << endl;

}

if (alunos == NMAX)

{

fim = true;

cout << "Numero maximo de alunos atigido" << endl;

}

}

return 0;

}
Topic archived. No new replies allowed.