My advice, based on my own personal experience, is that you can use all the software and language learning programs in the world or study every textbook you can get your hands on for as long as you want, and you are never, ever going to really learn that language. Never. I took four years of German in college and by the end, I could tell you what part of speech a word was or give you basic sentences if you gave me time to think, but if you put me in front of a native speaker, I wouldn't understand more than a few words.
Then I lived in Switzerland for nine months. More than half the time I was there, I was speaking English. But every single day, for at least an hour or two and often more than that, I was speaking German. With people who couldn't really speak English. By the end of the year, I was fluent. I learned new words by asking the native speakers or looking them up in a dictionary, and I learned proper grammar by hearing things said the correct way over and over again until it just sounded "wrong" to say it any other way (just like we learn our first language). If I had been living in an area where no one spoke English, I'm quite confident I would have been perfectly fluent within three months.
You're not living in a Spanish-speaking country, so you're not going to be surrounded by it all the time. But if you're serious about improving, I would say don't bother with software and books. Find someone who is a native Spanish speaker. If you're in America, that shouldn't be too hard to do. As someone else suggested, speak to them only in Spanish and ask them to correct your mistakes (and even if you were in the top of your Spanish class, you'd still be making loads of mistakes in real-life conversation). Watch Spanish movies and TV. Get yourself a Spanish-speaking pen pal. Keep a journal in Spanish. Force yourself to do everything possible in Spanish. Talk to yourself (out loud!) in Spanish when no one is around - seriously. I did that in Switzerland to practice my German and I improved much faster as a result; forcing yourself to think in the language is the key. And Samyotix' suggestion about video games is an excellent one - I still practice my German by playing games in the language and it helps immensely.
Even if you were dropped in the middle of a Spanish-speaking country, it wouldn't happen on its own. Learning a new language (once you're past a certain age) does not happen automatically. Prime example: I've been in Prague three months and can't say any more than hello, goodbye, please, and thank you - and I hear it all day long. You have to be willing to work at it. Force yourself to do it and be disciplined about looking up and learning new words. Do this, and you WILL learn Spanish - there is no such thing as a person who is incapable of learning a second language. It's just a matter of making yourself put in the work. Sure, it comes easier to some than to others, but everyone can do it.
And remember, the benefits from this go beyond passing your course. Speaking a second language will look amazing on your resume and open up entirely new opportunities in your career and your life. It opens up the borders of many new countries, allowing you the opportunity to explore the world without a tour guide and without looking like an annoying tourist all the time. And it even makes you smarter - learning one language improves your ability to learn more, and also strengthens various types of thinking and reasoning skills, making learning and understanding in general MUCH easier. If you put in the work, it will be worth it.
Good luck!