Question: Your final software development project this semester will stretch from now until the end of the semester. You will utilize all the basic programming constructs
Your final software development project this semester will stretch from now until the end of the semester. You will utilize all the basic programming constructs and features youve worked with and well be throwing in 2-D arrays. Spend some time exploring arrays and working/asking questions about the posted practice problems to help prepare yourself for the use of 2 dimensional arrays in your project. Also challenge yourself to get up to speed with any constructs/features you feel you need some more practice with to feel comfortable using them in a design/implementation of a larger project. Spend time thinking about how you would solve each of the components of your project as if you were going to solve them by hand. How would you modularize it (break it down into smaller pieces) to allow you to attack it in parts? Draw some pictures and work through details on paper to assure yourself that you know how you want to attack each problem. Pseudocode is a great way to work through your design and get all the details down prior to implementation consider using it. You may find it useful to implement small programs to demonstrate to yourself that you can do something youre wondering about before incorporating into your main program. The Cipher Program Requirements An interactive program is required that allows a user to encode text using any of three possible ciphers. The three ciphers you are to offer are: Caesar, Playfair and Columnar Transposition. The program needs to loop, repeating to ask the user if they wish to play with Caesar, Playfair or Columnar Transposition until the user wishes to stop the program. For encoding, the program needs to read input phrases (you can limit these to a max of 250 characters) and the selected cipher to apply from: o the keyboard o from an input file For file input, the file may contain multiple phrases to encode. o When encoding the option should exist for the original text phrase(s), the key and the encoded phrase to be written to the screen as well as always being logged (written) to an output file. The program will write each encoded message and key for decoding to a file dedicated to each cipher type. The user may select a filename and to it the program will attach the text: Caesar/playfair/colTrans to complete the file name. Thus, after the program runs there will be at most three encoded data files generated one for each cipher type each of which contains all the encoded data and associated keys needed to decode. This file should be readable as an input file to the decode option. For decoding, the program should accept: o a keyboard entered encoded phrase and key for decoding o a file with one or more sets of codes to decode consisting of: key information and the encoded phrase to decode. o When decoding the option should exist for the original encoded message(s), the key and the decoded phrase to be logged (written) to an output file for later examination. Start small work on one cipher first get it working fully then move on to the next, making sure each is stable and that you are able to encode/decode before moving on to add another into your design and implementation. You may find that you wish to add more functionality to your program as you start designing your work talk with your instructor about your ideas J Have fun! AND dont forget to take a break when your brain is fried and LAUGH a lot! The final project requirements include: Midterm code review upgrades/modifications as suggested in midterm review, if any. A fully functional cipher encoding/decoding program with the ability to work with three ciphers as described. Supporting documentation as described below**. **Required Final Project Documentation: The electronically submitted final project document minimally needs: a cover page (name, class, section, topic) statement of which parts of the program work, which dont what the grader should expect to find while running your code a users manual describing the full use of the program a reflection of the process you went through in writing this program - what you learned, what you would redo if you did it again, how you would improve it, how it could be extended a section describing your test cases with display screen shots to illustrate the functionality of your program (this is usually quite extensive) any additional supporting documentation you might find useful Submit one (only one) complete document not multiple files - as your final project documentation. Either a .doc, .docx or .pdf file is acceptable. I need to be able to read it without downloading any conversion software. Note: Your documentation submission can be reduced to just the reflection section if you have a completed, fully tested, project and present it to the class prior to the last week of the semester. Important general requirements to take note of and related grading: 1. Your submission must be submitted by the required date and time indicated in Canvas no late submissions will be accepted 2. The program must compile and run (0 credit if it doesnt compile) 3. The program must have comment headers for the program and each function; descriptive comments w/in the function bodies. (0 credit if no or relatively useless comments) 4. The program may NOT contain: a. global variables, b. more than 1 return statement per function, c. only/majority of functions with 0 parameters d. exit, continue or goto statements. e. Break statements other than standard use w/in a switch statement case. (0 credit for global variables, 50% loss of credit for other) 5. Unless previously discussed with your instructor you may only make use of C++ techniques found in chapters 1 7 of your text. (No pointers, structs, classes, vectors, etc) 6. The final project program must contain at least 10 functions that modularize the project. The functions will illustrate your command of parameter passing. (0 credit if fewer than 10 meaningful functions). 7. The due date/time is a hard date no late assignments accepted 0 credit for late submissions. a. Turn in your work before the last minute you can always submit updates, the last submission is the one that will be examined. If your program cannot be built and run from within Visual Studio from the files you submit you will receive a 0 on the project so be sure to test your upload after you upload your files, download those very files from Canvas, build a project and run your program. Your program should be easy to use well documented with a users manual and directions the reviewer will not spend time struggling how to figure out how to operate it or make things work.
No String Function
Step by Step Solution
There are 3 Steps involved in it
Get step-by-step solutions from verified subject matter experts
