aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTyler Taormina <[email protected]>2021-11-13 19:45:11 -0800
committerTyler Taormina <[email protected]>2021-11-13 19:45:11 -0800
commitc094454bf05559652a432965a77816543e5a86f0 (patch)
tree89f529bfe686a42c016f779b6b15d7212319dd3f
parentUpdate (diff)
downloadcst116-lab7-till-t-c094454bf05559652a432965a77816543e5a86f0.tar.xz
cst116-lab7-till-t-c094454bf05559652a432965a77816543e5a86f0.zip
Everything but removing array elements is working!
-rw-r--r--lab7.txt1
-rw-r--r--num2.cpp207
2 files changed, 208 insertions, 0 deletions
diff --git a/lab7.txt b/lab7.txt
index b19d667..8a0b3c2 100644
--- a/lab7.txt
+++ b/lab7.txt
@@ -89,6 +89,7 @@ void ClearBuffer()
RUN:
+
Please Enter a string to store in our database: string 1
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);
+}
+
+