UserInterface.cpp
Upload User: gtl068a
Upload Date: 2007-01-25
Package Size: 233k
Code Size: 2k
Development Platform:

Visual C++

  1. // UserInterface.cpp
  2. #include <iostream>
  3. #include <stdexcept>
  4. #include <string>
  5. #include "Database.h"
  6. using namespace std;
  7. using namespace Records;
  8. int displayMenu();
  9. void doHire(Database& inDB);
  10. void doFire(Database& inDB);
  11. void doPromote(Database& inDB);
  12. void doDemote(Database& inDB);
  13. int main(int argc, char** argv)
  14. {
  15.   Database employeeDB;
  16.   bool done = false;
  17.   while (!done) {
  18.     int selection = displayMenu();
  19.     switch (selection) {
  20.     case 1:
  21.       doHire(employeeDB);
  22.       break;
  23.     case 2:
  24.       doFire(employeeDB);
  25.       break;
  26.     case 3:
  27.       doPromote(employeeDB);
  28.       break;
  29.     case 4:
  30.       employeeDB.displayAll();
  31.       break;
  32.     case 5:
  33.       employeeDB.displayCurrent();
  34.       break;
  35.     case 6:
  36.       employeeDB.displayFormer();
  37.       break;
  38.     case 0:
  39.       done = true;
  40.       break;
  41.     default:
  42.       cerr << "Unknown command." << endl;
  43.     }
  44.   }
  45. }
  46. int displayMenu()
  47. {
  48.   int selection;
  49.   cout << endl;
  50.   cout << "Employee Database" << endl;
  51.   cout << "-----------------" << endl;
  52.   cout << "1) Hire a new employee" << endl;
  53.   cout << "2) Fire an employee" << endl;
  54.   cout << "3) Promote an employee" << endl;
  55.   cout << "4) List all employees" << endl;
  56.   cout << "5) List all current employees" << endl;
  57.   cout << "6) List all previous employees" << endl;
  58.   cout << "0) Quit" << endl;
  59.   cout << endl;
  60.   cout << "---> ";
  61.   cin >> selection;
  62.   return selection;
  63. }
  64. void doHire(Database& inDB)
  65. {
  66.   string firstName;
  67.   string lastName;
  68.   cout << "First name? ";
  69.   cin >> firstName;
  70.   cout << "Last name? ";
  71.   cin >> lastName;
  72.   try {
  73.     inDB.addEmployee(firstName, lastName);
  74.   } catch (std::exception ex) { 
  75.     cerr << "Unable to add new employee!" << endl;
  76.   }
  77. }
  78. void doFire(Database& inDB)
  79. {
  80.   int employeeNumber;
  81.   cout << "Employee number? ";
  82.   cin >> employeeNumber;
  83.   try {
  84.     Employee& emp = inDB.getEmployee(employeeNumber);
  85.     emp.fire();
  86.     cout << "Employee " << employeeNumber << " has been terminated." << endl;
  87.   } catch (std::exception ex) {
  88.     cerr << "Unable to terminate employee!" << endl;
  89.   }
  90. }
  91. void doPromote(Database& inDB)
  92. {
  93.   int employeeNumber;
  94.   int raiseAmount;
  95.   cout << "Employee number? ";
  96.   cin >> employeeNumber;
  97.   cout << "How much of a raise? ";
  98.   cin >> raiseAmount;
  99.   try {
  100.     Employee& emp = inDB.getEmployee(employeeNumber);
  101.     emp.promote(raiseAmount);
  102.   } catch (...) {
  103.     cerr << "Unable to promote employee!" << endl;
  104.   }
  105. }