C++/From where should i start?
I am Kiran studying in Master of Engg.(Info. Tech)-2nd year. I am working on the project titled "Image hiding using Genetic Algorithm". I am supposed to use the VC++ as the programming langauage, but am not familier with it. I know C, C++, Java. As a novice to VC++ & keeping in mind the project domain, what should be my first step so that i can feel comfort with the progress of the project?
At the beginning - which for software projects is doing things like requirements capture, analysis, design etc. Some of this will obviously be fixed for you in the project description - hooray, you have a bit of a start in the requirements department.
Your next step should be to outline the scope of the project - what needs to be in and what can be left out. What requires some software, what is merely something the user does etc. Do you require a GUI interface or will a command line interface be sufficient? Is there a server component? If so what sort of client server communication are required? Is a database required? If so will a full on RDBMS (e.g. MySQL, Oracle, Sybase, MS SQL server) be required or will a few flat files be good enough? Or something in between? etc. etc.
Once you have some idea of the main requirements and scope of the project and what sort of things in a broad sense will be needed you can start honing things down, e.g. by working through usage scenarios (use cases).
All this is to give you some idea of what the shape of the project is and where you are going with the it. Once you have the analysis sorted out to an initial degree of usefulness (you may of course go back and revisit things later...) you can start on some design (classes, sequences, states etc...) and then eventually get to some implementation and testing (you have covered testing, specifically unit testing at this stage, have you not?). You may also find that you will need to research and areas you need to implement but do not have details on yet - your course notes, books etc. and the Internet can be of use here.
Taking a modular, uncoupled approach in your design will help you implement and test your project one piece at a time, and possibly defer needing to know everything you do not know until you need to focus on a particular section of the design / implementation.
While you are going through these cycles you can also be building up your tool chain. In this case you state you have to use MS VC++ (but give no hint as to which version) - this is obviously a project constraint. The Visual (the V in VC++) in Visual C++ merely refers to the fact that the compiler and linker etc. ship with a 'visual' integrated development environment (IDE) - MS Visual Studio - and that the Microsoft specific libraries (MFC and ATL) for creating full blown GUI MS Windows applications have some support within the IDE to help projects using them. You can ignore all this if it is not required and treat MS VC++ as a reasonably nice environment for creating, building, debugging native, standard, C++ command line projects.
I say standard C++ projects but this has only really been a reasonable thing to state since MS VC++ .NET 2003 (a.k.a. version 7.1). Previous versions were OK but had some standard language features missing that are required for modern C++ and C++ libraries. MS VC++ 6.0 and earlier had an older or no implementation of the C++ standard library. The current version, MS VC++ 2008 (a.k.a. version 9.0) is quite a decent compiler and can cope with modern C++, and the SP1 update I believe shipped with much of the (optional) TR1 C++ library update to the ISO C++ standard.
So while getting a handle on the problem of the project itself you can also install and get familiar with using MS VC++. You should refer to the documentation that ships with the version you are using. If it is a newer version then you can refer to the online documentation at http://msdn.microsoft.com/default.aspx
in the MSDN library. The online library may contain some material for older version of VC++, but I have found that the material sometimes shrinks over time. However there appears to be documentation going back to MS VC++ 6.0 (under Visual Studio) online, see http://msdn.microsoft.com/library/aa187916.aspx
You might practice by trying to get some of your existing C++ code to work under VC++, if it fairly standard as does not rely on platform specific (e.g. operating system specific) features or additional libraries you do not have VC++ versions for.
Hope this provides you with enough to make a start.