Jump to content

Euromilhões - ajuda


CAVC
 Share

Recommended Posts

Boa tarde!

Estou com uma dúvida assim para o grande  :wallbash:

Eu estou a tentar fazer um programa sobre euromilhoes. Preciso de registar o jogador e isso vai ter : o código (exemplo: 00000001, atribuido automaticamente e por ordem crescente) (suposto ser uma string com 7 caracteres), o seu nome (string com 7 caracteres) e o seu saldo inicial. ISto tudo tem que ir sendo atualizado num ficheiro de texto.

Eu tinha pensado fazer uma função para tal mas não estou a conseguir  😛

Alguma ajuda???

Obrigado!

Link to comment
Share on other sites

O problema é mesmo esse. Ainda não há um código feito porque estou mesmo com muitas dúvidas 😛

Eu quero acrescentar jogadores. Eles são identificados por um código, pelo seu nome e pelo o seu saldo.

Eu estava numa função do género adicionaJogador.

Link to comment
Share on other sites

hippy ele quer que nos lhe demos sujentoes...

olha o que tens a fazer e criar uma variavel com alguns elementos:

char jogadores[1000];

depois se eu quizer me registar, meto o meu nome(nao e) vai ter que fazer uma deteçao de um elemento desta variavel que esteja em braco. essa deteçao pode ser assim:

int jogadorescontagem=0
while(jogadorescontagem!=1000)
{
   jogadorescontagem++;
   if(jogadores[jogadorescontagem]=="NULL") 
   {
      jogadorescontagem=1000;
      jogadores[jogadorescontagem]="nome do jogador";
    }
}

a logica que eu propunha e mais ou menos isto...

mas n precisaria ser com 00000001 ( quer dizer se podesses jogadores[0000001] era o mesmo que jogadores[1])

Link to comment
Share on other sites

O problema é mesmo esse. Ainda não há um código feito porque estou mesmo com muitas dúvidas 😛

Eu quero acrescentar jogadores. Eles são identificados por um código, pelo seu nome e pelo o seu saldo.

Eu estava numa função do género adicionaJogador.

Porque que nao te abstrais das coisas, e primeiro crias uma class ou estrutura para cada jogador, com o saldo e isso?

#include<iostream>
#include<string>

struct jogadores
{
    int codigo;
    char nome[50];
    float saldo;
};

//ou

class cJogadores
{
public:
    cJogadores(){}
    ~cJogadores(){}
    
    cJogadores(int codigo,char* nome,float saldo):m_codigo(codigo),m_nome(nome),m_saldo(saldo){}
    
    void SetSaldo();
    void GetSaldo();
    
    //etc.....
    
private:
    int m_codigo;
    string m_nome;
    float m_saldo;
};

//...

Assim consegues te abstrair de alguns problemas, depois basta criares um vector para os jogadores, ter o codigo como texto, penso que nao tenha muito nexo porque terias que fazer mais umas coisas para por a funcionar direito...

Por muito mais que que estude só aprendo uma coisa, que ainda tenho muita coisa para aprender.

A beleza de um código está em decompor problemas complexos em pequenos blocos simples.

"learn how to do it manually first, then use the wizzy tool to save time."

"Kill the baby, don't be afraid of starting all over again. Fail soon, learn fast."

Link to comment
Share on other sites

Boa tarde!!

Pikax a tua ideia é bastante boa mas eu ainda nao posso usar isso classes porque ainda nao dei :S

A minha ideia era:

void adicionaJogador (string nome, string saldo);

{

int codigo;

if ()

}

o if serve para averiguar se o ficheiro "players.txt" existe ou nao... mas agora aí reside a minha dúvida: como é que faço para saber se um ficheiro existe ou não?? 😛

Link to comment
Share on other sites

O "path" e' uma variavel que tem a localização do ficheiro.

O "FILE *fd" e' um apontador para o ficheiro, se nao sabes isto, como e' que queres trabalhar com ficheiros?

Pikax a tua ideia é bastante boa mas eu ainda nao posso usar isso classes porque ainda nao dei :S

Se nao deste classes, de certeza que deste estruturas, podes usar a mesma logica para construires uma estrutura... Em C++ uma estrutura pode ter funcoes e constrores, so que as funções e membros estao em public.

Usando o exemplo que o HappyHippyHippo, podes fazer para usar o fstream de c++

#include<iostream>
#include<fstream> //para trabalhar com ficheiros

using namespace std;

int main()
{
    char *path = "/directorio/ficheiro.txt"; //basta mudares para o nome do ficheiro que queres
    ifstream ficheiro(path);
    char buffer[256];

    if(ficheiro.is_open())
        cout<<"ficheiro aberto!!"<<endl;
    else
    {
        cout<<"ficheiro nao encontrado, ou sem permissoes para abrir"<<endl;
        cin.get();  //parar
        return 0;
    }
    ficheiro.getline(buffer,256);

    cout<<buffer<<endl;
}

mais informacoes sobre ficheiros

Por muito mais que que estude só aprendo uma coisa, que ainda tenho muita coisa para aprender.

A beleza de um código está em decompor problemas complexos em pequenos blocos simples.

"learn how to do it manually first, then use the wizzy tool to save time."

"Kill the baby, don't be afraid of starting all over again. Fail soon, learn fast."

Link to comment
Share on other sites

Boa tarde!!!

// visualizar o saldo
void visualizarSaldo(string codigo3)
{
	string saldo4;
	string linha;
	ifstream in ("players.txt");
	if (in.is_open ())
	{
		while (! in.eof())
		{
			while (getline (in, linha));
			{
			string codigo = linha.substr(0, 7);
			if (codigo == codigo3)
			cout << saldo4 << "\n";
		}
	}
	}
	in.close();
}

Tenho aqui um codigo para um jogador poder visualizar o seu saldo

E depois chamo esta função, na função main:

else if (menu == 4)
{
	cout << "Codigo de jogador: ";
	cin >> codigo3;
	visualizarSaldo(codigo3);
}

No entanto quando a chamo nao me mostra o saldo.... (já agora o codigo é o numero de jogador)

Alguma ajuda???

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.