aboutsummaryrefslogtreecommitdiff
path: root/CST116-Ch9-Debugging/CST116-Ch9-Debugging.cpp
blob: 6e7e0dbcf4bdcdb8a6b13ff2184b5009710b4720 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
/********************************************************************
* File: CST116-Ch9-Debugging.cpp
*
* General Instructions: Complete each step before proceeding to the
* next.
*
* Debugging Exercise 1
*
* 1) Insert a breakpoint on the lines indicated in the code.
* 2) Run to Breakpoint 1.
* 3) Place a watch on age and days.
* 4) Add another watch using &age for the name. This will display
*    the address of age.
* 5) Write down the address of age.
* 6) Step Into the code for the function GetAge.
* 7) The execution continues to the function header for GetAge.
* 8) Step into one more time.
* 9) Why did the address of age and value change? // (Because the variable is reset to 0 within the functions)
* 10) Step over the cout and cin statements.
* 11) Verify the value entered is stored properly in age.
* 12) Step into until the flow returns to main.
* 13) Step over one more time.
* 14) Why didn't the value entered get transferred back to main? // (Because the main function is at the top of the code, meaning the other functions to calculate the age wont be recognized when stepped into).
* 15) Stop debugging and fix the error.
* 16) Run to Breakpoint 1.
* 17) Step over the function call to GetAge.
* 18) Verify that the value entered was returned and stored
*     correctly from GetAge.
* 19) Stop debugging.
*
* Debugging Exercise 2
*
* 1) Run to Breakpoint 1.
* 2) Step over the call to GetAge.
* 3) Step into CalcDays.
* 4) Step into one more time so that the current line is the
*    calculation.
* 5) Why is age greyed out in your watch window? // (Because it has multiple inputs when set 0, set 0 again within the function, then changed by a user input)
* 6) Stop debugging.
*
* Debugging Exercise 3
*
* 1) Run to Breakpoint 2.
* 2) When asked, enter the value of 20 for your age.
* 3) Verify that the variable age is 20 and the variable days
*    is 7300.
* 4) Step into the PrintResults function.
* 5) Age is 7300? Not even Ralph is that old. // (Because the age is mulitplied by 365, has the wrong variable name and address)
* 6) Why did the values for both variables change?
* 7) Stop debugging and fix the error.
*
* Debugging Exercise 4
*
* 1) Run to Breakpoint 2.
* 2) Display your Call Stack window.
* 3) View the contents of the window and notice that the top
*    function on the stack is main.
* 4) Step into the PrintResults function.
* 5) Notice that the call stack now shows PrintResults on top of
*    the stack.
********************************************************************/
#include <iostream>
using std::cout;
using std::cin;
using std::endl;

const int DAYS_PER_YEAR = 365;



int age;
int days;


int GetAge()
{

    cout << "Please enter your age: ";
    cin >> age;

    return 0;
}
int CalcDays()
{

    days = (age * DAYS_PER_YEAR);

    return days;
}
void PrintResults()
{
    cout << age << "! Boy are you old!\n";
    cout << "Did you know that you are at least " << days << " days old?\n\n";
}


int main()
{


    // Breakpoint 1
    // Put breakpoint on the following line 
    GetAge();
    CalcDays();

    // Breakpoint 2
    // Put breakpoint on the following line
    PrintResults();

    return 0;
}