Recent Changes - Search:
ECG Home






Fall 2017

Older Courses

Spring 2017

Fall 2016

Spring 2016

Fall 2015

Spring 2015

Fall 2014

Spring 2014

Fall 2013

Spring 2013

Fall 2012

Spring 2012

Fall 2011

Spring 2011

Fall 2010

Spring 2010

Fall 2009

Spring 2009

Fall 2008

Spring 2008

Fall 2007


edit SideBar

Eric Krupnik
December 10, 2008


This program is used as a checkbook balancer. You can do several things, such as check the account balance, make a deposit, make a withdrawal, and other features you will find at an ATM. It uses Scheme to control the GUI and C++ to do the rest of the features. You send information through Scheme GUI to C++, and C++ sends it back to Scheme. See the block diagram for a more detailed view.


Concepts Demonstrated

Some of the major concepts used in this project which I feel we covered in class are:

  1. Simulating classes
  2. Using Scheme to do GUI/using other libraries
  3. Passing functions as arguments

External Technology

Foreign Language Library is used for the GUI. Because Scheme naturally does not support GUI programming, I was forced to use the GUI library Scheme does have. I played around with it for several weeks and now feel fairly comfortable with it. Once getting the hang of it, this is a fairly simple library to use. I also found JScheme and SISC - two libraries I would have used if I did Java instead of C++ to be the primary running language of my application's back-end component.


I feel that a checkbook balancer is something that many people would benefit from, as people are constantly complaining that they hate balancing checkbooks, and some of them simply can not do the math well enough or fast enough to do it by hand. I feel that this idea was manageable, and that I would be able to implement it as well. I wanted to see how Scheme interacts with other programming languages, and this was a good way for me to realize that.

Technology Used Block Diagram

The C++ is the language which is used to do all of the back-end calculations as well as all of the record keeping of previous transaction/transaction history. The Scheme acts as a link between the C++ and the user. The entire GUI(Graphical User Interface) is written solely in Scheme, using the Scheme GUI library from the Foreign Language Library. When the program is run from Dr. Scheme (in Module) the GUI will pop up. The user will then make selections in the GUI, and those selections will be sent back from Scheme into the C++. C++ will do its work and send the final results back into Scheme which goes to the user through the GUI for the output.

Additional Remarks

Getting scheme to work with other languages is not as simple and straightforward as one would have hoped. The documentation is confusing and very often the people who write them are not thinking about the average user. I was debating between using C++ or Java to run the program. I was debating between using the Scheme GUI library and Foreign Language Library and JScheme and SISC. I found the Foreign Language Library the best one for me because it was much less involved to get running.

Edit - History - Print - Recent Changes - Search
Page last modified on December 11, 2008, at 02:27 AM