Buenas noches/días, por lo que leí, parece ser un trabajo típico de universidad, en mi experiencia ya resolví este tipos de ejercicios en varias formas de programación, con programación imperativa, estructuras dinámicas(punteros), programación orientada a objetos. Entiendo que si es un ejercicio de la universidad/curso lo que mas te convendría es aprender la lógica que debes implementar con sus respectivas estructuras, porque no son problemas complejos, si queres puedo desarrollarlos o mismo podemos organizar alguna clase online en la que te enseñe lo que necesitas saber para resolverlo.