Description
48024
Applications Programming Assignment 1
Topics:
OO Design, Standard Patterns, Lists
Learning Outcomes:
This assessment task addresses the following subject learning objectives (SLOs): 1, 2 and 3
Weight:
35%
Individual Work
http://www.gsu.uts.edu.au/rules/student/section-16.html
Working Language
You can choose either Java or Python to complete assignment 1. The higher mark between your Java solution and Python solution will be counted into your final grade. However, you are only credited from one of your solutions, either Java or Python, not both of them or the mixture.
The specification is illustrated based on Java. You can simply translate the Java syntax to Python for your Python solution. Detailed explanation about Python criteria will be posted in the FAQ page on ED.
Specification
The UTS Finance Department will consist of two main components for Tuition Management System (TMS), an administrative component, and a TMS component.
The administrative section will allow, through text-based menus, the login and logout of administrators, the addition and removal of students in the system, the display of students records, the display of a certain student with name, and the update of student’s accounts.
The TMS component will store a list of all the tuition information of the students and a list of the summary of the tuitions. The TMS component will also allow the creation and display of the collective tuition report as TMS record log. Finally, the TMS component will also handle the display of a certain student tuition information.
Each student record will include the student’s ID, name, email, phone, address, type, credits, payPerCredit, scholarship, deduction, deductionRate, totalFee, netFee and faculty fields.
Each tuition record will include the student’s name, scholarship, deduction, total tuition and net tuition.
The User Interface and sample I/O will be posted in the Assignment page on ED for detailed description.
An aside
While reading the first part of the specification, you will notice there is a lot going on.
• How many functions did you identify?
• How many classes did you identify?
• What are the fields in each class?
• How many goals did you identify?
• How many patterns did you think of that might be applicable?
This assignment will be challenging, and you will probably want to manage your time well.
• How long do you think it will take you to code the functions?
• How long do you think it will take you to code each goal?
• A good rule of thumb is to think of an estimate, and then multiply that number by 3 or 4!
• Which parts can you start now?
• Which parts can you start in week 6?
If you complete parts in the same week that you learn the topics (while they are fresh in your mind), they will take less time to complete.
Requirements
• To help visualize the design, a partial class diagram has been provided
• Classes – your design will consist of these 8 classes:
1. Session
2. Faculty
3. Faculties
4. Student
5. Students
6. Slip
7. TMS
8. TMSLog
9. Utils (this is the class to facilitate format and simple I/O, do not change)
• Fields – All the fields have been clarified in each class and they should not be modified. The fields also have some additional requirements and structures:
• Constructors – the constructors of the class have the following requirements:
1. The main method of the program will be in the Session class.
2. All constructors initialize the fields of their class.
3. The Session, Faculties, Students, and TMSLog constructors take no parameters.
4. The Faculty constructor takes three parameters, the name, email, and password, corresponding to the three fields identically named. Other fields require no parameters but the constructor methods.
5. The slip constructor take student as the parameter to initialize the fields identically named.
6. The TMS constructor takes faculty and students as the parameters.
7. The Student constructor requires the following formula to set the value of the fields:
payPerCredit: 500 totalFee: credits * payPerCredit deductionRate: 0.10 deductionCode: 2022AUT deduction calculation:
deductionCode == “2022AUT” totalFee * deductionRate
deductionCode != “2022AUT” 0 NetFee: totalFee – deduction calculation – scholarship bas: scholarship + deduction calculation 8. Faculties has the following data for Login:
John Smith john.smith@uts.com user222
Jane Tyler jave.tyler@uts.com super123
9. Students has the following data.
name email phone address ID type credits Scholarship Deduction Code
Thomas
Muller thomas.muller@uts.com 99991111 3 Byern
St.
Sydney
2001 13697480 Fulltime 48 4000 null
ALice Stefan alice.stefan@uts.com 88881111 24 Pitt St.
Sydney 2001 14517880 Parttime 24 0 null
Lucy Lu lucy.lu@uts.com 98981100 11
Hunter
St.
Sydney
2100 13267102 Fulltime 48 0 2022AUT
Andreas Brehme andreas.b@uts.com 90001222 91
Sussex
St. 13678020 Fulltime 48 0 null
Sydney 2100
Ruddy
Voller ruddy.v@uts.com 98980000 15 Stan
St.
Sydney
2100 13972870 Fulltime 48 8000 null
Monica Shwarz monica.s@uts.com 92241188 155
Jones
St.
Sydney
2001 13859610 Parttime 24 0 2022AUT
• Utils Class – the Class defines the following formatting:
1. Student Format:
studentHeader( )defines the output format of the header:
+———————-+—————————+————+————+
| Student Name | Email | Phone | Type |
+———————-+—————————+————+————+
System.out.format(Utils.studentFormat, name,email,phone,type) will produce a string of the form:
name,email,phone,type
e.g.
| Alice Stefan | alice.stefan@uts.com | 88881111 | Part-Time |
Note: “| %-20s | %-25s | %-10s | %-10s |%n” defines the space for the string.
2. TMS Format:
slipHeader( ) defines the output format of the TMS header:
+——————–+————-+————-+————-+————-+
| Student Name | Tuition | Scholarship | Net | Deduction |
+——————–+————-+————-+————-+————-+
System.out.format(Utils.tmsFormat,name,totalFee,scholarship,netFee, deduction)will produce a string of the form:
name,totalFee,scholarship,netFee,deduction
e.g.
| Lucy Lu | 24000.00 | 0.00 | 21600.00 | 2400.00 |
Note: “| %-18s | %-11.2f | %-11.2f | %-11.2f | %-11.2f |%n ” defines the space for the string.
3. Sum Format: System.out.format(Utils.sumFormat,”title”,value)will produce a string of the form:
Title, value
e.g.
| Total Tuition | 120000.00 |
Note: ” | %-18s | %-9.2f |%n ” defines the space for the string.
4. Log Format:
logHeader( ) defines the output format of the TMS header:
+————–+—————-+
| TMS Record | RecordID |
+————–+—————-+
System.out.format(Utils.logFormat,TMSRecord,name)will produce a string of the form:
TMSRecord,name
e.g.
| TMS 1 | Jane Tyler1 |
Note: “| %-12s | %-9s |%n” defines the space for the string.
Advanced Requirements
To achieve a mark of >84, you must implement the record archive function and retrieve function (or set of functions). This corresponds to 2 options in the TMS menu. Choosing archive option should create a tmsLog named after the faculty and the version number. If the new archive is the same as the previous archive, the previous archive will be overwritten with the new version number. In this way, the system avoids archiving the same record with different names. Choosing retrieve option should prompt the user for a valid record name, and display the tmsLog matching the name. If the system does not archive the report with the name, system will show “No TMS is recorded as: <name>”. Detailed specification please refers to the User Interface and sample I/O page on ED.
Expected Workload
The time to do the assignment to a credit/distinction level has been estimated at 35 hours for a student of average ability who has completed all the tutorial and lab exercises.
Online Support
If anything about the specification is unclear or inconsistent, check the FAQ first, then contact the subject coordinator who will try to make it clearer by replying to you directly and posting the common questions and answers to the FAQ. This is similar to working on the job, where you ask your client if you are unsure what has to be done, but then you write all the code to do the task.
The preferred way to ask assignment related questions is to participate in the lectures, lab activities, UPASS, and consultation sessions. Students are expected to seek help through the following steps:
Step 1: Check the FAQ
Step 2: Ask peers or via the group discussion board
Step 4: Forward to the subject coordinator
ED Marking
Your solution is marked for correctness by comparing the output of your system to the output of the benchmark system in ED. You can submit a solution to ED many times by press “MARK”; I urge you to do this, so you receive credit for your work. Any code hasn’t been “MARK” by ED won’t be credited.
ED will test the features of your program in a certain order, but it cannot test the more advanced goals until the basic goals are working. To receive marks, you must pass ED’s test cases in the order in which ED tests them.
Submission and Return
Marking Scheme
Functionality Component
Mark Allocation
Main Menu
4
Faculty Menu
5
TMS Menu
5
View Student
10
Add Student
10
Retrieve Student
10
Update Student
10
Delete Student
10
Slip Report
10
TMS Report
10
Archive Report
6
Retrieve Report 10
This adds to a mark out of 100, at makes up 35% of your final assessment mark.
Reviews
There are no reviews yet.