summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBenjamin Schroeder <[email protected]>2021-11-10 18:56:41 -0800
committerBenjamin Schroeder <[email protected]>2021-11-10 18:56:41 -0800
commit2fb4b2a2c1d5b40bba3697f0a651bb17df9021e7 (patch)
treeab5ecda4c3e3785e9394e8465382345c80cc7670
parentLab6 Exercises (diff)
downloadcst116-lab6-bensprogramma-2fb4b2a2c1d5b40bba3697f0a651bb17df9021e7.tar.xz
cst116-lab6-bensprogramma-2fb4b2a2c1d5b40bba3697f0a651bb17df9021e7.zip
Update on exercises
10.10, 10.14, 10.15
-rw-r--r--CST116F2021-Lab6/CST116F2021-Lab6_Schroeder.cpp195
-rw-r--r--CST116F2021-Lab6/Lab6ExerciseFunctions.cpp76
-rw-r--r--CST116F2021-Lab6/Lab6_Header.h13
-rw-r--r--Lab6RUNS.txt361
4 files changed, 640 insertions, 5 deletions
diff --git a/CST116F2021-Lab6/CST116F2021-Lab6_Schroeder.cpp b/CST116F2021-Lab6/CST116F2021-Lab6_Schroeder.cpp
index 71a80ec..52c1f8c 100644
--- a/CST116F2021-Lab6/CST116F2021-Lab6_Schroeder.cpp
+++ b/CST116F2021-Lab6/CST116F2021-Lab6_Schroeder.cpp
@@ -2,20 +2,205 @@
//
// Lab6Exercises_Schroeder.cpp : This file contains the 'main' function. Program execution begins and ends there.
//
+//11a
+//10.10 Learn by Doing Exercises
+//pp 282 - 283
+//10 pts #1
#include "Lab6_Header.h"
int main()
{
- int Mem_Dues[ARRAY_SIZE][2]{};
- string Club_Pres[ARRAY_SIZE][2]{};
- readData(Mem_Dues, Club_Pres);
- printData(Mem_Dues, Club_Pres);
+ //// 10.10 Learn By Doing Exercises
+ // int Mem_Dues[ARRAY_SIZE][2]{};
+ // string Club_Pres[ARRAY_SIZE][2]{};
+ // readData(Mem_Dues, Club_Pres);
+ // printData(Mem_Dues, Club_Pres);
+
+ //10.14 Programming Exercises Below in Comments
+
+
+
+ //10.15 Programming exercises p292-293
+char User_Input[35];
+cout << "\nenter a string up to 35 characters long: ";
+cin.getline(User_Input, 35);
+
+isPalindrome(User_Input);
+isAlphaStr(User_Input);
+
+char part_char = 'a';
+cout << "\nwhat character would you like to count?: ";
+cin >> part_char;
+
+countChar(User_Input, part_char);
+
+
}
+///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+//11b
+//10.14 Debugging Exercises
+//pp 289 - 292
+//10 pts #1
+//Submit: code & runs
+
+/********************************************************************
+* File: Chapter 10 Debug.cpp
+*
+* General Instructions: Complete each step before proceeding to the
+* next.
+*
+* Debugging Exercise 1
+*
+* 1) Build and run the program.
+* 2) Examine the code and the output and notice the use of
+* parallel arrays.
+* 3) Insert breakpoints at Breakpoint 1, Breakpoint 2, and Breakpoint
+* 3.
+* 4) Run to Breakpoint 1.
+* 5) Place a watch on varX, varY and varZ. Click on the '+' in the
+* watch window to see the individual elements associated with each
+* of the arrays.
+* 6) Continue running your program to Breakpoint 2.
+* 7) Add a watch on the array called name. Again, click on the '+'
+* symbol. Notice how a multidimensional array is shown in the
+* debugger, the null terminating characters location, and how a
+* character is represented within each element of the array.
+* 8) Continue running the program to Breakpoint 3.
+* 9) Notice the contents of varX and varY now that you are back in the
+* main function.
+* 10) Clear all the breakpoints.
+* 11) Stop debugging.
+*
+* Debugging Exercise 2
+*
+* 1) Change the constant SIZE from 5 to 10.
+* 2) Change any literal containing a 5 to the constant SIZE.
+* Notice the usefulness of the constant when changes need
+* to be made to your code.
+* 3) Set a breakpoint at Breakpoint 4. Now on this breakpoint
+* set the necessary condition so the loop breaks when x hits 8.
+* (Hint: If you need help setting breakpoints based upon a
+* condition refer to Chapter 8).
+* 4) Run to Breakpoint 4.
+* 5) Continue stepping into the remainder of the for loop until the
+* flow returns back to main.
+* 6) Make sure your Watch window is visible and notice the contents
+* of varY and varZ now that you are back in main.
+* 7) Stop debugging.
+* 8) Disable all breakpoints.
+* 9) Rebuild and execute the program and verify the results.
+*
+* Debugging Exercise 3
+*
+* 1) Just before the call to the PrintFunction in main, add an
+* assignment statement to change the first element in the
+* array varZ to -99.
+* 2) Build and execute your code, verifying that the calculations
+* are correct in relation to element 0 of varZ.
+* 3) Add a line to assign the contents of the second element of
+* varX to 99 in FunctionTwo.
+* 4) Rebuild your program.
+* 5 Obviously there is a problem. Remove the const from the
+* function declaration and header for varX.
+* 5) Now you should be able to build and execute your code. Do it.
+* 6) Set a breakpoint on Breakpoint 2.
+* 7) Re-enable Breakpoint 2.
+* 8) Run to Breakpoint 2 and make sure you have a watch on the
+* variable name.
+* 9) Click on the '+'. Once you see all the elements
+* within the array, change the 'Value' (in the Value field)
+* for the first element of the array directly within the Watch
+* window to the character 'Z'. Notice how the value is updated
+* by displaying the new ASCII value too.
+* 10) Stop debugging.
+* 11) Disable all breakpoints.
+*
+********************************************************************/
+//
+//#include <iostream>
+//#include <iomanip>
+//using std::cin;
+//using std::cout;
+//using std::endl;
+//using std::setw;
+//
+//void GetAndDisplayWelcomeInfo();
+//void FunctionOne(int varX[], int varY[]);
+//void FunctionTwo( int varX[], int varY[], int varZ[]);
+//void PrintFunction( int varX[], int varY[], int varZ[]);
+//
+//const int SIZE = 10;
+//
+//int main()
+//{
+// int varX[SIZE];
+// int varY[SIZE];
+// int varZ[SIZE]; // Notice how we used the const here!
+// varZ[0] = -99;
+// varX[1] = 99;
+//
+//// Breakpoint 1
+// // Put breakpoint on the following line
+// GetAndDisplayWelcomeInfo();
+// FunctionOne(varX, varY);
+//
+// // Breakpoint 3
+// // Put breakpoint on the following line
+// FunctionTwo(varX, varY, varZ);
+// PrintFunction(varX, varY, varZ);
+//
+// return 0;
+//}
+//void GetAndDisplayWelcomeInfo()
+//{
+// char name[2][20]; // First name in row 0, last name in row 1
+//
+// cout << "Please enter your first name: ";
+// cin >> name[0];
+//
+// cout << "\nPlease enter your last name: ";
+// cin >> name[1];
+//
+// // Breakpoint 2
+// // Put breakpoint on the following line
+// cout << "\n\n\tWelcome " << name[0] << " " << name[1]
+// << "!\n\t Hope all is well \n\n";
+//}
+//
+//void FunctionOne(int varX[], int varY[])
+//{
+// for (int x = 0; x < SIZE; x++) // NOTICE '<' NOT <=
+// // Breakpoint 4
+// // Put breakpoint on the following line
+// varX[x] = x;
+//
+// for (int x = 0; x < SIZE; x++)
+// varY[x] = x + 100;
+//}
+//void FunctionTwo( int varX[], int varY[], int varZ[])
+//{
+// for (int x = 0; x < SIZE; x++) // Notice the const SIZE here
+// varZ[x] = varX[x] + varY[x];
+//}
+//void PrintFunction( int varX[20], int varY[20], int varZ[20])
+//{
+// int x;
+//
+// cout << " \t x \t y \t z\n\n";
+//
+// for (x = 0; x < SIZE; x++)
+// cout << "\t" << setw(3) << varX[x]
+// << "\t " << varY[x]
+// << "\t " << varZ[x] << endl;
+//}
+//
+//
+//
+//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-//10.10 Learn by Doing
diff --git a/CST116F2021-Lab6/Lab6ExerciseFunctions.cpp b/CST116F2021-Lab6/Lab6ExerciseFunctions.cpp
index dd96a34..4f9d8fc 100644
--- a/CST116F2021-Lab6/Lab6ExerciseFunctions.cpp
+++ b/CST116F2021-Lab6/Lab6ExerciseFunctions.cpp
@@ -82,4 +82,80 @@ void printData(int intData[ARRAY_SIZE][2], string stringData[ARRAY_SIZE][2])
}
+//11c
+//10.15 Programming Exercises
+//pp 292 - 293
+//10 pts #1
+//
+void isPalindrome(char User_Input[35])
+{
+ char Rev[35]{};
+ strcpy(Rev, User_Input);
+ _strrev(Rev);
+ int Pal = strcmp(User_Input, Rev);
+
+ if (Pal == 0)
+ {
+ cout << "\n'" << User_Input << "' is a Palindrome! \n";
+ }
+ else if (Pal == 1)
+ {
+ cout << "\n'" << User_Input << "' is not a Palindrome.";
+ }
+}
+
+
+
+void isAlphaStr(char User_Input[35])
+{
+ int i = 0;
+ int k = 0;
+ while (User_Input[i])
+ {
+ if (isalpha(User_Input[i]))
+ k++;
+ else k = 0;
+ i++;
+ }
+
+ //int k = 0;
+ //for (int i = 0; User_Input[i] == '\0'; i++)
+ //{
+ // if (isalpha(User_Input[i]))
+ // {
+ // k++;
+ // }
+
+ //}
+ if (k == 0)
+ {
+ cout << "\n'" << User_Input << "' does not contain just alphbetic characters\n";
+ }
+
+ else if (k != 0)
+ {
+ cout << "\n'" << User_Input << "' contains only alphabetic characters\n";
+ }
+
+}
+
+
+void countChar(char User_Input[35], char part_char)
+{
+ int count = 0;
+ for (int i = 0; i < 35; i++)
+ {
+ if (User_Input[i] == part_char)
+ {
+ count++;
+ }
+ }
+
+ cout << "\ncharacter: " << part_char << " ... " << count << " counted.\n\n";
+}
+
+
+
+
+
diff --git a/CST116F2021-Lab6/Lab6_Header.h b/CST116F2021-Lab6/Lab6_Header.h
index 4c86919..66de45b 100644
--- a/CST116F2021-Lab6/Lab6_Header.h
+++ b/CST116F2021-Lab6/Lab6_Header.h
@@ -2,10 +2,23 @@
#include <iostream>
#include<iomanip>
#include<string>
+#define _CRT_SECURE_NO_WARNINGS
+#pragma warning(disable:4996)
+
+
using namespace std;
+
+// Functions for 10.10 Learn By Doing p282-283
#define ARRAY_SIZE 10
void readData(int[ARRAY_SIZE][2], string[ARRAY_SIZE][2]);
void printData(int[ARRAY_SIZE][2], string[ARRAY_SIZE][2]);
+// Functions for 10.14 Programming Exercises p292-293
+void isPalindrome(char[]);
+void isAlphaStr(char[]);
+void countChar(char[], char);
+
+
+
diff --git a/Lab6RUNS.txt b/Lab6RUNS.txt
new file mode 100644
index 0000000..882cedd
--- /dev/null
+++ b/Lab6RUNS.txt
@@ -0,0 +1,361 @@
+Lab6 exercises Benjamin Schroeder
+
+///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+//11a
+//10.10 Learn by Doing Exercises
+//pp 282 - 283
+//10 pts #1
+
+#include "Lab6_Header.h"
+
+int main()
+{
+ int Mem_Dues[ARRAY_SIZE][2]{};
+ string Club_Pres[ARRAY_SIZE][2]{};
+ readData(Mem_Dues, Club_Pres);
+ printData(Mem_Dues, Club_Pres);
+}
+
+// from Lab6ExerciseFunctions.cpp
+void readData(int intData[ARRAY_SIZE][2], string stringData[ARRAY_SIZE][2])
+{
+ int again = 0, i = 0;
+ cout << "Another Club's Data? (1 for YES, 0 to exit) ";
+ cin >> again;
+ while (again && i < ARRAY_SIZE)
+ {
+ cout << "Enter the club name: ";
+ getline(cin >> ws, stringData[i][0]);
+ cout << "Enter number of members:";
+ cin >> intData[i][0];
+ cout << "Enter the Club president's name: ";
+ getline(cin >> ws, stringData[i][1]);
+ intData[i][1] = intData[i][0] * 75;
+ cout << endl;
+ cout << "Another Club's Data? (1 for YES, 0 to exit)";
+ cin >> again;
+ i++;
+ }
+ cout << endl;
+}
+
+void printData(int intData[ARRAY_SIZE][2], string stringData[ARRAY_SIZE][2])
+{
+ cout << setw(20) << "\t\t\tClub" << setw(10) << "\t\tmembers" << setw(20) << "\tPresident" << setw(10) << "\t\tDues $$\n\n";
+ for (int i = 0; i < ARRAY_SIZE; i++)
+ {
+ cout << "Record " << i + 1 << " is: \t";
+ for (int j = 0; j < 2; j++)
+ {
+ cout << setw(30) << stringData[i][j] << setw(10) << intData[i][j];
+ }
+ cout << endl;
+ }
+}
+
+/////// RUN FOR 10.10 Learn By Doing /////////////////////////////////////////////////////////////
+Another Club's Data? (1 for YES, 0 to exit) 1
+Enter the club name: Computer Systems Society
+Enter number of members:49
+Enter the Club president's name: Kim Cares
+
+Another Club's Data? (1 for YES, 0 to exit)1
+Enter the club name: Society of Women Engineers
+Enter number of members:51
+Enter the Club president's name: Jeanie Queen
+
+Another Club's Data? (1 for YES, 0 to exit)1
+Enter the club name: Sigma Tau Gamma
+Enter number of members:241
+Enter the Club president's name: Storm Drain
+
+Another Club's Data? (1 for YES, 0 to exit)1
+Enter the club name: Trekkies
+Enter number of members:230
+Enter the Club president's name: C. Kirk
+
+Another Club's Data? (1 for YES, 0 to exit)1
+Enter the club name: Home Brewers
+Enter number of members:15
+Enter the Club president's name: Ross Coe
+
+Another Club's Data? (1 for YES, 0 to exit)1
+Enter the club name: High Altitude Ballooning
+Enter number of members:19
+Enter the Club president's name: Justin Time
+
+Another Club's Data? (1 for YES, 0 to exit)1
+Enter the club name: Rugby
+Enter number of members:25
+Enter the Club president's name: Ryan Johns
+
+Another Club's Data? (1 for YES, 0 to exit)1
+Enter the club name: IEEE
+Enter number of members:36
+Enter the Club president's name: Marc Bansmere
+
+Another Club's Data? (1 for YES, 0 to exit)1
+Enter the club name: International Club
+Enter number of members:102
+Enter the Club president's name: Kong Mbonkum
+
+Another Club's Data? (1 for YES, 0 to exit)1
+Enter the club name: Dance Club
+Enter number of members:64
+Enter the Club president's name: Will Shaver
+
+Another Club's Data? (1 for YES, 0 to exit)0
+
+ Club members President Dues $$
+
+Record 1 is: Computer Systems Society 49 Kim Cares 3675
+Record 2 is: Society of Women Engineers 51 Jeanie Queen 3825
+Record 3 is: Sigma Tau Gamma 241 Storm Drain 18075
+Record 4 is: Trekkies 230 C. Kirk 17250
+Record 5 is: Home Brewers 15 Ross Coe 1125
+Record 6 is: High Altitude Ballooning 19 Justin Time 1425
+Record 7 is: Rugby 25 Ryan Johns 1875
+Record 8 is: IEEE 36 Marc Bansmere 2700
+Record 9 is: International Club 102 Kong Mbonkum 7650
+Record 10 is: Dance Club 64 Will Shaver 4800
+
+C:\Users\Lenovo\source\repos\cst116-lab6-BensProgramma\x64\Debug\CST116F2021-Lab6.exe (process 18392) exited with code 0.
+To automatically close the console when debugging stops, enable Tools->Options->Debugging->Automatically close the console when debugging stops.
+Press any key to close this window . . .
+
+
+//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+//********************************************************************
+10.14 Learn By Doing (Debugging Code) p282-283
+
+#include <iostream>
+#include <iomanip>
+using std::cin;
+using std::cout;
+using std::endl;
+using std::setw;
+
+void GetAndDisplayWelcomeInfo();
+void FunctionOne(int varX[], int varY[]);
+void FunctionTwo( int varX[], int varY[], int varZ[]);
+void PrintFunction( int varX[], int varY[], int varZ[]);
+
+const int SIZE = 10;
+
+int main()
+{
+ int varX[SIZE];
+ int varY[SIZE];
+ int varZ[SIZE]; // Notice how we used the const here!
+ varZ[0] = -99;
+ varX[1] = 99;
+
+// Breakpoint 1
+ // Put breakpoint on the following line
+ GetAndDisplayWelcomeInfo();
+ FunctionOne(varX, varY);
+
+ // Breakpoint 3
+ // Put breakpoint on the following line
+ FunctionTwo(varX, varY, varZ);
+ PrintFunction(varX, varY, varZ);
+
+ return 0;
+}
+void GetAndDisplayWelcomeInfo()
+{
+ char name[2][20]; // First name in row 0, last name in row 1
+
+ cout << "Please enter your first name: ";
+ cin >> name[0];
+
+ cout << "\nPlease enter your last name: ";
+ cin >> name[1];
+
+ // Breakpoint 2
+ // Put breakpoint on the following line
+ cout << "\n\n\tWelcome " << name[0] << " " << name[1]
+ << "!\n\t Hope all is well \n\n";
+}
+
+void FunctionOne(int varX[], int varY[])
+{
+ for (int x = 0; x < SIZE; x++) // NOTICE '<' NOT <=
+ // Breakpoint 4
+ // Put breakpoint on the following line
+ varX[x] = x;
+
+ for (int x = 0; x < SIZE; x++)
+ varY[x] = x + 100;
+}
+void FunctionTwo( int varX[], int varY[], int varZ[])
+{
+ for (int x = 0; x < SIZE; x++) // Notice the const SIZE here
+ varZ[x] = varX[x] + varY[x];
+}
+void PrintFunction( int varX[20], int varY[20], int varZ[20])
+{
+ int x;
+
+ cout << " \t x \t y \t z\n\n";
+
+ for (x = 0; x < SIZE; x++)
+ cout << "\t" << setw(3) << varX[x]
+ << "\t " << varY[x]
+ << "\t " << varZ[x] << endl;
+}
+
+
+///////////////////////////// Run From 10.14 Debugging Exercise p289-292 ///////////////////
+
+Please enter your first name: Ben
+
+Please enter your last name: Shutter
+
+
+ Welcome Ben Shutter!
+ Hope all is well
+
+ x y z
+
+ 0 100 100
+ 1 101 102
+ 2 102 104
+ 3 103 106
+ 4 104 108
+ 5 105 110
+ 6 106 112
+ 7 107 114
+ 8 108 116
+ 9 109 118
+
+C:\Users\Lenovo\source\repos\cst116-lab6-BensProgramma\x64\Debug\CST116F2021-Lab6.exe (process 18192) exited with code 0.
+To automatically close the console when debugging stops, enable Tools->Options->Debugging->Automatically close the console when debugging stops.
+Press any key to close this window . . .
+
+
+
+//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+
+//11c
+//10.15 Programming Exercises
+//pp 292 - 293
+//10 pts #1
+//
+
+#include "Lab6_Header.h"
+
+int main()
+{
+ char User_Input[35];
+ cout << "\nenter a string up to 35 characters long: ";
+ cin.getline(User_Input, 35);
+
+ isPalindrome(User_Input);
+ isAlphaStr(User_Input);
+
+ char part_char = 'a';
+ cout << "\nwhat character would you like to count?: ";
+ cin >> part_char;
+
+ countChar(User_Input,part_char);
+
+
+
+}
+
+void isPalindrome(char User_Input[35])
+{
+ char Rev[35]{};
+ strcpy(Rev, User_Input);
+ _strrev(Rev);
+ int Pal = strcmp(User_Input, Rev);
+
+ if (Pal == 0)
+ {
+ cout << User_Input << " is a Palindrome! \n";
+
+ }
+ else if (Pal == 1)
+ {
+ cout << User_Input << " is not a Palindrome.";
+ }
+}
+
+
+
+void isAlphaStr(char User_Input[35])
+{
+
+ int k = 0;
+ for (int i = 0; User_Input[i] == '\0'; i++)
+ {
+ if (isalpha(User_Input[i]) == 0)
+ k++;
+ }
+ if (k > 0)
+ {
+ cout <<"\n" << User_Input << " does not contain just alphbetic characters\n";
+ }
+
+ else if (k == 0)
+ {
+ cout << "\n" << User_Input << " contains only alphabetic characters\n";
+ }
+
+}
+
+
+void countChar(char User_Input[35], char part_char)
+{
+ int count = 0;
+ for (int i = 0; i<35; i++)
+ {
+ if (User_Input[i] == part_char)
+ {
+ count++;
+ }
+
+ }
+
+ cout << "\ncharacter: " << part_char << " ... " << count << " counted.\n\n";
+}
+
+
+//// RUN for 10.14 Programming Exercises ////////////////////////////////////////////////////////////////////////////////
+RUN #1
+
+
+enter a string up to 35 characters long: radar
+
+'radar' is a Palindrome!
+
+'radar' contains only alphabetic characters
+
+what character would you like to count?: r
+
+character: r ... 2 counted.
+
+
+C:\Users\Lenovo\source\repos\cst116-lab6-BensProgramma\x64\Debug\CST116F2021-Lab6.exe (process 25036) exited with code 0.
+To automatically close the console when debugging stops, enable Tools->Options->Debugging->Automatically close the console when debugging stops.
+Press any key to close this window . . .
+
+
+RUN #2
+enter a string up to 35 characters long: radar567
+
+'radar567' is not a Palindrome.
+'radar567' does not contain just alphbetic characters
+
+what character would you like to count?: 7
+
+character: 7 ... 1 counted.
+
+
+C:\Users\Lenovo\source\repos\cst116-lab6-BensProgramma\x64\Debug\CST116F2021-Lab6.exe (process 636) exited with code 0.
+To automatically close the console when debugging stops, enable Tools->Options->Debugging->Automatically close the console when debugging stops.
+Press any key to close this window . . .
+
+
+