辅导案例-CSC8406
1

CSC8406 2019/2020: Object Oriented Programming
Module Coursework (resit)
Aims
Improve knowledge and experience of applying Object Oriented Design and Implementation
techniques to solving problems using the JAVA programming language, specifically with the
aim of gaining experience in the following:
• Programs, programming and programming environments.
• Object-oriented programming: comments; types; variable declarations; arithmetic
and Boolean expressions; assignment.
• Loops and conditions; input and output.
• Data structures: arrays and lists.
• Simple algorithms: searching, sorting.
• Methods.
• Objects; inheritance; applications.
Assessment (Deadline: 16:00, Friday, 19 June 2020)
This coursework is marked out of a total of 100. You are required to submit the following:
• Part 1 Source Code (75%): The main emphasis is on proficiency in Object Oriented
Programming using Java, including: definition of classes (fields, constructors,
methods), inheritance, exception handling, as well as appropriate use of APIs such as
collections. One of the classes of your application should include a static method
called main containing the evidence that you tested your program.
• Part 2 Testing (5%): The main emphasis is on the appropriate choices for test cases.
• Part 3 Documentation (20%): This includes appropriate Java Docs, and a well-
structured project report (PDF, or Word document). The project report should
include your reasoning behind your design (include also a class diagram). The project
report should describe implementation details, and include a discussion of test
cases. The project report should also include instructions on how to run your
program.
Plagiarism
The University has strict policies for penalising plagiarism, and all work submitted for
assessment must be your own work. This does not prohibit discussion among students
about coursework. Indeed, such discussion to increase understanding is positively
encouraged. However, the answers submitted must be your original contribution, written
and designed by you. It is permissible to include some material drawn directly from other
sources (if you think this benefits the report part of the submission), but such non-original
material must be explicitly declared to be a quotation from an external source, and that
source must be listed.
2

Scenario: Music Library
This scenario is associated with the implementation of a program that stores information
about recorded music collections, like Apple's iTunes except that it does not have to actually
play the songs themselves.
• Music artists are either soloists or bands. Soloists just have a name, but bands also
have a list of members, who may be soloists in their own right.
• A music track has information about the track title, artist, date, the length (in time)
of the track, the track rating (an integer), the location of the music file (MP3) and the
size of the music file. A music track may also include a guest artist.
• A music album has an artist, a title and an ordered list of tracks.
• Music library programs often store the number of times a track has been played.

Problem: Basic I
• Define a Java class to store information about artists, including their name and
membership to bands if appropriate.
• Define a Java class to store information about music tracks. Include methods to:
o create a track;
o set and get the title, artist, date, length, rating, location and size of the track;
o add a guest artist to the track;
o get a list of all individuals on the track, including band members and guest
artists;
o add to the play count of a track;
o get the play count of a track.

Problem: Basic II
• Define a Java class to represent albums. Provide methods to:
o create an album;
o set and get the name and type of the album and the artist;
o define the list of tracks for the album;
o get the overall running time of the album;
o get the overall file size of the album;
o get the average rating of tracks on the album.

Problem: Basic III
• Define a Java class to represent a music library. Provide methods to:
o create a library;
o add tracks and/or albums to the library;
o create a list of tracks from the library with the lowest rating.
3


Problem: Extensions I
Define a special type of album, the compilation album. These albums may or may not have
an artist, or may have a number of different artists. Each track on a compilation album
should also store the original album that the track came from. For example, Bohemian
Rhapsody by Queen was originally on the album A Night at the Opera and subsequently
appeared on the compilation album Greatest Hits Vol I, part of the Queen Greatest Hits
series.

Problem: Extensions II
Write a method for a library that works out how to back up all of the music tracks onto a
small number of discs. Different types of disc (CD, DVD) have different capacities in terms of
total file size, so the capacity of the disc should be a parameter to the method. This is an
example of the general problem known as bin-packing problem.

Submission
Submit all your files including documentation and source code within a properly structured
zip folder. Submission must be done electronically through NESS.

Deadline: 16:00 on Friday 19 June 2020



51作业君 51作业君

Email:51zuoyejun

@gmail.com

添加客服微信: IT_51zuoyejun