Revision Notes For Exam 2011 Computer Science
Revision Notes For Exam 2011 Computer Science
com
COMPUTER SCIENCE
WITH C++
FOR CBSE CLASS 12
Part -I
[Structure, Class and Object, Constructor and Destructor,
Inheritance, File Handling, Pointer, Array, Data Structure and
class 11th revision tour]
www.cppforschool.com
CONTENTS
STRUCTURE .............................................................................................................................................................................. 3
typedef .......................................................................................................................................................................................... 5
Enumerated data type ............................................................................................................................................................... 5
#define preprocessor directive............................................................................................................................................... 6
Macros .......................................................................................................................................................................................... 6
Assignment............................................................................................................................................................ 6
OOP CONCEPTS ....................................................................................................................................................................... 7
CLASSES & OBJECTS ....................................................................................................................................................... 8
Assignment ............................................................................................................................................................................ 8
CONSTRUCTOR AND DESTRUCTOR ..................................................................................................................... 9
Assignment .......................................................................................................................................................................... 10
INHERITANCE .................................................................................................................................................................... 11
Assignment .......................................................................................................................................................................... 12
DATA FILE HANDLING IN C++................................................................................................................................. 13
BASIC OPERATION ON TEXT FILE IN C++ ............................................................................................................. 15
Assignment Text File ....................................................................................................................................................... 17
BASIC OPERATION ON BINARY FILE IN C++ ........................................................................................................ 18
Assignment binary file ...................................................................................................................................................... 20
ARRAY ....................................................................................................................................................................................... 21
Assignment .......................................................................................................................................................................... 27
POINTER................................................................................................................................................................................... 28
Assignment .......................................................................................................................................................................... 31
DATA STRUCTURE .............................................................................................................................................................. 32
STATIC STACK.................................................................................................................................................................... 32
STATIC CIRCULAR QUEUE ............................................................................................................................................ 34
DYNAMIC STACK............................................................................................................................................................... 35
DYNAMIC QUEUE.............................................................................................................................................................. 37
Assignment .......................................................................................................................................................................... 39
C++ BASIC CONCEPTS (REVISION TOUR OF CLASS 11)...................................................................................... 40
LIBRARY FUNCTION ............................................................................................................................................................ 42
Assignment .......................................................................................................................................................................... 45
2 www.cppforschool.com
STRUCTURE
A structure is a collection of variable which can be same or different types. You can refer to a
structure as a single variable, and to its parts as members of that variable by using the dot (.)
operator. The power of structures lies in the fact that once defined, the structure name becomes a
user-defined data type and may be used the same way as other built-in data types, such as int,
double, char.
struct STUDENT
{
int rollno, age;
char name[80];
float marks;
};
void main()
{
Defining a structure
When dealing with the students in a school, many variables of different types are needed. It may
be necessary to keep track of name, age, Rollno, and marks point for example.
struct STUDENT
{
int rollno, age;
char name[80];
float marks;
};
STUDENT is called the structure tag, and is your brand new data type, like int, double or char.
rollno, name, age, and marks are structure members.
3 www.cppforschool.com
The most efficient method of dealing with structure variables is to define the
structure globally. This tells "the whole world", namely main and any functions in the program,
that a new data type exists. To declare a structure globally, place it BEFORE void main(). The
structure variables can then be defined locally in main, for example…
struct STUDENT
{
int rollno, age;
char name[80];
float marks;
};
void main()
{
// declare two variables of the new type
STUDENT s1, s3;
………
}
struct DAY
{
int month, date, year;
};
struct STUDENT
{
int rollno, age;
char name[80];
day date_of_birth;
float marks;
};
typedef
It is used to define new data type for an existing data type. It provides and alternative name for
standard data type. It is used for self documenting the code by allowing descriptive name for the
standard data type.
The general format is:
typedef existing datatype new datatype
for example:
typedef float real;
Now, in a program one can use datatype real instead of float.
Therefore, the following statement is valid:
real amount;
5 www.cppforschool.com
It is user defined.
It works if you know in advance a finite list of values that a data type can take.
The list cannot be input by the user or output on the screen.
Macros
Macros are built on the #define preprocessor. Normally a macro would look like:
#define square(x) x*x
Its arguments substituted for replacement text, when the macro is expanded.
ASSIGNMENT
QUESTION 1.
Give the output of the following program
#include<iostream.h>
struct Pixel
{
int C,R;
};
void Display(Pixel P)
{
cout<<"Col”<<P.C<<"Row"<<P.R<<endl;
}
void main()
{
Pixel X={40,50},Y,Z;
Z=X;
X.C+=10;
Y=Z;
Y.C+=10;
Y.R+=20;
Z.C-=15;
Display(X);
Display(Y);
Display(Z);
}
6 www.cppforschool.com
OOP CONCEPTS
7 www.cppforschool.com
CLASSES & OBJECTS
A CLASS is an expanded concept of a data structure: instead of holding only data, it can hold
both data and functions. An OBJECT is an instantiation of a class. In terms of variables, a class
would be the type, and an object would be the variable. Classes are generally declared using the
keyword class, with the following format:
class class_name
{
access_specifier_1:
member1;
access_specifier_2:
member2;
...
}object_names;
Where class_name is a valid identifier for the class, object_names is an optional list of names for
objects of this class. The body of the declaration can contain members, that can be either data or
function declarations, and optionally access specifiers.
An access specifier is one of the following three keywords: private, public or protected. These
specifiers modify the access rights that the members following them acquire:
private members of a class are accessible only from within other members of the same class or
from their FRIENDS.
protected members are accessible from members of their same class and from their friends, but
also from members of their derived classes.
Finally, public members are accessible from anywhere where the object is visible.
By default, all members of a class declared with the class keyword have private access for all its
members. Therefore, any member that is declared before one other class specifier automatically
has private access.
ASSIGNMENT
QUESTION 2
Define a class student with the following specification
Private members of class student
admno integer
sname 20 character
eng. math, science float
total float
ctotal() a function to calculate eng + math + science with float return type.
Public member function of class student
Takedata() Function to accept values for admno, sname, eng, science and
invoke ctotal() to calculate total.
Showdata() Function to display all the data members on the screen.
8 www.cppforschool.com
CONSTRUCTOR AND DEST RUCTOR
CONSTRUCTOR
It is a member function having same name as it‟s class and which is used to initialize the objects
of that class type with a legal initial value. Constructor is automatically called when object is
created.
Types of Constructor
student :: student(int r)
{
rollno=r;
}
Copy Constructor-: A constructor that initializes an object using values of another object
passed to it as parameter, is called copy constructor. It creates the copy of the passed object.
DESTRUCTOR
A destructor is a member function having sane name as that of its class preceded by ~(tilde) sign
and which is used to destroy the objects that have been created by a constructor. It gets invoked
when an object‟s scope is over.
~student() { }
9 www.cppforschool.com
ASSIGNMENT
QUESTION 3
Answer the questions (i) and (ii) after going through the following class:
class Exam
{
int Marks;
char Subject[20];
public:
Exam () //Function 1
{
Marks = 0;
strcpy (Subject,”Computer”);
}
Exam(char S[]) //Function 2
{
Marks = 0;
strcpy(Subject,S);
}
Exam(int M) //Function 3
{
Marks = M;
strcpy(Subject,”Computer”);
}
Exam(char S[], int M) //Function 4
{
Marks = M;
strcpy (Subject,S);
}
~Exam() //Function 6
{}
};
(i) Write statements in C++ that would execute Function 3 and Function 4 of class Exam.
(ii) Which feature of Object Oriented Programming is demonstrated using Function 1, Function
2, Function 3 and Function 4 in the above class Exam?
iii) In Object Oriented Programming, what is Function 6 referred as and when does it get
invoked/called?
iv) Which category of constructor - Function 5 belongs to? Write complete definition of it.
10 www.cppforschool.com
INHER ITANCE
Inheritance: It is the capability of one class to inherit properties from another class.
Base Class: It is the class whose properties are inherited by another class. It is also called Super
Class.
Derived Class: It is the class that inherit properties from base class(es).It is also called Sub
Class.
FORMS OF INHERITANCE
Single Inheritance: It is the inheritance hierarchy wherein one derived class inherits from one
base class.
Multiple Inheritance: It is the inheritance hierarchy wherein one derived class inherits from
multiple base class(es)
Hierarchical Inheritance: It is the inheritance hierarchy wherein multiple subclasses inherits
from one base class.
Multilevel Inheritance: It is the inheritance hierarchy wherein subclass acts as a base class for
other classes.
Hybrid Inheritance: The inheritance hierarchy that reflects any legal combination of other four
types of inheritance.
Visibility Mode:It is the keyword that controls the visibility and availability of inherited base
class members in the derived class.It can be either private or protected or public.
Private Inheritance: It is the inheritance facilitated by private visibility mode.In private
inheritance ,the protected and public members of base class become private members of
the derived class.
Public Inheritance:It is the inheritance facilitated by public visibility mode. In public
inheritance ,the protected members of base class become protected members of the derived
class and public members of the base class become public members of derived class.
11 www.cppforschool.com
Protected Inheritance:It is the inheritance facilitated by protected visibility mode. In protected
inheritance ,the protected and public members of base class become protected members of
the derived class.
ASSIGNMENT
QUESTION 4
Answer the questions (i) to (iv) based on the following:
class PUBLISHER
{
char Pub[12];
double Turnover;
protected:
void Register();
public:
PUBLISHER();
void Enter();
void Display();
};
class BRANCH
{
char CITY[20];
protected:
float Employees;
public:
BRANCH();
void Haveit();
void Giveit();
};
class AUTHOR : private BRANCH, public PUBLISHER
{
int Acode;
char Aname[20];
float Amount;
public:
AUTHOR();
void Start();
void Show();
};
i) Write the names of data members, which are accessible from objects belonging to class
AUTHOR.
12 www.cppforschool.com
ii) Write the names of all the member functions which are accessible from objects belonging to
class AUTHOR.
iii) Write the names of all the members which are accessible from member functions of class
AUTHOR.
iv) How many bytes will be required by an object belonging to class AUTHOR?
Opening a file
ifstream IFILE;
IFILE.open(“DATA2.TXT”);
File mode parameter Meaning
ios::app Append to end of file
ios::ate go to end of file on opening
ios::binary file open in binary mode
ios::in open file for reading only
ios::out open file for writing only
All these flags can be combined using the bitwise operator OR (|). For example, if we want to
open the file example.bin in binary mode to add data we could do it by the following call to
member function open():
13 www.cppforschool.com
fstream FILE;
FILE.open ("EXAMPLE.BIN", ios::out | ios::app | ios::binary);
CLOSING FILE
FOUT.close();
FIN.close();
All i/o streams objects have, at least, one internal stream pointer:
ifstream, like istream, has a pointer known as the get pointer that points to the element to be read
in the next input operation.
ofstream, like ostream, has a pointer known as the put pointer that points to the location where
the next element has to be written.
Finally, fstream, inherits both, the get and the put pointers, from iostream (which is itself derived
from both istream and ostream).
These internal stream pointers that point to the reading or writing locations within a stream can
be manipulated using the following member functions:
seekg() moves get pointer(input) to a specified location
14 www.cppforschool.com
The parameter offset represents the number of bytes the file pointer is to be moved from the
location specified by the parameter refposition. The refposition takes one of the following three
constants defined in the ios class.
ios::beg start of the file
ios::cur current position of the pointer
ios::end end of the file
example:
FILE.seekg(-10, ios::cur);
#include<fstream.h>
int main()
{
ofstream fout;
fout.open("out.txt");
char str[300]="Time is a great teacher but unfortunately it kills all its pupils. Berlioz";
fout<<str;
fout.close();
return 0;
}
#include<fstream.h>
#include<conio.h>
int main()
{
ifstream fin;
fin.open("out.txt");
char ch;
while(!fin.eof())
{
fin.get(ch);
cout<<ch;
}
fin.close();
getch();
return 0;
}
#include<fstream.h>
#include<conio.h>
int main()
{
ifstream fin;
fin.open("out.txt");
char word[30]; int count=0;
while(!fin.eof())
{
fin>>word;
count++;
}
cout<<"Number of words in file is "<<count;
fin.close();
getch();
return 0;
}
#include<fstream.h>
#include<conio.h>
int main()
16 www.cppforschool.com
{
ifstream fin;
fin.open("out.txt");
char str[80]; int count=0;
while(!fin.eof())
{
fin.getline(str,80);
count++;
}
cout<<"Number of lines in file is "<<count;
fin.close();
getch();
return 0;
}
#include<fstream.h>
int main()
{
ifstream fin;
fin.open("out.txt");
ofstream fout;
fout.open("sample.txt");
char ch;
while(!fin.eof())
{
fin.get(ch);
fout<<ch;
}
fin.close();
return 0;
}
QUESTION 5. Write a function to count number of words in a text file named "OUT.TXT"
QUESTION 6. Write a function in C++ to print the count of word the as an independent word in
a text file STORY.TXT.
for example, if the content of the file STORY.TXT is
There was a monkey in the zoo. The monkey was very naughty.
17 www.cppforschool.com
QUESTION 7. Write a function in C++ to count and display the number of lines not starting
with alphabet 'A' present in a text file "STORY.TXT".
Example:
If the file "STORY.TXT" contains the following lines,
The rose is red.
A girl is playing there.
There is a playground.
An aeroplane is in the sky.
Numbers are not allowed in the password.
class student
{
int admno;
char name[20];
public:
void getdata()
{
cout<<"\nEnter The admission no. ";
cin>>admno;
cout<<"\n\nEnter The Name of The Student ";
gets(name);
}
void showdata()
{
cout<<"\nAdmission no. : "<<admno;
cout<<"\nStudent Name : ";
puts(name);
}
int retadmno()
{
return admno;
}
};
18 www.cppforschool.com
function to write in a binary file
void write_data()
{
student obj;
ofstream fp2;
fp2.open("student.dat",ios::binary|ios::app);
obj.getdata();
fp2.write((char*)&obj,sizeof(obj));
fp2.close();
}
void display()
{
student obj;
ifstream fp1;
fp1.open("student.dat",ios::binary);
while(fp1.read((char*)&obj,sizeof(obj)))
{
obj.showdata();
}
}
fp.close();
}
19 www.cppforschool.com
ASSIGNMENT BINARY FILE
QUESTION 8.
Given a binary file STUDENT.DAT, containing records of the following class Student type
class Student
{
char S_Admno[lO]; //Admission number of student
char S_Name[30]; //Name of student
int Percentage; //Marks Percentage of student
public:
void EnterData()
{
gets(S_Admno);
gets(S_Name);
cin>>Percentage;
}
void DisplayData()
{
cout<<setw(12)<<S_Admno;
cout<<setw(32)<<S_Name;
cout<<setw(3)<<Percentage<<endl;
}
int ReturnPercentage()
{return Percentage;}
};
b) Write a function in C++, that would read contents of file STUDENT.DAT and display the
details of those Students whose Percentage is above 75.
20 www.cppforschool.com
ARRAY
An array is a collection of data elements of same data type. It is described by a single name and
each element of an array is referenced by using array name and its subscript no.
Declaration of Array
Type arrayName[numberOfElements];
For example,
int Age[5] ;
An array can be initialized along with declaration. For array initialization it is required to place
the elements separated by commas enclosed within braces.
int A[5] = {11,2,23,4,15};
It is possible to leave the array size open. The compiler will count the array size.
int B[] = {6,7,8,9,15,12};
Referring to Array Elements
In any point of a program in which an array is visible, we can access the value of any of its
elements individually as if it was a normal variable, thus being able to both read and modify its
value. The format is as simple as:
name[index]
Examples:
cout<<age[4]; //print an array element
age[4]=55; // assign value to an array element
cin>>age[4]; //input element 4
Arrays as Parameters
At some moment we may need to pass an array to a function as a parameter. In C++ it is not
possible to pass a complete block of memory by value as a parameter to a function, but we are
allowed to pass its address.
21 www.cppforschool.com
For example, the following function:
void print(int A[])
accepts a parameter of type "array of int" called A.
In order to pass to this function an array declared as:
int arr[20];
we need to write a call like this:
print(arr);
22 www.cppforschool.com
Function to Search for an element from A by Linear Search
24 www.cppforschool.com
}
}
Function to multiply two dimensional arrays A and B of order NxL and LxM
void Multiply(int A[][20], int B[][20], int C[][20],int N, int L, int M)
{
for(int R=0;R<N;R++)
for(int C=0;C<M;C++)
{
C[R][C]=0;
for(int T=0;T<L;T++)
25 www.cppforschool.com
C[R][C]+=A[R][T]*B[T][C];
}
}
Function to find & display sum of rows & sum of cols. of a 2 dim. array A
void SumRowCol(int A[][20], int N, int M)
{
for(int R=0;R<N;R++)
{
int SumR=0;
for(int C=0;C<M;C++)
SumR+=A[R][C];
cout<<"Row("<<R<<")="<<SumR<<endl;
}
for(int R=0;R<N;R++)
{
int SumR=0;
for(int C=0;C<M;C++)
SumR+=A[R][C];
cout<<"Row("<<R<<")="<<SumR<<endl;
}
}
26 www.cppforschool.com
Address Calculation of 2D array
ROW MAJOR
LOC (A[I][J]) = BASE(A) + W*[C*(I-LBI) + (J-LBJ)]
LOC (A[I][J]) = BASE(A) + W*[C*I + J]
COLUMN MAJOR
LOC (A[I][J]) = BASE(A) + W*[R*(J-LBJ) + (I-LBI)]
LOC (A[I][J]) = BASE(A) + W*[R*J + I]
ASSIGNMENT
QUESTION 9. Write a function in C++ which accepts an integer array and its size as
arguments/parameters and exchanges the values of first half side elements with the second half
side elements of the array.
Example:
If an array of eight elements has initial content as
2,4,1,6,7,9,23,10
The function should rearrange the array as
7,9,23,10,2,4,1,6
QUESTION 10. Write a function in C++ which accepts a 2D array of integers and its size as
arguments and displays the elements of middle row and the elements of middle column.
[Assuming the 2D Array to be a square matrix with odd dimension i.e. 3x3, 5x5, 7x7 etc...]
Example, if the array contents is
3 5 4
7 6 9
2 1 8
Output through the function should be:
Middle Row : 7 6 9
Middle column : 5 6 1
QUESTION 11. An array P[20][30] is stored in the memory along the column with each of the
element occupying 4 bytes, find out the memory location for the element P[5][15], if an element
P[2][20] is stored at the memory location 5000.
QUESTION 12. An array P[20][30] is stored in the memory along the row with each of the
element occupying 4 bytes, find out the memory location for the element P[5][15], if an element
P[2][20] is stored at the memory location 5000.
27 www.cppforschool.com
POINTER
POINTER
A pointer is a variable that holds a memory address, usually the location of another variable in
memory.
Defining a Pointer Variable
int *iptr;
iptr can hold the address of an int
Pointer Variables Assignment:
int num = 25;
int *iptr;
iptr = #
Pointer Arithmetic
Some arithmetic operators can be used with pointers:
- Increment and decrement operators ++, --
28 www.cppforschool.com
- Integers can be added to or subtracted from
pointers using the operators +, -, +=, and -=
Each time a pointer is incremented by 1, it points to the memory location of the next element of
its base type.
If “p” is a character pointer then “p++” will increment “p” by 1 byte.
If “p” were an integer pointer its value on “p++” would be incremented by 2 bytes.
29 www.cppforschool.com
A pointer can be a parameter. It works like a reference parameter to allow change to argument
from within function
Pointers as Function Parameters
void swap(int *x, int *y)
{
int temp;
temp = *x;
*x = *y;
*y = temp;
}
swap(&num1, &num2);
Pointers to Structures
We can create pointers to structure variables
struct Student {int rollno; float fees;};
Student stu1;
Student *stuPtr = &stu1;
(*stuPtr).rollno= 104;
-or-
Use the form ptr->member:
stuPtr->rollno = 104;
Free store
Free store is a pool of unallocated heap memory given to a program that is used by the program
for dynamic allocation during execution.
30 www.cppforschool.com
We can allocate storage for a variable while program is running by using new operator
To allocate memory of type integer
int *iptr=new int;
To allocate array
double *dptr = new double[25];
To allocate dynamic structure variables or objects
Student sptr = new Student; //Student is tag name of structure
Memory Leak
If the objects, that are allocated memory dynamically, are not deleted using delete, the memory
block remains occupied even at the end of the program. Such memory blocks are known as
orphaned memory blocks. These orphaned memory blocks when increase in number, bring
adverse effect on the system. This situation is called memory leak
ASSIGNMENT
31 www.cppforschool.com
void ChangeString(char Text[], int &Counter)
{
char *Ptr = Text;
int Length = strlen (Text);
for ( ;Counter<Length-2; Counter+=2, Ptr++)
{
* (Ptr + Counter) = toupper( * (Ptr + Counter) );
}
}
void main()
{
clrscr();
int Position = 0;
char Message[] = “Pointers Fun”;
ChangeString (Message, Position);
cout<<Message<<“ @ “<<Position;
}
DATA STRUCTURE
STATIC STACK
#include<iostream.h>
#include<conio.h>
#define size 4
class stack
{
int data[size];
int top;
public:
stack()
{
top=-1;
}
void push();
void pop();
void display();
};
32 www.cppforschool.com
void stack::push()
{
if(top==size-1)
{
cout<<"\nStack is full";
return;
}
else
{
top++;
cout<<"Enter Data : ";
cin>>data[top];
}
}
void stack::pop()
{
if(top==-1)
cout<<"\n Stack is empty";
else
{
cout<<data[top]<<"deleted "<<endl;
top--;
}
}
void stack::display()
{
int t=top;
while(t>=0)
{
cout<<data[t]<<endl;
t--;
}
}
void main()
{
stack st;
int ch;
do
{
cout<<"\n1. Push\n2. Pop\n3. Display \n4.Quit\nEnter Choice(1-4) ";
cin>>ch;
switch(ch)
{
33 www.cppforschool.com
case 1: st.push();break;
case 2: st.pop();break;
case 3: st.display();
}
}while(ch!=4);
}
#include<iostream.h>
#include<conio.h>
#define size 4
class cqueue
{
int data[size];
int front,rear;
public:
cqueue()
{
front=-1;rear=-1;
}
void insert();
void remove();
};
void cqueue::insert()
{
if(rear==size-1&&front==0 || front==rear+1)
{
cout<<"\nCircular queue is full";
return;
}
else if(rear==-1)
{
rear++;
front++;
}
else if(rear==size-1)
rear=0;
else
rear++;
cout<<"Enter Data : ";
cin>>data[rear];
}
34 www.cppforschool.com
void cqueue::remove()
{
if(front==-1)
{
cout<<"\n Circular Queue is empty";return;
}
cout<<data[front]<<" deleted"<<endl;
if(front==rear)
{
front=-1;rear=-1;
}
else if(front==size-1)
front=0;
else
front++;
}
void main()
{
cqueue cq;
int ch;
do
{
cout<<"\n1. Insert\n2. Remove\n3. Quit\nEnter Choice(1-3) ";
cin>>ch;
switch(ch)
{
case 1: cq.insert();break;
case 2: cq.remove();break;
}
}while(ch!=3);
}
DYNAMIC STACK
Stack is a linear data structure in which insertion and deletion of elements takes place only one
end known as TOP.
#include<iostream.h>
#include<conio.h>
35 www.cppforschool.com
struct node
{
int data;
node *next;
};
class stack
{
node *top;
public :
stack()
{ top=NULL;}
void push();
void pop();
void display();
~stack();
};
void stack::push()
{
node *temp;
temp=new node;
cout<<"Enter data :";
cin>>temp->data;
temp->next=top;
top=temp;
}
void stack::pop()
{
if(top!=NULL)
{
node *temp=top;
top=top->next;
cout<<temp->data<<"deleted";
delete temp;
}
else
cout<<"Stack empty";
}
void stack::display()
{
node *temp=top;
while(temp!=NULL)
{
36 www.cppforschool.com
cout<<temp->data<<" ";
temp=temp->next;
}
}
stack::~stack()
{
while(top!=NULL)
{
node *temp=top;
top=top->next;
delete temp;
}
}
void main()
{
stack st;
char ch;
do
{
cout<<"stack options\nP for push \nO for Pop \nD for Display \nQ for quit";
cin>>ch;
switch(ch)
{
case 'P': st.push();break;
case 'O': st.pop();break;
case 'D': st.display();break;
}
}while(ch!='Q');
}
DYNAMIC QUEUE
Queue is a linear data structure in which insertion and deletion of elements takes place from two
opposite ends rear and front respectively.
#include<iostream.h>
#include<conio.h>
struct node
{
int data;
node *next;
};
37 www.cppforschool.com
class queue
{
node *rear,*front;
public:
queue()
{ rear=NULL;front=NULL;}
void qinsert();
void qdelete();
void qdisplay();
~queue();
};
void queue::qinsert()
{
node *temp;
temp=new node;
cout<<"Data :";
cin>>temp->data;
temp->next=NULL;
if(rear==NULL)
{
rear=temp;
front=temp;
}
else
{
rear->next=temp;
rear=temp;
}
}
void queue::qdelete()
{
if(front!=NULL)
{
node *temp=front;
cout<<front->data<<"deleted \n";
front=front->next;
delete temp;
if(front==NULL)
rear=NULL;
}
else
cout<<"Queue Empty..";
}
38 www.cppforschool.com
void queue::qdisplay()
{
node *temp=front;
while(temp!=NULL)
{
cout<<temp->data<<endl;
temp=temp->next;
}
}
queue::~queue()
{
while(front!=NULL)
{
node *temp=front;
front=front->next;
delete temp;
}
}
void main()
{
queue obj; char ch;
do
{
cout<< "i. insert\nd. Delete\ns. Display\n q. quit ";
cin>>ch;
switch(ch)
{
case 'i' : obj.qinsert();break;
case 'd' : obj.qdelete();break;
case 's' : obj.qdisplay();
}
}while(ch!='q');
}
ASSIGNMENT
QUESTION 15. Evaluate the following postfix expression using a stack and show the contents
of stack after execution of each operation :
50,40,+,18, 14,-, *
39 www.cppforschool.com
C++ BASIC CONCEPTS (REVISION TOUR OF CLASS 11)
40 www.cppforschool.com
Question : What is the effect of absence of break in switch case statement in C++ ?
Answer : The break keyword causes the entire switch statement to exit, and the control is passed
to statement following the switch.. case construct. Without break, the control passes to the
statements for the next case. The break statement is optional in switch..case construct.
Question : In a control structure switch-case what is the purpose of default in C++ ?
Answer : This keyword gives the switch…case construct a way to take an action if the value of
the switch variable does not match with any of the case constants. No break statement is
necessary after default case, since the control is already at the end of switch..case construct. The
default is optional in case of switch…case construct.
Question : What is the difference between while and do-while loop in C++ ?
Answer : While is an Entry Controlled Loop, the body of the loop may not execute even once if
the test expression evaluates to be false the first time, whereas in do..while, the loop is executed
at least once whether the condition holds true the first time or not.
Question : What is the difference between call by value and call by reference in a user defined
function in C++?
Answer : The value of the actual parameters in the calling function do not get affected when the
arguments are passed using call by value method, since actual and formal parameters have
different memory locations.
The values of the formal parameters affect the values of actual parameters in the calling function,
when the arguments are passed using call by reference method. This happens since the formal
parameters are not allocated any memory, but they refer to the memory locations of their
corresponding actual parameters
Question : What is preprocessor directive?
Answer : A preprocessor directive is an instruction to the complier itself. A part of compiler
called preprocessor deals with these directives, before real compilation process. # is used as
preprocessor directive in C++.
Question : What is the difference between local variable and global variable?
Answer : Local variables are those variables which are declared within a function or a
compound statement and these variables can only be used within that function/scope. They
cannot be accessed from outside the function or a scope of it‟s declaration. This means that we
can have variables with the same names in different functions/scope. Local variables are local to
the function/scope in which they are declared.
Global variables are those variables which are declared in the beginning of the program. They
are not declared within a function. So, these variables can be accessed by any function of the
program. So, global variables are global to all the functions of the program.
Question : What is the role of #define in C++?
Answer : It is a preprocessor directive to define a macro in a C++ program. Macros provide a
mechanism for token replacement with or without a set of formal, function line parameters. For
example :
#define PIE 3.1416
#define AVG(A,B,C) (A+B+C)/3
41 www.cppforschool.com
Question : What are the major differences between Object Oriented Programming and
Procedural Programming?
Concept of Data hiding prevents accidental Due to presence of global variables, there is
change in the data possibilities of accidental change in data.
LIBRARY FUNCTION
# Include Directive
The # include directive instructs the compiler to read and include another file in the current file.
The compiler compiles the entire code. A header file may be included in one of two ways.
include <iostream.h>
or
include "iostream.h"
The header file in angle brackets means that file reside in standard include directory. The header
file in double quotes means that file reside in current directory.
LIBRARY FUNCTION
C++ provides many built in functions that saves the programming time
Mathematical Functions
Some of the important mathematical functions in header file math.h are
Function Meaning
42 www.cppforschool.com
exp(x) Exponential function of x (ex)
log(x) logarithm of x
Character Functions
All the character functions require ctype.h header file. The following table lists the function.
Function Meaning
String Functions
The string functions are present in the string.h header file. Some string functions are given
below:
43 www.cppforschool.com
hold S2.
strcmp((S1, S2)==0)
strcmp((S1, S2)>0) It compares S1 and S2 and finds out whether
strcmp((S1, S2) <0) S1 equal to S2, S1 greater than S2 or S1 less
than S2.
strcmpi((S1, S2)==0)
strcmpi((S1, S2)>0) It compares S1 and S2 ignoring case and
strcmpi((S1, S2) <0) finds out whether S1 equal to S2, S1 greater
than S2 or S1 less than S2.
strrev(s) It converts a string s into its reverse
44 www.cppforschool.com
Some More Functions
The getch() and getche() functions
The general for of the getch() and getche() is
ch=getche();
ch1=getch();
ch and ch1 are the variables of type character. They take no argument and require
the conio.h header file. On execution, the cursor blinks, the user must type a character and press
enter key. The value of the character returned from getche() is assigned to ch. The getche()
fuction echoes the character to the screen. Another function, getch(), is similar to getche() but
does not echo character to the screen.
ASSIGNMENT
QUESTION 16.
Observe the following program SCORE.CPP carefully, if the value of Num entered
by the user is 5, choose the correct possible output(s) from the options from (i) to
(iv), and justify your option. 2
//program : SCORE.CPP
#include<stdlib.h>
#include<iostream.h>
void main()
{
randomize ();
int Num, Rndnum;
cin>>Num;
Rndnum = random (Num) + 5;
for (int N = 1; N<=Rndnum; N++)
cout<<N<<“ “;
}
Output Options:
(i) 1 2 3 4
(ii) 1 2
(iii) 1 2 3 4 5 6 7 8 9
(iv) 1 2 3
SOLUTION OF ASSIGNMENTS
Solution of Question 1.
Col50Row50
Col50Row70
Col25Row50
Solution of Question 2.
class student
{
int admno;
char sname[20];
float eng, math, science, total;
float ctotal()
{
return eng+math+science;
}
public :
void Takedata()
{
cout<<"Enter admission number ";
cin>>admno;
cout<<"Enter student name";
gets(sname);
cout<<"Enter marks in english, maths and science ";
cin>>eng>>math>>science;
total=ctotal();
}
void Showdata()
{
cout<<"\nAdmission number "<<admno<<"\nStudent Name "<<sname<<"\nMarks
in english "<<eng<<"\nMath "<<math<<"\nScience "<<science<<"\nTotal "<<total;
}
};
Solution of Question 3.
46 www.cppforschool.com
i) Exam obj(98);
Exam obj("Maths",89);
iii) Destructor. It invokes automatically when object goes out of its scope.
Exam::Exam(Exam &T)
{
Marks = T.Marks;
strcpy(Subject,T.subject);
}
Solution of Question 4.
iii) void Register(), void Enter(), void Display(), float Employees, void Haveit(), void Giveit(), int
Acode, char Aname[20], float Amount, void Start(), void Show()
iv) 70
Solution of Question 5.
void countword()
{
int count=0;
char word[30];
ifstream fin;
fin.open("OUT.TXT");
while(!fin.eof())
{
fin>>word;
count++;
}
cout<<"The number of words in files are "<<count;
fin.close();
}
Solution of Question 6.
void countthe()
{
int count=0;
char word[30];
47 www.cppforschool.com
ifstream fin;
fin.open("STORY.TXT");
while(!fin.eof())
{
fin>>word;
if(strcmpi(word,"the")==0)
count++;
}
cout<<"The number of word in files are "<<count;
fin.close();
}
Solution of Question 7.
void countline()
{
int count=0;
char str[80];
ifstream fin;
fin.open("STORY.TXT");
while(!fin.eof())
{
fin.getline(str,80);
if(str[0]=='A')
count++;
}
cout<<"The number of lines starting with A are "<<count;
fin.close();
}
Solution of Question 8.
void addrecord()
{
ofstream ofile;
ofile.open("STUDENT.DAT",ios::binary|ios::app);
Student obj;
obj.EnterData();
ofile.write((char*)&obj,sizeof(obj));
ofile.close();
}
void displayrecord()
{
ifstream ifile;
ifile.open("STUDENT.DAT",ios::binary);
Student obj;
48 www.cppforschool.com
while(ifile.read((char*)&obj,sizeof(obj)))
{
if(obj.ReturnPercentage()>75)
obj.DisplayData();
}
ifile.close();
}
Solution of Question 9.
49 www.cppforschool.com
R=20
C=30
BASE(A)=?
LOC(A[5][15]=?
W=4
I=5
J=15
R=20
C=30
BASE(A)=3392
LOC (A[I][J])= BASE(A) + W*[R*J + I]
=3392 + 4*[20*15 + 5]
=3392 + 4*305
=3392+1220
=4612
50 www.cppforschool.com
LOC(A[5][15]=?
W=4
I=5
J=15
R=20
C=30
BASE(A)=4680
LOC (A[I][J]) = BASE(A) + W*[C*I + J]
=4680 + 4*[30*5 + 15]
=4680 + 4*165
=4680+660
=5340
PoiNteRs Fun @ 10
( ( PUSH
A ( A
+ (+ PUSH A
B (+ AB
) POP AB+
* * PUSH AB+
C * AB+C
+ + PUSH,POP AB+C*
D + AB+C*D
/ +/ PUSH AB+C*D
E +/ AB+C*DE
- +- PUSH,POP AB+C*DE/
F +- AB+C*DE/F
EMPTY POP AB+C*DE/F-+
51 www.cppforschool.com
Solution of Question 15.
20 PUSH 20 20
30 PUSH 30 20,30
+ POP 30, 20+30=50
POP 20
PUSH 50 50
50 PUSH 50 50,50
40 PUSH 40 50,50,40
- POP 40, 50-40=10
POP 50
PUSH 10 50,10
* POP 10, 50*10=500
POP 50
PUSH 500 500
POP 500
Ans : 500
cOmmUTee
52 www.cppforschool.com