diff options
| author | Tyler Taormina <[email protected]> | 2021-11-13 19:45:11 -0800 |
|---|---|---|
| committer | Tyler Taormina <[email protected]> | 2021-11-13 19:45:11 -0800 |
| commit | c094454bf05559652a432965a77816543e5a86f0 (patch) | |
| tree | 89f529bfe686a42c016f779b6b15d7212319dd3f /num2.cpp | |
| parent | Update (diff) | |
| download | cst116-lab7-till-t-c094454bf05559652a432965a77816543e5a86f0.tar.xz cst116-lab7-till-t-c094454bf05559652a432965a77816543e5a86f0.zip | |
Everything but removing array elements is working!
Diffstat (limited to 'num2.cpp')
| -rw-r--r-- | num2.cpp | 207 |
1 files changed, 207 insertions, 0 deletions
diff --git a/num2.cpp b/num2.cpp new file mode 100644 index 0000000..0b028e9 --- /dev/null +++ b/num2.cpp @@ -0,0 +1,207 @@ +// tyler taormina +// cst 116 +// lab 7 +// number 1 + +#include <iostream> +#include <iomanip> +#include <string> + +using namespace std; + +void RmString(string arr[]); +void GatherStrings(int& limit, string arr[]); +void ClearBuffer(); +void DisplayMenu(int&); +void ProcessMenuChoice(int, int, string arr[]); +void PrintString(int, string arr[]); +bool FindString(string arr[], int); + + +#define max 100 + + +int main() +{ + // program driver + int i = 0; + int limit = 0; + int count = 0; + int menu_choice; + string data[max]; + GatherStrings(limit, data); + DisplayMenu(menu_choice); + ProcessMenuChoice(menu_choice, limit, data); + + return 0; +} + + +void GatherStrings(int& limit, string arr[]) +{ + // ask user for input of a string. let user decide after each + // input whether or not they will add another string. once + // they choose to not input, all previously entered strings + // will be printed. + cout << "==================================================================\n"; + cout << " LETS BUILD A DATABASE OF STRINGS" << endl; + cout << "==================================================================\n"; + + string usr_data; + + int i = 0; + int flag = 1; + + while (flag && limit < max) + { + cout << "Please Enter a string to store in our database: \n" << endl; + getline (cin, usr_data); + arr[limit] = usr_data; + limit += 1; + cout << "\n\nEnter [1] to add another string to the data base." << endl; + cout << "OR" << endl; + cout << "Enter [0] to STOP: \n" << endl; + cin >> flag; + ClearBuffer(); + } +} + + +bool FindString(string arr[], int limit) +{ + // Check for a substring inside of one of the input strings. + + string sub; + int i, j, k; + int reset = 0; + ClearBuffer(); + + cout << "Lets look for a substring..." << endl; + cout << "Please enter a substring to look for: \n" << endl; + getline(cin, sub); + + for (i = 0; i < limit; i++) { + if (arr[i].size() < sub.size()) + return false; + for (j = 0; j < arr[i].size(); j++) { + int k = 0; + if (arr[i][j] == sub[k]) { + reset = j; + while (arr[i][j] == sub[k] && k < sub.size()) { + j++; + k++; + } + + if (k == sub.size()){ + return true; + } + else + j = reset; + } + } + } + return false; +} + + +void PrintString(int limit, string arr[]) +{ + int i = 0; + cout << "==================================================================\n"; + cout << "This is what we have in our database so far..." << endl; + cout << "==================================================================\n"; + + while (i < limit) + { + cout << *(arr+i) << endl; + i += 1; + } + +} + + +void RmString(string arr[]) +{ + +} + + +void DisplayMenu(int& menu_choice) +{ + //displays the menu of functions for the user to choose from + bool flag = 0; + cout << "==================================================================\n"; + cout << " MENU" << endl; + cout << "==================================================================\n"; + + cout << "1) Enter 1 to search for a substring.\n"; + cout << "2) Enter 2 to remove a string from the database.\n"; + cout << "3) Enter 3 to print the database.\n"; + cout << "4) Exit Program.\n\n"; + cout << "Enter: "; + cin >> menu_choice; + if (menu_choice > 4 || menu_choice < 1) { + cout << "Invalid Entry. Please enter a number from the options list provided.\n\n\n\n" << endl; + DisplayMenu(menu_choice); + } +} + + +void ProcessMenuChoice (int menu_choice, int limit, string usr_data[]) +{ + int program_rerun = 0; + bool check; + switch(menu_choice) + { + case 1: + check = FindString(usr_data, limit); + if (check) { + cout << "WE FOUND IT!" << endl; + } + else + cout << "ME NO FIND" << endl; + + break; + + case 2: + RmString(usr_data); + break; + + case 3: + PrintString(limit, usr_data); + break; + + case 4: + cout << "End program." << endl; + break; + + default: + break; + } + cout << "Press 1 and enter to build a new database.\n" << endl; + cout << "Press any other number to exit the program.\n" << endl; + cin >> program_rerun; + + if (program_rerun == 1) { + ClearBuffer(); + main(); + } + + else { + cout << "================================================================" << endl; + cout << " Program Closing..." << endl; + cout << "================================================================\n\n\n" << endl; + } +} + + +void ClearBuffer() +{ + // clears buffer after menu choice so as not to interfere with the following user inputs. + char c; + do { + c = getchar(); + } while (c != '\n' && c != EOF); +} + + |