Se devi fare un programma cui prevedi che le righe di codice siano veramente molte, devi per prima cosa scomporre il problema. Un buon metodo è quello di scomporre il problema, in tanti problemi più piccoli fino a quando hai per ogni singolo problema una soluzione diretta, poi inizi ad accorparli tutti assieme.

In altre parole, per la biblioteca decidi per prima cosa che tipo di struttura dati utilizzare (lista - array) fai il conto di quante funzioni virtuali possano servirti. Schematizza le classi che intendi usare, varie funzioni pure (se servono) e i livelli della tua strazione. Ma soprattutto, fai tutte queste cose a mano, ovvero con carta e penna.

Io per l'esame all'università ho dovuto fare un programma per giocare a scacchi. Se ti serve qualche altra info, avverti.

Ciao ciao