Programming 3 LAB4

profilerozandwd
FA2019_LAB3_Dawadi.zip

FA2019_LAB3_Dawadi/UnsortedOptimizedArray_Dawadi.java

FA2019_LAB3_Dawadi/UnsortedOptimizedArray_Dawadi.java

//UnsortedOptimizedArray_Dawadi.java
import  java . util . Scanner ; // to  use scanner


public   class   UnsortedOptimizedArray_Dawadi   {

public   static   void  main ( String []  args )   {

int  choice ; //variable for choice of user
  
FA2019_ArrayBasedStructureDemo_Dawadi  z  =   new   FA2019_ArrayBasedStructureDemo_Dawadi ();
Scanner  sc1 = new   Scanner ( System . in );
do
{
System . out . println ( "1. Insert one account" );
System . out . println ( "2. Verify encapsulation" );
System . out . println ( "3. Update an account" );
System . out . println ( "4. Delete an account" );
System . out . println ( "5. Show all accounts" );
System . out . println ( "0. Exit" );
choice = sc1 . nextInt ();
  
  
switch ( choice ) //selects each case based on user input
{
case   1 :
z . insert ();
break ;

case   2 :
z . encap ();
break ;
  
case   3 :
z . update ();
break ;
  
case   4 :
z . remove_acc ();
break ;
  
case   5 :
z . show ();
break ;
  
case   0 :
break ;
  
default : //if user selects anything outside 1-5, shows this message
System . out . println ( "Invalid choice" );
}
}
while ( choice != 0 ); //exits program while selection is not 0
  
  
}
  
}

FA2019_LAB3_Dawadi/SavingsAccount_Dawadi.class

FA2019_LAB3_Dawadi/.DS_Store

__MACOSX/FA2019_LAB3_Dawadi/._.DS_Store

FA2019_LAB3_Dawadi/FA2019_ArrayBasedStructureDemo_Dawadi.java

FA2019_LAB3_Dawadi/FA2019_ArrayBasedStructureDemo_Dawadi.java

//FA2019_ArrayBasedStructureDemo_Dawadi
import  javax . swing . JOptionPane ; //displays pane with notice
import  java . util . ArrayList ; //needed to use arrays
import  java . util . Scanner ; //needed to scan user input

/**
 *
 *  @author  rozandwd
 */
