The objective of this assignment is to implement an object-oriented program using Java, to manage a database
of astronomical objects. Assignment 2 will be an extension of this assignment.
SENG1110 students – This assignment can be completed in pairs.
SENG6110 students – This assignment must be completed individually.
Before you start
Carefully read the specification below. Make sure you have all the information necessary to start writing the
program. If you are uncertain of something, do not make assumptions. Post your questions to the discussion
board forum named “assignment 1” and check it regularly.
Try to start the assignment as soon as possible. There is a document “HelpToStartAssign1” and some Java files
on Blackboard, which you can use as a starting point.
The database will hold up to 2 stars and each star may have up to 2 planets that orbit it. Each planet can orbit
only one star (for simplicity, we will not be accounting for binary stars, or other multiple-star systems).
Each star/planet will have a ‘celestial coordinate’ that specifies a position in Earth’s sky. These will consist of a
‘right ascension’ (0 to 360 degrees) and a ‘declination’ (-90 to 90 degrees). These are analogous to longitude
and latitude. In reality, astronomical objects move over time, and coordinates are generally accompanied by
a time specifier, but, for simplicity, we’ll ignore this.
Each star will also have a ‘spectral type’. This is a short code that indicates light emission and luminosity
properties. For example, the Sun has type G2. For simplicity, we’ll be using a subset of codes that have only 2
When run, the program will display a menu of actions to the user, including one that exits the program. Until
the user chooses to exit, the menu is displayed again after each action is completed.
The program should have the following functionalities:
1. A user may add a star.
The user will specify the star’s name, right ascension, declination, and spectral type.
There should be an error message if the star already exists, or if there are already 2 stars.
2. A user may add a planet.
The user will specify the planet’s name, right ascension, declination, and an orbited star.
There should be an error message if the planet already exists, or the orbited star does not exist, or the
orbited star already has 2 orbiters.