The Cellular Network Capacity Problem Assignments
This page last updated on: Apr. 14, 2002
Contents:
Due Dates
- Assign 3 - May. 6, 2002 by end of day
- Assign 4 - May. 20, 2002 by end of day
- Assign 5 - Jun. 10, 2002 by end of day
Descriptions
- Assign 3 - Implement the Cell Tower Site classes, including the manager class,
tower / site class, and any related location lookup functionality. Write a test harness
to thoroughly test these classes, including at least one test data file. Include any
data files with the assignment source code.
- Assign 4 - Implement the Cell Phone classes, including the manager class,
cell phone classes, and any related Design Pattern classes. Write a test harness
to thoroughly test these classes, including at least one test data file. Include any
data files with the assignment source code.
- Assign 5 - Implement the full application, with data input files according to the
problem statement.
Requirements
- Use at least the following Design Patterns:
- State
- Factory Method
- Singleton
Other Design Patterns are optional (e.g. Strategy, Observer, Command).
- Use Smart Pointers instead of raw pointers.
- Use C++ Standard Library facilities (e.g. containers, streams, strings,
exception classes).
- Use C++ exception handling in at least two different layers. In particular, the
application should not exit except for normal end of data, or memory exhaustion. Create
at least one exception class.
- Cell phone polymorphic behavior can be implemented either by templates or
by virtual functions.
- Wrap all code in namespaces.
- Be thoroughly const-correct.
- Use constructor initializer lists thoroughly and consistently.
- Any pre-written building block classes / libraries are acceptable. Examples might
be a templatized object factory or a templatized N-way association class.
Extra credit will be provided for:
- Advanced use of C++ Std Lib facilities (e.g. algorithms and functors).
- Interesting or non-trivial template / generic designs (e.g. templatizing the
Latitude / Longitude distance function).
- Advanced memory management techniques (e.g. overloading operator new).
- Effective and innovative use of advanced templatized libraries.
This page constructed by Cliff Green,
Copyright © 1998-2002.