diff options
| -rw-r--r-- | CST116F2021-Lab6/CST116F2021-Lab6.cpp | 264 | ||||
| -rw-r--r-- | CST116F2021-Lab6/CST116F2021-Lab6.vcxproj | 3 | ||||
| -rw-r--r-- | CST116F2021-Lab6/CST116F2021-Lab6.vcxproj.filters | 5 | ||||
| -rw-r--r-- | CST116F2021-Lab6/Functions.cpp | 79 | ||||
| -rw-r--r-- | CST116F2021-Lab6/Header.h | 16 | ||||
| -rw-r--r-- | CST116F2021-Lab6/Output.txt | 133 |
6 files changed, 465 insertions, 35 deletions
diff --git a/CST116F2021-Lab6/CST116F2021-Lab6.cpp b/CST116F2021-Lab6/CST116F2021-Lab6.cpp index f2bb35a..327dcb3 100644 --- a/CST116F2021-Lab6/CST116F2021-Lab6.cpp +++ b/CST116F2021-Lab6/CST116F2021-Lab6.cpp @@ -1,42 +1,242 @@ #include "Header.h" -int main() -{ +//11a +//10.10 Learn by Doing Exercises +//int main() +//{ //definitions - string clubName, president; - int numberStudents, repeats = 0; - string strClubIndex[10][2]; - int intClubIndex[10], intClubMoneyIndex[10]; +// string clubName, president; +// int numberStudents, repeats = 0; +// string strClubIndex[10][2]; +// int intClubIndex[10], intClubMoneyIndex[10]; //greeting - cout << "--Student Club Organizer--\n" << endl; +// cout << "--Student Club Organizer--\n" << endl; //input - while (repeats <= 9) - { - if (repeats == 9) - { - cout << "\nThis is your final club input slot. The program will end after this input.\n"; - } - cout << "To stop adding club info, enter \"end\".\n" - << "Name of club: \n"; - getline(cin, clubName); - if (clubName == "end") - { - break; - } - cout << "\nName of club president: \n"; - getline(cin, president); - cout << "\nNumber of students in club: \n"; - cin >> numberStudents; +// while (repeats <= 9) +// { +// if (repeats == 9) +// { +// cout << "\nThis is your final club input slot. The program will end after this input.\n"; +// } +// cout << "To stop adding club info, enter \"end\".\n" +// << "Name of club: \n"; +// getline(cin, clubName); +// if (clubName == "end") +// { +// break; +// } +// cout << "\nName of club president: \n"; +// getline(cin, president); +// cout << "\nNumber of students in club: \n"; +// cin >> numberStudents; //fill available slot - getInput(clubName, president, numberStudents, strClubIndex, intClubIndex, repeats); - cin.ignore(); - cout << endl; - repeats++; - } +// getInput(clubName, president, numberStudents, strClubIndex, intClubIndex, repeats); +// cin.ignore(); +// cout << endl; +// repeats++; +// } //calculate club money - calculateMoney(intClubIndex, intClubMoneyIndex, repeats); +// calculateMoney(intClubIndex, intClubMoneyIndex, repeats); //output - displayTable(strClubIndex, intClubIndex, intClubMoneyIndex, repeats); +// displayTable(strClubIndex, intClubIndex, intClubMoneyIndex, repeats); //exit - return 0; +// return 0; +//} + +//11b +//10.14 Debugging Exercises +/******************************************************************** +* 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[], const int varY[], int varZ[]); +//void PrintFunction(const int varX[], const int varY[], +// const int varZ[]); + +//const int SIZE = 10; + +//int main() +//{ +// int varX[SIZE]; +// int varY[SIZE]; +// int varZ[SIZE]; // Notice how we used the const here! + +// Breakpoint 1 + // Put breakpoint on the following line +// GetAndDisplayWelcomeInfo(); +// FunctionOne(varX, varY); + + // Breakpoint 3 + // Put breakpoint on the following line +// FunctionTwo(varX, varY, varZ); +// varZ[0] = -99; +// 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 < 8; x++) +// varY[x] = x + 100; +//} +//void FunctionTwo(int varX[], const int varY[], int varZ[]) +//{ +// for (int x = 0; x < SIZE; x++) // Notice the const SIZE here +// varZ[x] = varX[x] + varY[x]; +// varX[1] = 99; +//} +//void PrintFunction(const int varX[20], const int varY[20], +// const 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; +//} + +//11c +//10.15 Programming Exercises +int main() +{ + //initializations + char userString[30]; + int checkPlndrm; + int checkAlpha; + char stringCheck = 0; + int checkCt; + //greeting + getStartup(userString); + //check if palindrome + checkPlndrm = isPalindrome(userString); + //check if alphabetic characters + checkAlpha = isAlphaStr(userString); + //display results + if (checkPlndrm == 1) + { + cout << "\nYour string is a palindrome." + << endl; + } + else if (checkPlndrm == 0) + { + cout << "\nYour string is not a palindrome." + << endl; + } + + if (checkAlpha == 1) + { + cout << "\nYour string uses only alphabetical characters" + << endl; + } + else if (checkAlpha == 0) + { + cout << "\nYour string does not use only alphabetical characters" + << endl; + } + //find number of times a certain character appears + checkCt = countChar(userString, stringCheck); + + cout << "\nThe \"" << stringCheck << "\" character appears " << checkCt << " times in your string." + << endl; }
\ No newline at end of file diff --git a/CST116F2021-Lab6/CST116F2021-Lab6.vcxproj b/CST116F2021-Lab6/CST116F2021-Lab6.vcxproj index f4b7798..e833807 100644 --- a/CST116F2021-Lab6/CST116F2021-Lab6.vcxproj +++ b/CST116F2021-Lab6/CST116F2021-Lab6.vcxproj @@ -145,6 +145,9 @@ <ItemGroup> <ClInclude Include="Header.h" /> </ItemGroup> + <ItemGroup> + <Text Include="Output.txt" /> + </ItemGroup> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> <ImportGroup Label="ExtensionTargets"> </ImportGroup> diff --git a/CST116F2021-Lab6/CST116F2021-Lab6.vcxproj.filters b/CST116F2021-Lab6/CST116F2021-Lab6.vcxproj.filters index 8171ab3..3ad2bca 100644 --- a/CST116F2021-Lab6/CST116F2021-Lab6.vcxproj.filters +++ b/CST116F2021-Lab6/CST116F2021-Lab6.vcxproj.filters @@ -27,4 +27,9 @@ <Filter>Header Files</Filter> </ClInclude> </ItemGroup> + <ItemGroup> + <Text Include="Output.txt"> + <Filter>Source Files</Filter> + </Text> + </ItemGroup> </Project>
\ No newline at end of file diff --git a/CST116F2021-Lab6/Functions.cpp b/CST116F2021-Lab6/Functions.cpp index c9625b0..57c353e 100644 --- a/CST116F2021-Lab6/Functions.cpp +++ b/CST116F2021-Lab6/Functions.cpp @@ -1,5 +1,7 @@ #include "Header.h" +//11a +//10.10 Learn by Doing Exercises //function getInput definition void getInput(string studentClub, string presidentName, int numberOfStudents, string strClubIndex[10][2], int intClubIndex[], int& repeats) { @@ -17,8 +19,6 @@ void calculateMoney(int intClubIndex[], int intClubMoneyIndex[], int repeats) } } - - //function displayTable definition void displayTable(string strClubIndex[10][2], int intClubIndex[], int intClubMoneyIndex[], int repeats) { @@ -42,4 +42,79 @@ void displayTable(string strClubIndex[10][2], int intClubIndex[], int intClubMon } cout << endl; +} + +//11c +//function getStartup definition +char getStartup(char userString[]) +{ + cout << "Welcome to the super cool string information program!\n" + << endl + << "Please enter your string.\n"; + cin >> userString; + + return '0'; +} +//function isPalindrome definition +int isPalindrome(char userString[]) +{ + //initializations + char forward[30]; + char backward[30]; + int length = 0; + //calculate length of userString + while (userString[length] != '\0') + { + length++; + } + //forward to userString, backward to userString backwards + strcpy_s(forward, 30, userString); + + strcpy_s(backward, 30, userString); + + for (int a = 0, b = (length-1); a < length; a++, b--) + { + backward[a] = forward[b]; + } + //compare forward with backward + if (strcmp(forward, backward) == 0) + { + return 1; + } + else + { + return 0; + } +} + +//function isAlphaStr definition +int isAlphaStr(char userString[]) +{ + for (int a = 0; userString[a] != '\0'; a++) + { + if ((userString[a] < 65 || userString[a] > 90) && (userString[a] < 97 || userString[a] > 122)) + { + return 0; + } + } + return 1; +} + +//function countChar definition +int countChar(char userString[], char& stringCheck) +{ + //initializations + int showCt = 0; + cout << "\nEnter a character to check number of appearances in your string: "; + cin >> stringCheck; + + for (int a = 0; userString[a] != '\0'; a++) + { + if (userString[a] == stringCheck) + { + showCt++; + } + } + + return showCt; }
\ No newline at end of file diff --git a/CST116F2021-Lab6/Header.h b/CST116F2021-Lab6/Header.h index 224d2e4..2e6fa13 100644 --- a/CST116F2021-Lab6/Header.h +++ b/CST116F2021-Lab6/Header.h @@ -2,12 +2,26 @@ #include <iostream> #include <string> +#include <cstring> using namespace std; +//11a +//10.10 Learn by Doing Exercises //function getInput prototype void getInput(string studentClub, string presidentName, int numberOfStudents, string strClubIndex[10][2], int intClubIndex[], int& repeats); //function calculateMoney prototype void calculateMoney(int intClubIndex[], int intClubMoneyIndex[], int repeats); //function displayTable prototype -void displayTable(string strClubIndex[10][2], int intClubIndex[], int intClubMoneyIndex[], int repeats);
\ No newline at end of file +void displayTable(string strClubIndex[10][2], int intClubIndex[], int intClubMoneyIndex[], int repeats); + +//11c +//10.15 Programming Exercises +//function getStartup prototype +char getStartup(char userString[]); +//funtion isPalindrome prototype +int isPalindrome(char userString[]); +//function isAlphaStr prototype +int isAlphaStr(char userString[]); +//function countChar prototype +int countChar(char userString[], char& stringCheck);
\ No newline at end of file diff --git a/CST116F2021-Lab6/Output.txt b/CST116F2021-Lab6/Output.txt new file mode 100644 index 0000000..532ff93 --- /dev/null +++ b/CST116F2021-Lab6/Output.txt @@ -0,0 +1,133 @@ +11a +10.10 Learn by Doing Exercises +--Student Club Organizer-- + +To stop adding club info, enter "end". +Name of club: +Math Club + +Name of club president: +Math Dude + +Number of students in club: +24 + +To stop adding club info, enter "end". +Name of club: +Science Club + +Name of club president: +Science Dude + +Number of students in club: +89 + +To stop adding club info, enter "end". +Name of club: +Literature Club + +Name of club president: +Literature Dude + +Number of students in club: +11 + +To stop adding club info, enter "end". +Name of club: +Music Club + +Name of club president: +Music Dude + +Number of students in club: +104 + +To stop adding club info, enter "end". +Name of club: +end + +--Club Table-- + +Student Club PresidentNumber of Students +| Club name: Math Club | Club President: Math Dude | Number of Students: 24 | Club Money: 1800 | +| Club name: Science Club | Club President: Science Dude | Number of Students: 89 | Club Money: 6675 | +| Club name: Literature Club | Club President: Literature Dude | Number of Students: 11 | Club Money: 825 | +| Club name: Music Club | Club President: Music Dude | Number of Students: 104 | Club Money: 7800 | + +11b +10.14 Debugging Exercises + +output 1 - +Please enter your first name: James + +Please enter your last name: Lawrance + + + Welcome James Lawrance! + 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 -858993460 -858993452 + 9 -858993460 -858993451 + +output 2 - +Please enter your first name: James + +Please enter your last name: Lawrance + + + Welcome Zames Lawrance! + Hope all is well + + x y z + + 0 100 -99 + 99 101 102 + 2 102 104 + 3 103 106 + 4 104 108 + 5 105 110 + 6 106 112 + 7 107 114 + 8 -858993460 -858993452 + 9 -858993460 -858993451 + +11c +10.15 Programming Exercises + +output 1 - +Welcome to the super cool string information program! + +Please enter your string. +James!!! + +Your string is not a palindrome. + +Your string does not use only alphabetical characters + +Enter a character to check number of appearances in your string: ! + +The "!" character appears 3 times in your string. + +output 2 - +Welcome to the super cool string information program! + +Please enter your string. + tacocat + +Your string is a palindrome. + +Your string uses only alphabetical characters + +Enter a character to check number of appearances in your string: f + +The "f" character appears 0 times in your string.
\ No newline at end of file |