Explore BrainMass

Explore BrainMass

    A C++ CARDIAN simulator using a switch statement

    Not what you're looking for? Search our solutions OR ask your own Custom question.

    This content was COPIED from BrainMass.com - View the original, and get the already-completed solution here!

    Write a not so bad CARDIAC simulator (in C++) that tells the user how to execute an instruction typed as a 3 digit number by the user.

    The user should be prompted to type in a 3 digit number, and then the program should print to the screen whatever the CARDIAC Instruction Decoder box would show had that been the instruction.

    * Use a pleasant switch statement for decoding the instructions based on op-codes, rather than nested if, consecutive if, or if/elseif monstrosity.

    * Use a loop to allow users to provide as many instructions as they would like. Inform the users what they could type to exit the program (e.g., entering "1234" as an instruction).

    * Keep track of the accumulator for the user. Use an accumulator variable for this purpose.

    Assume that the accumulator contains 0 when the program starts. If the instruction modifies the accumulator (i.e., instructions 1xx, 2xx, 4xx, and 7xx), prompt the user for whatever data is necessary to execute the instruction, and execute
    it ensuring that the accumulator is modified appropriately. Do not forget that the accumulator is only 3 digits long.

    * Instruction 6xx should replace the word "accumulator" with the current value of the accumulator in its output to the user.

    An example run of program might look like this.

    Enter a 3 digit CARDIAC instruction (negative to exit): 123
    Replace accumulator with cell 23
    Enter the data in cell 23: 431
    Enter a 3 digit CARDIAC instruction (negative to exit): 412
    Shift accumulator left 1 digits, then right 2 digits
    The accumulator now contains 3
    Enter a 3 digit CARDIAC instruction (negative to exit): 375
    Move bug to cell 75
    Enter a 3 digit CARDIAC instruction (negative to exit): 250
    Add the contents of cell 50 to the accumulator
    Enter the data in cell 50: 99
    Enter a 3 digit CARDIAC instruction (negative to exit): 348
    Enter a 3 digit CARDIAC instruction (negative to exit): 630
    Copy accumulator to cell 30
    The accumulator now contains 96
    Enter a 3 digit CARDIAC instruction (negative to exit): -1

    Operation codes are as follows:

    Code Abbreviation Meaning
    0 INP Copy input to memory.
    1 CLA Copy memory to accumulator.
    2 ADD Add memory to accumulator.
    3 TAC Move bug if accumulator < 0.
    4 SFT Shift accumulator left then right.
    5 OUT Copy memory to output.
    6 STO Copy accumulator to memory.
    7 SUB Subtract memory from accumulator.
    8 JMP Backup bug to 99 then move bug.
    9 HRS move bug and stop computing.

    © BrainMass Inc. brainmass.com March 4, 2021, 10:26 pm ad1c9bdddf

    Solution Preview

    There are several interesting parts to this solution. We use a switch statement to handle the op-code for each instruction instead of a series of if statements. This makes the code much easier to read and ...

    Solution Summary

    This solutions provides a reasonable CARDIAC simulator. The code is structured to use a switch statement and a while loop so that multiple instructions can be processed.