diff --git a/README.md b/README.md index 7002bb8..1e2e5e7 100644 --- a/README.md +++ b/README.md @@ -16,6 +16,7 @@ In this repository, you'll find codes for Data Structure Lab. 14. [DSL - Assignment 14 (Selection, Bubble Sorting)](https://git.kska.io/sppu-se-comp-codes/DSL/src/branch/main/assignment-14.py) 16. [DSL - Assignment 16 (Quick sort)](https://git.kska.io/sppu-se-comp-codes/DSL/src/branch/main/assignment-16.py) 19. [DSL - Assignment 19 (Pinnacle Club)](https://git.kska.io/sppu-se-comp-codes/DSL/src/branch/main/assignment-19.cpp) +20. [DSL - Assignment 20 (Cinemax theater)](https://git.kska.io/sppu-se-comp-codes/DSL/src/branch/main/assignment-20.cpp) 29. [DSL - Assignment 29 (Queue job)](https://git.kska.io/sppu-se-comp-codes/DSL/src/branch/main/assignment-29.cpp) 30. DSL - Assignment 30 (Priority queue) - _TO BE ADDED_ 31. [DSL - Assignment 31 (Double-ended queue)](https://git.kska.io/sppu-se-comp-codes/DSL/src/branch/main/assignment-31.cpp) @@ -42,6 +43,7 @@ In this repository, you'll find codes for Data Structure Lab. 14. [Assignment 14 - Selection, Bubble Sorting](https://git.kska.io/sppu-se-comp-codes/DSL/src/branch/main/lab-manuals/Lab%20Assignment%20B_14.pdf) 16. [Assignment 16 - Quick sort](https://git.kska.io/sppu-se-comp-codes/DSL/src/branch/main/lab-manuals/Lab%20Assignment%20B_16.pdf) 19. [Assignment 19 - Pinnacle Club](https://git.kska.io/sppu-se-comp-codes/DSL/src/branch/main/lab-manuals/Lab%20Assignment%20C_19.pdf) +20. [DSL - Assignment 20 (Cinemax theater)](https://git.kska.io/sppu-se-comp-codes/DSL/src/branch/main/lab-manuals/Lab%20Assignment%20C_20.pdf) 29. [Assignment 29 - Queue job](https://git.kska.io/sppu-se-comp-codes/DSL/src/branch/main/lab-manuals/Lab%20Assignment%20E_29.pdf) 30. Assignment 30 - Priority queue - _TO BE ADDED_ 31. [Assignment 31 - Double-ended queue](https://git.kska.io/sppu-se-comp-codes/DSL/src/branch/main/lab-manuals/Lab%20Assignment%20E_31.pdf) diff --git a/assignment-20.cpp b/assignment-20.cpp new file mode 100755 index 0000000..013872f --- /dev/null +++ b/assignment-20.cpp @@ -0,0 +1,240 @@ +/* + + +The ticket booking system of Cinemax theater has to +be implemented using C++ program. +There are 10 rows and 7 seats in each row. Doubly +circular linked list has to be maintained +to keep track of free seats at rows. Assume some +random booking to start with. Use array to store +pointers (Head pointer) to each row. On demand +a) The list of available seats is to be displayed +b) The seats are to be booked +c) The booking can be cancelled +*/ + +#include +#include +using namespace std; +class node +{ public: +node* next; +node* prev; +int seat; +string id; +int status; +}; +class cinemax +{ +public: +node* head,* tail ,* temp; +cinemax() +{ +head=NULL; +} +void create_list(); +void display(); +void book(); +void cancel(); +void avail(); + +}; +void cinemax::create_list() +{ +int i=1; +temp=new node; +temp->seat=1; +temp->status=0; +temp->id="null"; +tail=head=temp; +for(int i=2;i<=70;i++) +{ +node *p; +p= new node; +p->seat=i; +p->status=0; +p->id="null"; +tail->next=p; +p->prev=tail; +tail=p; +tail->next=head; +head->prev=tail; + +} +} +void cinemax::display() +{ +{ int r=1; +node* temp; +temp=head; +int count=0; +cout<<"\n------------------------------------------------------------------------------------\n"; +cout<<" Screen this way \n"; +cout<<"------------------------------------------------------------------------------------\n"; +while(temp->next!=head) +{ +if(temp->seat/10==0) +cout<<"S0"<seat<<" :"; +else +cout<<"S"<seat<<" :"; + +if(temp->status==0) +cout<<"|___| "; +else +cout<<"|_B_| "; +count++; +if(count%7==0) +{ +cout<next; +} +cout<<"S"<seat<<" :"; +if(temp->status==0) +cout<<"|___| "; +else +cout<<"|_B_| "; +} +} +void cinemax::book() +{ int x; +string y; +label: +cout<<"\n\n\nEnter seat number to be booked\n"; +cin>>x; +cout<<"Enter your ID number\n"; +cin>>y; +if(x<1||x>70) +{ +cout<<"Enter correct seat number to book (1-70)\n"; +goto label; +} +node *temp; +//temp=new node; +temp=head; +while(temp->seat!=x) +{ +temp=temp->next; +} + +if(temp->status==1) +cout<<"Seat already booked!\n"; +else{ +temp->status=1; +temp->id=y; +cout<<"Seat "<>x; +cout<<"Enter you ID\n"; +cin>>y; +if(x<1||x>70) +{ +cout<<"Enter correct seat number to cancel (1-70)\n"; +goto label1; +} +node *temp; +//temp=new node; +temp=head; +while(temp->seat!=x) +{ +temp=temp->next; +} +if(temp->status==0) +{ +cout<<"Seat not booked yet!!\n"; +} +else +{ +if(temp->id==y) +{ +temp->status=0; +cout<<"Seat Cancelled!\n"; +} + +else +cout<<"Wrong User ID !!! Seat cannot be cancelled!!!\n"; +} +} +void cinemax::avail() +{ +int r=1; +node* temp; +temp=head; +int count=0; +cout<<"\n\n\n\n"; +cout<<"\n------------------------------------------------------------------------------------\n"; +cout<<" Screen this way \n"; +cout<<"------------------------------------------------------------------------------------\n"; +while(temp->next!=head) +{ +{ +if(temp->seat/10==0) +cout<<"S0"<seat<<" :"; +else +cout<<"S"<seat<<" :"; +if(temp->status==0) +cout<<"|___| "; +else if(temp->status==1) +cout<<" "; + +count++; +if(count%7==0) + +{ + +cout<next; +} +if(temp->status==0) +{ +cout<<"S"<seat<<" :"; + +if(temp->status==0) +cout<<"|___| "; +} + +} +int main() +{ cinemax obj; +obj.create_list(); +int ch; +char c='y'; +while(c=='y') +{ obj.display(); +cout<<"\n*********************************************\n"; +cout<<" CINEMAX MOVIE THEATRE\n"; +cout<<"*********************************************\n"; +cout<<"\nEnter Choice\n1.Current SeatStatus\n2.Book Seat \n3.Available Seat\n4.CancelSeat\n"; +cin>>ch; +switch(ch) +{ +case 1:obj.display(); +break; +case 2: obj.book(); +break; +case 3:obj.avail(); +break; +case 4: obj.cancel(); +break; +default: cout<<"Wrong choice input\n"; +} +cout<<"\nDo you want to perform any other operation : (y/n)\n"; +cin>>c; +} +return 0; +} + + diff --git a/lab-manuals/Lab Assignment C_20.pdf b/lab-manuals/Lab Assignment C_20.pdf new file mode 100644 index 0000000..99a38ea Binary files /dev/null and b/lab-manuals/Lab Assignment C_20.pdf differ