Jump to content
Sign in to follow this  
CAVC

Euromilhões - ajuda

Recommended Posts

CAVC

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  :P

Alguma ajuda???

Obrigado!

Share this post


Link to post
Share on other sites
HappyHippyHippo

qual o teu problema exactamente ??

apresentares o código já feito ajuda a perceber qual a tua dúvida ...


IRC : sim, é algo que ainda existe >> #p@p

Share this post


Link to post
Share on other sites
CAVC

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

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.

Share this post


Link to post
Share on other sites
CAVC

string adicionaJogador (char nome, int codigo, double saldo);

Estava a pensar fazer uma funçao daquele tipo mas nao sei se posso :P

Share this post


Link to post
Share on other sites
seuqram

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])

Share this post


Link to post
Share on other sites
pikax

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

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."

Share this post


Link to post
Share on other sites
CAVC

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?? :P

Share this post


Link to post
Share on other sites
HappyHippyHippo

estas a aprender c++ e ainda não deste classes ???? onde andas a aprender a programar ???

se o caso é não usar classes usa estruturas com funções de manipulação


IRC : sim, é algo que ainda existe >> #p@p

Share this post


Link to post
Share on other sites
CAVC

eu preciso que alguem me ajude com aquela função estou com muitas duvidas realmente.

Sei que parece que estou a pedir que me façam o trabalho mas não :S

Share this post


Link to post
Share on other sites
HappyHippyHippo

maneira mais directa de saber se um ficheiro existe:

if ((fd = fopen(path, "r")) == NULL) {
  // ou o ficheiro não existe ou não tens permissões para o ler
  // de qualquer maneira tens um problema para resolver
}


IRC : sim, é algo que ainda existe >> #p@p

Share this post


Link to post
Share on other sites
HappyHippyHippo

extended version :

char * path = "/directorio/ficheiro.txt";
FILE * fd = NULL;

if ((fd = fopen(path, "r")) == NULL) {
  // ou o ficheiro não existe ou não tens permissões para o ler
  // de qualquer maneira tens um problema para resolver
}


IRC : sim, é algo que ainda existe >> #p@p

Share this post


Link to post
Share on other sites
CAVC

Não percebi muito bem essa parte por isso acho melhor não a usar :S

Obrigado À mesma...

Vai ser complicado isto

Share this post


Link to post
Share on other sites
pikax

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."

Share this post


Link to post
Share on other sites
CAVC

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???

Share this post


Link to post
Share on other sites
HappyHippyHippo

...
string saldo4;
...
cout << saldo4 << "\n";
...

em que linha de código é suposto atribuir o valor do saldo à variável saldo4 ????


IRC : sim, é algo que ainda existe >> #p@p

Share this post


Link to post
Share on other sites
CAVC

o valor do saldo já é atribuido noutra funçao... que é quando se adiciona um jogador... aqui é so para um jogador ver quanto saldo ainda tem!!

Não sei se me fiz entender...

Share this post


Link to post
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
Sign in to follow this  

×
×
  • 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.