Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

gsilvap

Ajuda - Desenvolver simulador de caixa multibanco

Mensagens Recomendadas

gsilvap

Boas...

Sou um iniciante nestas andanças de programar em c, e estou com um projecto em mãos, que consiste em criar um simulados de uma caixa multibanco, este simulador tem de ter:

-> um sistema de login (nºconta e pin) (varias contas, dois tipos de utilizadores, clientes e funcionarios, em que os funcionarios podem criar/eliminar contas, listar clientes(por saldo), listar operaçoes realizadas no CBA, alterar o numero de notas do CBA, desbloquear cartoes)

-> levantamento (notas de 5,10,20,50, em que o numero de notas tem de ser o menor possível, e tem de entregar sempre que possivel uma nota de cada montante disponivel no CBA)

-> transferência

-> alteração pin

-> deposito

Gostava que me dessem ideias por onde começar, é que sinceramente, não to a ver muito bem por onde lhe pegar.... :nono1:

PS.: Não quero que me façam o programa, apenas quero dicas de por onde começar, e do que vou precisar, ou seja, uma ideia geral das funções que tenho de criar.

Eu tenho algumas duvidas em relação à escrita em ficheiros, porque toda e qualquer operação feito no CBA tem de ser colocado num ficheiro, ao qual só o funcionário tem acesso....

Cumpz

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Strabush

Faz parte por parte. Começa por criar um sitema de login, e assim sucessivamente. Precisarás de conhecimentos em structs, apontadores, listas, e a sintaxe básica do C.

Vai fazendo cada etapa, e se precisares de ajuda nelas a gente dá.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
gsilvap

O próprio sistema de login vai ser um problema para mim, porque tenho de ter um ficheiro com as varias contas e o seu pin correspondente, tipo:

(Conta) (Pin)

1 3583

150 6985

1023586 2365

1204587 3654

mas, como é que eu vou procurar nesse ficheiro o numero de conta??

Divido o ficheiro em linhas, criando um vector com cada linha? e depois crio um vector com o numero da conta inserido pelo utilizador (um espaço) e o pin da conta e comparo-os pa ver quando são iguais?? Qual é a melhor forma de fazer o login??

Não to nada ambientado com os ficheiros....

Cumpz

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Colector Boy

Vê se percebes este código.

#include <stdlib.h> //para usar a funcao exit(inteiro)

int c; //variavel em que guardas o algarismo que vais buscar ao ficheiro
FILE *fin=NULL; //apontador para ficheiro

//abrir ficheiro chamado fich.txt que esta no directório da aplicação em modo leitura (r)
fin=fopen("fich.txt","r"); 

if(fin==NULL) //se o ficheiro nao foi aberto com sucesso então da erro
{
printf("Erro ao abrir ficheiro \n");
exit(-1); //sai da aplicação
}

//enquanto c diferente de EOF ->fim de ficheiro, vai buscar o próximo algarismo
while ((c = fgetc (fin))!= EOF) 
{
    //guardar dados do ficheiro no programa
    //código

}


fclose (fin); //fechar ficheiro

Espero ter ajudado.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
gsilvap

Boas...

Colector Boy, antes de mais, obrigado pela ajuda, mas tenho algumas duvidas em relação ao teu código....

Não percebo qual é a função deste ciclo: "while ((c = fgetc (fin))!= EOF) "

O fgetc lê carácter a carácter, certo??

O c no programa vai ser o que??? nao percebi bem a sua função...

onde está "c=fgetc(fin)", não devia ser "c==fgetc(fin)"??

Um ficheiro no fim tem sempre "EOF"?

O "exit(-1);" faz o programa sair da aplicação se tiver problemas ao abrir o ficheiro, ou o ficheiro não existir certo, e tem incorporado um "return -1", certo??

Eu tenho que fazer um scanf para pedir ao utilizador o numero da conta, procura-lo num ficheiro, e se o encontrar pedir o pin, caso contrario dá erro(se acontecer três vezes o cartão fica bloqueado, sem ser possível fazer operações com o mesmo), depois, tem de verificar se o pin corresponde à conta introduzida inicialmente, mas qual a melhor forma de fazer isto???

Criar duas funções, uma para verificar se a conta x existe, e uma segunda para verificar se o pin y corresponde à lista x??

Ou

juntar a conta x ao pin y num vector, e verificar se isso existe no ficheiro???

Espero que percebam as minhas duvidas, e obrigado pelas dicas....

Cumpz

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Colector Boy

while ((c = fgetc (fin))!= EOF)

é igual a

do
{
   c= fgetc (fin); //vai buscar um carácter ao ficheiro
}
while (c!= EOF)  //se esse carácter for diferente de fim de ficheiro então continuas a ler

O fgetc lê 1 carácter de um ficheiro por essa razão precisas de um ciclo para leres os caracteres todos do ficheiro.

O c vai ser uma variável do tipo int onde vais colocar os algarismos de cada linha.

Para depois fazeres com eles o que quiseres.

onde está "c=fgetc(fin)", não devia ser "c==fgetc(fin)"??

Não, neste caso quero mesmo fazer "while ((c = fgetc (fin))!= EOF)" pois ao fazer isso estou a fazer 3 coisas:

1->buscar carácter ao ficheiro

2->atribuir esse carácter a variável c

3->verificar se e c não tem o valor EOF

Um ficheiro no fim tem sempre "EOF"?

Sim.

O "exit(-1);" faz o programa sair da aplicação se tiver problemas ao abrir o ficheiro, ou o ficheiro não existir certo, e tem incorporado um "return -1", certo??

Não.

O exit(inteiro) sai da aplicação e retorna o valor inteiro,o que faz o programa sair da aplicação se tiver problemas ao abrir o ficheiro, ou o ficheiro não existir é o pedaço de código em baixo:

if(fin==NULL) //se o ficheiro nao foi aberto com sucesso então da erro
{
printf("Erro ao abrir ficheiro \n");
exit(-1); //sai da aplicação
}

Vou tentar explicar passo a passo como é que ficamos com o código que está em cima.

1->No código acima verificamos se não tivemos nenhum problema ao abrir o ficheiro.

Isso é feito com este if:


if(fin==NULL) //se o ficheiro nao foi aberto com sucesso então da erro
{

}

2->Imprimimos uma mensagem de erro para o utilizador saber que houve algum problema

if(fin==NULL) //se o ficheiro nao foi aberto com sucesso então da erro
{
printf("Erro ao abrir ficheiro \n");

}

3->Saímos do programa

if(fin==NULL) //se o ficheiro nao foi aberto com sucesso então da erro
{
printf("Erro ao abrir ficheiro \n");
exit(-1); //sai da aplicação
}

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
gsilvap

Colector Boy

Fiquei 100% esclarecido, muito obrigado pelas dicas....

Agora tenho de ir para uma Aula de Analise Matemática II, mais logo já vou aplicar estas dicas todas....

Cumprimentos, e mais uma vez Obrigado

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
gsilvap

Alguém que perceba de C que não se importe de me dar o seu mail por pm ou assim, para perguntar algumas duvidas e dicas para o meu projecto, não quero disponibilizar o código que tenho, apesar de ainda ser muito pouco....

Se alguém não se importar, eu agradeço....

Cumpz

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
gsilvap

Por mim, não me importava de fazer isso....mas não queira expor o meu código, porque há mais pessoas que eu conheço com o mesmo projecto.....

Cumpz

Partilhar esta mensagem


Ligação 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

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.