Lab 2: OO in C++
Due April 22nd
Work in C++ and use design patterns. Be careful not to write procedural code, it will be difficult to do. You may write any program you would like. Do NOT simply turn in code you have written in the past. You may use a project in another class as your lab. However, it must meet all requirements for that class and use good OO design.
This lab will be evaluated by its use of good OO design. Please include a document describing the architecture of your program.
Project Suggestions:
- Tic-Tac-Toe: Use a min-max tree to have the computer play tic-tac-toe
- Abstract Game Framework: Write a system which would allow any game of placing pieces on a board to be modeled. Implement 2 such games. They include tic-Tac-Toe, Othello and go. (see Design Patterns for Games)
- Code pretty printer: Design a system which can reformat code according to flexible code style.
- Advanced Data Structure: Implement an advanced data structure such as random-access lists.
- Collections Library: Implement an OO collections library (or part of one) for C++. Consider lists, trees, heaps, vectors and restricted access containers (queues, stacks, priority queues). Write a demo of there use.
- Simulate something: Simulate a natural process or situation. Banks, airports, whatever.
If you don't want to do any of these and still need a project idea talk to me. If you want to do one of these but need more information about it talk to me.
Hand in source, your architecture description and compiled binaries (they should run on the lab machines).
Method of hand in:
Change the directory to your user name or otherwise mark it as your lab.
Compress it and email it to me at jwalker@cs.oberlin.edu.
jwalker@cs.oberlin.edu