public   class   FA2019_ArrayBasedStructureDemo_Dawadi   {
ArrayList < CheckingsAccount_Dawadi >  c  =   new   ArrayList < CheckingsAccount_Dawadi > ();
ArrayList < SavingsAccount_Dawadi >  s  =   new   ArrayList < SavingsAccount_Dawadi > ();
Scanner  sc = new   Scanner ( System . in );
 
public   void  insert ()
{
int  choice ;
String  acc , nam , test ;
double  bal , fee , inter ;
  
System . out . println ( "Please enter the type of account:" );
System . out . println ( "1. Checking Account:" );
System . out . println ( "2. Saving Account:" );
  
  
choice = sc . nextInt (); //selects user input and acts accordingly
  
if ( choice == 1 )
{
   for   (   int  i = 0 ;  i < 3 ;  i ++   ) //runs the loop 3 times as required 
   {
System . out . println ( "Please enter your Account number:" );
acc = sc . next ();
  
sc . nextLine ();
  
System . out . println ( "Please enter your Name:" );
nam = sc . next ();

System . out . println ( "Please enter the balance:" );
bal = sc . nextDouble ();
  
System . out . println ( "Please enter the fee:" );
fee = sc . nextDouble ();
   if   ( bal >= 0 ){
c . add ( new   CheckingsAccount_Dawadi ( acc , nam , bal , fee ));
System . out . println ( "Insert Account Success" );
showBox ( "Insert success!" );
   } else
       System . out . println ( "Insert Account failed" );
  showBox ( "Insert Failed!" );
}
}
else   if ( choice == 2 )
{
  
System . out . println ( "Please enter your Account number:" );
acc = sc . next ();
sc . nextLine ();
System . out . println ( "Please enter your Name:" );
nam = sc . nextLine ();
  
System . out . println ( "Please enter the balance:" );
bal = sc . nextDouble ();
  
System . out . println ( "Please enter the interest rate:" );
inter = sc . nextDouble ();
   if   ( bal >= 0 ){
s . add ( new   SavingsAccount_Dawadi ( acc , nam , bal , inter ));
System . out . println ( "Insert Account Success" );
}
   else
       System . out . println ( "Insert Account failed" );
}
else
{
System . out . println ( "invalid choice" );
insert ();
}
}
  
public   void  encap ()
{
int  choice ;
String  acc , nam ;
double  bal , fee , inter ;
  
  
System . out . println ( "Please enter the type of account:" );
System . out . println ( "1. Checking Account:" );
System . out . println ( "2. Saving Account:" );
  
  
choice = sc . nextInt ();
  
if ( choice == 1 )
{
System . out . println ( "Please enter your Account number:" );
acc = sc . next ();
sc . nextLine ();
System . out . println ( "Please enter your Name:" );
nam = sc . nextLine ();
  
System . out . println ( "Please enter the balance:" );
bal = sc . nextDouble ();
  
System . out . println ( "Please enter the fee:" );
fee = sc . nextDouble ();
  
  
for ( CheckingsAccount_Dawadi  che : c )
{
if ( che . accNumber == acc )
{
che . serviceFee = fee ;
CheckingsAccount_Dawadi  copy  =   new   CheckingsAccount_Dawadi ();
copy = che ;
if ( copy . serviceFee == fee )
{
System . out . println ( "Unsorted Optimized Array is not encapsulated" );
}
else
System . out . println ( "Unsorted Optimized Array is encapsulated" );
}
}
}

else   if ( choice == 2 )
{
  
System . out . println ( "Please enter your Account number:" );
acc = sc . next ();
sc . nextLine ();
System . out . println ( "Please enter your Name:" );
nam = sc . nextLine ();
  
System . out . println ( "Please enter the balance:" );
bal = sc . nextDouble ();
  
System . out . println ( "Please enter the interest rate:" );
inter = sc . nextDouble ();
  
for ( SavingsAccount_Dawadi  sav : s )
{
if ( sav . accNumber == acc )
{
sav . balance = bal ;
SavingsAccount_Dawadi  copy  =   new   SavingsAccount_Dawadi ();
copy = sav ;
if ( copy . interestRate == inter )
{
System . out . println ( "Unsorted Optimized Array is not encapsulated" );
}
else
System . out . println ( "Unsorted Optimized Array is encapsulated" );
}
}
  

}
else
{
System . out . println ( "invalid choice" );
encap ();
}

}
  
public   void  update ()
{
  
int  choice ;
String  acc , nam ;
double  bal , fee , inter ;
  
System . out . println ( "Please enter the type of account:" );
System . out . println ( "1. Checking Account:" );
System . out . println ( "2. Saving Account:" );
  
  
choice = sc . nextInt ();
  
if ( choice == 1 )
{
System . out . println ( "Please enter your Account number:" );
acc = sc . next ();
sc . nextLine ();
System . out . println ( "Please enter your Name:" );
nam = sc . nextLine ();
  
System . out . println ( "Please enter the balance:" );
bal = sc . nextDouble ();
  
System . out . println ( "Please enter the fee:" );
fee = sc . nextDouble ();
  
  
for ( CheckingsAccount_Dawadi  che : c )
{
if ( che . accNumber == acc )
{
che . serviceFee = fee ;
}
}
System . out . println ( "Update Successfully" );
}
  
else   if ( choice == 2 )
{
  
System . out . println ( "Please enter your Account number:" );
acc = sc . next ();
sc . nextLine ();
System . out . println ( "Please enter your Name:" );
nam = sc . nextLine ();
  
System . out . println ( "Please enter the balance:" );
bal = sc . nextDouble ();
  
System . out . println ( "Please enter the interest rate:" );
inter = sc . nextDouble ();
  
for ( SavingsAccount_Dawadi  sav : s )
{
if ( sav . accNumber == acc )
{
sav . balance = bal ;
}
}
System . out . println ( "Successfully updated" );
}
else
{
System . out . println ( "Update failed" );
update ();
}
  
}
  
public   void  remove_acc ()
{
String  acc ;
System . out . println ( "Please enter the account number of the account that you want to remove:" );
acc = sc . next ();
sc . nextLine ();
for ( CheckingsAccount_Dawadi  che : c )
{
if ( che . accNumber . equals ( acc ))
{
c . remove ( che );
System . out . println ( "Delete successfully" );
break ;
}
}
  
for ( SavingsAccount_Dawadi  sav : s )
{
if ( sav . accNumber . equals ( acc ))
{
s . remove ( sav );
System . out . println ( "Delete failed" );
break ;
}
}
}
  
public   void  show ()
{
System . out . println ( "Checking Account" );
System . out . println ( "#######################################" );
  
  
for ( CheckingsAccount_Dawadi  che : c )
{
che . printStatement ();
System . out . println ( " " );
  
}
  
System . out . println ( "***************************************" );
System . out . println ( "***************************************" );
System . out . println ( " " );
System . out . println ( "Savings Account" );
System . out . println ( "***************************************" );
  
for ( SavingsAccount_Dawadi  sav : s )
{
sav . printStatement ();
System . out . println ( " " );
}

}

