Given a collection of towns in Borneo, Your task is to design a program using C++ programming language to find a way to visit all the towns and return to the starting point by minimising the distance travelled. Please note that each town can be visited only once, except for the starting point.