☕ Java Pahelp naman maayos tong code

Status
Not open for further replies.

Falln

Forum Veteran
yung hindi ko makuha is yung sa withdraw dapat hindi pwede maka withdraw ng less than 100 at maximum withdraw is 10k. Tyaka sa balance lagi 10k lumalabas dapat kung ilan nalang yung amount ng account yun nalang lalabas.

Java:
import java.util.*;
public class bank
{
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
       
        String Ashley;
     
        choose();
         
    }

    private static void choose() {
        Scanner in = new Scanner(System.in);
        int choice;
       
        System.out.println("\nPlease select an option");
        System.out.println("1. Registration");
        System.out.println("2. Balance");
        System.out.println("3. Withdraw");
        System.out.println("4. Deposit");
        System.out.println("5. Exit\n\n"+"Enter your answer here: ");
       
        try {
            choice = +in.nextInt();
        switch (choice){
            case 1:
                registering();
                break;
            case 2:
                balance();
                break;
            case 3:
                withdraw();
                break;          
            case 4:
                deposit();
                break;          
            case 5:
                in.close();
                break;
            default:
            System.out.println("Please enter correct answer.");
            anotherTransaction();
            break;
        }
        } catch(Exception e) {
            System.out.println("\nPlease enter correct answer.\n");
            anotherTransaction();
        }
       
    }
    private static void balance() {
        Scanner in = new Scanner(System.in);
        int totalBalance;
        totalBalance = 10000;
        System.out.println("Please enter your account number:");
        int inaccnum=in.nextInt();

        System.out.println("Your Account Balance is:"+totalBalance);
        anotherTransaction();
       
    }
    private static void withdraw() {
        int totalBalance;
        int compute;
        int etAmount;
        Scanner in = new Scanner(System.in);
       
       
            System.out.println("\nPlease enter desired amount: ");
        etAmount = in.nextInt();
        compute = etAmount - 10000;
        totalBalance=etAmount;

        if(totalBalance<=etAmount||totalBalance==0||totalBalance>=100)
        {
        System.out.println("Successfully withdraw\nTotal Balance: "+compute+"\n");
        anotherTransaction();
       }
          else
       {
       
         System.out.println("--Invalid make sure amount is greater than to 100 and 10000 maximum--");
         wrongamount();

     }

    }
    private static void deposit() {
        int totalBalance, compute;
        int etAmount;
        Scanner in = new Scanner(System.in);
       
       
        System.out.println("\nPlease enter desired amount: ");
       
        try {
            etAmount = in.nextInt();
        compute = 10000+etAmount;
       
        System.out.println("Successfully deposited\nTotal Balance: "+compute+"\n");
       
        anotherTransaction();
        } catch(Exception e) {
            System.out.println("\nPlease enter number only.\n");
            choose();
        }
    }
    private static void registering() {
        int num;
        int max;

        Scanner in = new Scanner(System.in);
        String aName, aNumber, pNumber;
        int pInitialBal;

        System.out.println("\nPlease enter Account Name: ");
        aName = in.nextLine();
        System.out.println("\nPlease enter Account Number: ");
        num=in.nextInt();
        aNumber = in.nextLine();
        max=Integer.toString(num).length();
 
     
            if(max<10)
        {
        System.out.println("--10 numbers only--");
        invalidnum();
           
        }
        System.out.println("\nPlease enter Pin Number");
        System.out.println("--4-8 characters only must--");
        System.out.println("--contain number, letter--");
        System.out.println("--and special symbol--");
        System.out.print  ("Enter Pin NUmber:");
        String pinnum = in.nextLine();
           
            if(isValid(pinnum))
            {
                System.out.println("--VALID pass--");
                   pInitialBal = 100000;
                   System.out.println();
                System.out.println("You have successfully registered, Here's your details\nAccount Name:"+aName+
                "\nAccount Number:"+num+"\n\nAs an additional information you have initally 10,000 balance upon registering\nThank you!\n\n");
                choose();
            }
            else
            {
                System.out.println("--INVALID pass--");
                invalidpin();
            }
    }
    public static boolean isValid(String pinnum) {
    if(!((pinnum.length()>=4)&&(pinnum.length()<=8)))
    {
        return false;
    }
    if(true)
    {
        int count=0;
        for(int i=0;i<=9;i++)
        {
        String pinnum1=Integer.toString(i);
        if(pinnum.contains(pinnum1))
            {
              count=1;
            }
        }
        if(count==0)
        {
         return false;
        }

    }
    if(!(pinnum.contains("@")||pinnum.contains("#")||pinnum.contains("!")||pinnum.contains("~")||pinnum.contains("$")||pinnum.contains("%")||pinnum.contains("^")||pinnum.contains("&")||pinnum.contains("*")||pinnum.contains("(")||pinnum.contains(")")||pinnum.contains("_")||pinnum.contains("-")||pinnum.contains("=")||pinnum.contains("+")))
    {
        return false;
    }
    if(true)
    {
        int count=0;
        for(int i=65;i<=90;i++)
        {
        char c=(char)i;
        String pinnum1=Character.toString(c);
        if(pinnum.contains(pinnum1))
            {
              count=1;
            }
        }
        if(count==0)
        {
        return false;
        }
    }
    if(true)
    {
        int count=0;
        for(int i=90;i<=122;i++)
        {
        char c=(char)i;
        String pinnum1=Character.toString(c);
        if(pinnum.contains(pinnum1))
            {
              count=1;
            }
        }
        if(count==0)
        {
        return false;
        }
    }
     return true;
     }
     private static void invalidpin() {
        Scanner in = new Scanner(System.in);
        System.out.println("--The pin number must have number,letter and special symbol--");
        System.out.print  ("Enter Pin Number:");
        String pinnum = in.nextLine();
           
            if(isValid(pinnum))
            {
                System.out.println("--VALID pass--");
            }
            else
            {
                System.out.println("--INVALID pass--");
                invalidpin();
            }
     }  
     private static void invalidnum() {
         Scanner in = new Scanner(System.in);
         System.out.println("--Enter a unique 10 numbers--");  
          System.out.print("Account Number:");
        int num=in.nextInt();
        int max=Integer.toString(num).length();

             if (max==10)
            {
                System.out.println("Your account is valid");
                System.out.println("Account Number:"+num);
            }
            else if(max<10)
            {
                System.out.println("--Invalid must be unique and 10 numbers only--");
                invalidnum();  
            }
            else
            {
                invalidnum();
            }
    }
    private static void anotherTransaction() {
        Scanner in = new Scanner(System.in);
        String choose;
           System.out.println("Would you like to make another transaction?[Y/N]");
        choose = in.nextLine();
                switch (choose){
                case "Y":
                    choose();
                break;
                case "N":
                    System.out.println("\nThank you!");
                    in.close();
                break;
                   default:
                    System.out.println("Please make sure you answer correctly.");
                    anotherTransaction();
                break;
            }
    }
    private static void wrongamount() {  
        int totalBalance;
        int compute;
        int etAmount;
        Scanner in = new Scanner(System.in);
         System.out.println("\nPlease enter desired amount: ");
        etAmount = in.nextInt();
        compute = 10000;
        totalBalance=etAmount;

        if(totalBalance<=etAmount||totalBalance==0||totalBalance>=100)
    {
        int div=totalBalance-etAmount;
         System.out.println("Your account balance now is:"+div);


     }
     else
     {
         System.out.println("--Invalid make sure amount is greater than to 100 and 10000 maximum--");
         wrongamount();
     }
    }
  }
 