     private   void  showBox ( String  insert_success )   {
          //To change body of generated methods, choose Tools | Templates.
     }
}

FA2019_LAB3_Dawadi/FA2019_ArrayBasedStructureDemo_Dawadi.class

FA2019_LAB3_Dawadi/SavingsAccount_Dawadi.java

FA2019_LAB3_Dawadi/SavingsAccount_Dawadi.java

//SavingsAccount_Dawadi.java
class   SavingsAccount_Dawadi   extends   Accounts_Dawadi
{
public   double  interestRate ;
public   SavingsAccount_Dawadi ()
{
super ();
}
public   SavingsAccount_Dawadi ( String  acc ,   String  nam ,   double  bal , double  inter )
{
accNumber = acc ;
name = nam ;
balance = bal ;
interestRate  =  inter ; //variables for user input of the following
}
public   void  openAccount ()
{   System . out . println ( "Account Type: Saving Account" );
super . openAccount ();
//opens new account
}
public   void  checkBal ()
{
System . out . println ( "Account Type: Saving Account" );
super . checkBal ();
//checks balance in the account
}
public   void  deposit ( double  amount )
{
System . out . println ( "Account Type: Saving Account" );
super . deposit ( amount );
//deposits money to each account
}
public   void  withdraw ( double  amount )
{
System . out . println ( "Account Type: Saving Account" );
super . withdraw ( amount );
//subtracts withdrawn money
}
public   void  calculateInterest ()
{
super . balance += super . balance * interestRate * 0.01 ;
} //calculates interest rate on the account
public   void  printStatement ()
{
calculateInterest ();
System . out . println ( "Account Type: Saving Account" );
System . out . println ( "Interest Rate: " + interestRate );
super . printStatement ();
}
}

FA2019_LAB3_Dawadi/CheckingsAccount_Dawadi.java

FA2019_LAB3_Dawadi/CheckingsAccount_Dawadi.java

//CheckingsAccount_Dawadi.java
class   CheckingsAccount_Dawadi   extends   Accounts_Dawadi

{
public   double  serviceFee ;
public   CheckingsAccount_Dawadi ()
{
super ();
}
public   CheckingsAccount_Dawadi ( String  acc ,   String  nam ,   double  bal , double  fee )
{
super ( acc , nam , bal );
serviceFee  =  fee ; //variables for user input of the following
}
public   void  openAccount ()
{   System . out . println ( "Account Type: Checking Account" );
super . openAccount ();
//opens new account
}
public   void  checkBal ()
{
System . out . println ( "Account Type: Checking Account" );
super . checkBal ();
//checks balance in the account
}
public   void  deposit ( double  amount )
{
System . out . println ( "Account Type: Checking Account" );
super . deposit ( amount );
//deposits money to each account
}
public   void  withdraw ( double  amount )
{
System . out . println ( "Account Type: Checking Account" );
super . withdraw ( amount );
//subtracts withdrawn money
}
public   void  calculateFee ()
{
super . balance -= super . balance * serviceFee * 0.01 ;
}
//calculates interest rate on the account
public   void  printStatement ()
{
calculateFee ();
System . out . println ( "Account Type: Checking Account" );
System . out . println ( "Service Fee: " + serviceFee );
super . printStatement ();
}
}

