Outcomes
▪ Write programs that use object oriented programming concepts.
▪ Write programs that use objects.
▪ Write programs that use ArrayList.
▪ Write applications using object oriented programming concepts.
Scoring
▪ If you do not submit a .zip file containing your source code, your score will be
zero.
▪ If you submit source code that does not compile, your score will be zero.
▪ If you submit source code without the correct class name(s) or the correct
method names (see below), your score will be decreased by 50 points.
▪ In addition, deductions will be made for not meeting the following
requirements:
o At the beginning of each java file, add a comment with the following information:
▪ Student’s name
▪ Course/section,
▪ Date
▪ Filename
▪ Description of the program/class o Indentation guidelines:
▪ The code inside of a class must be indented with respect to the class
definition.
▪ The code inside of a method must be indented with respect to the method
definition.
▪ The code inside of if / else / else if / while / for / do-while structures must be
indented with respect to its corresponding structure.
▪ Curly braces can be positioned at the end of the corresponding structure
definition, or in the following lines aligned with the corresponding structure. o
Comments:
▪ At least, one-line comment should be added per method or constructor.
▪ Comments must describe the functionality or objective of the method.
▪ Please add more comments about your code, if you think that will help the
grader.
Rubric
Full credit Partial credit
Implement the menu
application of a transaction list
(part 1)
(15 points)
You implements the menu
application of a transaction list.
You implements the
menu application of a
transaction list, but with
some errors.
Implement the add
transaction
method in the
application (part 2)
( 15 points)
You implements the add
transaction
method in the
application.
You implements the add
transaction method in
the application, but
with
some
errors.
Implement the
transaction
application
(part
(20 points)
search
in the
You implements the
transaction method in the
application.
search You implements the
search transaction
method in the
application, but with
some errors.
method
3)
Implement the display
transactions method in the
application (part 4)
(20 points)
You implements the display
transactions method in the
application.
You implements the
display transactions
method in the
application, but with
some errors.
Implement the filter
transactions method in the
application (part 5)
(20 points)
You implements the filter
transactions method in the
application.
You implements the filter
transactions method in
the application, but with
some errors.
Make sure the user does not
enter bad values
(10 points)
You make sure the user only
enters a valid menu options and
other user inputs.
You check for bad user
entry, but with some
errors.
Description
You will build an application which manage (add / search / display / filter) transactions of a bank
account.
Part 1
Create a folder to store the files of your Homework01.
Inside this folder, create a file called Transaction.java which will contain the following class and its
data fields.
Class name
Data fields
The name of your class is Transaction. It contains 4 data fields: id (int type), amount (double type), type
(char type), description (String type).
The data field called type represents the type of transaction. For this program, the types are ‘W’
(withdraw), and ‘D’ (deposit).
In the class, add a constructor which requires 4 input arguments which will be assigned to each of the
corresponding data fields. See below an example of the header of the constructor: public
Transaction(String argId, double argAmount, char argType, String argDescription)
In the same folder, create a program (Java file) which will contain the main method. The name for this
file is Homework01.java.
In this file, in the main method, create an ArrayList object named transactionList. Then, create a
functional program menu like the following example:
Transaction list menu
=====================
1. Add transaction.
2. Search transaction.
3. Filter.
4. Display all transactions.
5. Exit.
Enter your choice: _
Besides, create the methods for the 4 first options:
public static void addTransaction(ArrayList
static void searchTransaction(ArrayList
static void filterTransactions(ArrayList
static void displayTransactions(ArrayList
Please notice the four methods do not return a value (void) and they receive as argument an ArrayList
reference which will be transactionList. So, once an option is chosen, the corresponding method should
be called.
Part 2
The functionality of the method addTransaction should be like the example below. The text in red in the
code, represents user input.
Transaction
id: int
amount: double type:
char description:
String
=== Add Transaction
Enter transaction Id: 8 Transaction
type [W, D]: W
Amount: 1000
Description: Apartment rent Transaction
created!
Once any of this processes (add / search / search / display) is completed, the application must return to
the menu. Part 3
The functionality of the method searchTransaction should be like the example below.
=== Search Transaction
Enter transaction Id: 8
Id: 8
Type: W
Amount: 1000.00
Description: Apartment rent Transaction
found!
When the transaction Id is not found the functionality should be like the example below.
=== Search Transaction
Enter transaction Id: 8 Transaction
not found!
Part 4
The functionality of the method displayTransactions should be like the example below.
=== Display Transactions
Id type amount description
8 W 1000.00 Apartment rent
10 D 2100.00 Salary
Part 5
The functionality of the method filterTransactions should be like the example below.
=== Filter Transactions
Enter query: >500.50
Id type amount description
8 W 1000.00 Apartment rent
10 D 2100.00 Salary
This module should take the query, and identify the first character which could be > (less than) or <
(greater than); then the rest of the query should be a double value. In the example above, the query
means: show all transactions with amount greater than 500.50.
Another example:
=== Filter Transactions
Enter query: <2000
Id type amount description
8 W 1000.00 Apartment rent
In this example the query means: show all transactions with amount lower than 2000.00. In addition,
when no transaction match the query, the functionality should be like the example below.
=== Filter Transactions
Enter query: <100
Id type amount description
No transactions found!
Other requirements
▪ For this program, you only need to validate the option selection in the menu i.e. the selected
option should be a value between 1-5; otherwise, it should show an error message, and show
the menu again and ask for another selection.
▪ Once the program is complete. Compress the folder (create a zip file) with the java files and
submit it to the corresponding assignment in Canvas. The name of the zip file should be
Homework01.zip
Advice
▪ Since your application uses an ArrayList, read the ArrayList class description in the Java API
documentation. Also, remember to import this class to
your program.
▪ Since one of the data fields is type Date, read the Date class description in the Java API
documentation. Also, remember to import this class to your program.
▪ Review the method Double.parseDouble() to convert a String to Double. It could be useful for
your program.