This project is a command-line driven account database program that was written in C++ for ICS 212 at Manoa. ICS 212 is the class where we first formally learned C and C++ and this project was what we were working towards for a large part of the semester. The program can read account data from a properly formatted text file and insert it into the database, contains a fully functioning user interface which accounts for all improper input, adds account data where user inputs the data, sorts database by year of birth, outputs database data to a text file which can be used by the program, and various other things. This program was actually initially written in C and then converted to C++ later in the semester after we were taught it.
Because this was my first experience with C, pointers were pretty troublesome and gave me the most difficulty. While my program logic was correct, in the more complicated functions in the program there were times where I wasn’t passing and dereferencing pointers correctly or not using a double pointer properly and this led to bugs which took some time to fix. Because of the pointer problems I went through with this program though, I feel like I have a solid understanding of them now.
The conversion to C++ wasn’t as difficult as creating the initial project in C as I had already solved the logic problems in the program and just needed to learn the different C++ functions and convert the program appropriately. The ability to pass by reference was also a very welcome addition and since I now had a decent foundation with pointers, the parts of the program where I had to use them resulted in much less problems. I also got to learn and take advantage of C++s features like classes, destructors, overloading operators, etc. We were also taught include guards and the importance of them among other things. Out of all the ICS classes I’d taken so far, this was currently the most fun and fullfilling for me as we spent most of our time programming and I got to learn C and some of C++, which are very powerful languages and lower-level than what I was used to (Python and Java).
Since I just took this class last semester (Fall 2016), I won’t be posting the code so students currently taking it won’t be able to look at the code and not figure it out themselves.