A co-worker recently sent me a link about calculating checksums for tips (i.e. the tip you leave your server when paying for a meal at a restaurant). Without getting into the crux of the poster's original argument ("thieving restaurant servers" - I don't know how often this happens) I found the idea of creating checksums for tips intriguing.
That same night, at one of my family's favorite restaurants, I decided to put the checksum into practice. However, I quickly realized that mentally calculating checksums for tips wasn't all that fun :-).
So, what's a software developer (with a Windows Mobile-enabled phone) to do? Develop an application, of course!
I decided to build a simple Windows Mobile application that supports the following features:
- Allows the entry of the total net amount (i.e. the amount on your bill)
- Allows you to select a level of service (e.g. Ok, Good, or Excellent) with an associated tip percentage.
- Allows you to select the tip calculation method (e.g. standard, checksum, or palindrome).
- Calculates the appropriate tip amount.
- Allows all default values to be modified.
Notice that I also implemented the "palindrome" method based on a comment on the original post.
The application has two screens. The first screen allows you to select the tip level and calculation method and also allows you to enter the net (bill) amount. As you enter the amount, the tip will be calculated based on the method you've selected.
The second screen (invoked by selecting the Preferences menu option) allows you to modify the application's default values.
Granted this is a simple but it's also my first mobile application so it's been a good experience (plus it's something that I'll make use of). However, even though it's simple, I've learned a lot about the differences in controls between the .NET Framework versions and how to use the Pocket PC emulators as well how mobile applications are deployed. There's still lots to learn but we all have to start somewhere :-)
If you're interested in the application, you can download the CAB file here. The application is compiled against the .NET Framework Compact Framework 2.0 which must be installed on your PDA and targets Windows Mobile 5.0.