Computer Science, asked by prathyushaguntupalli, 10 months ago

Simulate Stopwatch Program​

Answers

Answered by queensp73
1

Answer:

int i, j, k, n, s;  

char c;  

pthread_t t1;  

 

// Function to perform operations  

// according keyboeard hit.  

int keyboardhit(void)  

{  

   struct termios oldt, newt;  

   int ch;  

   int oldf;  

 

   tcgetattr(STDIN_FILENO, &oldt);  

   newt = oldt;  

   newt.c_lflag &= ~(ICANON | ECHO);  

   tcsetattr(STDIN_FILENO, TCSANOW, &newt);  

   oldf = fcntl(STDIN_FILENO, F_GETFL, 0);  

   fcntl(STDIN_FILENO, F_SETFL, oldf | O_NONBLOCK);  

 

   ch = getchar();  

 

   tcsetattr(STDIN_FILENO, TCSANOW, &oldt);  

   fcntl(STDIN_FILENO, F_SETFL, oldf);  

 

   if (ch != EOF) {  

       ungetc(ch, stdin);  

       return 1;  

   }  

 

   return 0;  

}  

 

// display stopwatch on screen  

void print()  

{  

   // clear screen escape sequence  

   printf("\033[2J\033[1;1H");  

 

   // Display Hour Min Sec in screen  

   printf("TIME\t\t\t\tHr: %d Min: %d Sec: %d", n, i, j);  

}  

 

// function to pause stopwatch  

void* wait(void* arg)  

{  

 

   while (1) {  

 

       // wait for keyboard signal if keyboard  

       // hit it return non integer number  

       if (keyboardhit()) {  

           // take input from user and do  

           // operation accordingly  

           c = getchar();  

           if (c == 'S' || c == 's') {  

               break;  

           }  

           else if (c == 'r' || c == 'R') {  

               s = 1;  

               break;  

           }  

           else if (c == 'e' || c == 'E')  

 

               exit(0);  

       }  

   }  

}  

 

// driver code  

int main()  

{  

 

   // label to reset the value  

reset:  

   n = MIN;  

   i = MIN;  

   j = MIN;  

   k = MIN, s = MIN;  

 

   print();  

 

   while (1) {  

 

       /* s for start  

       e for exit  

       p for pause  

       r for reset  

       */

       if (keyboardhit()) {  

           c = getchar();  

 

           if (c != 's')  

               continue;  

 

           for (n = MIN; n < MAX; n++) {  

               for (i = MIN; i < MAX; i++) {  

                   for (j = MIN; j < MAX; j++) {  

                       for (k = MIN; k < MILLI; k++) {  

                       start:  

                           print();  

                           if (keyboardhit()) {  

                               c = getchar();  

 

                               if (c == 'r' || c == 'R')  

                                   goto reset;  

                               else if (c == 'e' || c == 'E')  

                                   exit(0);  

                               else if (c == 's' || c == 'S')  

                                   goto start;  

                               else if (c == 'P' || c == 'p') {  

 

                                   pthread_create(&t1, NULL, &wait, NULL);  

 

                                   // waiting for join a thread  

                                   pthread_join(t1, NULL);  

                                   if (s == 1)  

                                       goto reset;  

                               }  

                           }                      

               }  

           }  

       }  

   }  

 

   return 0;  

}

Explanation:

HOPE THIS HELPS U MY FRD

MARK AS BRAINLIEST

>>>>>THANK U <<<<<<

#keep smiling :)

Similar questions