Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

in C++ plz, make sure to include comments and the 500 lines of code using all the features that it asks for. 1. Write a

in C++ plz, make sure to include comments and the 500 lines of code using all the features that it asks for.

1. Write a program reading input from the user. I do not particularly care how (via a file, or making them type something in, or a command line argument via argc/argv). What this program does is up to you, but it should use 1) either vectors or arrays, 2) either lists, queues, or stacks, 3) either sets, maps, or priority queues, and 4) hashes. Yes, it should use _all_ of these C++ features we've been studying, to the extent of at least one from each week's reading! The program should have at least 500 lines of code, as measured by cloc, and it should only require standard C++ libraries, no unusual packages -- the code should compile and run as-is easily on Mac and linux platforms.

2. The program should do something interesting; again, what is really up to you, but you should be able to explain the purpose of the computation in a comment at the top!

3. You'll want to prepare a second version of the program that _is broken_. You should introduce _two distinct_ bugs into the program so that for some (but not all!) user inputs, the program does _not_ do what it should. This should be a matter of incorrect use of the C++ language features we are focusing on, not something very obvious on inspection. That is, don't write things like: if (input == bad_value) { array[1909284390824902] = 1; } instead have the bad values somehow cause issues, perhaps by omitting a check for valid input that is in your first version of the code. One of your bugs should in particular rely on the guarantees/rules of the C++ standard library for vectors, lists, etc. For instance, do something like invalidating an iterator, then using it, under some circumstances. The triggering inputs for the two bugs should be different.

4. What you submit is a pdf report with both source code versions and an explanation of what your program does, what the bugs are, what language features they misuse, and how hard you think it would be to detect the bugs. The report should be at least 1000 words, not counting the code listings.

cyb136 C++

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

Beginning Databases With PostgreSQL From Novice To Professional

Authors: Richard Stones, Neil Matthew

2nd Edition

1590594789, 978-1590594780

More Books

Students also viewed these Databases questions