aboutsummaryrefslogtreecommitdiff
path: root/num4/main.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'num4/main.cpp')
-rw-r--r--num4/main.cpp298
1 files changed, 298 insertions, 0 deletions
diff --git a/num4/main.cpp b/num4/main.cpp
new file mode 100644
index 0000000..00b63bc
--- /dev/null
+++ b/num4/main.cpp
@@ -0,0 +1,298 @@
+// tyler taormina
+// cst 116
+// lab 7
+// number 1
+
+#include <iostream>
+#include <fstream>
+#include <algorithm>
+#include <stdio.h>
+#include <iomanip>
+#include <string>
+
+using namespace std;
+const int MAX = 10;
+
+void RmString(string arr[], int);
+void ClearBuffer();
+void DisplayMenu(int&);
+void ProcessMenuChoice (int&, int&, int&, std::string first[MAX], std::string last[MAX], std::string phone[MAX], std::string bday[MAX]);
+
+void AddPerson(int, string first[MAX], string last[MAX], string phone[MAX], string bday[MAX]);
+void PrintData(int, string first[MAX], string last[MAX], string phone[MAX], string bday[MAX]);
+void FindString (string first[], string last[], string phone[], string bday[], int);
+int ReadData (ifstream & inFile, std::string first[MAX], std::string last[MAX], std::string phone[MAX], std::string bday[MAX]);
+
+void OutData(ofstream & outFile, string first[], string last[], string phone[], string bday[], int record_counter );
+
+int main()
+{
+ std::string f_name[MAX];
+ std::string l_name[MAX];
+ std::string phone[MAX];
+ std::string bday[MAX];
+
+
+ int record_counter = 0;
+ int menu_choice;
+ int flag = 1;
+
+ ifstream inFile;
+
+ //open file and read data
+
+ inFile.open ( "data.txt");
+
+ if ( inFile.is_open ( ) )
+ {
+ record_counter = ReadData (inFile, f_name, l_name, phone, bday);
+ inFile.close ( );
+ }
+
+ else
+ {
+ cout << "Trouble Opening File: inFile";
+ cout << "\n\n\t\t ** About to EXIT NOW! ** ";
+ }
+
+ //User interacts with program here.
+ while (flag != 0)
+ {
+ DisplayMenu(menu_choice);
+ ProcessMenuChoice(menu_choice, flag, record_counter, f_name, l_name, phone, bday);
+ }
+ //Writes changes to the data.txt file
+ ofstream outFile ( "data.txt" );
+ if ( outFile.is_open ( ) )
+ {
+
+ OutData(outFile, f_name, l_name, phone, bday, record_counter);
+ outFile.close ( );
+ }
+ else
+ {
+ cout << "Trouble Opening File: outFile";
+ cout << "\n\n\t\t ** About to EXIT NOW! ** ";
+ }
+
+ return 0;
+}
+
+
+int ReadData ( ifstream & inFile, string first[MAX], string last[MAX], string phone[MAX], string bday[MAX])
+{
+ int counter = 0;
+ inFile >> first[counter] >> last[counter] >> phone[counter] >> bday[counter]; // Priming Read
+
+ while ( !inFile.eof ( ) )
+ {
+ counter++;
+ inFile >> first[counter] >> last[counter] >> phone[counter] >> bday[counter];
+ }
+
+ return counter;
+}
+
+
+/* void FindString(string first[], int limit) */
+/* { */
+/* // Check for a substring inside of one of the input strings. */
+/* // Prints whether or not the string was found. If found */
+/* // prints the index of the list where the string was found */
+/* // and what the string was that contained the substring. */
+
+/* string sub; */
+/* int i, j; */
+/* 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()) */
+/* i = limit; */
+/* 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()){ */
+/* cout << "We found it at index: " << i+1 << endl; */
+/* cout << "The string was: " << arr[i] << endl; */
+/* } */
+/* else */
+/* j = reset; */
+/* } */
+/* } */
+/* } */
+/* } */
+
+
+void PrintData(int record_counter, string first[MAX], string last[MAX], string phone[MAX], string bday[MAX])
+{
+ //Displays all strings stored.
+ int i = 0;
+ cout << "==================================================================\n";
+ cout << "This is what we have in our database so far..." << endl;
+ cout << "==================================================================\n";
+
+ while (i < record_counter)
+ {
+ cout << i+1 << ") " << first[i] << " " << last[i] << " " << phone[i] << " " << bday[i] << endl;
+ i += 1;
+ }
+}
+
+
+void AddPerson(int record_counter, string first[MAX], string last[MAX], string phone[MAX], string bday[MAX])
+{
+ std::string temp;
+ cout << "Enter the first name of the person you'd like to add: " << endl;
+ cin >> temp;
+ first[record_counter] = temp;
+ cout << "Enter the last name of the person you'd like to add: " << endl;
+ cin >> temp;
+ last[record_counter] = temp;
+ cout << "Enter the phone number of the person you'd like to add: " << endl;
+ cin >> temp;
+ phone[record_counter] = temp;
+ cout << "Enter the birthday of the person you'd like to add: " << endl;
+ cin >> temp;
+ bday[record_counter] = temp;
+}
+
+/* void RmString(string arr[], int limit) */
+/* { */
+/* // Finds string within array and removes the element. */
+/* // May need to use vector. */
+/* int i = 0, j = 0, k = 0; */
+/* int choice; */
+/* string deleted; */
+/* string copy[max]; */
+
+/* cout << "What data entry would you like to delete..." << endl; */
+/* PrintString(limit, arr); */
+/* cout << "Please enter the number for the string that you'd like to delte: " << endl; */
+/* cin >> choice; */
+/* choice -= 1; */
+/* cout << "Working...\n\n" << endl; */
+
+/* for (j = 0 ; j < limit + 1; j++) */
+/* { */
+/* if (k == choice) { */
+/* cout << "Deleting...\n\n" << endl; */
+/* deleted = arr[k]; */
+/* k++; */
+/* j--; */
+
+/* } */
+/* else { */
+/* copy[j] = arr[k]; */
+/* k++; */
+/* } */
+/* } */
+
+/* cout << "==================================================================\n"; */
+/* cout << "Here is our updated database..." << endl; */
+/* cout << "==================================================================\n"; */
+
+/* while (i < (limit - 1)) */
+/* { */
+/* cout << i+1 << ") " << copy[i] << endl; */
+/* i++; */
+/* } */
+
+/* cout << "We removed: " << deleted << endl; */
+/* } */
+
+
+void DisplayMenu(int& menu_choice)
+{
+ //Displays the menu of functions for the user to choose from.
+ menu_choice = 0;
+ cout << "==================================================================\n";
+ cout << " MENU" << endl;
+ cout << "==================================================================\n";
+
+ cout << "1) Find a person's information.\n";
+ cout << "2) Add a new person to the database.\n";
+ cout << "3) Edit information for a certain individual.\n";
+ cout << "4) Display full database.\n";
+ cout << "5) Exit Program.\n\n";
+ cout << "Enter: ";
+ cin >> menu_choice;
+ if (menu_choice > 5 || 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& flag, int& record_counter, std::string first[MAX], std::string last[MAX], std::string phone[MAX], std::string bday[MAX])
+{
+ //Takes in user input for menu choice and calls the appropriate function.
+ ClearBuffer();
+ flag = 0;
+ switch(menu_choice)
+ {
+ case 1:
+ // FindString(FNAME, LNAME, PHONE, BDAY, limit);
+ break;
+
+ case 2:
+ record_counter++;
+ AddPerson(record_counter, first, last, phone, bday);
+ break;
+
+ case 3:
+ //Edit information for a certain person
+ break;
+
+
+ case 4:
+ PrintData(record_counter, first, last, phone, bday);
+ break;
+
+ case 5:
+ cout << "Ending program." << endl;
+ cout << "Are you sure you want to quit?" << endl;
+ break;
+
+ default:
+ break;
+ }
+ cout << "Press 0 to close the program.\n" << endl;
+ cout << "Press any other number to continue the program.\n" << endl;
+ cin >> flag;
+}
+
+
+void OutData(ofstream & outFile, string first[], string last[], string phone[], string bday[], int record_counter )
+{
+ int i;
+ cout << "Writing Changes..." << endl;
+
+ for (i = 0; i < record_counter; i++)
+ {
+ outFile << first[i] << " " << last[i] << " " << phone[i] << " " << bday[i] << 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);
+}
+
+