Chen Chen
Liuchen Ye
December 7, 2014


Personal Pocket book is a small bookkeeping application that can help user organize their money. This tool can show user the remaining balance and record all the transactions in details. It can also show the histogram of each categories you have spent.


Concepts Demonstrated

  • Global Variables *categories-values* are used throughout the entire code
  • Lambda are used in GUI and logic part of the code for binding expressions.
  • Data abstraction is used to provide access to the elements in the procedure.
  • let is used to make a local binding and evaluate the bodies.
  • map is used to apply the procedures to the elements.

External Technology and Libraries

racket/gui/base is used for the interface plot is used to create the histogram snip is used to create the % and put them into the windows

Favorite Lines of Code

  • Partner One: Chen Chen
(foldl (lambda (elem acc)
                  (let ([v (second elem)])
                    (if (> v acc)

This code can find out the biggest spending value, then *1.1, so the number can be display on top of the histogram.

  • Partner Two: Liuchen Ye
([money (string->number (string-trim (send money-field get-value)))]
                                                        [reason (string-trim (send reason-field get-value))])

This code is going to get the value user input and record the reason.

Technology Used Block Diagram