Graphical representation of Stack

26
MINI PROJECT CSE205 TOPIC:Graphical reperesntation of stack Submitted by: SANJAY KUMAR CHAKRAVARTI ROLL:A28 SEC:K2R13 Submitted to:

Transcript of Graphical representation of Stack

Page 1: Graphical representation of Stack

MINI PROJECT

CSE205

TOPIC:Graphical reperesntation of stack

Submitted by:SANJAY KUMAR CHAKRAVARTI

ROLL:A28

SEC:K2R13

Submitted to:

Miss.Deepika sukhija

Dept. cse

Lpu,phagwara

Page 2: Graphical representation of Stack

Acknowledgement

Apart from the efforts of me, the success of this project depends largely on the

encouragement and guidelines of many others. I take this opportunity to express

my gratitude to the people who have been instrumental in the successful

completion of this project.

I would like to show my greatest appreciation to Miss. Deepika sukhija I can’t say

thank you enough for his tremendous support and help. I feel motivated and

encouraged every time I attend his meeting. Without his encouragement and

guidance this project would not have materialized.

The guidance and support received from all the team members including Mr.

sanjeev kumar and Mr. Abhay kumar who contributed and are contributing to this

project, was vital for the success of the project. I am grateful for their constant

support and help.

Page 3: Graphical representation of Stack

CONTENT

TOPIC PAGE NO.

1.ABSTRACT-------------------------------------------------- 04

2. INTRODUCTION------------------------------------------- 05

3.SOURCE CODE---------------------------------------------- 06-18

4.OUTPUTS------------------------------------------------------ 19-21

4.REFRENCES-------------------------------------------------- 22

Page 4: Graphical representation of Stack

ABSTRACT

This project was very important for me. In this project I have show a graphical view of stacks for better understanding. It will gives you many features as listed below:

1. Graphical view2. Simple programming language3. Source code contains comments line where needed4. A best approach with graphics programming

Page 5: Graphical representation of Stack

INTRODUCTION

The Stack is a Memory Area where you can store data there and can get back them again. In computer science, a stack is a last in, first out (LIFO) abstract data type and linear data structure . A stack can have any abstract data type  as an element , but is characterized by two fundamental operations, called PUSH and POP. The push operation adds a new item to the top of the stack, or initializes the stack if it is empty. If the stack is full and does not contain enough space to accept the given item, the stack is then considered to be in an overflow state. The pop operation removes an item from the top of the stack. A pop either reveals previously concealed items, or results in an empty stack, but if the stack is empty then it goes into underflow state (It means no items are present in stack to be removed). A stack is a restricted data structure , because only a small number of operations are performed on it. The nature of the pop and push operations also means that stack elements have a natural order. Elements are removed from the stack in the reverse order to the order of their addition: therefore, the lower elements are those that have been on the stack the longest.

Page 6: Graphical representation of Stack

Source code

#include<iostream.h> //for cin, cout

#include<conio.h> //for getche()

#include<ctype.h> //for tolower() function

#include<stdlib.h> //for itoa()

#include<GRAPHICS.H> //to load graphics driver

#include<dos.h> //for delay() function /*_________________________________________________________________________*//*_________________________________________________________________________*///These Functions prototypes are, for stack function.

int col=60 , row = 417 ,n ,x=60 , y=417 ,size=10 ,arr[10]={12,56,23,46,32,89,11,99,12,66} , count = 0, top = 0; //Global Variables

char string[45];

void push( );

void pop( );

Page 7: Graphical representation of Stack

void stack();

void loadgraph();

void main()

{

clrscr();

char ch;

struct fillsettingstype fillinfo;

loadgraph();

setbkcolor(0);

setcolor(2);

do

{

rectangle(2,2,620,410);

rectangle(4,4,618,408);

line(0,30,620,30);

getfillsettings(&fillinfo);

line(0,32,620,32);

line(100,32,100,410);

moveto(180,15);

outtext("SANJAY KUMAR CHAKRAVARTI");

Page 8: Graphical representation of Stack

// circle(300,120,110);

setbkcolor(12);

gotoxy(37,5);

cout<<"Menu";

gotoxy(30,6);

cout<<"Stack [s]";

gotoxy(30,8);

cout<<"Exit [x]";

gotoxy(30,10);

cout<<"Enter Option [ ]";

ch=getche();

ch = tolower(ch);

gotoxy(30,15);

if(ch=='s')

stack();

}while(ch!='x');

cleardevice();

closegraph();

}

void loadgraph()

{

clrscr();

Page 9: Graphical representation of Stack

int driver = DETECT, mode, errorcode;

initgraph(&driver, &mode, "c:\\tc\\bgi");

errorcode = graphresult();

if (errorcode != grOk)

{

cout<<"Graphics error: \n"<<(grapherrormsg(errorcode));

cout<<"Press any key to halt:";

getch();

exit(1);

}

}

void stack()

