DA1
Design Assignment #1: Design a Spreadsheet
Ask questions about this at http://pbl.cc.gatech.edu/cs2390/347.html
Due in class on April 16. Turn in hardcopy of your Design Documentation in class. No programming required for this assignment.
Design 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 should appear.
- The value of cells should appear in the cell.
- When the user clicks on a cell, they should be able to enter in 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.
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?
Hints and Suggestions
- THINK HARD ABOUT SAVING YOURSELF TIME IN THE LONG RUN! Look at PA1, PA2, and PA3. You're going to have to build user interfaces in Squeak using low-level graphics and reading the Sensor for three programming assignments. What can you design NOW, and build in PA1, which will be useful throughout the quarter? We'll compae notes on what people are doing on May 12.
- 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.
You can ask questions about this in the CS2390 CoWeb at http://pbl.cc.gatech.edu/cs2390/347.html
News Page | CS2390 Sp'98 Home Page | CS2390 CoWeb | STABLE | BOOST
Questions/comments/concerns to guzdial@cc.gatech.edu
Page last updated 4/2/98; 11:59:38 AM