Re: Automated teller machine help please
Totti wrote:
Hi all,
Please read all of
http://www.catb.org/~esr/faqs/smart-questions.html
I think you may find it helpful.
i m trying to make a program (client/server) of a Automated teller
machine talking with its bank server. i did it using 3 files,
I think you mean three classes, maybe you mean three programs.
a client, a server and an application.
A program is an application, I find your description confusing.
the program contains 2 bugs that i
woud like you to help me solve them
1- the program take random choice for working or not which is too
weird to me (i m a beginer)
the program may work for one time properly, then not then yes,
eventhough i compile everytime.
eventhough i know that this is not something possible in programming
terms, but indeed it is highly possible to compile, try to run and it
breaks and after 1 minute, compile again and run nicely
It sounds like a timing issue. Maybe you are trying to use some resource
before it is ready, sometimes you are lucky and it is ready in time.
Don't forget your computer is doing other tasks in the background so
these may have small but significant effects on the timing of various
events in your application.
2- whenever i enter a right value, i go to the right step if i enter
the password before the username it will not prompt me about a user
name . Instead, in case the pass i give is the right one, i go to the
next step
which is "main menu", what i want is to go step by step the
procedure,
like if anything except the UserName was given even a right pass. the
program shall not take it, it should remain in the UserName step
untill entered correctly
You don't provide enough code for me to see where your problem lies. I
suggest you write a separate small programs whose job is to prompt the
user for those things in the order you want them. If it works, apply
what you learned to your ATM program. If it doesn't work post it here
and say what it actually does and what you expected it to do.
http://sscce.org/
for this, i suppose the problem is in the IF statements but i m not
sure how to fix them so i will show you what are the 'IF' i m using
on
both sides and if you can, please help!
Fom the client side:
modifiedsentence = inFromServer.readLine();
String onoma = "MyBank";
String onoma1 = "MyName";
String Pass = "MyPass";
Your variable names are uninformative, this makes the program harder to
read.
if (modifiedsentence.equalsIgnoreCase(onoma))
{
System.out.println("Enter your User Name");
}
if (modifiedsentence.equalsIgnoreCase(onoma1))
{
System.out.println("Enter your Password");
}
if (modifiedsentence.equalsIgnoreCase(Pass))
{
System.out.println(" ");
System.out.println("MAIN MENU");
System.out.println("---------");
System.out.println("* w for Withdrawal");
System.out.println("* d for Deposit");
System.out.println("* c for check Balance");
// here the program wil run the third file or the application file
}
---------------------------------------------------------------------------?---------------------------------------
From the server side:
clientsentence = inFromClient.readLine();
//Ask for a cardNumber
Accepted = clientsentence.toUpperCase() +"\n";
NotAccepted = clientsentence.toUpperCase() +" is NOT
accepted "+
"\n";
String Nom = "MyBank";
String PreNom = "MyName";
String PassWord = "MyPass";
These variable names are inconsistent with those used in the client.
A well-established Java convention is that variable names start with
lower case letters. Your variable names look like class names. This
makes your code harder to read and understand.
if (clientsentence.equalsIgnoreCase(Nom))
{
outToClient.writeBytes(Accepted);
}
if (clientsentence.equalsIgnoreCase(PreNom))
{
outToClient.writeBytes(Accepted);
}
if (clientsentence.equalsIgnoreCase(PassWord))
{
outToClient.writeBytes(Accepted);
}
else
{
outToClient.writeBytes(NotAccepted);
}
==========================================================
i m pretty sure the problem is here
I'm not.
so i must nest 'IF' in some way
or
something else should be done, like making a separate readline for
each new line entered by the ATM user, i really dont know what to do
from here on, would you please help
You need to wrap those If statements in some sort of loop that continues
prompting until all inputs are complete.
Nesting the If statements may help. I'd avoid them by having the client
encode the keywords as a data type that can be used in a switch
statement. You haven't described what the client passes to the server
and it's not clear to me from your code.
--
RGB