Addressing your questions in reverse order:
1.) Learning programming languages never ends so asking how many more semesters is a little like asking how many history classes until you become a historian. However, you should check with your university of choice to see how many semesters are required for a Computers Science degree. That'll give you an idea but be aware that not all universities have the same requirements.
2.) Programmers learn different languages for many reasons. Some languages are specific to an architecture or operating system, some are faster than others (for example, scripted versus compiled), some are better suited for a particular task. In my field (science) it is common for a programmer to know C/C++, Python, Perl, Java, Bash scripting and/or C Shell, awk, and even Fortran because of its long history. To sum up, the more tools at your disposal the more flexible you can be coming up with solutions.
3.) As for the question in your title, you can be an excellent programmer knowing only C++ and/or Java. You may write very clever and understandable code and rarely introduce bugs (I say rarely because no one is perfect!). However, having the right tools (i.e., languages) for the right situation will make you an even better programmer.
I hope this answers your questions.