{

cleardevice();

moveto(400,60);

outtext("STACK'S OPERATIONS");

moveto(400,80);

outtext("PUSH [p]");

moveto(400,100);

outtext("POP [o]");

moveto(400,120);

outtext("EXIT [x]");

moveto(300,125);

Page 10: Graphical representation of Stack

outtext("Top");

itoa(top,string,10);

line(150,0,150,415);

outtextxy(308,450,string);

setbkcolor(3);

setcolor(14);

outtextxy(55,26,"NOW STACK:");

line(30,40,30,440);

int r=40;

for(int i = 1 ;i<12 ;i++)

{

line(30,r,110,r);

r+=40;

}

line(110,40,110,440);

r = 55;

for( i = 10 ;i>=1 ;i--)

{

moveto(10,r);

itoa(i,string,10);

outtext(string) ;

r+=40;

}

Page 11: Graphical representation of Stack

line(165,440,210,440);

line(165,440,165,460);

line(210,440,210,460);

line(165,460,210,460);

setfillstyle(0, getmaxcolor());

char ch[2];

do

{

moveto(400,140);

outtext("ENTER OPTION ");

ch[0]=getche();

ch[0] = tolower(ch[0]);

if(ch[0]=='p')

{ outtext("p");

delay(500);

bar(getx()-30,gety(),getx()+2,gety()+20);

if(size<1)

{

for(int i = 0 ;i<4 ; i++){

moveto(420,170);

outtext("Stack Overflow ");

delay(1000);

setfillstyle(0, getmaxcolor());

Page 12: Graphical representation of Stack

bar(420 ,165 ,630 ,180);

delay(500);}

}

else if( size>1)

{

size--;

top++;

push();

bar(290,440,350,479);

itoa(top,string,10);

outtextxy(308,447,string);

}}//end of Nested if

else if(ch[0]=='o')

{

outtext("o");

delay(500);

bar(getx()-30,gety(),getx()+10,gety()+20);

if(size==10)

{

Page 13: Graphical representation of Stack

for(int i = 0 ;i<4 ; i++){

moveto(410,170);

outtext("Stack, Underflow ");

delay(1000);

setfillstyle(0, getmaxcolor());

bar(330 ,165 ,630 ,180);

delay(500); }

}

else

{

top--;

pop();

bar(290,440,350,479);

itoa(top,string,10);

outtextxy(308,447,string);

}

}

}

while(ch[0]!='x');

}

void push()

{

Page 14: Graphical representation of Stack

int a=178 , b=425 ;

moveto(178,447);

itoa(arr[count],string,10);

outtext(string);

delay(10);

bar(170,446,208,455);

itoa(arr[count+1],string,10);

moveto(178,447);

outtext(string);

moveto(a,b);

while(gety()!=y)

{

setfillstyle(0, getmaxcolor());

circle(a+6,b+3,12);

itoa(arr[count],string,10);

outtext(string);

delay(10);

setfillstyle(0, getmaxcolor());

bar(170 ,gety()-20 ,200 ,gety()+14);

moveto(a,b);

b--;

}

setfillstyle(0, getmaxcolor());

Page 15: Graphical representation of Stack

circle(a+6,b+3,9);

outtext(string);

moveto(125,b);

for(int j =0 ;j<6 ; j++)

{

outtext("<<--");

delay(100);

setfillstyle(0, getmaxcolor());

bar(getx()-3 ,gety() ,getx() ,gety()+8);

delay(100);

}

delay(100);

setfillstyle(0, getmaxcolor());

bar(getx()-48 ,gety() ,getx() ,gety()+8);

delay(100); delay(200);

while(getx()!=x+60)

{

setfillstyle(0, getmaxcolor());

circle(a+6,b+3,9);

itoa(arr[count],string,10);

outtext(string);

delay(10);

setfillstyle(0, getmaxcolor());

Page 16: Graphical representation of Stack

bar(getx()-20 ,gety()-10 ,getx()+70 ,gety()+20);

moveto(a,b);

a--;

}

delay(100);

moveto(60,gety());

outtext(string);

count++;

y = y-40;

}

void pop()

{

int a=120, b ;

y = y + 40 ;

b = y ;

moveto(120,y);

for(int j=0 ;j<6 ; j++)

{

outtext("®");

delay(100);

setfillstyle(0, getmaxcolor());

bar(getx()-3 ,gety() ,getx() ,gety()+8);

delay(100);

Page 17: Graphical representation of Stack

}

delay(100);

setfillstyle(0, getmaxcolor());

bar(getx()-48 ,gety() ,getx() ,gety()+8);

delay(200);

moveto(60,gety());

setfillstyle(0, getmaxcolor());

bar(getx()-10 ,gety()-3 ,getx()+20 ,gety()+8);

delay(500);

while(getx()!=178)

{

setfillstyle(0, getmaxcolor());

circle(a+6,b+3,12);

moveto(a,gety());

itoa(arr[count-1],string,10);

outtext(string);

delay(10);

setfillstyle(0, getmaxcolor());

bar(getx()-25 ,gety()-10 ,getx()+30 ,gety()+20);

a++;

}

delay(500);

while(gety()!=430)

Page 18: Graphical representation of Stack

{

setfillstyle(0, getmaxcolor());

circle(a+21,b+3,7);

moveto(178,b);

itoa(arr[count-1],string,10);

outtext(string);

delay(10);

setfillstyle(0, getmaxcolor());

bar(getx()-30 ,gety()-10 ,getx()+20 ,gety()+9);

b++;

}

delay(10);

moveto(178,447);

bar(170,446,208,455);

count--;

moveto(178,447);

itoa(arr[count],string,10);

outtext(string);

size++;

}

Page 19: Graphical representation of Stack

OUTPUTS

1.Menu list:

2.Operations in stack:

Page 20: Graphical representation of Stack

3.Push Operation:

4.Pop Operations:

Page 21: Graphical representation of Stack
Page 22: Graphical representation of Stack

REFRENCES

1. http://en.wikipedia.org/wiki/Stack_(abstract_data_type)2. www.cprogrramming.com/stack_graphics