File Handling - Binary File
[SET – 1]

Question 1

Assuming the class EMPLOYEE given below, write functions in C++ to perform following:
(i) Write the objects of EMPLOYEE to a binary file.
(ii) Read the objects of EMPLOYEE from binary file and display them on screen.
class EMPLOYEE
{
            int ENO;
            char ENAME[10];
            public :
            void GETIT()
            {
                        cin >> ENO;
                        gets (ENAME);
            }
            void SHOWIT()
           {
                        cout <<ENO << ENAME <<endl;
            }
};

Question 2

Assuming the class Computer as follows :
class computer
{
            char chiptype[10];
            int speed;
            public:
                        void getdetails()
                        {
                                    gets(chiptype);
                                    cin>>speed;
                        }
                        void showdetails()
                        {
                                    cout << “Chip” << chiptype << “ Speed = “ << speed;
                        }
};
Write a function readfile( ) to read all the records present in an already existing binary file SHIP.DAT and display them on the screen, also count the number of records present in the file.

Question 3

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;}
};
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.

Question 4

Observe the program segment given below carefully and fill the blanks marked as Statement 1 and Statement 2 using seekg() and tellg() functions for performing the required task.

#include <fstream.h>
class Employee
{
            int Eno;
            char Ename[20];
            public:
            //Function to count the total number of records
            int Countrec();
};

int Item::Countrec()
{
            fstream File;
            File.open("EMP.DAT", ios::binary | ios::in);
            __ ___ ____ ___ __ //Statement 1
            int Bytes =___ __ __ _ //Statement 2
            int Count = Bytes / sizeof(Item);
            File.close();
            return Count;
}

Question 5

Write a function in C++ to add new objects at the bottom of a binary file "STUDENT.DAT", assuming the binary file is containing the objects of the following class.
class STUD
{
            int Rno;
            char Name[20];
            public:
            void Enter()
            {cin >> Rno; gets(Name); }
            void Display()
            {cout << Rno << Name << endl;}
};

Question 6

Observe the program segment given below carefully and fill the blanks marked as Statement 1 and Statement 2 using seekp() and seekg() functions for performing the required task.
#include <fstream.h>
class Item
{
            int Ino;
            char Item[20];
            public:
            //Function to search and display the content from a particular record number
            void Search(int );
           //Function to modify the content of a particular record number
            void Modify(int);
 };

 void Item::Search(int RecNo)
{
            fstream File;
            File.open( “STOCK.DAT”, ios::binary | ios::in);
            ___ ___ ____ ___ //Statement 1
            File.read((char*)this, sizeof(Item));
            cout << Ino << ”==> ” << Item << endl;
            File.close();
}

void Item::Modify(int RecNo)
{
            fstream File;
            File.open( “STOCK.DAT”, ios::binary | ios::in | ios::out);
            cin>>Ino;
            cin.getline(Item, 20);
            ___ ____ ____ ____ //Statement 2
            File.write( (char*)this, sizeof(Item));
            File.close();
}