cpp term project