diff options
| author | Benjamin Schroeder <[email protected]> | 2021-11-10 18:56:41 -0800 |
|---|---|---|
| committer | Benjamin Schroeder <[email protected]> | 2021-11-10 18:56:41 -0800 |
| commit | 2fb4b2a2c1d5b40bba3697f0a651bb17df9021e7 (patch) | |
| tree | ab5ecda4c3e3785e9394e8465382345c80cc7670 | |
| parent | Lab6 Exercises (diff) | |
| download | cst116-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.cpp | 195 | ||||
| -rw-r--r-- | CST116F2021-Lab6/Lab6ExerciseFunctions.cpp | 76 | ||||
| -rw-r--r-- | CST116F2021-Lab6/Lab6_Header.h | 13 | ||||
| -rw-r--r-- | Lab6RUNS.txt | 361 |
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 . . . + + + |