1. Understand the foundations of object orientated principles, analysis and design.
2. Demonstrate the ability to apply the principles of C++ across a range of object orientated languages.
3. Apply the methods of writing C++ programs to reflect practical business situations.
Programming System Overview
This report is aimed at showing the skills and knowledge acquired in the C++ programming unit. The program developed in this project is a simple representation of an employee’s registration system. Two essential functional requirements and additional other desirable functions have been included. The programming language used is C++ and the integrated development environment used is Code Blocks.
This report should provide the tutor with all the information in a summary relevant to this project.
I developed this program using the waterfall software development life cycle (Model, 2014). The model is old but it helped me to develop the program with so much ease. From program requirements to maintenance, the model guided in all aspects in developing the program.
The requirements for this program are divided into two: The essential functional requirement and desirable functional requirements (Pohl, 2010). For the essential requirements, I first made sure that the software will take all the necessary information about the employee. This information is like: employee’s id, the employee’s name, employee’s address, their age, and salary.
For the desirable functional requirement, I chose that the program will delete an employee is he/she has left the company and add an employ if he/she has joined the company. The program will display the added employee in the list of the already existing employees.
I deigned the user form to provide the user with a list of what he/she would need to be done. At the top of the form, there is a large banner indicating that it is a dexster’s employees’ management system. Following the banner, is a list of actions to be taken by the program upon selection. There are four selections and an additional action of closing the form in case the user is satisfied or done with the program. There is a prompting message at the bottom of the form telling the user to select an option. There are letters preceding the selection choices so that when entered, the program will act upon the chosen selection.
In the implementation stage, its where all the coding commences and takes place (Volter, 2013). I first included all the C++ header files required for this program. Then, I declared the variables that are going to be used during the program execution under the main variable which is employee. It collectively contains all the variables with different data types.
After declaring the headers, I proceeded to declare pointers which are memory addresses for the values located inside them. For this case, the pointers represent the actions performed by the program.
Next, it’s the code for the switch statement to allow the user to choose what action should be performed by the program. After choosing, the code will return the value based on the option.
I then wrote the code to display the options or menu of the program. The function being called is called “menu” and displays the list of options present.
I then wrote the code for displaying the employee’s information after it was fed into the program. The for loop has been used to control the number of iterations and for action to be performed iteratively. The information is going to be displayed in the order of which it was inserted in the program. The program will require first the user to insert the number of employees to be included in the list and then request for their credentials. The number should not exceed 20.
Software Development Life Cycle
After the code for displaying data was written, I then proceeded in writing the code for the viewing of recorded information. The information is presented when the view option is chosen from the options. Also, the for loops has been used to specify number of iterations and perform the action repeatedly.
Following is the code for adding a new employee. If the information is not going to be added in the program, it will suspend itself after 400 seconds as per the sleeping command.
The last function to be coded is the function to delete an employee. For and if else statements are used for iterations and to make sure the deleting conditions are met.
To delete an employee, the user must identify the id of the employee to delete. After identifying the id and inserting it, the employee can now be deleted
The program can be run in a windows environment. The output is going to b displayed in the terminal or the console.
The assignment was done promptly with few difficulties. Some of the difficulties that came about was which integrated development environment(IDE) to use and error in code. I had to inquire from friends and google which IDE was the best. These are some of the IDE’s I came across: codeblocks, eclipse, devC++ and visual studio. Every IDE had its benefits and shortcomings. But after so much inquiry (Drumea, 2012), I settled on Code Blocks 13.12. Code blocks has good visual elements which help identify error in code. The code is highlighted with a red color where there is an error. Also, it checks for spelling mistakes in words used in the program.
I wrote the code, correcting any bugs and making sure the semantics were correct, but the output embarrassed me. It did not come out as expected. I had to do researches on previously developed registration system to grasp syntax of such programs. In my research, I first realized that many organizations before adopting the computerized registration system used the old filing system. According to almost all the organizations, the method was tedious and cumbersome. It required a lot of manpower and a lot of resources (files, papers, cabinets etc.). So the computerized system worked fine and efficiently which prompted all organizations and companies to adopt the new method.
In my research, I came across a website that explained on how to make a responsive C program. The C language is a predecessor of C++ and it has some functionalities that are inclusive in the C++. The fundamental functionality that was not included in my program and made my program to fail was some inclusive statements which provided the necessary libraries (Schuster et al, 2015). I included the main ones and little did I know that some libraries needed to be included for proper working of the program. The data inserted in the program are stored in arrays.
Through the many challenges encountered, I came through triumphantly. The program is now working efficiently and producing the expected output. The program is working as per the requirements and hence fulfilling the objectives of the assignment. Though the program by itself is working offline, it can be improved by making it go online, such that if an employee is added to the company, he/she can be added in the system remotely. Also, the program can be added another functionality of paying the employees online. That is, their salaries can be sent to their bank account through the program. Duty assignment can be also included in the program and hence reducing the managerial work.
Functional Requirements
Also in storing data for the program, I would prefer to use an sql database. It is relatively easy to use and stores data sequentially. Also, in the visuals of the program, I would improve them by using graphical elements like textboxes, buttons and data grid view.
If I were to do this program again, I would change the language and make a web application using javascript for front end and php for back end. The languages are highly recommended for web applications development compared to C++ (Wang, 2011). C++ is a good object oriented language and has a rich function library but I would prefer the other languages for online basis. Desktop applications and soft wares are better writing their code with C++. But all of these is my opinion and it will differ from person to person.
There were a lot of challenges faced while working on this program. First of all, the portability of the language is quite not reliable (Sander et al, 2015). I was writing the code of this program in windows environment in our desktop machine at home. I had to copy the code and go proceed with it in my laptop at school which has a Linux operating system. The program was working fine in windows but when I tried using it in linux, the program brought errors and did not produce any output. I had to complete the work in the desktop at home. The language is also very prone to errors. For example, when passing arguments to functions a lot of errors emerge. This language has a lot of libraries of which if one is not included and was required the output will not come about.
In this project and the whole course in general, I have managed to apply the theory part of C++ into practical and can easily develop C++ windows forms and console applications. I have also known the vast uses of C++ in other areas such as web based applications, office applications, operating systems and video editors.
Conclusion
This experience made me improve my knowledge in C++ programming. I can comfortably make C++ application. The task was not an easy one but through a lot of researches and practice I managed to complete the task. In future, I look forward in working with C++ in windows based application.
Mooij, J.M., 2010. libDAI: A free and open source C++ library for discrete approximate inference in graphical models. Journal of Machine Learning Research, 11(Aug), pp.2169-2173.
Völter, M., Stahl, T., Bettin, J., Haase, A. and Helsen, S., 2013. Model-driven software development: technology, engineering, management. John Wiley & Sons.
Sanderson, C., 2010. Armadillo: An open source C++ linear algebra library for fast prototyping and computationally intensive experiments.
Musser, D.R., Derge, G.J. and Saini, A., 2009. STL tutorial and reference guide: C++ programming with the standard template library. Addison-Wesley Professional.
Studerus, C., 2010. Reduze–Feynman integral reduction in C++. Computer Physics Communications, 181(7), pp.1293-1300.
Orriols-Puig, A., Macia, N. and Ho, T.K., 2010. Documentation for the data complexity library in C++. Universitat Ramon Llull, La Salle, 196.
Josuttis, N.M., 2012. The C++ standard library: a tutorial and reference. Addison-Wesley.
Prakash, A., Hu, X. and Yin, H., 2015, February. vfGuard: Strict Protection for Virtual Function Calls in COTS C++ Binaries. In NDSS.
Demko, A.B. and Pizzi, N.J., 2009. Scopira: an open source C++ framework for biomedical data analysis applications. Software: Practice and Experience, 39(6), pp.641-660.
Schuster, F., Tendyck, T., Liebchen, C., Davi, L., Sadeghi, A.R. and Holz, T., 2015, May. Counterfeit object-oriented programming: On the difficulty of preventing code reuse attacks in C++ applications. In Security and Privacy (SP), 2015 IEEE Symposium on (pp. 745-762). IEEE.
Etter, D.M. and Ingber, J.A., 2016. Engineering Problem Solving with C++. Pearson.
Kawrakow, I., Mainegra-Hing, E., Tessier, F. and Walters, B.R.B., 2009. The EGSnrc C++ class library. NRC Report PIRS-898 (rev A).
Drumea, A., 2012. Education in development of electronic modules using free and open source software tools. Hidraulica, (3/4), p.54.
Berger, E.D., Yang, T., Liu, T. and Novark, G., 2009, October. Grace: safe multithreaded programming for C/C++. In ACM sigplan notices (Vol. 44, No. 10, pp. 81-96). ACM.
Antcheva, I., Ballintijn, M., Bellenot, B., Biskup, M., Brun, R., Buncic, N., Canal, P., Casadei, D., Couet, O., Fine, V. and Franco, L., 2009. ROOT—A C++ framework for petabyte data storage, statistical analysis and visualization. Computer Physics Communications, 180(12), pp.2499-2512.
Barnett, D.W., Garrison, E.K., Quinlan, A.R., Strömberg, M.P. and Marth, G.T., 2011. BamTools: a C++ API and toolkit for analyzing and managing BAM files. Bioinformatics, 27(12), pp.1691-1692.
Drozdek, A., 2012. Data Structures and algorithms in C++. Cengage Learning.
Hammer, R., Hocks, M., Kulisch, U. and Ratz, D., 2012. C++ Toolbox for Verified Computing I: Basic Numerical Problems Theory, Algorithms, and Programs. Springer
Science & Business Media.
Sander, B., Stoner, G., Chan, S.C., Chung, W.H. and Maffeo, R., 2015. P00069r0: HCC: A C++ Compiler For Heterogeneous Computing. HSA Foundation, Tech. Rep.
To export a reference to this article please select a referencing stye below:
My Assignment Help. (2021). Skills And Knowledge Acquired In C++ Programming Essay.. Retrieved from https://myassignmenthelp.com/free-samples/pi306-c-programming/registration-system.html.
"Skills And Knowledge Acquired In C++ Programming Essay.." My Assignment Help, 2021, https://myassignmenthelp.com/free-samples/pi306-c-programming/registration-system.html.
My Assignment Help (2021) Skills And Knowledge Acquired In C++ Programming Essay. [Online]. Available from: https://myassignmenthelp.com/free-samples/pi306-c-programming/registration-system.html
[Accessed 15 November 2024].
My Assignment Help. 'Skills And Knowledge Acquired In C++ Programming Essay.' (My Assignment Help, 2021) <https://myassignmenthelp.com/free-samples/pi306-c-programming/registration-system.html> accessed 15 November 2024.
My Assignment Help. Skills And Knowledge Acquired In C++ Programming Essay. [Internet]. My Assignment Help. 2021 [cited 15 November 2024]. Available from: https://myassignmenthelp.com/free-samples/pi306-c-programming/registration-system.html.