Menu

Would Like Output Match Correct Output See Someone Fix Code Maincpp Altered Eventcpp Modi Q43902903

I would like my output to match the correct output(see below).Can someone fix the code? main.cpp should not not be altered. onlyevent.cpp should be modified.

.This is my output:
Command Line:
1: ws
2: monday.txt
3: tuesday.txt

——————–
Day 1
——————–
1. 00:02:55 -> Computer Starting
2. 00:02:55 -> Computer Starting
3. [ No Event ]
4. 01:15:34 -> User logging in
5. 01:20:09 -> User logging in
6. [ No Event ]
7. [ No Event ]
——————–
Day 2
——————–
8. [ No Event ]
9. [ No Event ]
10. 01:20:34 -> User take a break
11. 01:22:30 -> User plays sudoku
12. [ No Event ]
——————–
Archive
——————–
13. [ No Event ]
14. 01:20:00 -> User logging in
15. [ No Event ]
16. [ No Event ]
17. [ No Event ]
18. [ No Event ]
19. [ No Event ]
20. [ No Event ]
21. [ No Event ]
——————–
*** Error in `ws’: double free or corruption (fasttop):0x0000000001a16310 ***
======= Backtrace: =========
/lib64/libc.so.6(+0x81609)[0x7f716d27c609]
ws[0x4012c3]
ws[0x401736]
/lib64/libc.so.6(__libc_start_main+0xf5)[0x7f716d21d495]
ws[0x400ec9]
======= Memory map: ========
00400000-00402000 r-xp 00000000 00:28 1077143745/home/mmaahi/ws
00601000-00602000 r–p 00001000 00:28 1077143745/home/mmaahi/ws
00602000-00603000 rw-p 00002000 00:28 1077143745/home/mmaahi/ws
01a14000-01a35000 rw-p 00000000 00:00 0 [heap]
7f7168000000-7f7168021000 rw-p 00000000 00:00 0
7f7168021000-7f716c000000 —p 00000000 00:00 0
7f716d1fb000-7f716d3bd000 r-xp 00000000 fd:00 674/usr/lib64/libc-2.17.so
7f716d3bd000-7f716d5bd000 —p 001c2000 fd:00 674/usr/lib64/libc-2.17.so
7f716d5bd000-7f716d5c1000 r–p 001c2000 fd:00 674/usr/lib64/libc-2.17.so
7f716d5c1000-7f716d5c3000 rw-p 001c6000 fd:00 674/usr/lib64/libc-2.17.so
7f716d5c3000-7f716d5c8000 rw-p 00000000 00:00 0
7f716d5c8000-7f716d5dd000 r-xp 00000000 fd:00 31805/usr/lib64/libgcc_s-4.8.5-20150702.so.1
7f716d5dd000-7f716d7dc000 —p 00015000 fd:00 31805/usr/lib64/libgcc_s-4.8.5-20150702.so.1
7f716d7dc000-7f716d7dd000 r–p 00014000 fd:00 31805/usr/lib64/libgcc_s-4.8.5-20150702.so.1
7f716d7dd000-7f716d7de000 rw-p 00015000 fd:00 31805/usr/lib64/libgcc_s-4.8.5-20150702.so.1
7f716d7de000-7f716d8df000 r-xp 00000000 fd:00 682/usr/lib64/libm-2.17.so
7f716d8df000-7f716dade000 —p 00101000 fd:00 682/usr/lib64/libm-2.17.so
7f716dade000-7f716dadf000 r–p 00100000 fd:00 682/usr/lib64/libm-2.17.so
7f716dadf000-7f716dae0000 rw-p 00101000 fd:00 682/usr/lib64/libm-2.17.so
7f716dae0000-7f716dbc9000 r-xp 00000000 fd:00 33767/usr/lib64/libstdc++.so.6.0.19
7f716dbc9000-7f716ddc8000 —p 000e9000 fd:00 33767/usr/lib64/libstdc++.so.6.0.19
7f716ddc8000-7f716ddd0000 r–p 000e8000 fd:00 33767/usr/lib64/libstdc++.so.6.0.19
7f716ddd0000-7f716ddd2000 rw-p 000f0000 fd:00 33767/usr/lib64/libstdc++.so.6.0.19
7f716ddd2000-7f716dde7000 rw-p 00000000 00:00 0
7f716dde7000-7f716de09000 r-xp 00000000 fd:00 667/usr/lib64/ld-2.17.so
7f716dfef000-7f716dff4000 rw-p 00000000 00:00 0
7f716e005000-7f716e008000 rw-p 00000000 00:00 0
7f716e008000-7f716e009000 r–p 00021000 fd:00 667/usr/lib64/ld-2.17.so
7f716e009000-7f716e00a000 rw-p 00022000 fd:00 667/usr/lib64/ld-2.17.so
7f716e00a000-7f716e00b000 rw-p 00000000 00:00 0
7fffd3449000-7fffd346a000 rw-p 00000000 00:00 0 [stack]
7fffd352b000-7fffd352d000 r-xp 00000000 00:00 0 [vdso]
ffffffffff600000-ffffffffff601000 r-xp 00000000 00:00 0[vsyscall]

Script done on Sat 18 Jan 2020 03:39:09 PM EST

This is the correct output:

Command Line:
1: ws
2: monday.txt
3: tuesday.txt

——————–
Day 1
——————–
1. 00:02:55 -> Computer Starting
2. 00:02:55 -> Computer Starting
3. [ No Event ]
4. 01:15:34 -> User logging in
5. 01:20:09 -> User logging in
6. 09:01:04 -> Browser closed
7. 17:33:33 -> User checks email
——————–
Day 2
——————–
8. 01:02:23 -> User starts working on homework
9. [ No Event ]
10. 01:20:34 -> User take a break
11. 01:22:30 -> User plays sudoku
12. 01:26:40 -> User resumes homework

Archive
——————–
13. [ No Event ]
14. 01:20:00 -> Authentication Failed
15. 01:23:20 -> Browser starts
16. 09:01:04 -> Browser closed
17. 17:33:33 -> User checks email
18. 01:02:23 -> User starts working on homework
19. 01:22:30 -> User plays sudoku
20. [ No Event ]
21. 01:26:40 -> User resumes homework

//EVENT.CPP

unsigned int g_sysClock = 0;

           namespacesdds
           {
              //constructor
              Event::Event() {
                  secMidnight = 0;
                  description=nullptr;
              }

              void Event::display() {

                  static int counter = 1;

                  int hour = 0;
                  int min = 0;
                  int sec = 0;

                  hour = secMidnight /3600;
                  min = (secMidnight – (hour *3600)) / 60;
                  sec = (secMidnight – (hour *3600) – (min * 60));

                  cout << setw(3)<< setfill(‘ ‘) << counter++ << “. “;

                  if ( description!=nullptr&& description[0] != ‘ ‘) {
                      cout<< setw(2) << setfill(‘0’) << hour << “:”<< setw(2) << setfill(‘0’) << min << “:”<< setw(2) << setfill(‘0’) << sec << “-> ” << description << endl;
                  //   cout <<“[ No Event ]” << endl;
                  }
                  else {
                      cout<< “[ No Event ]” << endl;
                  }
              void Event::setDescription(const char *src){
                 
                 
                  if (src != nullptr &&src[0]!=’ ‘) {
                     
                     description = new char[strlen(src)+1];
                     strcpy(description, src);
                     secMidnight = g_sysClock;
                  }
                  else {
                     description = nullptr;
                  }
              }

              Event::~Event() {
                  delete[] description;
              }

main.cpp

int main(int argc, char** argv) {
   std::cout << “Command Line:n”;
for (int i = 0; i < argc; ++i) {

       std::cout << i+1 <<“: ” << argv[i] << “n”;

   }

   std::cout << std::endl
   sdds::Event archive[10];
   size_t idxArchive = 0;

   sdds::Event currentEvent;

   const size_t secInDay = 60u * 60u * 24u;

   for (auto day = 1; day < argc; ++day)
   {
       // each parameter for anapplication contains the events from one day
       // process each one
       std::cout <<“——————–n”;
       std::cout << ” Day ” <<day << ‘n’;
       std::cout <<“——————–n”;
       std::ifstream in(argv[day]);
       char opcode = ‘ ‘;
       size_t time = secInDay + 1;
       in >> opcode >>time;

       // starting at midnight, untilthe end of the day
       for (::g_sysClock = 0u;::g_sysClock < secInDay; ::g_sysClock++)
       {
           // what shouldhappen this second
           while (time ==::g_sysClock)
           {
              // skip the delimiter
              in.ignore();
              // read the next opcode
              in >> opcode;

              // end of the file
              if (in.fail())
                  break;

              // handle the operation code
              switch (opcode)
              {
              case ‘T’: // a new time code, this is exit thewhile loop
                  in >> time;
                  break;
              case ‘S’: // start a new event, the old event isautomatically finished
                  char buffer[1024];
                  in.get(buffer, 1024,’,’);
                 currentEvent.setDescription(buffer);
                  break;
              case ‘E’: // end the current event
                 currentEvent.setDescription(nullptr);
                  break;
              case ‘P’: // print to scren the informationabout the current event
                  currentEvent.display();
                  break;
              case ‘A’: // add a copy of the current event tothe archive
                  sdds::Eventcopy(currentEvent);
                  archive[idxArchive++] =copy;
                  break;
              }
           }
       }
   }
   std::cout << “——————–n”;
   std::cout << ” Archiven”;
   std::cout << “——————–n”;
   for (auto i = 0u; i < idxArchive; ++i)
       archive[i].display();
   std::cout << “——————–n”;
}

Expert Answer


Answer to I would like my output to match the correct output(see below). Can someone fix the code? main.cpp should not not be alte…

OR