software simulator in C++