ts dapat yung account number generated na ng program, hindi mismong user ang gagawa, yung sa may balance na agad, dapat wala kang initial balance na nilagay.
Hindi ko ma gets kung para san to ts, bakit kailangan lagyan ng -10000.
1611576224560.png
 
[CODE lang="java" title="ATM"]import java.util.*;

public class Main
{
public static void main(String[] args) {
firstFiveAcc();
choose();
}
private static void choose() {
Scanner in = new Scanner(System.in);
String choice;

System.out.println("====Menu====");
System.out.println("1. Registeration");
System.out.println("2. Balance");
System.out.println("3. Withdraw");
System.out.println("4. Deposit");
System.out.print("0. Exit\n\nEnter your answer here: ");

choice = in.nextLine();
System.out.println("\n");

switch (choice){
case "1":
registering("null");
break;
case "2":
logIn("null","null","null");
break;
case "3":
withdraw();
break;
case "4":
deposit();
break;
case "0":
System.out.println("--Thank You For Using Our Service--");
in.close();
break;
default:
System.out.println("Please enter correct choice.");
choose();
}
}
//---------------------------------------------------------------------------------------
private static String accountName[] = new String[10],
accountNumber[]= new String[10],
accountPin[] = new String[10];//array
private static int accountMoney[] = new int[10];
private static int onlineAccountNumber=-1,accountCount=4;
//"-1"means no one is online // 4 is the index so now theres 5 accounts
//---------------------------------------------------------------------------------------
private static void firstFiveAcc(){

accountName[0] ="acc1";
accountPin[0] ="12341";
accountNumber[0] ="1234567891";
accountMoney[0] =10000;

accountName[1] ="acc2";
accountPin[1] ="12342";
accountNumber[1] ="1234567892";
accountMoney[1] =10000;

accountName[2] ="acc3";
accountPin[2] ="12343";
accountNumber[2] ="1234567893";
accountMoney[2] =10000;

accountName[3] ="acc4";
accountPin[3] ="12344";
accountNumber[3] ="1234567894";
accountMoney[3] =10000;

accountName[4] ="acc5";
accountPin[4] ="12345";
accountNumber[4] ="1234567895";
accountMoney[4] =10000;
}
//---------------------------------------------------------------------------------------
private static void registering(String inputName){
Scanner in = new Scanner(System.in);
String pinnum;
if(accountCount!=9){
if(inputName.equals("null")){
System.out.println("==Registeration==");
System.out.println(" 0.Back\n");
System.out.print("Please enter Your Name: ");
inputName = in.nextLine();
System.out.println("\n");
}
if(!(inputName.equals("0"))){
System.out.println("Please enter Pin Number");
System.out.println("--4-8 characters only must--");
System.out.println("--contain number, letter--");
System.out.println("--and special symbol--");
System.out.print("\nEnter Pin NUmber:");
pinnum = in.nextLine();
in.close();
if(pinnum.length()>3 && pinnum.length()<9 && accountCount!=9)
{
System.out.println("\n");
accountCount=accountCount+1;//adding another account to array
accountName[accountCount]=inputName;
accountPin[accountCount]=pinnum;
accountNumber[accountCount]=""+accoutNumberGenerator()+accountCount;
accountMoney[accountCount]=10000;
System.out.println("--Success Fully Created--");
System.out.println("\nAccount Name: "+accountName[accountCount]);
System.out.println("Account Number: "+accountNumber[accountCount]);
System.out.println("Account PinPass: ********");
System.out.println("\n");
choose();
}else if(pinnum.equals("0")){
registering("null");
}else{
System.out.println("\n--INVALID Input--\n");
registering(inputName);
}
}else{
choose();
}
}else{
System.out.println("--Bank Account Full--\n Sorry You Cant Create \n Any Account Anymore");
choose();
}
}
//---------------------------------------------------------------------------------------
private static int accoutNumberGenerator(){
Random randomGenerator=new Random();
int accountNumgenerated=0;//random value holder
do{
do{//this generaes a random 9 digit number for account number
accountNumgenerated=randomGenerator.nextInt(1000000000);
if(accountNumgenerated<0){//ededetect kung negative abg value ng random number at kung oo, papasok dito
accountNumgenerated*=1000000000;//ito ang mag coconvert ng -9 digits to positive
}
}while(accountNumgenerated<100000000);//if the random number is less than 9 digit, it will restart the random generator
}while(accountNumgenerated>999999999);//if the random number is greather than 9 digit, then it will restart the random generator
return accountNumgenerated;//return if the random number is perpectly 9 digit and not negative value
//9 digit only is available for random generator so i add the current total number of account which a total of 10;
//convert int to string
}
//---------------------------------------------------------------------------------------
private static void logIn(String inputName, String inputPinPass, String inputAccountNumber){
Scanner in = new Scanner(System.in);
int passMin=4,passMax=8,accNumMaxMax=10;
if(inputName.equals("null")){
System.out.println("==Verification==");
System.out.println(" 0.Back\n");
System.out.print("Please enter Your Account Name: ");
inputName = in.nextLine();
System.out.println("\n");
}
if(!(inputName.equals("null")) && !(inputName.equals("0")) && inputAccountNumber.equals("null") ){
System.out.println(" 0.Back\n");
System.out.print("Please enter Your Account Number: ");
inputAccountNumber = in.nextLine();
System.out.println("\n");
if(inputAccountNumber.length()<accNumMaxMax && inputAccountNumber.length()>accNumMaxMax){
System.out.println("Input Error Input Does Not Get The\n Minimum Maximum Length");
logIn(inputName,"null","null");
System. exit(1);//end this method.. but the recurtion will still continue
}
}else if(inputName.equals("0")){
choose();//back to menu
System. exit(1);
}
if( !(inputAccountNumber.equals("null")) && !(inputAccountNumber.equals("0")) && inputPinPass.equals("null") ){
System.out.println(" 0.Back\n");
System.out.print("Please enter Your PinPass: ");
inputPinPass = in.nextLine();
System.out.println("\n");
if(inputPinPass.length()<passMin && inputPinPass.length()>passMax && !(inputPinPass.equals("0")) ){
System.out.println("Input Error Input Does Not Get The\n Minimum Maximum Length");
logIn(inputName,"null",inputAccountNumber);
System. exit(1);
}else if(inputPinPass.equals("0")){
logIn(inputName,"null","null");
System. exit(1);
}
if(validateAccount(inputName,inputPinPass,inputAccountNumber)){
balance();
}else{
System.out.println("Input Miss Mach");
System.out.println(" or account does not exists.");
logIn("null","null","null");
System. exit(1);
}
}else if(inputAccountNumber.equals("0")){
logIn("null","null","null");//back from the start of log in
System. exit(1);
}
}
//---------------------------------------------------------------------------------------
private static boolean validateAccount(String findName, String findPinPass, String findAccNumber){
for(int loop=0;loop<(accountCount+1);loop++){
if(findName.equals(accountName[loop]) && findAccNumber.equals(accountNumber[loop]) && findPinPass.equals(accountPin[loop])){
/* hinahanap ang input ni user sa lahat ng nakastore na account
at kung tutugma. Pag tumugma ay mag rereturn ng true at
ererecord kung anong index sya nakita para magamit sa account menu
*/
onlineAccountNumber=loop;
return true;
}
}
return false;
}
//---------------------------------------------------------------------------------------
private static void balance(){
Scanner in = new Scanner(System.in);
System.out.println("==Your Balance==");
System.out.println("\nAccount Name: "+accountName[onlineAccountNumber]);
System.out.println("Account Number: "+accountNumber[onlineAccountNumber]);
System.out.println("Account PinPass: ********");
System.out.println("Account Balance: "+accountMoney[onlineAccountNumber]);
System.out.println("\nWould you like to make another transaction?");
System.out.println("Y.Yes N.No");
System.out.print("\nChoice: ");
String choice = in.nextLine();
System.out.println("\n");
if(choice.equals("Y")){
choose();
}else if(choice.equals("N")){
System.out.println("--Thank You For Using Our Service--");
}else{
System.out.println("Please enter correct choice.");
balance();
}

}
//---------------------------------------------------------------------------------------
private static int inputAmount(int max){
Scanner in = new Scanner(System.in);
if(onlineAccountNumber!=-1){
System.out.println("Minimum of P 100");
if(max!=0){
System.out.println("Minimum of P "+max);
}
System.out.print("Enter Desired Amount:");
try{
int value = in.nextInt();
if(value<100){
System.out.println("==Minimum Does Not Reach==");
System.out.println("==Please Try Again==");
return 0;
}else if(value == 0){
choose();
return 0;
}else{
return value;
}
}catch(Exception e){
System.out.print("Unable to Recognize");
System.out.println("==Please Try Again==");
inputAmount(max);
return 0;
}
}else{
System.out.println("Check Your Balance First \nBefore You Make Transactions");
/*kapag walang naka log in.. mag sasabi na mag check muna ng balance
bago mag log in*/
choose();
return 0;

}
}
//---------------------------------------------------------------------------------------
private static void withdraw(){
int valueInput = 0;
valueInput = inputAmount(10000);
if(!(valueInput>10000) && valueInput!=0){
if(valueInput>accountMoney[onlineAccountNumber]){
System.out.println("==Not Enough Valance==");
System.out.println("==Please Try Again==");
withdraw();
System. exit(1);
}else{
accountMoney[onlineAccountNumber]=accountMoney[onlineAccountNumber]-valueInput;
System.out.println("==Withdraw Slip==");
System.out.println("\nAccount Name: "+accountName[onlineAccountNumber]);
System.out.println("Account Number: "+accountNumber[onlineAccountNumber]);
System.out.println("Account PinPass: ********");
System.out.println("Account Balance: "+accountMoney[onlineAccountNumber]);
choose();
System. exit(1);
}
}else if(valueInput>10000){
System.out.println("==Maximum Does Not Reach==");
System.out.println("==Please Try Again==");
withdraw();
}else if(valueInput==0){
choose();
System. exit(1);
}
}
//---------------------------------------------------------------------------------------
private static void deposit(){
int valueInput = 0;
valueInput = inputAmount(0);
if(valueInput!=0){
accountMoney[onlineAccountNumber]=accountMoney[onlineAccountNumber]+valueInput;
System.out.println("==Deposit Slip==");
System.out.println("\nAccount Name: "+accountName[onlineAccountNumber]);
System.out.println("Account Number: "+accountNumber[onlineAccountNumber]);
System.out.println("Account PinPass: ********");
System.out.println("Account Balance: "+accountMoney[onlineAccountNumber]);
System.out.println("");
choose();
System. exit(1);
}else{
choose();
System. exit(1);
}
}
}
[/CODE]
 
Status
Not open for further replies.

About this Thread

  • 20
    Replies
  • 830
    Views
  • 3
    Participants
Last reply from:
Falln

Online now

Members online
1,030
Guests online
1,482
Total visitors
2,512

Forum statistics

Threads
2,277,057
Posts
28,974,016
Members
1,229,706
Latest member
mxmmo
Back
Top