PA3
Programming Assignment #3: Implement a Spreadsheet
Ask questions about this at http://pbl.cc.gatech.edu/cs2390/350.html
Implement a spreadsheet for a user.
- The user wants to see the columns A through J across the top, labelled 'A' through 'J'.
- The user wants to see rows 1 through 10 across the side, labelled 1 through 10.
- The lines separating cells and labels should appear.
- The value of cells should appear in the cell.
- When the user clicks on a cell, they should be able to enter (SOMEWHERE) either a numeric value for the cell, or '=' and a formula for the cell. Formulas are either simple equations with only two entries (CELL+CELL, CELL-CELL, CELL*CELL, CELL/CELL) or are one of two functions, AVERAGE or SUM, applied to a range of cells in the same column (A1:A5). (Not rows). Formula cells display their value.
- Formulas should update when one of their cells update.
- Empty cells should display zero.
- You can use up to a 400 (vertical) by 600 (horizontal) pixel space.
NOTE!
I'd like to see that you learned something this quarter! If this design looks exactly like DA1, I'll be way surprised!
In your Scenarios section, be sure to answer these questions:
- Someone clicks on a cell (A1), then starts typing a number, then hits return. How did your system capture the cell-click, the typing, then update the cell upon hitting return? (You can safely assume that no one will ever type a non numeric entry in a non-formula cell.)
- The user fills cell A2, then types in cell A3 "=A1+A2". How do you handle the formula entry and evaluation?
- Now the user changes cell A1. How do you update the contents of cell A1 with the new value? How do you update cell A3 to reflect the new sum?
Usage
- Your program should start with
SpreadSheet new open.
- Your program should have some reasonable and evident way of stopping, such as a Big Button named Quit, an obvious menu with an obvious menu item named "Quit," etc. You will lose points for a bad user interface if the grader can't figure out how to stop your program!
Extra Credit
- 5 points extra credit if you can merge your PA1 into your spreadsheet so that it can display graphics as well.
- If anyone uses your UI toolkit on PA3, each member of your PA2 team will get 3 extra points on their PA3.
Hints and Suggestions
- What can you reuse from DA1, PA1 and PA2?
- Serious points will be taken off for bad, non-reusable designs. If you can show reuse from PA1 or PA2, you'll have a good argument that you have a reusable design.
- Both STABLE and the CS2390 CoWeb have several spreadsheet designs in them. The STABLE cases are written for VisualWorks (so the guts are the same, but the UI is different), and the CS2390 CoWeb cases were written for a Squeak GUI package (so it'll work, but it won't meet this assignment's needs). Use these as a starting point.
News Page | CS2390 Sp'98 Home Page | CS2390 CoWeb | STABLE | BOOST
Questions/comments/concerns to guzdial@cc.gatech.edu
Page last updated 5/28/98; 10:24:27 AM