Quiero que revises mi código. Cual es mi error?

Es la diferencia entre OR y AND.

if((depart!=dep1)||(depart!=dep2)||(depart!=dep3))

Esto dice “si la partida no es dep1 O la partida no es dep2 O la partida no es dep3”. Dado que dep1, dep2 y dep3 no son todos iguales, esto siempre será cierto.

En cambio, lo que desea es “si la partida no es dep1 Y la partida no es dep2 Y la partida no es dep3” o (la misma redacción diferente) “la partida no es dep1 O dep2 O dep3”.

Esos serían

if (depart != dep1 && depart != dep2 && depart != dep3)

y

if ( !(depart == dep1 || depart == dep2 || depart == dep3) )

respectivamente.

(Puede ir y venir entre esas dos formas utilizando las leyes de DeMorgan, que en realidad son ocasionalmente útiles: http://en.wikipedia.org/wiki/De_…)

Nota al margen: probablemente sea útil decir cuál es el problema en lugar de simplemente sugerir que tiene un error.

El primero si dentro de la función principal debería ser algo como esto

if ((depart == dep1) || (depart == dep2) || (depart == dep3)) {}
más{
cout << "¡tu departamento debe ser uno de los 3 departamentos mencionados!";
}