• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

dianaalbano

Menu Login

10 mensagens neste tópico

Boas tardes

Estou a fazer um trabalho em C++ sobre a gestão de uma Loja e tenho no início um menu login porém, não sei como fazer a confirmação de que o user e a password inseridas se encontram no vector utilizadores. Se não estiverem lá então não entra no sistema. Podem me ajudar?

Obrigado

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Claro que te podemos ajudar...

Mas primeiro tens de explicar melhor o que pretendes...

Primeiro: estás a criar a aplicação em modo de consola ou em modo gráfico?

Podes mostrar-nos o código que já tens feito?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

void menuLogin()
{
string user, password, util_user;
int flag=0, i;

do
{
	cout << "Username" << endl;
	cin >> user;
	cout << "Password" << endl;
	cin >> password;

	for(i=0; i<(int)utilizadores.size(); i++)
	{
		if((strcmp(utilizadores[i].util_user, user)==0 && (utilizadores[i].util_password, password)))
		{
			cout << "Entrou no sistema!" << endl;
		}
		else
			break;
	}
}
while(flag=0);
}

Este é o código que tenho mas não está bem...

Ajudas-me?

Obrigado

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Aqui tens o código corrigido e com algumas sugestões. Espero que tenha ajudado! Mais alguma coisa não esites em perguntar que o pessoal não esitará em ajudar. Falando por mim, tb podes contactar-me por mail ou no msn que se eu puder ajudo-te!

void menuLogin()
{
string user, password, util_user;
int flag=0, i;

do
{
	cout << "Username" << endl;
	cin >> user;
	cout << "Password" << endl;
	cin >> password;

	for(i=0; i<(int)utilizadores.size(); i++)
	{
		//if((strcmp(utilizadores[i].util_user, user)==0 && (utilizadores[i].util_password, password)))
		if(utilizadores[i].util_user == user && utilizadores[i].util_password == password)
		// como para strings existe o overload do operador "==" não precisas de usar o strcmp que nem sei se funcionaria neste caso...
		{
			cout << "Entrou no sistema!" << endl;
			flag = 1; // para indicar que já pode ser quebrado o ciclo do - while pois como o user e a pass coincidem já não tem de testar os seguintes.
		    break; // para quebrar o ciclo for e "cair" para o do-while dado que já foi encontrado
            }
		//else          este codigo aqui, não estava correcto pois pretende-se que o ciclo for pare apenas quando for encontrado um user e pass coincidentes
			//break;
	}
	//aqui poderias fazer algo do tipo: if(i == (int)utilizadores.size()) /*significa que não encontrou*/ cout << "user ou pass inválidos!";
}
//while(flag=0);
while(flag == 0); // lembra-te que isto é uma comparação e não uma atribuição do valor zero, este erro é muito comum quando se está a começar...
}

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Muito obrigado pela ajuda. Não tinha muita coisa errada mas era o bastante. Eu começei agora a programar em c++ e ainda n sei grande coisa.

Vou abusar um bocado de ti se puder.

Tenho mais dúvidas.

void insereCliente()
{
int cl_nif, cl_contacto;
string cl_nome, cl_morada;
int data_nasc;

ofstream out;
out.open ("Clientes.txt");
if (out.is_open)
{
	cout << endl << "Nome: ";
	cin >> cl_nome;
	fflush(stdin);
	cout << endl << "Morada: ";
	cin >> cl_morada;
	fflush(stdin);
	cout << endl << "Data de Nascimento (dd-mm-aaaa): ";
	cin >> data_nasc;
	fflush(stdin);
	cout << endl << "Numero de Identificacao Fiscal: ";
	cin >> cl_nif;
	fflush(stdin);
	cout << endl << "Contacto: ";
	cin >> cl_contacto;
	fflush(stdin);
	cout << endl;

	out.close();
}
else
{
	cout << "Ocorreu um problema!" << endl;
}

}

Tenho este codigo para fazer inserções (neste caso para inserir um cliente). Este código está bem?

Ele tá a ser chamado no main mas dá erro e não sei pk? Tou a trabalhar bem com os ficheiros?

Ja agora posso juntar no msn? Torna-se um bocado mais fácil para esclarecer as dúvidas.

Obrigado

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Ja agora posso juntar no msn? Torna-se um bocado mais fácil para esclarecer as dúvidas.

Acho que é má onda vir a um fórum pedir ajuda e depois querer ficar com a ajuda em privado. O fórum serve para que todos exponham as suas dúvidas e, quando os problemas são resolvidos, que os esclarecimentos dados sirvam para ajudar futuros utilizadores que possam ter as mesmas dúvidas.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Boas....

Estive a olhar para esse código e surgio uma questão, isto - utilizadores[ i ].util_user - é uma estrotura que foi criada algures, certo?

Cumps

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Supostamente, é um vector de utilizador. Em que utilizador é uma struct com dois campos do tipo string.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Supostamente, é um vector de utilizador. Em que utilizador é uma struct com dois campos do tipo string.

pois.... como não aparecia definida nesses códigos fonte postados e eu também não percebo muito de C, ficou logo a fazer confusão  :-[

Obrigado.

Cumps

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora