Ten en cuenta que para usar la función random tienes que incluir la librería que contiene la función (ahora no recuerdo cuál es, hace rato que no molesto con C++, como 4 semestres) puedes cuscar ayuda con estos programas en Opencores o en otras páginas de código libre. Paro lo de cambiar de nivel sería bueno que usaras funciones en el código, es decir, que cada operación la colocaras dentro de una función con ciertos parámetros y que usaras apuntadores y nodos, puedes mirar todas estas cosas en libros de programación orientada a objetos o estructuras de información o en los ejemplos de esta página
http://disi.unal.edu.co/~ypinzon/2016699/index.html