Programming 3 LAB4
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.
}
}