Lab 7EC: Elevator Game/Simulation

INFO I211

Version 0.2, 2013 March 31

Extra credit
50 points

Due date: see Oncourse Modules or Assignments

Teamwork

Up to four students may work as a team on this project. Working together is recommended for this project. Student teams will turn in one copy of their solution and will receive equal credit for their work. For teams of two or less, each student will receive the same grade. For teams of three or more, each student must turn in a team report describing what each member of the team did. Grades of team members may vary depending on their contribution to the project.

Learning Objectives

This project should develop skills in:

  1. Object-oriented design.
  2. Using inheritance and polymorphism.
  3. Working as a team.
  4. Solving a complex problem.

Overview

Your task is to design, and partly implement, a program in which people enter a building, ride an elevator up to the floor of their destination room, visit the room, ride the elevator back down, and leave the building. The purpose of this program is not altogether clear; it might be —

Specifications

Read the Requirements document that some sadistic person has come up with. Do not panic. You are not expected to implement this entire program. You should design a complete solution, but you are expected to implement only part of it. Also, remember you are working as a team. (Aren’t you? Why not?)

Design

Your design should identify the principal classes that are required for the program, and for each class, their principal attributes (fields) and operations (methods). I do not expect a complete list of attributes and operations, because when you develop the program, you will probably think of more and more.

The design should also specify how these classes are related. For example, superclass and subclasses? Aggregation? Refer back to Chapter 7 on object-oriented design.

You may make a UML class diagram, but that is not the only way to specify your classes.

Implementation

Code and test as many of the classes as you can. Remember, I do not expect a complete, working program. But you shold at least test the principal operations of your classes. For example, you may have a main test method that creates a person, and “drive” this person through a series of actions: entering the building, calling elevators, entering the elevator, riding up, getting out, and so forth. Don’t forget to have the elevators move up and down, open and close doors, etc.

What to Turn in

  1. One person acting on behalf of the team should turn in:

  2. If the team consists of two people or less, each team member receives the same grade. There is nothing more to turn in.

  3. If the team consists of three or four people, then each team member turns in a teamwork report. This report should describe, qualitatively and quantitatively, what each person on the team, including himself or herself, contributed to the project. The team project receives an overall score, but individual team members’ grades may be higher or lower depending on their personal contributions, as rated by their peers.

Grading Criteria

Due to the open-ended nature of this assignment, it is difficult to specify grading criteria. But—for the team project grade—approximately 50% for the design and 50% for the (partial) implementation. For teams of more than two, individual scores may vary depending on individual contribution.