Computer Science Practical Work (SESSION 2011-2012) SUBITTED TO: SUBMITTED BY: DHEERAJ KAUSHIK XII-B (I-SHIFT) MR. M L MEENA (P.G.T. COMP. SC.) ROLL NO. : 9151080 Basic concept of OOP’S Data Abstraction Data Encapsulation Inheritance Modularity Polymorphism DATA ABSTRACTION: Abstraction refers to the act of representing essential features without including the background details or explanation. Example: You are driving a car. You only know the essential features to drive a car e.g., gear handling, steering handling, use of clutch, accelerator, brakes etc. But while you are driving do you get into internal details of the car like wiring, motor working etc.? You just change the gears of apply the brakes etc. What is happening is hidden from you. This is abstraction where you only know the essential things to drive a car without including the background details or explanation. Another example is of ‘switch board’. You only press certain switches according to your requirement. What is happening inside, how it is happening inside, how it is happening etc. you needn’t know. Again, in this abstraction, you only know the essential things to operate on the switch board without the knowledge the background details of the switchboard. DATA ENCAPSULAION: The wrapping up of data and operation/function (that operate on the data) into a single entity (called class) is known as encapsulation. Example: In a big company, there are so many departments, sales, account, payroll, purchase, production etc. each department has its own personnel that maintain its data. Suppose an employee in the production dept. wants to know how much raw material has been purchased for the next month. The production dept. employee would not be allowed to himself go throughthe purchase dept. files. Rather, he`ll issue a memo to the purchase dept. requesting the desired information. Then some employee of the purchase dept. will go through the data files for him and pertain to his requests. This practice ensures that the data is accessed accurately and that it is not corrupted by inept outsiders. Therefore, ‘Department data and department employees are encapsulated into a single entity, the department.’ INHERITANCE: Inheritance is the capability of one class of things to inherit capabilities of properties from another class. Example: ‘Humans’ certain properties, such as the ability to speak, breath, eat, drink, etc. etc. But these properties are not unique to humans. The class ‘Human’ inherits these properties from the class ‘Mammal’ which again inherits some of its properties from another “Animal’. The class “car” inherits some of its properties from the class ‘Automobiles” which inherits some of its properties from another class ‘Vehicles”. The capability to pass down properties is a powerful one. It allows us to describe things in an economical way. ‘Automobiles and ‘Pulled Vehicles’ are subclasses of ‘Vehicles’. ‘Vehicles are base class of ‘Automobiles’ and ‘Pulled Vehicles’. MODULARITY: Modularity is the property of a system that has been decomposed into a set of cohesive and loosely coupled modules. Example: You must have seen a complete music system. Let us assume that our program represents the music system. The music system comprises of speakers, cassette-player, record-player, cd-player, tuner etc. Now, these parts are complete units in themselves, yet they are themselves, yet they are a subpart of the music system. This is modularity. Similarly, we can achieve modularity in programs also. A program can be divided into various modules each representing speakers, cassette-player… etc. See each module is a complete unit itself yet it works in accordance with other modules in order to achieve one single goal i.e. music. POLYMORPHISM: Polymorphism is the ability for a message or data to be processed in more than one form. Example: ‘Human’ is a subclass of ‘Mammal’. Similarly ‘Dog’, ‘Cat’, are also subclasses of ‘Mammals’. Mammals can see through day-light. So if a message ‘see through day light’ is passed to all mammals, they will behave alike. Now if a message ‘see through day light’is passes to all mammals, then humans and dogs will not be able to see at night whereas cat will be able to see at night also. Here cats behave differently than other mammals in response to a message or action. INDEX S.No . PROGRAMES 1. WAP USING CLASSES AND OBJECTS TO CREATE CLASS BOOK. 2. WRITE A MENU DRIVEN PROGRAM TO CREATE CLASS BANK TO INITIALISE DEPOSIT, WITHDRAW & DISPLAY DEETAILS OF THREE CUSTOMERS. WAP YO CREATE CLASS ADMISSION THAT GENERATE TWO RANDOM ADMISSION NUMBER FROM THE LIST OF GIVEN ADMISSION NUMBERS. WAP TO SHOW WORKING OF CONSTRUCTOR AND DESTRUCTOR. 3. 4. 5. 6. 7. 8. 9. 10. 11. WAP TO MAINTAIN DETAILS OF COLLEGE STUDE3NTS AND PRINT THEM (INHERITANCE). WAP TO SHOW CONSTRUCTOR OVERLOADING. WAP TO CREATE TEXT FILE WHICH PERFORM THE FOLLOWING ACTIONS i. COUNT NO. OF WORDS ii. COUNT NO. OF LINES iii. COUNT AND DISPLAY WORDS STARTING WITH VOWELS AND STORE THEM IN A FILE iv. COUNT AND DISPLAY WORDS STARTING WITH UPPERCASE ALPHABETS v. COUNT NO. OF BLANK SPACES WAP TO CREATE BINARY FILES WITH FIVE RECORDS AND DISPLAY. WAP TO SEARCH RECORD IN A BINARY FILE. WAP TO APPEND A RECORD IN A BINARY FILE. WAP TO INSERT DATA IN A BINARY FILE. DATE SIGN. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. WAP TO DELETE A RECORD IN A BINARY FILE. WAP TO MODIFY A RECORD IN A BINARY FILE. WRITE A MENU DRIVEN PROGRAM FOR BINARY AND LINEAR SEARCH IN A ARRAY. CREATE A MENU DRIVEN INSERT & DELETE AN ELEMENT IN A SORTED FILE. WAP TO MERGE TWO ARRAYS A IN SACENDING ORDER, B IN DESCENDING ORDER INTO THIRD ARRAY C INASCENDING ORDER. CREATE MENU DRIVEN PROGRAM TO CHOOSE SORTING TECHNIQUES SELECTION, BUBBLE. WAP TO CONVERT I-D ARRAY TO 2-D ARRAY. CREATE MENU DRIVEN PROGRAM FOR PUSH & POP IN STACK AS LINKED LIST. WAP TO SHOW INSERTION AND DELETION IN QUEUES. QURIES OF SQL TABLE 1 STUDENT QURIES OF SQL TABLE 2 HOSPITAL QURIES OF SQL TABLE 3 TEACHER QURIES OF SQL TABLE 4 FURNITURE AND ARRIVALS QURIES OF SQL TABLE 5 INTERIORS AND NEWONES Q.1) W.A.P. using classes and objects to create the class book. #include<iostream.h> #include<stdio.h> #include<conio.h> class BOOK {int book_no; char book_title[20]; float price; float total_cost(int n) {float total; total=n*price; return total; } public: void INPUT() {cout<<"\n Enter Book No.: "; cin>>book_no; cout<<"\n Enter Book Title: "; gets(book_title); cout<<"\n Enter Price: "; cin>>price; } void PURCHASE() {int n; float TOT; cout<<"\n Enter no of copies to be purchase: "; cin>>n; TOT=total_cost(n); cout<<"\n Your total cost is: "<<TOT; } }; void main() { clrscr(); BOOK buy; buy.INPUT(); buy.PURCHASE(); getch(); } Output Q.2) Write menu driven program to create class to initialize, deposit, withdraw and display the details. #include<iostream.h> #include<ctype.h> #include<conio.h> class Account{ char name[31]; int acc_no; char act; float balance; public: }; void initial() { cout<<"\n Name: "; cin>>name; cout<<"\n Accoutn No.: "; cin>>acc_no; cout<<"\n Enter Amount: "; cin>>balance; cout<<endl; } void deposit(float amt) {balance+=amt; cout<<" Amount Deposited"; } void withdraw(float amt) {if((amt-balance>=1000)) { balance=amt-balance; cout<<"\n Amount Withdrawn"; } else {cout<<"\n Min Bal should be 1000"; cout<<" You can withdraw only: "<<balance-1000; } } void display() {cout<<"\n\n\t\t\t !!Your Account Details!!"; cout<<"\n\n Account no.:"<<acc_no; cout<<"\n Accoutn Holder: "; cout<<name; cout<<"\n Balance: "<<balance; } int getacno() { return acc_no;} void main() { clrscr(); Account bank; int choice; cout<<"\n Menu"; cout<<"\n 1.For Deposit"; cout<<"\n 2.For WithDraw"; cout<<"\n Enter Choice(1/2): "; cin>>choice; switch(choice) { case 1:bank.initial(); bank.deposit(100000); break; case 2:bank.initial(); bank.withdraw(100000); break; default:cout<<"\n !!Wrong Choice!!"; } bank.display(); getch(); } Output Q.3) WAP to create the class ADMISSION that generates two random admission nos. from the list of given admission nos. #include<iostream.h> #include<conio.h> #include<stdlib.h> #include<stdio.h> int i; class ad{ int adno; char name[10]; float fees; int clas; public: void readdata(); void draw_nos(); int getadno() { return adno; } }; ad A1[5]; void ad::draw_nos() { int n1=0,n2=0; randomize(); n1=random(4); n2=random(4); for(i=0;i<3;i++) if((A1[i].getadno()==n1)||(A1[i].getadno()==n2)); cout<<"\nRandomly generated admission nos are:"<<n1<<" and "<<n2; } void ad::readdata() { cout<<"\nEnter admission no:"; cout<<"Name:"; cout<<"Class:"; cout<<"Fees:"; void main() {clrscr(); for(i=0;i<3;i++) { A1[i].readdata(); } A1[i-1].draw_nos(); getch(); } cin>>adno; cin>>name; cin>>clas; cin>>fees; OUTPUT } Q.4)WAP to show working of constructor and destructor in a class. #include<iostream.h> #include<conio.h> class A{ public: A() {cout<<"\n Constructor A";} ~A() {cout<<"\n Destructor A";} }; class B{ public: B() {cout<<"\n Constructor B";} ~B() {cout<<"\n Destructor B";} }; class C{ public: A ob1,ob2; B ob3; C() {cout<<"\n Constructor C";} ~C() {cout<<"\n Destructor C";} }; void main() {clrscr(); C oc; B ob; A oa; getch(); } Output Q.5)Write a program to maintain the details of college students and print them using inheritance. #include<iostream.h> #include<stdio.h> #include<conio.h> const int len = 25 ; class person { char name[len]; int age; public: void readperson(void) ; void displayperson(void) { cout<<"Name : "; cout.write(name,len); cout<<"\t Age : " <<age<<"\n"; } }; void person::readperson(void) { for(int i=0;i<len;i++) name[i]=' '; cout<<"Enter name of the person :"; gets(name); cout<<"Enter age :"; cin>>age; } class student: public person { int rollno; float average ; public: void readstudent(void) { readperson(); cout<<"Enter roll no. : "; cin>>rollno; cout<<"Enter average marks : "; cin>>average; } void disp_rollno(void) { cout<<"Roll no : "<<rollno<<"\n"; } float getaverage(void) { return average ; } }; class gradstudent :public student { char subject[len]; char working; public : void readit(void); void displaysubject(void) { cout<<"Subject : " ; cout.write(subject,len); } char workstatus(void) { return working; } }; void gradstudent::readit(void) { readstudent(); for(int i=0 ;i<len;i++) subject[i]=' '; cout<<"Enter main subject : "; gets(subject); cout<<"Working?(y/n) : "; cin>>working; } void main() { clrscr(); const int size = 5 ; gradstudent grad[size]; int year,num_working=0,non_working=0,div1=0,total=0; float topscore = 0,score, number,wperc,nwperc; cout<<"Enter year :"; cin>>year; char ch=' '; int i; for(i=0;i<10;i++) { cout<<"Enter details for graduate "<<(i+1)<<" (maximum 10)\n"; grad[i].readit(); total++; if(grad[i].workstatus() =='y'||(grad[i].workstatus() == 'Y')) num_working++; else non_working++; score=grad[i].getaverage() ; if(score>topscore) { topscore=score; number=i; } if(score>=60.0) div1++; cout<<"Press y to see report and n to continue"; cin>>ch; if(ch=='y'||ch=='Y') break; } i=number; cout<<"\n"<<"\t\t\t\tReport of the year " <<year<<"\n"; cout<<"\t\t\t\t-----------------------\n"; cout<<"Working graduates : " <<num_working<<"\n"; cout<<"Non working graduates : "<<non_working<<"\n"; cout<<"Details of topper \n"; grad[i].displayperson(); grad[i].displaysubject(); nwperc=((float)non_working/(float)total)*100; wperc=((float)div1/(float)total)*100; cout<<"Average marks : "<<grad[i].getaverage()<<"\n"; cout<<nwperc<<"% of the graduates this year are non working and "<<wperc<<"% are first divisioners\n"; getch(); } OUTPUT Q.6) WAP to show constructor overloading. #include<iostream.h> #include<conio.h> class Deposit{ long int principal; int time; float rate; float total_amt; public: Deposit(); Deposit(long p,int t,float r); Deposit(long p,int t); Deposit(long p,float r); void calc_amt(void); void display(void); }; Deposit::Deposit() {principal=time=rate=0.0;} Deposit::Deposit(long p,int t,float r) {principal=p;time=t;rate=r;} Deposit::Deposit(long p,int t) {principal=p;time=t;rate=0.08;} Deposit::Deposit(long p,float r) {principal=p;time=2;rate=r;} void Deposit::calc_amt(void) { total_amt=principal+(principal*time*rate)/100; } void Deposit::display(void) { cout<<" Principal Amount: "<<principal; cout<<"\n Time Period: "<<time; cout<<"\n Rate of interest: "<<rate; cout<<"\n Total Amount: "<<total_amt<<"\n"; } void main() { clrscr(); Deposit D1,D2(2000,2,0.07f),D3(4000,1),D4(3000,0.12f); D1.calc_amt(); D2.calc_amt(); D3.calc_amt(); D4.calc_amt(); cout<<"\n Object1:\n"; D1.display(); cout<<"\n Object2:\n"; D2.display(); cout<<"\n Object3:\n"; D3.display(); cout<<"\n Object4:\n"; D4.display(); getch(); } Output Q.7) Write a menu driven program to create the text file that i. ii. iii. iv. v. Count Count Count Count Count the the and the the no of words in a file. no of lines a file. display the words starting with the vowels. words starting with uppercase alphabets. no of spaces. #include<fstream.h> #include<conio.h> #include<string.h> #include<ctype.h> void file_content() { ofstream fout("xyz.txt"); char ch[200]; cout<<"\nEnter the content of the file: "; cin.getline(ch,200); fout<<ch; fout.close(); } void vowel() { ifstream fin("xyz.txt"); char ch[20]; while(!fin.eof()) { fin>>ch; switch(ch[0]) { case 'a': case 'A': case 'e': case 'E': case 'i': case 'I': case 'o': case 'O': case 'u': case 'U': cout<<"\nWords starting from vowels is: "<<ch<<"\n"; } } } void word_count() { ifstream fin ("xyz.txt"); char ch; int count=0; while (!fin.eof()) { fin.get(ch); if(ch==' ') ++count; } cout<<"\nNo. of words are: "<<++count<<"\n"; fin.close(); } void count_spaces() { ifstream fin ("xyz.txt"); char ch; int count=0; while (!fin.eof()) { fin.get(ch); if(ch==' ') ++count; } cout<<"\nNo. of spaces are: "<<count<<"\n"; fin.close(); } void count_lines() { char str[100]; int count=0; ifstream fin("xyz.txt"); while(!fin.eof()) { fin.getline(str,100); ++count; } cout<<"\nNo. of lines are: "<<count<<"\n"; } void count_uppercase() { ifstream fin("xyz.txt"); int count=0; char ch; while(!fin.eof()) { fin>>ch; if(isupper(ch)) ++count; } fin.close(); cout<<"\nNo. of upper case alpahabets are: "<<count<<"\n"; } void main() { clrscr(); file_content(); word_count(); count_lines(); vowel(); count_uppercase(); count_spaces(); getch(); } OUTPUT Q.8) Write a program to create the binary file and display them. #include<iostream.h> #include<fstream.h> #include<conio.h> class student { char name[50]; char grade; float marks; public: void getdata(void); void display(void); }; void student::getdata(void) { char ch; cin.get(ch); cout<<"\n"<<"ENTER NAME : - "; cin>>name; cout<<"\n"<<"ENTER GRADE : - "; cin>>grade; cout<<"\n"<<"ENTER MARKS : - "; cin>>marks; cout<<"\n"; } void student::display(void) {cout<<"NAME : - "<<name<<"\t"; cout<<"GRADE : - "<<grade<<"\t"; cout<<"MARKS : - "<<marks<<"\t"<<"\n";} int main() { clrscr(); student arts[5]; fstream filin ; filin.open("stu.dat",ios::in|ios::out); if(!filin) { cout<<"SORRY CAN NOT OPEN THE FILE"<<"\n"; return 1; } cout<<"ENTER DETAILS OF THE 2 STUDENTS : - "<<"\n"; for(int i=0;i<2;i++) { arts[i].getdata(); filin.write((char*)&arts[i],sizeof(arts[i])); } filin.seekg(0); cout<<"\n"; cout<<"THE CONTENTS OF THE STU.DAT IS AS SHOWN BELOW : - "<<"\n"; for(i=0;i<2;i++) { filin.read((char*)&arts[i],sizeof(arts[i]));arts[i].display();} filin.close(); getch(); } Output Q.9) Write a program to search a record in a file. #include<iostream.h> #include<conio.h> #include<fstream.h> class stu { int rollno; char name[25]; char Class[4]; float marks; char grade; public: void getdata() { cout<<"ROLL NUMBER"; cin>>rollno; cout<<"NAME"; cin>>name; cout<<"CLASS"; cin>>Class; cout<<"MARKS"; cin>>marks; } void putdata() { cout<<”Name-“<<name<<"Roll No-"<<rollno<<”Marks=”<<marks; } int getrno() { return rollno; } } s1; void main() { clrscr(); int rn; char found='n'; ifstream fi("stu.dat",ios::in); cout<<"ENTER ROLL NUMBER TO BE SEARCHED : - "; cin>>rn; while (!fi.eof()) { fi.read((char*)&s1,sizeof(s1)); if(s1.getrno()==rn) { s1.putdata(); found='y'; break; } } if(found=='n') cout<<"ROLL NUMBER NOT FOUND IN THE FILE"<<endl; fi.close();} Output Q.10)WAP to append data from file. #include<iostream.h> #include<conio.h> #include<fstream.h> #include<stdio.h> class stu { clrscr(); int rollno; char name[25]; char Class[4]; float marks; char grade; public: void getdata() { cout<<"\n Rollno: "; cin>>rollno; cout<<"\n Name: "; cin>>name; cout<<"\n Class: "; cin>>Class; cout<<"\n Marks: "; cin>>marks; if(grade>=75) grade='A'; else if(grade>=60) grade='B'; else if(grade>=50) grade='C'; else if(grade>=40) grade='D'; else grade='F'; } void putdata() { cout<<name<<"\n Rollno "<<rollno<<"has"<<marks <<"% Marks and "<<grade<<"Grade: "<<endl; } int getrno() { return rollno; } } s1; void main() { ofstream fo("\n stu.dat",ios::app); char ans='y'; while(ans=='y') { s1.getdata(); fo.write((char*)&s1,sizeof(s1)); cout<<"\n Record added to file.\n"; cout<<"\n Want to enter more records?(y/n)?: "; cin>>ans; } fo.close();} Output Q.11) Write a program to insert data in a file. #include<iostream.h> #include<fstream.h> #include<conio.h> #include<stdio.h> class stu { int rollno; char name[25]; float marks; public: void getdata() { cout<<"ROLL NUMBER : - "; cin>>rollno; cout<<"NAME : - "; gets(name); cout<<"MARKS : - "; cin>>marks; } void putdata() { cout<<"\nName-"<<name<<"\n"; cout<<"Roll No- "<<name<<"\n"; cout<<"Marks= "<<marks<<"\n"; } int getrno() {return rollno; } }; stu s1,stud; void main() { clrscr(); ofstream f("stu.dat",ios::out|ios::app); ifstream fi("stu.dat",ios::in|ios::app); ofstream fo("temp.dat",ios::out|ios::app); char last='y'; cout<<"enter the details of students whose record is to be inserted\n"; s1.getdata(); while(!fi.eof()) { fi.read((char*)&stud,sizeof(stud)); if(s1.getrno()<=stud.getrno()) { fo.write((char*)&s1,sizeof(s1)); last='n'; break; } else fo.write((char*)&stud,sizeof(stud)); } if(last=='y') fo.write((char*)&s1,sizeof(s1)); else if(!fi.eof()) { while(!fi.eof()) { fi.read((char*)&stud,sizeof(stud)); fo.write((char*)&stud,sizeof(stud)); } } fi.close(); fo.close(); remove("stu.dat"); rename("temp.dat","stu.dat"); ifstream ko; ko.open("stu.dat",ios::in); cout<<"file now contains"<<endl; while(!ko.eof()) { ko.read((char*)&stud,sizeof(stud)); if(ko.eof()) break; stud.putdata(); } ko.close(); getch(); } Output Q.12) Write a program to delete data from a file. #include<fstream.h> #include<conio.h> #include<stdio.h> class stu { int rollno; char name[25]; char cls; float marks; public: void getdata() { cout<<"ROLL NUMBER : - "; cin>>rollno; cout<<"NAME : - "; gets(name); cout<<"CLASS : - "; cin>>cls; cout<<"MARKS : - "; cin>>marks; } void putdata() { cout<<"\nName- "<<name<<"\n"; cout<<"Roll No- "<<rollno<<"\n"; cout<<"Marks="<<marks<<"\n"; } int getrno() { return rollno; } }s1,stud; void main() { clrscr(); ifstream fi("STU.DAT",ios::in); ofstream fo("TEMP.DAT",ios::out); int rno; char found='f',confirm='n'; cout<<"ENTER ROLL NUMBER OF STUDENT WHOSE RECORD IS TO BE DELETED:-"; cout<<"\n"; cin>>rno; while(!fi.eof()) { fi.read((char*)&stud,sizeof(stud)); if(s1.getrno()==rno) { s1.putdata(); found='t'; fo.write((char*)&s1,sizeof(s1)); } else fo.write((char*)&s1,sizeof(s1)); } if(found=='n') cout<<"SORRY RECOD NOT FOUND"<<endl; fi.close(); fo.close(); remove("STU.DAT"); rename("TEMP.DAT","STU.DAT"); fi.open("STU.DAT",ios::in); cout<<"FILE NOW CONTAINS : - "<<"\n"<<endl; while(!fi.eof()) { fi.read((char*)&stud,sizeof(stud)); if(fi.eof()) break; stud.putdata(); } fi.close(); getch(); } Output Q.13) Write a program to modify data in a file. #include<iostream.h> #include<fstream.h> #include<stdio.h> #include<string.h> #include<conio.h> class stu { int rollno; char name[25]; char Class[4]; float marks; public: void getdata() { cout<<"Enter Name-"; cin>>name; cout<<"Enter Roll No-"; cin>>rollno; cout<<"Enter Marks ";cin>>marks; } int getrno() { return rollno ; } void modify() ; }; s1,stud ; void stu::modify() { cout<<"ROLL NUMBER : - "<<rollno<<endl; cout<<"NAME : - "<<name<<"\t"; cout<<"CLASS : - "<<Class<<"\t"; cout<<"MARKS : - "<<marks<<endl; cout<<"ENTER NEW DETAILS : - "<<endl; char nm[20]=" ",cl[4]=" "; float mks ; cout<<”Enter Name-"; cin>>nm; cout<<"Enter Roll No- "; cin>>rn; cout<<"Enter Marks= "; cin>>mks; if(strcmp(nm,".")!= 0) strcpy(name, nm); if(strcmp(cl,".")!=0) strcpy(Class,cl); if(mks!= -1) { marks=mks; if(marks >= 75) } } void main() { clrscr(); fstream fio("stu.dat", ios::in|ios::out|ios::binary); int rno; long pos; char found='f'; cout<<"ENTER ROLL NUMBER OF THE STUDENT WHOSE RECORD IS TO MODIFY:-"; cout<<"n"; cin>>rno; while(!fio.eof()) { pos=fio.tellg(); fio.read((char*) &s1, sizeof(s1)); if (s1.getrno()==rno) { s1.modify(); fio.write((char*) &s1, sizeof(s1)); found='t'; break; } } if(found=='f') cout<<"SORRY RECORD NOT FOUND"<<"\n"; fio.seekg(0); fio.close(); getch(); } Output Q.14) Create a menu driven program to show searching operation in 1D array using (I)Lsearch (II) Bsearch #include<iostream.h> #include<conio.h> int Lsearch(int[],int,int); int Bsearch(int[],int,int); void main() {clrscr(); int n,AR[50],i,item,index; int ch=0; cout<<"\n Menu: "; cout<<"\n 1.Linear Search"; cout<<"\n 2.Binary Search"; cout<<"\n Enter Choice(1/2): "; cin>>ch; cout<<"\n Enter the Desired array size(Max.50): "; cin>>n; cout<<"\n Enter Array elements "; for(i=0;i<n;i++) { cin>>AR[i]; } cout<<"\n Enter Elements to be searched for: "; cin>>item; switch(ch) { case 1:{ index=Lsearch(AR,n,item); if(index==-1) cout<<"\n Sorry!! Given element could not be found."; else cout<<"\n Element found at index: "<<index; cout<<"\n Position: "<<index+1<<endl; break;} case 2:{ index=Bsearch(AR,n,item); if(index==-1) cout<<"\n Sorry!! Given element could not be found."; else cout<<"\n Element found at index: "<<index; cout<<"\n Position: "<<index+1<<endl; break;} default:{cout<<"\n Wrong Choice";} break; } getch(); } int Lsearch(int arr[50],int size,int it) { for(int j=0;j<size;j++) {if(arr[j]==it) return j; } return-1; }; int Bsearch(int arr[50],int size,int it) { int beg,last,mid; beg=0; last=size-1; while(beg<=last) { mid=(beg+last)/2; if(it==arr[mid]) return mid; else if(it>arr[mid]) beg=mid+1; else last=mid-1; } return -1; }; Output Q.15)WAP menu driven program to insert & delete an element in a sorted array. #include<iostream.h> #include<conio.h> #include<process.h> int FindPos(int[],int,int); int Lsearch(int[],int,int); int Insertion(int[],int); int Deletion(int[],int); void main() {clrscr(); int AR[50],N,choice; cout<<"\n Enter size of array(Max.50): "; cin>>N; cout<<"\n Enter array elements is ascending order:\n"; for(int i=0;i<N;i++) { cin>>AR[i];} cout<<"\n Menu:"; cout<<"\n 1.Insertion"; cout<<"\n 2.Deletion"; cout<<"\n Enter Choice(1/2): "; cin>>choice; switch(choice) {case 1: Insertion(AR,N); break; case 2: Deletion(AR,N); break; default:cout<<"\n !!Please enter either 1 or 2"; break; } getch(); } int Insertion(int ar[],int y) {char ch='y'; int item,index,i; while(ch=='y'||ch=='Y') { cout<<"\n Enter element to be inserted: "; cin>>item; if(y==50) { cout<<"\n Overflow"; exit(1); } index=FindPos(ar,y,item); for(i=y;i>index;i--) { ar[i]=ar[i-1];} ar[index]=item; y=y+1; cout<<"\n Want to insert more element(Y/N)?: "; cin>>ch; } cout<<"\n Array after insertion is: \n"; for(i=0;i<y;i++) { cout<<ar[i]<<" ";} } int FindPos(int AR[],int size,int item) {int pos; if(item<AR[0]) pos=0; else { for(int i=0;i<size-1;i++) { if(AR[i]<=item&&item<AR[i+1]) { pos=i+1; break; } } if(i==size-1) pos=size; } return pos;} int Deletion(int AR[],int N) { char ch='y'; int item,index,i; while(ch=='y'||'Y') { cout<<"\n Enter element to be deleted: "; cin>>item; if(N==0) { cout<<"Underflow!!"; exit(1); } index=Lsearch(AR,N,item); if(index!=-1) AR[index]=0; else cout<<"\n !!Sorry no such element is found"; for(i=index;i<N;i++) { AR[i]=AR[i+1];} N=N-1; cout<<"\n Want to delete more(Y/N)?"; cin>>ch; cout<<"\n Array after deletion is: \n"; for(i=0;i<N;i++) cout<<AR[i]<<" "; break; }} int Lsearch(int AR[],int size,int item) { int i; for(i=0;i<size;i++) } { if(AR[i]==item) return i; } return -1; Output Q.16) Write a program to merge two 1-D arrays into third array. #include<iostream.h> #include<conio.h> void Merge(int[],int,int[],int,int[]); void main() { clrscr(); int A[20],B[20],C[40],m,n,mn=0; cout<<"Enter no of element in first array in acs order"; cin>>m; for(int i=0;i<m;i++) cin>>A[i]; cout<<"Enter no of element in second array in desc order"; cin>>n; for(i=0;i<n;i++) cin>>B[i]; mn=m+n; Merge(A,m,B,n,C); cout<<"Resultant array is"; for(i=0;i<mn;i++) cout<<C[i]; getch(); } void Merge(int A[],int m,int B[],int n,int C[]) { int a,b,c; for(a=0,b=n-1,c=0;a<m&&b>=0;) { if(A[a]<=B[b]) C[c++]=A[a++]; else C[c++]=B[b--]; } } Output Q.17) Write a menu driven program to sort elements using selection sort and bubble sort. #include<iostream.h> #include<conio.h> void selsort(int[],int); void bubblesort(int[],int); void main() { clrscr(); int AR[50],ITEM,N,index,n; cout<<"How many element you want to insert in array?(Max.50): "; cin>>N; cout<<"Enter element of array: "; for(int i=0;i<N;i++) cin>>AR[i]; cout<<"Menu\n"<<"1.Selection Sort\n"<<"2.Bubble Sort\n"<<"Enter Choice: "; cin>>n; switch(n) { case 1: selsort(AR,N); break; case 2: bubblesort(AR,N); break; default:cout<<"Enter Valid Choice"; break; } cout<<"\nThe Sorted Array is shown below:\n"; for(i=0;i<N;i++) cout<<AR[i]<<" "; cout<<endl; getch(); } void selsort(int AR[], int size) { int small,pos,tmp; for(int i=0;i<size;i++) { small=AR[i]; for(int j=i+1;j<size;j++) { if(AR[j]<small) { small=AR[j]; pos=j; } tmp=AR[i]; AR[i]=AR[pos]; AR[pos]=tmp; } cout<<"\nArray after pass:"<<i+1<<" is-\n"; for(int k=0;k<size;k++) } cout<<AR[k]<<" "; } void bubblesort(int AR[],int size) { int tmp, ctr=0; for(int i=0;i<size;i++) { for(int j=0;j<(size-1)-i;j++) { if(AR[j]>AR[j+1]) { tmp=AR[j]; AR[j]=AR[j+1]; AR[j+1]=tmp; } } cout<<"Array after iteration:"<<++ctr<<" is:\n"; for(int k=0;k<size;k++) cout<<AR[k]<<" "; cout<<endl; } } Output Q.18) Write a program to convert 1D array into 2D array. #include<iostream.h> #include<conio.h> void main() { clrscr(); int ar [20],arr[20][20]; int i,j,size; cout<<"Enter size of array\n"; cin>>size; } cout<<"Enter 1d-array\n"; for(i=0;i<size;i++) { cin>>ar[i]; } cout<<"Your array is\n"; for(i=0;i<size;i++) { cout<<ar[i]; cout<<"\t"; } cout<<"\n"; for(i=0;i<size;i++) for(j=0;j<size;j++) arr[i][j]=ar[j]; cout<<"Your required 2d array is\n"; for(i=0;i<size;i++) { for(j=0;j<size;j++) { cout<<arr[i][j]<<"\t"; } cout<<"\n"; } getch(); Output Q.19) Write a program for pushing and popping in a stack implemented as linked list. #include<iostream.h> #include<conio.h> #include<process.h> struct node { int info; node*next; }*top,*newptr,*save,*ptr; node*create_new_node(int); void push(node*); void display(node*); void pop(); void main() { clrscr(); top=NULL; int inf; char ch='y'; while(ch=='y'||ch=='Y') { cout<<"\n Enter the information"<<"\t"; cin>>inf; newptr=create_new_node(inf); if(newptr==NULL) { cout<<"\n cannot create new node!!!"; exit(1); } push(newptr); cout<<"\n press Y to enter more nodes, n to exit"<<" "; cin>>ch; } clrscr(); do { cout<<"\n stack is now:\n"; display(top); getch(); cout<<"\n want to pop an element?(y/n)"<<" "; cin>>ch; if(ch=='y'||ch=='Y') pop(); }while(ch=='y'||ch=='Y'); } node*create_new_node(int n) { ptr=new node; ptr->info=n; ptr->next=NULL; return ptr; } void push(node*np) { if(top==NULL) top=np; else { save=top; top=np; np->next=save; } } void pop() { if(top==NULL) cout<<"\n underflow"; else { ptr=top; top=top->next; delete ptr; }} void display(node*np) { while(np!=NULL) { cout<<np->info<<"->"; np=np->next; } cout<<"!!!\n"; } Output Q.20) Write a program to show insertion and deletion from linked queue. #include<iostream.h> #include<conio.h> struct node { int data; node*next; }; node*add(node*rear,int val); node*delet(node*front); void show(node*front); void main() { node*front,*rear; int val,choice; front=rear=NULL; clrscr(); do{ cout<<"\nMenu"; cout<<"\n 1. ADD"; cout<<"\n 2. Delete"; cout<<"\n 3. Show"; cout<<"\n 4. Quit"; cout<<"\n Enter your choice"<<" "; cin>>choice; switch(choice) { case 1:cout<<"\n Enter the vlaue to be added"<<" "; cin>>val; rear=add(rear,val); if(front==NULL) front=rear; break; case 2:front=delet(front); if(front==NULL) rear=front; break; } } case 3:show(front); break; } while(choice!=4); node*add(node*rear,int val) { node*x; x=new node; x->data=val; x->next=NULL; if(rear!=NULL) { rear->next=x; } rear=x; return(rear); } node*delet(node*front) { node*x; int val; if(front==NULL) { cout<<"\nQueue is empty"; val=-999; } else { x=front; front=front->next; val=x->data; delete x; } cout<<val; return(front); } void show(node*front) { node*ptr; ptr=front; cout<<"\nThe queue is:"; while(ptr!=NULL) { cout<<ptr->data<<" "; ptr=ptr->next; } } Output 21.) Write SQL command for (a) for (f) and write the output for (g) on the basis of tables Student. Table: Student No. 1. 2. 3. 4. 5. 6. 7. 8. Name Pankaj Shalini Sanjay Sudha Rakesh Shakeel Surya Sikha Age 24 21 22 25 22 30 34 23 Department Computer History Hindi History Hindi History Computer Hindi Dateofadm 10/01/97 24/03/98 12/12/96 01/07/99 05/09/97 27/06/98 25/02/97 31/07/97 Fee 120 200 300 400 250 300 210 200 Sex M F M F M M M F a) To show all information about all students of the History Department. b) To list the names of female students who are of Hindi department. c) To list name of all students with their name in ascending order. d) To display student’s name, fee, age for male students only. e) To count the number of student with Age<23. f) To isnert a new row in the STUDENT table with the following data : 9, “Zaheer”, 36 , “Computer”, {12/03/97}, 230, ‘M’ g) Give the output of following SQL statements : (i) Select COUNT (distinct departments) from STUDENT ; (ii) Select MAX (Age) from STUDENT where Sex = ”F” ; (iii) Select AVG (fee) form STUDENT where Dateofadm <{01/01/98} ; (iv) Select SUM (Fee) from STUDENT where Dateofadm <{01/01/98} ; Answers) (a) SELECT * FROM Student WHERE Depatment = “History”; (b) SELECT Name FROM Student WHERE sex =”F” and Depatment = “History”; (c) SELECT name FROM Student ORDER BY Dateofadm; (d) SELECT Name, Fee, Age FROM Student WHERE sex = “M”; (e) SELECT COUNT (*) FROM Student WHERE Age>23 ; (f) INSERT INTO Student VALUES (9, “Zaheer”, 36 , “Computer”, {12/03/97}, 230, ‘M’) ; (i) 3 (ii)25 (iii)236 (iv) 1080 22.) Write SQL commands for (a) to (f) and Write to outputs for (g) on the basis of table HOSPITAL. Table: HOSPITAL No. 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Name Sandeep Ravina Karan Tarun Zubin Ketaki Ankita Zareen Kush Shalya Age 62 22 32 12 30 16 29 45 19 23 Department Surgery ENT Orthopedic Surgery ENT ENT Cardiology Gynecology Cariology Nuclaer Medicine Dateofadm 21/01/98 12/12/97 19/02/98 11/01/98 12/01/98 24/02/98 20/02/98 22/05/98 13/01/98 21/02/98 Charges 300 250 200 300 250 250 800 300 800 400 Sex M F M M M F F F M F a) To select all information about all patient of the CARIOLOGY Department. b) To list the names of female patients who are in ENT Department. c) The list names of all patients with date date of admission in ascending order. d) To display Patient’s name, Charges, Age for only male patients. e) To count the number of patients with Age<30. f) To insert a new row in the HOSpital table with the following date ; 11, “Mustafa” , 37, “ENT”, {25/02/98}, 250, “M” g) Give the output of the following SQL statements : (i) Select COUNT (distict department) from HOSPITAL ; (ii) Select MAX( Age) from HOSPITAL where Sex =”M” (iii)Select AVG (Charges) form HOSPITAL where Sex =”F” (iv)Select SUM ( Charges) from HoSPITAL where Dateofadm< {10/08/98} Answers) (a) SELECT * FROM Hospital WHERE Depatment = “Cardiology”; (b) SELECT Name FROM Hospital WHERE sex =”F” and Depatment = “Orthopedic”; (c) SELECT name FROM Hospital ORDER BY Dateofadm; (d) SELECT Name, Charges, Age FROM Hospital WHERE sex = “M”; (e) SELECT COUNT (*) FROM Hospital WHERE Age<30 ; (f) INSERT INTO Hospital VALUES (11, “Mustafa”, 37 , “ENT”, {25/02/97}, 250, “M”) ; (i) 6 (ii)65 (iii)400 (iv) 3850 23.) Write SQL commands for (a) to (f) and write output for (g) on the basis of Teacher relation given below: Table: Teacher No. 1. 2. 3. 4. 5. 6. 7. 8. Name Jugal Sharmila Sandeep Sangeeta Rakesh Shayam Shiv Ov Shalakha Age 34 31 32 35 42 50 44 33 Department Computer History Maths History Maths History Computer Maths Date of join 10/01/97 24/03/98 12/12/96 01/07/99 05/09/97 27/06/98 25/02/97 31/07/97 Salary 12000 20000 30000 40000 25000 30000 21000 20000 Sex M F M F M M M F a) To select all information about all Teachers of the history department. b) To list the names of female Teachers who are in Hindi Department. c) The list names of all Teachers with date of joining in ascending order. d) To display students’ Name, Fees, Age for only male teachers. e) To count the number of patients with Age<23. f) To insert a new row in the HOSPITAL table with the following date ; 11, “Raja” , 26, “Computer”, {13/05/95}, 2300, “M”. g) Give the output of the following SQL statements : (i) Select COUNT (distict department) from TEACHER ; (ii) Select MAX( Age) from TEACHERS where Sex =”F” (iii)Select AVG (Salary) form TEACHERS where Dateofadm< {10/08/98} (iv)Select SUM (Salary) from TEACHERS where Dateofadm< {10/08/98 Answers) (a) SELECT * FROM Teacher WHERE Department = “History”; (b) SELECT Name FROM Hospital WHERE sex =”F” and Department = “Hindi”; (c) SELECT name FROM Teacher ORDER BY Dateofadm; (d) SELECT Name, Salary, Age FROM Teacher WHERE sex = “M” AND Age>23; (e) SELECT COUNT(*) FROM Hospital WHERE Age<23 ; (f) INSERT INTO Teacher VALUES (9, “Raja”, 26 , “Computer”, {13/02/95}, 2300, “M”) ; (i) 3 (ii)35 (iii)23600 (iv) 2300 24.) Write SQL command for (a) for (f) and write the output for (g) on the basis of tables FURNITURE and ARRIVALS. Table: FURITURE NO. 1 2 3 4 5 6 7 8 9 10 ITEMNAME White Lotus Pink Feather Dolphin Decent Comfort zone Donald Royal Finish Royal Tiger Econo sitting EatingParadise TYPE Double Bed Baby cot Baby cot OfficeTable Double Bed Baby cot OfficeTable Sofa Sofa Dining Table DATEOFSTOCK 23/02/02 20/01/02 19/02/02 01/01/02 12/01/02 24/01/02 20/02/02 22/02/02 13/13/01 19/02/02 Table: ARRIVALS PRICE 30000 7000 9500 25000 25000 6500 18000 31000 90005 110005 DISCOUNT 25 20 20 30 25 15 30 30 25 25 NO. 11 12 13 ITEMNAME Wood Comfort Old Fox Mickey TYPE Double Bed Sofa Baby cot DATEOFSTOCK 23/03/03 20/02/03 21/02/03 PRICE 25000 17000 7500 DISCOUNT 25 20 15 a) To show all info about the Baby cots from the FURNITURE table. b) To list the ITEMNAME which are priced at more than 15000 from the FURNITURE table. c) To list ITEMNAME and TYPE of those items, in which DATEOFSTOCK is before 22/01/02 from the FURNITURE table in descending order of ITEMNAME. d) To display ITEMNAME and DATEOFSTOCK of those items, in which the DISCOUNT percentage is more than 25 from FURNITURE table. e) To count the number of items, whose TYPE is “Sofa” from the FURNITURE table. f) To insert a new row in the ARRIVALS table with the following data: 14, ”Velvet Touch”, Double Bed, (25/03/03), 25000, 30 g) Give the output of the following statement: (i) Select COUNT(distinct TYPE) from FURNITURE; (ii) Select MAX(DISCOUNT) from FURNITURE, ARRIVALS; (iii) Select AVG(DISCOUNT) from FURNITURE where TYPE=”Baby cot”. (iv) Select SUM(PRICE) from FURNITURE where DATAOFSTOCK < (12/02/02). Answer) a) Select* From FURNITURE Where TYPE=”Baby cot”; b) Select ITEMNAME From FURNITURE Where PRICE > 15000; c) Select ITEMNAME, TYPE From FURINTURE; Where DATEOFSTOCK < (22/01/02) Order by ITEMNAME; d) Select ITEMNAME, DATEOFSTOCK From FURINTURE Where DISCOUNT > 25; e) Select Count(*) From FURNITURE Where TYPE=”Sofa”; f) Insert Into ARRIVALS Values(14, ”Velvet Touch”, Double Bed, (25/03/03), 25000, 30) g) (i) 5 (ii)30 (iii)18.33 (iv)66500. 25.) Write the SQL command for (a) to (f) and write the output for (g) on the basis of tables INTERIORS and NEWONES. Table: INTERIORS NO. 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. ITEMNAME Red rose Soft touch Jerry’s home Rough wood Comfort zone Jerry look Lion king Royal tiger Park sitting Dine Paradise TYPE Double Bed Baby cot Baby cot Office Table Double Bed Baby cot Office Table Sofa Sofa Dining Table DATEOFSTOCK 23/02/02 20/01/02 19/02/02 01/01/02 12/01/02 24/01/02 20/02/02 22/02/02 13/13/01 19/02/02 PRICE 32000 9000 8500 20000 15000 7000 16000 30000 9000 11000 DISCOUNT 15 10 10 20 20 19 20 25 15 15 Price 20000 DISCOUNT 20 Table: NEWONES NO. 11. ITEMNAME White wood TYPE Double Bed DATEOFSTOCK 23/03.03 12. 13. James 007 Tom look Sofa Baby cot 20/02/03 21/02/03 15000 7000 15 10 a) To show all info about the Sofas from the INTERIORS table. b) To list the ITEMNAME which are priced at more than 10000 from the INTERIORS table. c) To list ITEMNAME and TYPE of those items, in which DATEOFSTOCK is before 22/01/02 from the INTERIORS table in decreasing order of ITEMNAME. d) To display ITEMNAME and DATEOFSTOCK of those items, in which the discount percentage is more than 15 from the INTERIORS table. e) To count the no of items whose type is “Double Bed” from the table INTERIORS. f) To insert a new tow in the NEWONES table with the following data: 14,”True Indian”, “Office Table”, (28/03/03), 15000, 20. g) Give the output of the following statement: (i) Select COUNT(distinct TYPE) from INTERIORS; (ii) Select AVG(DISCOUNT) from INTERIORS, where DATEOFSTOCK<(12/02/02). (iii) Select SUM(Price) form INTERIORS where DATEOFSOCK<(12/02/02). Answer) a) Select* From INTERIORS Where PRICE>10000; b) Select ITEMNAME, TYPE From INTERIORS c) Select ITEMNAME, TYPE From INTERIORS Where DATEOFSTOCK < (22/01/02) Order by ITEMNAME; d) Select ITEMNAME, DATEOFSTOCK From INTERIORS Where DICSOUNT>15; e) Select Count(*) From INTERIORS Where TYPE=”Double Bed”; f) Insert Into NEWONES Values (14,”True Indian”, “Office Table”, (28/03/03), 15000, 20); e) (i)5 (ii)13 (iii)43000 BIBLIOGRAPHY 1. COMPUTER SCIENCE text book By: SUMITA ARORA 2. MRS. NIDHI YAGNIK (P.G.T. Comp. Sc.) 3. PIONEER question bank in C++. 4. K.V.S. Study Material for Computer Science