1 Instructions
Practice Problems
Problem 1
Problem 2
Problem 3
5.3.5

Assignment 1: Designing complex data

Goals: Practice designing the representation of complex data.

1 Instructions

The names of the classes must be exactly the same as specified. The same is the case for the names and types of the fields within the class, as well as the order in which they are defined and listed as the constructor arguments. This allows us to design our own Examples class that tests your program.

Make sure you follow the style guidelines that WebCAT enforces. For now the most important ones are: using spaces instead of tabs, indenting by 4 characters, following the naming conventions (data type names start with a capital letter, names of fields and methods start with a lower case letter), and having spaces before curly braces.

You will submit this assignment by the deadline using the Web-CAT submission system. You may submit as many times as you wish. Be aware of the fact that close to the deadline the WebCAT system may slow down to handle many submissions - so try to finish early.

With each homework you will also submit your log file named pair-user1-user2.txt where you replace user1 and user2 with the usernames of the two partners.

On top of both files you will have five lines of comments as follows:

// assignment 1

// partner1-last-name partner1-first-name

// partner1-username

// partner2-last-name partner2-first-name

// partner2-username

(In the text file you do not need the two slashes)

Your submission sould consist of the following files:

There will be a separate submission for each problem - it makes it easier to grade each problem, and to provide you with the feedback for each problem wou work on.

The three submissions will be organized as follows:

Final instructions are now posted.

Due Date: Tuesday, January 14th, 10:59 pm.

Practice Problems

Work out these problems on your own. Save them in an electronic portfolio, so you can show them to your instructor, review them before the exam, use them as a reference when working on the homework assignments.

Problem 1

We are designing the data collection for the US Census Bureau. For each person we need to collect the following information:

Design the class Person that represents the information about each person for the census.

Make at least three examples of instances of this class, in the class ExamplesPerson. Two of the examples should be objects named jackie and golda and should represent the following two people:

Problem 2

Here is a data definition in DrRacket:

;; A IPizza is one of

;; -- Plain

;; -- Fancy

 

;; A Plain is

;; -- (make-plain String String)

(define-struct (plain crust cheese))

 

;; A Fancy is

;; -- (make-fancy IPizza String)

(define-struct (fancy base topping))

Make sure the two sample orders given above are named order1 and order2.

Name your file Pizza.java and the file and the class that holds the examples of pizza data ExamplesPizza

Problem 3

There are three ways one can travel from one city to another: by car, by train, or by plane.

For each city, we keep track of its name, state, the name of the train station and the name of the airport. If the city does not have an airport, or a train station, the name is the empty String.

One leg of a trip consists of the start and end city, and the distance between them. There are three different kinds of legs one can define:

Define the classes that represent the three different legs of a trip and define examples in the class ExamplesTravel as follows: