Hello, OnlineGDB Q&A section lets you put your programming query to fellow community users. Asking a solution for whole assignment is strictly not allowed. You may ask for help where you are stuck. Try to add as much information as possible so that fellow users can know about your problem statement easily.

please tell me how to run this prgm by using graphic libray r without that can any one modify this prgm plz.....

0 votes
asked May 21, 2018 by sanath
#include<stdlib.h>
#include<conio.h>
#include<stdio.h>
#include"graphics.h"
#define _SCL_SECURE_NO_WARNINGS  
#define _ITERATOR_DEBUG_LEVEL 2

struct terms       // CREATTING A STRUCTURE
{
    char process_name[20];
    int arrival_time;
    int burst_time;
    int exit_time;
    int waiting_time;
    int turn_arrival;
    int rest_burst;
    int execution_start;
    int execution_end;
};
 int main()
{
    printf("Enter the number of process that you have\n");
    int n;
    scanf("%d", &n);
    struct terms st[10];
    int i;
    //TAKING INPUT
    for (i = 0; i<n; i++)
    {
        printf("Enter the name of your %d process\n", (i + 1));
        scanf("%s", st[i].process_name);
        printf("Enter the Arrival time of your %d process\n", (i + 1));
        scanf("%d", &st[i].arrival_time);
        printf("Enter the Burst time of your %d process\n", (i + 1));
        scanf("%d", &st[i].burst_time);
    }
    //CALCULATING THE VALUES OF VERIABLES
    for (i = 0; i<n; i++)
    {
        if (i == 0)
        {
            st[i].execution_start = st[0].arrival_time;
            st[i].execution_end = st[0].arrival_time + st[0].burst_time;
        }
        else
        {
            st[i].execution_start = st[i - 1].execution_end;
            st[i].execution_end = st[i].execution_start + st[i].burst_time;
        }
        st[i].rest_burst = st[i].burst_time - (st[i].execution_end - st[i].execution_start);

    }
    for (i = 0; i<n; i++)
    {
        st[i].exit_time = st[i].execution_end;
        st[i].turn_arrival = st[i].exit_time - st[i].arrival_time;
        st[i].waiting_time = st[i].turn_arrival - st[i].burst_time;

    }
    float sum = 0;
    for (i = 0; i<n; i++)
        sum = sum + st[i].waiting_time;
    sum = sum / n;
    printf("Average Waiting Time= %f", sum);
    printf("\n\n\nPress ENTER For Graphical view\n\n");
    system("pause");
    //CREATING TABLE FOR QUESTION AND execution

    initwindow(800, 500, "powered by deepak yadav", 0, 0, false, true);
    int x = 100;
    int y = 40;
    setcolor(YELLOW);
    outtextxy(0, 1, "Question table-->");
    outtextxy(440, 1, "Execution table-->");
    for (i = 0; i<(n + 2); i++)
    {
        line(0, y, 300, y);
        Sleep(100);
        line(400, y, 800, y);
        y = y + 40;
        Sleep(100);
    }
    for (i = 0; i<8; i++)
    {
        Sleep(100);
        line(x, 40, x, (n + 2) * 40);
        x = x + 100;
    }
    setcolor(GREEN);
    outtextxy(10, 50, "Process");
    Sleep(100);
    outtextxy(105, 50, "Arrival_Time");
    Sleep(100);
    outtextxy(205, 50, "Burst_Time");
    Sleep(100);
    outtextxy(410, 50, "Process");
    Sleep(100);
    outtextxy(500, 50, "execution_Time");
    Sleep(100);
    outtextxy(610, 50, "Rest_Burst");
    Sleep(100);
    outtextxy(720, 50, "State");
    Sleep(100);
    char str[20];
    char str2[] = "Exit";
    char str3[] = "Waiting";
    //PUTTING THE VALUES OF VERIABLES IN QUESTION TABLE
    x = 40;
    y = 90;
    setcolor(WHITE);
    for (i = 0; i<n; i++)
    {
        outtextxy(x, y, st[i].process_name);
        Sleep(100);
        sprintf(str, "%d", st[i].arrival_time);
        Sleep(100);
        outtextxy(x + 100, y, str);
        Sleep(100);
        sprintf(str, "%d", st[i].burst_time);
        Sleep(100);
        outtextxy(x + 200, y, str);
        Sleep(100);
        y = y + 40;
    }
    //PUTTING THE VALUES OF VERIABLES IN execution TABLE
    x = 440;
    y = 90;
    for (i = 0; i<n; i++)
    {
        outtextxy(x, y, st[i].process_name);
        Sleep(100);
        sprintf(str, "%d - %d", st[i].execution_start, st[i].execution_end);
        Sleep(100);
        outtextxy(x + 80, y, str);
        Sleep(100);
        sprintf(str, "%d", st[i].rest_burst);
        Sleep(100);
        outtextxy(x + 200, y, str);
        Sleep(100);
        if (st[i].rest_burst == 0)
            outtextxy(x + 300, y, "Exit");
        else
            outtextxy(x + 300, y, "Waiting");
        y = y + 40;
        Sleep(100);
    }
    outtextxy(1, 480, "Press Any key to view Final Output table");
    getch();
    cleardevice();
    //CREATING TABLE FOR FINAL OUTPUT
    x = 100;
    y = 40;
    setcolor(YELLOW);
    outtextxy(0, 1, "Final Output table-->");
    for (i = 0; i<(n + 2); i++)
    {
        Sleep(100);
        line(0, y, 600, y);

        y = y + 40;
    }
    for (i = 0; i<6; i++)
    {
        Sleep(100);
        line(x, 40, x, (n + 2) * 40);
        x = x + 100;
    }
    setcolor(GREEN);
    outtextxy(10, 50, "Process");
    Sleep(100);
    outtextxy(105, 50, "Arrival_Time");
    Sleep(100);
    outtextxy(205, 50, "Exit_Time");
    Sleep(100);
    outtextxy(310, 45, "Turn_Arrival");
    Sleep(100);
    outtextxy(330, 60, "Time");
    Sleep(100);
    outtextxy(410, 50, "Burst_Time");
    Sleep(100);
    outtextxy(510, 50, "Waiting_Time");
    Sleep(100);
    //PUTTING THE VALUES OF VERIABLES IN OUTPUT TABLE
    x = 40;
    y = 90;
    setcolor(15);
    for (i = 0; i<n; i++)
    {
        outtextxy(x, y, st[i].process_name);
        Sleep(100);
        sprintf(str, "%d", st[i].arrival_time);
        Sleep(100);
        outtextxy(x + 100, y, str);
        sprintf(str, "%d", st[i].exit_time);
        Sleep(100);
        outtextxy(x + 200, y, str);
        sprintf(str, "%d", st[i].turn_arrival);
        Sleep(100);
        outtextxy(x + 300, y, str);
        sprintf(str, "%d", st[i].burst_time);
        Sleep(100);
        outtextxy(x + 400, y, str);
        sprintf(str, "%d", st[i].waiting_time);
        Sleep(100);
        outtextxy(x + 500, y, str);
        Sleep(100);
        y = y + 40;
    }
    outtextxy(1, 480, "Press Any key to view Gantt Chart");
    getch();
    cleardevice();
    char str4[50];
    setcolor(YELLOW);
    sprintf(str4, "Average Waiting Time = %f", sum);
    outtextxy(0, 50, str4);
    x = 3;
    y = 200;
    outtextxy(0, 160, "Gantt Chart:->>");
    setcolor(YELLOW);
    for (i = 0; i<n; i++)
    {
        Sleep(100);
        rectangle(x, y, x + 50, y + 50);
        x = x + 50;
    }
    x = 1;
    y = 184;
    setcolor(15);
    for (i = 0; i<n; i++)
    {
        if (i == 0)
        {
            Sleep(100);
            sprintf(str, "%d", st[i].execution_start);
            outtextxy(x, y, str);
            x = x + 48;
        }
        {
            Sleep(100);
            sprintf(str, "%d", st[i].execution_end);
            outtextxy(x, y, str);
            x = x + 48;
        }
    }
    x = 20;
    y = 215;
    for (i = 0; i<n; i++)
    {
        Sleep(100);
        outtextxy(x, y, st[i].process_name);
        x = x + 48;
    }
    getch();
}

Your answer

Your name to display (optional):
Privacy: Your email address will only be used for sending these notifications.
Anti-spam verification:
To avoid this verification in future, please log in or register.
Welcome to OnlineGDB Q&A, where you can ask questions related to programming and OnlineGDB IDE and and receive answers from other members of the community.
...