Advertisement
Guest User

Untitled

a guest
Dec 8th, 2019
113
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.83 KB | None | 0 0
  1. int main() {
  2.   Database db;
  3.   string command, event, oper;
  4.   char  def1, def2;
  5.   int y, m, d;
  6.  
  7.  
  8.   while (getline(cin, command)) {
  9.       event.clear();
  10.       oper.clear();
  11.       stringstream input(command);
  12.       bool flag = true;
  13.       cout << command;
  14.       flag = flag && (input >> oper);
  15.       if (oper != "Print"){
  16.           flag = flag && (input >> y);
  17.           flag = flag && (input >> def1);
  18.           flag = flag && (input >> m);
  19.           flag = flag && (input >> def2);
  20.           flag = flag && (input >> d);
  21.       }
  22.  
  23.       if (oper == "Add") {
  24.           flag = flag && (input.peek() == ' ');
  25.           flag = flag && (input >> event);
  26.           if (flag){
  27.               try {
  28.                   Date data (y, m, d);
  29.                   db.AddEvent(data, event);
  30.               } catch (range_error err){
  31.                   if ((string)err.what() == "month"){
  32.                       cout << "Month value is invalid: " << m << endl;
  33.                   }
  34.                   else {
  35.                       cout << "Day value is invalid: " << d << endl;
  36.                   }
  37.               }
  38.           } else {
  39.               string wrong;
  40.               for (int i = oper.size()+1; i < command.size() - event.size() - 1; i++){
  41.                   wrong += command[i];
  42.               }
  43.               cout << "Wrong date format: " << wrong << endl;
  44.           }
  45.       }
  46.       else if (oper == "Del") {
  47.           flag = flag && ((input.peek() == ' ')||(input.peek() == '/n'));
  48.  
  49.           if (flag){
  50.               try {
  51.                   Date data (y, m, d);
  52.                   if (event.empty() == true){
  53.                       db.DeleteDate(data);
  54.                   } else {
  55.                       db.DeleteEvent(data, event);
  56.                   }
  57.               } catch (range_error err){
  58.                   if ((string)err.what() == "month"){
  59.                       cout << "Month value is invalid: " << m << endl;
  60.                   }
  61.                   else {
  62.                       cout << "Day value is invalid: " << d << endl;
  63.                   }
  64.               }
  65.           } else {
  66.               string wrong;
  67.               for (int i = oper.size()+1; i < command.size() - event.size() - 1; i++){
  68.                   wrong += command[i];
  69.               }
  70.               cout << "Wrong date format: " << wrong << endl;
  71.           }
  72.       }
  73.   return 0;
  74. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement