Free University of Bozen-Bolzano
Faculty of Computer Science - Bachelor in Applied Computer Science
Introduction to Programming - A.A. 2004/2005
(old study plan - 6 CFU)
Written Exam 7/6/2005
A ski rental company needs to keep track of the skis that are being rented
in various cities.
Part 1. (4 points)
For each Ski object, the information of interest is:
- the code (a string) that identifies the ski;
- the brand (a string);
- the minimum height (in cm) of a person for which the ski is suited (an
integer);
- the maximum height (in cm) of a person for which the ski is suited (an
integer).
Realize a Java class Ski
, to represent Ski objects, that
exports the following functionalities:
- creation of a Ski, given its code, brand, minimum height, and
maximum height;
- getCode: that returns the code of the ski;
- getBrand: that returns the brand of the ski;
- getMinHeight: that returns the minimum height of the ski;
- getMaxHeight: that returns the maximum height of the ski.
Solution:
class Ski
Part 2. (16 points)
For each city (identified by its name, a string), the skis available in that
city are stored in a SkiPool data structure. A SkiPool has a
size, which determines the maximum number of skis it can contain.
Realize a Java class SkiPool
, to represent SkiPool
objects, that exports the following functionalities:
- creation of a SkiPool, given the name of the city and the size
of the pool; the created SkiPool is initially empty (i.e., it
contains no skis);
- getCity: that returns the name of the city;
- getSize: that returns the size of the pool;
- newSki: that, given a Ski object, inserts it into the
ski pool, if a ski object with the same code is not already present in the
pool, throws an exception otherwise; if the ski pool is full, an exception is
thrown;
- getSki: that, given the code c of a ski, returns the
ski object with code c in the ski pool, if such an object is
present in the pool,
null
otherwise;
- removeSki: that, given the code c of a ski, eliminates
from the ski pool the ski object with code c, if such an object is
present in the pool, throws an exception otherwise;
- numSkis: that returns the number of skis in the pool;
- skisForHeight: that, given a positive integer h
representing the height of a person, returns an array of strings containing
the codes of all skis in the pool that are suitable for height h; a
ski is suitable for a height h if h is between the minimum
and maximum heights of the ski.
Solution:
representation of
the objects,
skeleton of the class,
class SkiPool
,
class
SkiPoolException
Part 3. (6 points)
Realize a static method brandsforHeight
, client of the class
SkiPool
(i.e., external to such a class) that, given a
SkiPool
object sp, a positive integer h
representing the height of a person, and the name f of a file, writes
on the file f the brands of all those skis in sp that are
suitable for height h. The method should handle exceptions due to
input/output errors that may occur.
Solution
Additional files to test the solution:
class Main
,
input file skis.txt
Part 4. (4 points)
Discuss the types of errors that a program may contain, and give for each of
them an example in terms of a (fragment) of Java program.