FA2019_LAB3_Dawadi/CheckingsAccount_Dawadi.class

FA2019_LAB3_Dawadi/Accounts_Dawadi.java

FA2019_LAB3_Dawadi/Accounts_Dawadi.java

//Accounts_Dawadi.java
public   class   Accounts_Dawadi   {
public   String  accNumber ;
public   String  name ;
public   double  balance ; //variables for account

public   Accounts_Dawadi ()
{
accNumber = "-1" ;
name = "default" ;
balance =- 1 ;
}
public   Accounts_Dawadi ( String  acc ,   String  nam ,   double  bal )
{
accNumber = acc ;
name = nam ;
balance = bal ;
}
public   void  openAccount ()
{
System . out . println ( "Name is " +  name +   " \naccount number " +  accNumber +   " \nbalance is " + balance );
}
public   void  checkBal ()
{
System . out . println ( "Account Name: " + name );
System . out . println ( "Account Number: " + accNumber );
System . out . println ( "Current Balance: " + balance );
  
}
public   void  deposit ( double  amount )
{
balance += amount ;
System . out . println ( "Account Name: " + name );
System . out . println ( "Account Number: " + accNumber );
System . out . println ( "Deposit Amount: " + amount );
System . out . println ( "New Balance: " + balance );
}
public   void  withdraw ( double  amount )
{
if ( balance > amount )
{
balance -= amount ;
System . out . println ( "Account Name: " + name );
System . out . println ( "Account Number: " + accNumber );
System . out . println ( "Withdrawn Amount: " + amount );
System . out . println ( "New Balance: " + balance );
}
else
System . out . println ( "Not enough balance" );
}
public   void  printStatement ()
{
System . out . println ( "Account Name: " + name );
System . out . println ( "Account Number: " + accNumber );
System . out . println ( "End Balance: " + balance );
}

     String  getAccountNumber ()   {
         throw   new   UnsupportedOperationException ( "Not supported yet." );   //To change body of generated methods, choose Tools | Templates.
     }
}

FA2019_LAB3_Dawadi/Accounts_Dawadi.class

FA2019_LAB3_Dawadi/LAB3_Pseudocode_Dawadi.docx

LAB 3 Pseudo code

To insert new account:

Using For loop to add 3 accounts data structure

If all valid inputs by user, program displays successful else failed

To verify encapsulation:

User inputs one account for verification

Compares two fields and if its similar, prints message “Unsorted Optimized Array is not encapsulated” but if different, display message is “Unsorted Optimized Array is encapsulated”

To update account:

User inputs one account information.

Changes the interest rate of account

Update account to data structure

Update success or failed message print accordingly.

To delete an account

User inputs one account information.

Delete accounts.

Delete success or failed message print accordingly.

To show all accounts:

Prints all accounts in data structure.

When user inputs 0:

The Program terminates.

When user inputs anything else:

Program says invalid

/Users/rozandwd/Desktop/FA2019_LAB3_Dawadi/Screen Shot 2019-10-01 at 6.51.22 PM.png

/Users/rozandwd/Desktop/FA2019_LAB3_Dawadi/Screen Shot 2019-10-01 at 6.51.06 PM.png /Users/rozandwd/Desktop/FA2019_LAB3_Dawadi/Screen Shot 2019-10-01 at 6.50.53 PM.png /Users/rozandwd/Desktop/FA2019_LAB3_Dawadi/Screen Shot 2019-10-01 at 7.44.20 PM.png

__MACOSX/FA2019_LAB3_Dawadi/._LAB3_Pseudocode_Dawadi.docx

FA2019_LAB3_Dawadi/UnsortedOptimizedArray_Dawadi.class