A solution for Programming Assignment 2