Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Fs Lab Manual

Download as pdf or txt
Download as pdf or txt
You are on page 1of 57

Dayananda Sagar Academy of Technology & Management

Opp. Art of living, Udayapura, Kanakapura road, Bengaluru- 082


(Affiliated to VTU, Belagavi & Approved by AICTE, New Delhi)

Department of Information Science & Engineering


(Accredited 3 years by NBA, New Delhi (Validity: 26-07-2018 to 30-06-2021))

2018-2019
File Structures Laboratory with Mini Project
Laboratory Manual
15ISL68

Compiled by:

Mr. Babu Kumar S (Assistant Professor)

Mr. Karthik S A (Assistant Professor)


TABLE OF CONTENTS
SL. Page
Lab Experiments
No. No.
Write a program to read series of names, one per line, from standard input and 1
write these names spelled in reverse order to the standard output using I/O
1. redirection and pipes. Repeat the exercise using an input file specified by the
user instead of the standard input and using an output file specified by the user
instead of the standard output.
Write a program to read and write student objects with fixed-length records 4
2. and the fields delimited by “|”. Implement pack ( ), unpack ( ), modify ( ) and
search ( ) methods.
Write a program to read and write student objects with Variable - Length 12
3. records using any suitable record structure. Implement pack ( ), unpack ( ),
modify ( ) and search ( ) methods.
Write a program to write student objects with Variable - Length records using 20
4. any suitable record structure and to read from this file a student record using
RRN.
5. Write a program to implement simple index on primary key for a file of 25
student objects. Implement add ( ), search ( ), delete ( ) using the index.
Write a program to implement index on secondary key, the name, for a file of 33
6. student objects. Implement add ( ), search ( ), delete ( ) using the secondary
index.
Write a program to read two lists of names and then match the names in the 41
7. two lists using Consequential Match based on a single loop. Output the names
common to both the lists.
8. Write a program to read k Lists of names and merge them using k-way merge 45
algorithm with k =8.
9. Viva Questions 48
VISION OF THE INSTITUTE

To strive at creating the institution a center of highest caliber of learning, so as to create an


overall intellectual atmosphere with each deriving strength from the other to be the best of
engineers, scientists and mathematicians.
MISSION OF THE INSTITUTE
 To serve its region, state, the nation and globally by preparing students to make
meaningful contributions in an increasing complex global society.
 To encourage, reflection on and evaluation of emerging needs and priorities with state of
art infrastructure.
 To support research and services establishing enhancements in technical, health,
economic, human and cultural development.
 To establish inter disciplinary center of excellence.
 To increase the number of Doctorate holders to promote research culture on campus.

QUALITY POLICY
“We, at “Dayananda Sagar Academy of Technology and Management” are committed to
continually improve and deliver competitive quality technical education to the at most
satisfaction of student, their parents and potential employer.”

OBJECTIVES & GOALS


1. Creating an academic environment to develop the younger generation and providing
quality professional engineering education at an affordable cost.
2. Create necessary infrastructure on a continuous basis the professional education with the
changing needs of society.
3. Optimum utilization of the infrastructure and resources to achieve excellence in the
engineering courses.
4. Monitor continuously the growth in technology parts of the world and address all aspects
of development of human resource (both from academic and supporting staff) and
students to be in tune with state of the art technology and engineering practices.
5. Facilitate greater Industry, Institute, and Interaction so as to empower the students with
practical knowledge.
6. Institute various quality assurance systems.
7. Adopting learning beyond curriculum process.
8. Initiate systems of learning which are based on enable students to acquire skills relevant
to their career.
9. To continuous monitor, asses evaluate the various academic programs adopting outcome
based education.
DAYANANDA SAGAR ACADEMY OF TECHNOLOGY & MANAGEMENT
Opp. Art of Living, Udayapura, Kanakapura Road, Bangalore- 560082
(Affiliated to Visvesvaraya Technological University,Belagavi & Approved by AICTE,New Delhi)
DEPARTMENT OF INFORMATION SCIENCE AND ENGINEERING
(Accredited 3 years by NBA, New Delhi (Validity: 26-07-2018 to 30-06-2021))

VISION OF THE DEPARTMENT


Impart magnificent learning atmosphere establishing innovative practices among the students
aiming to strengthen their software application knowledge and technical skills.

MISSION OF THE DEPARTMENT


M1. Deliver quality technical training on software domain and its application.

M2. Nurture team work in order to transform individual as a responsible leader and
entrepreneur for future trends.

M3. Inculcate research practices in teaching thus ensuring research blend among students.

M4. Ensure more PhD holders in the department.

M5. Inculcate the core Information Science and Engineering practices by providing advanced
technology laboratories.

Program Educational Objectives (PEOs)

 PEO 1: Graduates shall have successful careers as Information Science Engineers and
will be able to lead & manage teams.
 PEO 2: Graduates shall be professional in engineering practice and shall demonstrate
good problem solving, communication skills and contribute to address social issues.
 PEO3: Graduates shall be pursuing advanced education, research in an excellent
environment which helps in the process of life-long learning.
 PEO4: Graduates shall have robust knowledge in software architecture and its
application domains.
Program Outcomes (POs)
PO1. Engineering knowledge: Apply the knowledge of mathematics, science, engineering
fundamentals, and an engineering specialization to the solution of complex engineering problems.
PO2. Problem analysis: Identify, formulate, review research literature, and analyze complex
engineering problems reaching substantiated conclusions using first principles of mathematics, natural
sciences, and engineering sciences.
PO3. Design/development of solutions: Design solutions for complex engineering problems and
design system components or processes that meet the specified needs with appropriate consideration
for the public health and safety, and the cultural, societal, and environmental considerations.
PO4. Conduct investigations of complex problems: Use research-based knowledge and research
methods including design of experiments, analysis and interpretation of data, and synthesis of the
information to provide valid conclusions.
PO5. Modern tool usage: Create, select, and apply appropriate techniques, resources, and modern
engineering and IT tools including prediction and modeling to complex engineering activities with an
understanding of the limitations.
PO6. The engineer and society: Apply reasoning informed by the contextual knowledge to assess
societal, health, safety, legal and cultural issues and the consequent responsibilities relevant to the
professional engineering practice.
PO7. Environment and sustainability: Understand the impact of the professional engineering
solutions in societal and environmental contexts, and demonstrate the knowledge of, and need for
sustainable development.
PO8. Ethics: Apply ethical principles and commit to professional ethics and responsibilities and
norms of the engineering practice.
PO9. Individual and team work: Function effectively as an individual, and as a member or leader in
diverse teams, and in multidisciplinary settings.
PO10. Communication: Communicate effectively on complex engineering activities with the
engineering community and with society at large, such as, being able to comprehend and write
effective reports and design documentation, make effective presentations, and give and receive clear
instructions.
PO11. Project management and finance: Demonstrate knowledge and understanding of the
engineering and management principles and apply these to one’s own work, as a member and leader
in a team, to manage projects and in multidisciplinary environments.
PO12. Life-long learning: Recognize the need for, and have the preparation and ability to engage in
independent and life-long learning in the broadest context of technological change.

\
DAYANANDA SAGAR ACADEMY OF TECHNOLOGY & MANAGEMENT
(Affiliated to Visvesvaraya Technological University,Belagavi & Approved by AICTE,New Delhi)
Opp. Art of Living, Udayapura, Kanakapura Road, Bangalore- 560082
DEPARTMENT OF INFORMATION SCIENCE AND ENGINEERING
(Accredited 3 years by NBA, New Delhi (Validity : 26-07-2018 to 30-06-2021)

SUBJECT: File Structures Laboratory with Mini Project

SUBJECT CODE: 15ISL68

SEMESTER: VI

Course Outcomes
At the end of the course the student will be able to:

CO1 Become effective and independent programmers to implement file operations.

CO2 Apply the concepts of file structure organization to produce the given application.

CO3 Evaluate performance of various file structures on given parameters.

CO4 Implementation of a file structure application.


FILE STRUCTURES LABORATORY WITH MINI PROJECT
[As per Choice Based Credit System (CBCS) scheme]
(Effective from the academic year 2016 -2017)
SEMESTER – VI
Subject Code 15ISL68 Internal 20 Marks
Number of Lecture Hours/Week 01 I + 02 P External 80 Marks
Total Lecture Hours 40 Duration of Exam 3 Hours
CREDITS – 02
Course objectives: This course will enable students to
 Apply the concepts of Unix IPC to implement a given function.
 Measure the performance of different file structures
 Write a program to manage operations on given file system.
 Demonstrate hashing and indexing techniques
Description (If any):
Design, develop, and implement the following programs
Lab Experiments:
1. Write a program to read series of names, one per line, from standard input and write these names
spelled in reverse order to the standard output using I/O redirection and pipes. Repeat the
exercise using an input file specified by the user instead of the standard input and using an
output file specified by the user instead of the standard output.
2. Write a program to read and write student objects with fixed-length records and the fields
delimited by “|”. Implement pack ( ), unpack ( ), modify ( ) and search ( ) methods.
3. Write a program to read and write student objects with Variable - Length records using any
suitable record structure. Implement pack ( ), unpack ( ), modify ( ) and search ( ) methods.
4. Write a program to write student objects with Variable - Length records using any suitable
record structure and to read from this file a student record using RRN.
5. Write a program to implement simple index on primary key for a file of student objects.
Implement add ( ), search ( ), delete ( ) using the index.
6. Write a program to implement index on secondary key, the name, for a file of student objects.
Implement add ( ), search ( ), delete ( ) using the secondary index.
7. Write a program to read two lists of names and then match the names in the two lists using
Consequential Match based on a single loop. Output the names common to both the lists.
8. Write a program to read k Lists of names and merge them using k-way merge algorithm with k
=8.
Part B --- Mini project:
Student should develop mini project on the topics mentioned below or similar applications
Document processing, transaction management, indexing and hashing, buffer management,
configuration management. Not limited to these

Course outcomes: The students should be able to:


 Implement operations related to files
 Apply the concepts of file system to produce the given application.
 Evaluate performance of various file systems on given parameters.

Conduction of Practical Examination:
1. All laboratory experiments from part A are to be included for practical examination.
2. Mini project has to be evaluated for 30 Marks as per 6(b).
3. Report should be prepared in a standard format prescribed for project work.
4. Students are allowed to pick one experiment from the lot.
5. Strictly follow the instructions as printed on the cover page of answer script.
6. Marks distribution:
a) Part A: Procedure + Conduction + Viva:10 + 35 +5 =50 Marks
b) Part B: Demonstration + Report + Viva voce = 15+10+05 = 30 Marks
7. Change of experiment is allowed only once and marks allotted to the procedure part to be made
zero.
File Structures Laboratory with Mini Project 15ISL68

1. Write a C++ program to read series of names, one per line, from standard input and
write these names spelled in reverse order to the standard output using I/O redirection
and pipes. Repeat the exercise using an input file specified by the user instead of the
standard input and using an output file specified by the user instead of the standard
output.

#include<iostream.h>
#include<conio.h>
#include<fstream.h>
#include<string.h>
#include<stdlib.h>

class student
{
public: char name[10];
} rec1[10],rec2[10];

int n;

void reads()
{
char name[10];
cout<<"enter the number of students:";
cin>>n;
cout<<"enter the student names:\n";
for(int i=0;i<n;i++)
{
cin>>rec1[i].name;
}
cout<<"reversed names\n";
for(i=0;i<n;i++)
{
strcpy(name,rec1[i].name);
strrev(name);
strcpy(rec2[i].name,name);
cout<<rec2[i].name<<"\n";
}
}

void write()
{
fstream file;
char fname[10];
cout<<"enter the filename\n";
cin>>fname;
file.open(fname,ios::out);
if(!file)
{
cout<<"could not open the file\n";
exit(1);
}
for(int i=0;i<n;i++)
{
file<<rec2[i].name<<"\n";
Dept. of ISE, DSATM 2018- 2019 1
File Structures Laboratory with Mini Project 15ISL68

}
}

void stored_names()
{
fstream f1,f2;
char fname1[10],fname2[10],name[10];
cout<<"enter the file from where you want to read\n";
cin>>fname1;
f1.open(fname1,ios::in);
if(!f1)
{
cout<<"could not open the file\n";
exit(1);
}
cout<<"enter the filename in which you want to store\n";
cin>>fname2;
f2.open(fname2,ios::out);
while(!f1.eof())
{
f1.getline(name,10,'\n');
strrev(name);
cout<<name<<"\n";
f2<<name<<"\n";
}
f1.close();
f2.close();
}

void main()
{
clrscr();
reads();
write();
stored_names();
getch();
}

Dept. of ISE, DSATM 2018- 2019 2


File Structures Laboratory with Mini Project 15ISL68

OUTPUT:

Dept. of ISE, DSATM 2018- 2019 3


File Structures Laboratory with Mini Project 15ISL68

2. Write a C++ program to read and write student objects with fixed-length records and
the fields delimited by “|”. Implement pack ( ), unpack ( ), modify ( ) and search ( )
methods.

#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
#include<iostream.h>
#include<fstream.h>
#include<string.h>

class student
{
public: char name[10];
char usn[10];
char age[5];
char sem[5];
char branch[5];
char buffer[45];
};

fstream file;
student s;
void writerecord()
{
file.open("student.txt",ios::app);
if(!file)
{
cout<<"cannot open the file in append mode";
exit(1);
}
cout<<"\nenter the student name = ";
cin>>s.name;
cout<<"\nenter the usn = ";
cin>>s.usn;
cout<<"\nenter the age = ";
cin>>s.age;
cout<<"\nenter the sem = ";
cin>>s.sem;
cout<<"\nenter the branch = ";
cin>>s.branch;
//packing the information
strcpy(s.buffer,s.name);
strcat(s.buffer,"|");
strcat(s.buffer,s.usn);
strcat(s.buffer,"|");
strcat(s.buffer,s.age);
strcat(s.buffer,"|");
strcat(s.buffer,s.sem);
strcat(s.buffer,"|");
strcat(s.buffer,s.branch);

int count=strlen(s.buffer);
for(int k=0;k<45-count;k++)
Dept. of ISE, DSATM 2018- 2019 4
File Structures Laboratory with Mini Project 15ISL68

strcat(s.buffer,"!");
strcat(s.buffer,"\n");
file<<s.buffer; //writing the packed information to buffer
file.close();
}

void search()
{
char usn[10];
char extra[45];
file.open("student.txt",ios::in);
if(!file)
{
cout<<"\nunable to open the file in read mode";
exit(0);
}
cout<<"\nenter the record's usn you want to search = ";
cin>>usn;

//unpacking the record

while(!file.eof())
{
file.getline(s.name,10,'|');
file.getline(s.usn,10,'|');
file.getline(s.age,5,'|');
file.getline(s.sem,5,'|');
file.getline(s.branch,5,'!');
file.getline(extra,45,'\n');

if(strcmp(s.usn,usn)==0)
{
cout<<"\nrecord found";
cout<<"\n"<<s.name<<"\t"<<s.usn<<"\t";
cout<<s.age<<"\t"<<s.sem<<"\t"<<s.branch;
file.close();
getch();
return;
}
}
cout<<"\nrecord not found";
file.close();
getch();
}

void displayFile()
{
int i;
char extra[45];
file.open("student.txt",ios::in);

if(!file)
{
cout<<"\ncannot open the file in read mode";

Dept. of ISE, DSATM 2018- 2019 5


File Structures Laboratory with Mini Project 15ISL68

getch();
exit(1);
}
i=0;
cout<<"\n\nNAME\t\tUSN\t\tAGE\t\tSEM\t\tBRANCH\n";
cout<<"----\t\t---\t\t---\t\t---\t\t------\n";

while(!file.eof())
{
file.getline(s.name,10,'|');
file.getline(s.usn,10,'|');
file.getline(s.age,5,'|');
file.getline(s.sem,5,'|');
file.getline(s.branch,5,'!');
file.getline(extra,45,'\n');
printf("\n%s\t\t%s\t\t%s\t\t%s\t\t%s",s.name,s.usn,s.age,s.sem,s.branch);
i++;
}
file.close();
getch();
}

void modify()
{
char usn[10];
char buffer[45];
char extra[45];
int i;
int j;
student s[20];

file.open("student.txt",ios::in);
if(!file)
{
cout<<"\nunable to open the file in input mode";
getch();
exit(1);
}
cout<<"\nenter the usn of the record to be modified\n";
cin>>usn;
cout<<"\n";

i=0;
while(!file.eof())
{
file.getline(s[i].name,10,'|');
file.getline(s[i].usn,10,'|');
file.getline(s[i].age,5,'|');
file.getline(s[i].sem,5,'|');
file.getline(s[i].branch,5,'!');
file.getline(extra,45,'\n');
i++;
}
i--;

Dept. of ISE, DSATM 2018- 2019 6


File Structures Laboratory with Mini Project 15ISL68

for(j=0;j<i;j++)
{
if(strcmp(usn,s[j].usn)==0)
{
cout<<"\nthe old values of the record with usn"<<usn<<"are";
cout<<"\nname = "<<s[j].name;
cout<<"\nusn = "<<s[j].usn;
cout<<"\nage = "<<s[j].age;
cout<<"\nsem = "<<s[j].sem;
cout<<"\nbranch = "<<s[j].branch;

cout<<"\n\nenter the new values\n";


cout<<"\nname = ";
cin>>s[j].name;
cout<<"\nusn = ";
cin>>s[j].usn;
cout<<"\nage = ";
cin>>s[j].age;
cout<<"\nsem = ";
cin>>s[j].sem;
cout<<"\nbranch = ";
cin>>s[j].branch;
break;
}
}

if(j==i)
{
cout<<"\nthe record with usn " <<usn<< "is not present ";
getch();
return;
}
file.close();

file.open("student.txt",ios::out);
if(!file)
{
cout<<"\nunable to open the file in output mode";
getch();
return;
}

for(j=0;j<i;j++)
{
strcpy(buffer,s[j].name);
strcat(buffer,"|");
strcat(buffer,s[j].usn);
strcat(buffer,"|");
strcat(buffer,s[j].age);
strcat(buffer,"|");
strcat(buffer,s[j].sem);
strcat(buffer,"|");
strcat(buffer,s[j].branch);

Dept. of ISE, DSATM 2018- 2019 7


File Structures Laboratory with Mini Project 15ISL68

int count=strlen(buffer);
for(int k=0;k<45-count;k++)
strcat(buffer,"!");
strcat(buffer,"\n");
file<<buffer;
}
file.close();
}

void main()
{
int choice;
while(1)
{
clrscr();
cout<<"\n 0 : exit";
cout<<"\n 1 : write to file";
cout<<"\n 2 : display the file";
cout<<"\n 3 : modify the file";
cout<<"\n 4 : search";
cout<<"\n\n enter the choice : ";
cin>>choice;

switch(choice)
{
case 1: writerecord();
break;

case 2: displayFile();
break;

case 3: modify();
break;

case 4: search();
break;

case 0: exit(0);

default:cout<<"\ninvalid input...";
break;
}
}
}

Dept. of ISE, DSATM 2018- 2019 8


File Structures Laboratory with Mini Project 15ISL68

OUTPUT:

Dept. of ISE, DSATM 2018- 2019 9


File Structures Laboratory with Mini Project 15ISL68

Dept. of ISE, DSATM 2018- 2019 10


File Structures Laboratory with Mini Project 15ISL68

Dept. of ISE, DSATM 2018- 2019 11


File Structures Laboratory with Mini Project 15ISL68

3. Write a C++ program to read and write student objects with Variable - Length
records using any suitable record structure. Implement pack ( ), unpack ( ), modify ( )
and search ( ) methods.

#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
#include<iostream.h>
#include<fstream.h>
#include<string.h>
#include<iomanip.h>

class student
{
public: char name[10];
char usn[10];
char age[5];
char sem[5];
char branch[5];
char buffer[100];
};

fstream file;
student s;

void writerecord()
{
file.open("program_3.txt",ios::app);
if(!file)
{
cout<<"cannot open the file in append mode";
getch();
exit(1);
}
cout<<"\nenter the student name = ";
cin>>s.name;
cout<<"\nenter the usn = ";
cin>>s.usn;
cout<<"\nenter the age = ";
cin>>s.age;
cout<<"\nenter the sem = ";
cin>>s.sem;
cout<<"\nenter the branch = ";
cin>>s.branch;

strcpy(s.buffer,s.name);
strcat(s.buffer,"|");
strcat(s.buffer,s.usn);
strcat(s.buffer,"|");
strcat(s.buffer,s.age);
strcat(s.buffer,"|");
strcat(s.buffer,s.sem);
strcat(s.buffer,"|");
Dept. of ISE, DSATM 2018- 2019 12
File Structures Laboratory with Mini Project 15ISL68

strcat(s.buffer,s.branch);

strcat(s.buffer,"\n");
file<<s.buffer;
file.close();
}

void search()
{
char usn[10];
char extra[45];

file.open("program_3.txt",ios::in);
if(!file)
{
cout<<"\nunable to open the file in read mode";
getch();
exit(0);
}
cout<<"\nenter the record's usn you want to search = ";
cin>>usn;

while(!file.eof())
{
file.getline(s.name,10,'|');
file.getline(s.usn,10,'|');
file.getline(s.age,5,'|');
file.getline(s.sem,5,'|');
file.getline(s.branch,5,'\n');

if(strcmp(s.usn,usn)==0)
{
cout<<"\nrecord found";
cout<<"\nname\tusn\tage\tsem\tbranch";

cout<<"\n"<<s.name<<"\t"<<s.usn<<"\t";
cout<<s.age<<"\t"<<s.sem<<"\t"<<s.branch;

file.close();
getch();
return;
}
}
cout<<"\nrecord not found";
file.close();
getch();
return;
}

void displayFile()
{
int i;
file.open("program_3.txt",ios::in);

Dept. of ISE, DSATM 2018- 2019 13


File Structures Laboratory with Mini Project 15ISL68

if(!file)
{
cout<<"\ncannot open the file in read mode";
getch();
exit(1);
}

i=0;
printf("\n\nNAME\t\tUSN\t\tAGE\t\tSEM\t\tBRANCH\n");

while(!file.eof())
{
file.getline(s.name,15,'|');
file.getline(s.usn,15,'|');
file.getline(s.age,5,'|');
file.getline(s.sem,5,'|');
file.getline(s.branch,5,'\n');
printf("\n%s\t\t%s\t\t%s\t\t%s\t\t%s",s.name,s.usn,s.age,s.sem,s.branch);
i++;
}
file.close();
getch();
}

void modify()
{
char usn[10];

int i;
int j;
student s[100];

file.open("program_3.txt",ios::in);
if(!file)
{
cout<<"\nunable to open the file in input mode";
getch();
exit(1);
}
cout<<"\nenter the usn ";
cin>>usn;

i=0;
while(!file.eof())
{
file.getline(s[i].name,15,'|');
file.getline(s[i].usn,15,'|');
file.getline(s[i].age,5,'|');
file.getline(s[i].sem,5,'|');
file.getline(s[i].branch,5,'\n');
i++;
}

Dept. of ISE, DSATM 2018- 2019 14


File Structures Laboratory with Mini Project 15ISL68

i--;

for(j=0;j<i;j++)
{
if(strcmp(usn,s[j].usn)==0)
{
cout<<"\nthe old values of the record with usn"<<usn<<"are";
cout<<"\nname = "<<s[j].name;
cout<<"\nusn = "<<s[j].usn;
cout<<"\nage = "<<s[j].age;
cout<<"\nsem = "<<s[j].sem;
cout<<"\nbranch = "<<s[j].branch;

cout<<"\nenter the new values\n";


cout<<"\nname = ";
cin>>s[j].name;
cout<<"\nusn = ";
cin>>s[j].usn;
cout<<"\nage = ";
cin>>s[j].age;
cout<<"\nsem = ";
cin>>s[j].sem;
cout<<"\nbranch = ";
cin>>s[j].branch;
break;
}
}

if(j==i)
{
cout<<"\nthe record with usn " <<usn<< "is not present ";
getch();
return;
}
file.close();

file.open("program_3.txt",ios::out);
if(!file)
{
cout<<"\nunable to open the file in output mode";
getch();
return;
}

for(j=0;j<i;j++)
{
file<<s[j].name<<'|'<<s[j].usn<<'|'<<s[j].age
<<'|'<<s[j].sem<<'|'<<s[j].branch<<'\n';
}
file.close();
}

void main()
{

Dept. of ISE, DSATM 2018- 2019 15


File Structures Laboratory with Mini Project 15ISL68

int choice;
while(1)
{
clrscr();
cout<<"\n 0 : exit";
cout<<"\n 1 : write to file";
cout<<"\n 2 : display the file";
cout<<"\n 3 : modify the file";
cout<<"\n 4 : search";
cout<<"\n\n enter the choice : ";
cin>>choice;

switch(choice)
{
case 1: writerecord();
break;

case 2: displayFile();
break;

case 3: modify();
break;

case 4: search();
break;

case 0: exit(0);

default: cout<<"\ninvalid input...";


break;
}
}
}

Dept. of ISE, DSATM 2018- 2019 16


File Structures Laboratory with Mini Project 15ISL68

OUTPUT:

Dept. of ISE, DSATM 2018- 2019 17


File Structures Laboratory with Mini Project 15ISL68

Dept. of ISE, DSATM 2018- 2019 18


File Structures Laboratory with Mini Project 15ISL68

Dept. of ISE, DSATM 2018- 2019 19


File Structures Laboratory with Mini Project 15ISL68

4. Write a C++ program to write student objects with Variable – Length records using
any suitable record structure and to read from this file a student record using RRN.

#include<stdio.h>
#include<stdlib.h>
#include<iostream.h>
#include<fstream.h>
#include<conio.h>
#include<string.h>
#include<iomanip.h>

class student
{
public:char name[15],usn[10],age[5],sem[5],branch[15],buffer[100];
};

void writerecord()
{
fstream file;
student s;
int k,n;
file.open("program_4.txt",ios::app);
if(!file)
{
cout<<"\ncan not open the file in append mode\n";
getch();
exit(0);

}
printf("how many records\n");
scanf("%d",&n);
for(k=0;k<n;k++)
{
cout<<"\nenter the student name: ";
cin>>s.name;
cout<<"\nenter the usn: ";
cin>>s.usn;
cout<<"\nenter the age: ";
cin>>s.age;
cout<<"\nenter the sem: ";
cin>>s.sem;
cout<<"\nenter the branch: ";
cin>>s.branch;
file<<k<<"|"<<s.name<<"|"<<s.usn<<"|"
<<s.age<<"|"<<s.sem<<"|"<<s.branch<<"\n";
}
file.close();
}

void displayfile()
{
student s;
char rrn[10];

Dept. of ISE, DSATM 2018- 2019 20


File Structures Laboratory with Mini Project 15ISL68

fstream file;
file.open("program_4.txt",ios::in);
if(!file)
{
cout<<"\ncannot open the file in input mode\n";
getch();
exit(1);
}
cout<<"\n";
printf("rrn\tname\t\tusn\t\tage\t\tsem\t\tbranch\n");
while(!file.eof())
{
file.getline(rrn,4,'|');
file.getline(s.name,15,'|');
file.getline(s.usn,15,'|');
file.getline(s.age,5,'|');
file.getline(s.sem,5,'|');
file.getline(s.branch,15,'\n');
printf("\n%s\t%s\t\t%s\t\t%s\t\t%s\t\t%s\n",
rrn,s.name,s.usn,s.age,s.sem,s.branch);

}
file.close();
getch();
}

void search()
{
char rrn[10],rrn1[10][15];
int i;
student std[100];
cout<<"\n enter the rrn to be searched";
cin>>rrn;
fstream file;
file.open("program_4.txt",ios::in);
if(!file)
{
cout<<"\n can not open the file in input mode";
getch();
exit(0);
}
i=0;
printf("\n rrn\tname\tusn\tage\tsem\tbranch\n");
while(!file.eof())
{
file.getline(rrn1[i],4,'|');
file.getline(std[i].name,15,'|');
file.getline(std[i].usn,15,'|');
file.getline(std[i].age,5,'|');
file.getline(std[i].sem,5,'|');
file.getline(std[i].branch,15,'\n');
i++;
}

Dept. of ISE, DSATM 2018- 2019 21


File Structures Laboratory with Mini Project 15ISL68

for(int j=0;j<i-1;j++)
{
if(strcmp(rrn,rrn1[j])==0)
{
printf("\n%s\t%s\t%s\t%s\t%s\t%s\n",
rrn,std[j].name,std[j].usn,std[j].age,
std[j].sem,std[j].branch);
printf("\n record found\n");
file.close();
return;
}
}
cout<<"\nrecord not found\n";
file.close();
return;
}

void main()
{
int choice;
clrscr();
while(1)
{
cout<<"\n 0:exit";
cout<<"\n 1:insert";
cout<<"\n 2:search";
cout<<"\n 3:display";
cout<<"\n enter the choice=";
cin>>choice;
switch(choice)
{
case 1:writerecord();
break;
case 2:search();
break;
case 3:displayfile();
break;
case 0:exit(0);
default:cout<<"\n invalid option";
break;
}

}
}

Dept. of ISE, DSATM 2018- 2019 22


File Structures Laboratory with Mini Project 15ISL68

OUTPUT:

Dept. of ISE, DSATM 2018- 2019 23


File Structures Laboratory with Mini Project 15ISL68

Dept. of ISE, DSATM 2018- 2019 24


File Structures Laboratory with Mini Project 15ISL68

5. Write a C++ program to implement simple index on primary key for a file of student
objects. Implement add ( ), search ( ), delete ( ) using the index.

#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
#include<string.h>
#include<fstream.h>
#include<iostream.h>
#include<iomanip.h>

class record
{
public: char age[5];
char usn[20];
char name[20];
char sem[2];
char branch[5];
}rec[20];

char st_no[5];
int no;

void retrieve_details()
{
fstream file2;
char name[20];
char age[5];
char usn[20];
char sem[2];
char branch[5];
char ind[5];

file2.open("record.txt",ios::in);

for(int i=0;i<no;i++)
{
file2.getline(ind,5,'|');
file2.getline(usn,20,'|');
file2.getline(name,20,'|');
file2.getline(age,5,'|');
file2.getline(sem,5,'|');
file2.getline(branch,5,'\n');

if(strcmp(ind,st_no)==0)
{
cout<<"\n\t"<<"student details :\n";
cout<<"\n\tUSN\tNAME\tAGE\tSEM\tBRANCH\n";
cout<<"\n\t"<<usn<<"\t"<<name<<"\t";
cout<<age<<"\t"<<sem<<"\t"<<branch<<"\n";
}
}
file2.close();
}
Dept. of ISE, DSATM 2018- 2019 25
File Structures Laboratory with Mini Project 15ISL68

void delete_record(char usno[])


{
int i;
fstream file1,file2;
char name[20];
char age[5];
char usn[20];
char sem[2];
char branch[5];
char ind[5];

file2.open("record.txt",ios::in);

for(i=0;i<no;i++)
{
file2.getline(ind,5,'|');
file2.getline(usn,20,'|');
file2.getline(name,20,'|');
file2.getline(age,5,'|');
file2.getline(sem,5,'|');
file2.getline(branch,5,'\n');

strcpy(rec[i].usn,usn);
strcpy(rec[i].name,name);
strcpy(rec[i].age,age);
strcpy(rec[i].sem,sem);
strcpy(rec[i].branch,branch);
}

int flag=-1;

for(i=0;i<no;i++)
{
if(strcmp(rec[i].usn,usno)==0)
{
flag=i;
}
}

if(flag==-1)
{
cout<<"error..! \n";
return;
}

if(flag==(no-1))
{
no--;
cout<<"record deleted !\n";
return;
}

for(i=flag;i<no;i++)

Dept. of ISE, DSATM 2018- 2019 26


File Structures Laboratory with Mini Project 15ISL68

{
rec[i]=rec[i+1];
}
no--;
cout<<"\nrecord deleted !\n";
file2.close();

file1.open("index.txt",ios::out);
file2.open("record.txt",ios::out);

for(i=0;i<no;i++)
{
file1<<rec[i].usn<<"|"<<i<<"\n";
file2<<i<<"|"<<rec[i].usn<<"|"<<rec[i].name<<"|"<<rec[i].age
<<"|"<<rec[i].sem<<"|"<<rec[i].branch<<"\n";
}

file1.close();
file2.close();
return;
}

int main()
{
fstream file1,file2;
int choice;
char rt_usn[20];
char st_usn[20];
char ind[2];
char name[20];
char age[2];
char sem[5];
char branch[5];
int i;
int flag;
int flag1;
clrscr();

file1.open("index.txt",ios::out);
file2.open("record.txt",ios::out);

if(!file1 || !file2)
{
cout<<"file creation error ! \n";
exit(0);
}

for(;;)
{
cout<<"\nenter the choice:\n\n";
cout<<"1 : add record\n";
cout<<"2 : search record\n";
cout<<"3 : delete record\n";
cout<<"4 : display record\n";

Dept. of ISE, DSATM 2018- 2019 27


File Structures Laboratory with Mini Project 15ISL68

cout<<"5 : exit\n\n";

cin>>choice;

switch(choice)
{
case 1: cout<<"\nenter the no. of students : ";
cin>>no;
cout<<"\nenter the details :\n";
for(i=0;i<no;i++)
{
cout<<"\nname :";
cin>>rec[i].name;
cout<<"age : ";
cin>>rec[i].age;
cout<<"usn : ";
cin>>rec[i].usn;
cout<<"sem : ";
cin>>rec[i].sem;
cout<<"branch :";
cin>>rec[i].branch;

file1<<rec[i].usn<<"|"<<i<<"\n";
file2<<i<<"|"<<rec[i].usn<<"|"<<rec[i].name
<<"|"<<rec[i].age<<"|"<<rec[i].sem
<<"|"<<rec[i].branch<<"\n";
}

file1.close();
file2.close();
break;

case 2: cout<<"\nenter the USN of the student record to be searched\n";


cin>>st_usn;
file1.open("index.txt",ios::in);
if(!file1)
{
cout<<"error!\n";
exit(0);
}
flag1=0;
for(i=0;i<no;i++)
{
file1.getline(rt_usn,20,'|');
file1.getline(st_no,4,'\n');
if(strcmp(st_usn,rt_usn)==0)
{
retrieve_details();
flag1=1;
}
}
if(!flag1)
{

Dept. of ISE, DSATM 2018- 2019 28


File Structures Laboratory with Mini Project 15ISL68

cout<<"\nrecord search failed !!\n";


}
file1.close();
break;

case 3: cout<<"\nenter the USN of the student record to be deleted\n\n";


cin>>st_usn;
file1.open("index.txt",ios::in);
if(!file1)
{
cout<<"error !\n";
exit(0);
}
flag=0;
for(i=0;i<no;i++)
{
file1.getline(rt_usn,20,'|');
file1.getline(st_no,4,'\n');
if(strcmp(st_usn,rt_usn)==0)
{
delete_record(rt_usn);
flag=1;
}
}
if(!flag)
{
cout<<"deletion failed!\n";
}
file1.close();
break;

case 4: cout<<"\n\tUSN\tNAME\tAGE\tSEM\tBRANCH\t\n";
for(i=0;i<no;i++)
{
cout<<"\n\t"<<rec[i].usn;
cout<<"\t"<<rec[i].name;
cout<<"\t"<<rec[i].age;
cout<<"\t"<<rec[i].sem;
cout<<"\t"<<rec[i].branch<<"\n";
}
break;

case 5: exit(0);

default: cout<<"invalid choice !\n";


break;
}
}
}

Dept. of ISE, DSATM 2018- 2019 29


File Structures Laboratory with Mini Project 15ISL68

OUTPUT:

Dept. of ISE, DSATM 2018- 2019 30


File Structures Laboratory with Mini Project 15ISL68

Dept. of ISE, DSATM 2018- 2019 31


File Structures Laboratory with Mini Project 15ISL68

Dept. of ISE, DSATM 2018- 2019 32


File Structures Laboratory with Mini Project 15ISL68

6. Write a C++ program to implement index on secondary key, the name, for a file of
student objects. Implement add ( ), search ( ), delete ( ) using the secondary index .

#include<stdio.h>
#include<conio.h>
#include<string.h>
#include<fstream.h>
#include<iostream.h>
#include<stdlib.h>

class record
{
public:
char age[5],sem[5],usn[20],name[20],branch[5];
}rec[20],found[20];

int no;
char st_no[5],rt_name[20];

void sortrecord()
{
int i,j;
record temp;
for(i=0;i<no-1;i++)
for(j=0;j<no-i-1;j++)
if(strcmp(rec[j].name,rec[j+1].name)>0)
{
temp=rec[j];
rec[j]=rec[j+1];
rec[j+1]=temp;
}
}

void indexfile()
{
fstream index,index2;
int i;
index.open("secindex.txt",ios::out);
index2.open("record.txt",ios::out);
for(i=0;i<no;i++)
{
index<<rec[i].name<<"|"<<rec[i].usn<<"|"<<i<<"\n";
index2<<i<<"|"<<rec[i].name<<"|"<<rec[i].usn<<"|"<<
rec[i].age<<"|"<<rec[i].sem<<"|"<<rec[i].branch<<"\n";
}
index.close();
index2.close();
}

void retrieve_record(char *index)


{
fstream file;
char age[5],sem[5],usn[20],name[20],branch[5],ind[5];
Dept. of ISE, DSATM 2018- 2019 33
File Structures Laboratory with Mini Project 15ISL68

file.open("record.txt",ios::in);
for(int i=0;i<no;i++)
{
file.getline(ind,5,'|');
file.getline(name,20,'|');
file.getline(usn,20,'|');
file.getline(age,5,'|');
file.getline(sem,5,'|');
file.getline(branch,5,'\n');
if(strcmp(index,ind)==0)
{
cout<<"USN\tNAME\tAGE\tSEM\tBRANCH\n";
cout<<usn<<"\t"<<name<<"\t"<<age<<"\t"<<sem<<"\t"<<branch<<"\n";
}
}
file.close();
}

void retrieve_details()
{
fstream file;
char age[5],sem[5],usn[20],name[20],branch[5],ind[5];
char chusn[20],index[20][20];
file.open("secindex.txt",ios::in);
int k=0;
for(int i=0;i<no;i++)
{
file.getline(name,20,'|');
file.getline(usn,20,'|');
file.getline(ind,4,'\n');
if(strcmp(name,rt_name)==0)
{
strcpy(found[k].name,name);
strcpy(found[k].usn,usn);
strcpy(index[k],ind);
k++;
}

}
file.close();
if(k==1)
{
retrieve_record(index[0]);
return;
}
else
{
cout<<"choose the candidates usn\n";
for(i=0;i<k;i++)
cout<<"USN:"<<found[i].usn<<"\tNAME:"<<found[i].name<<endl;
}
cin>>chusn;
for(i=0;i<k;i++)
{

Dept. of ISE, DSATM 2018- 2019 34


File Structures Laboratory with Mini Project 15ISL68

if(strcmp(chusn,found[i].usn)==0)
{
retrieve_record(index[i]);
return;
}
}
cout<<"invalid entry\n";
return;
}

void delete_record(char *indx)


{
char age[5],sem[5],usn[20],name[20],branch[5],ind[5];
fstream file1,file2;
char index[20][20];
file2.open("record.txt",ios::in);
for(int i=0;i<no;i++)
{
file2.getline(ind,4,'|');
file2.getline(name,20,'|');
file2.getline(usn,20,'|');
file2.getline(age,5,'|');
file2.getline(sem,5,'|');
file2.getline(branch,5,'\n');
strcpy(index[i],ind);
strcpy(rec[i].usn,usn);
strcpy(rec[i].name,name);
strcpy(rec[i].age,age);
strcpy(rec[i].sem,sem);
strcpy(rec[i].branch,branch);
}
int flag=-1;
for(i=0;i<no;i++)
{
if(strcmp(index[i],indx)==0)
flag=i;
}
if(flag==-1)
{
cout<<"error\n";
return;
}
if(flag==(no-1))
{
no--;
cout<<"record deleted\n";
return;
}
for(i=flag;i<no;i++)
{
rec[i]=rec[i+1];
}
no--;
cout<<"record deleted\n";

Dept. of ISE, DSATM 2018- 2019 35


File Structures Laboratory with Mini Project 15ISL68

file2.close();
file1.open("secindex.txt",ios::in);
file2.open("record.txt",ios::in);
for(i=0;i<no;i++)
{
file1<<rec[i].name<<"|"<<rec[i].usn<<"|"<<i<<"\n";
file2<<i<<"|"<<rec[i].name<<"|"<<rec[i].usn<<"|"<<
rec[i].age<<"|"<<rec[i].sem<<"|"<<rec[i].branch<<"\n";
}
file1.close();
file2.close();
}

void delete_index(char *nam)


{
fstream file;
char age[5],sem[5],usn[20],name[20],branch[5],ind[5];
char chusn[20],index[20][20];
int i,k=0;
file.open("secindex.txt",ios::in);
for(i=0;i<no;i++)
{
file.getline(name,20,'|');
file.getline(usn,20,'|');
file.getline(ind,4,'\n');
if(strcmp(nam,name)==0)
{
strcpy(found[k].name,name);
strcpy(found[k].usn,usn);
strcpy(index[k],ind);
k++;
}

}
file.close();
if(k==1)
{
delete_record(index[0]);
return;
}
else
{
cout<<"choose the candidates usn\n";
for(i=0;i<k;i++)
cout<<"USN:"<<found[i].usn<<" NAME:"<<found[i].name<<endl;
}
cin>>chusn;
for(i=0;i<k;i++)
{
if(strcmp(chusn,found[i].usn)==0)
{
delete_record(index[i]);
return;
}

Dept. of ISE, DSATM 2018- 2019 36


File Structures Laboratory with Mini Project 15ISL68

}
cout<<"invalid entry\n";
return;
}

int main()
{
fstream file1,file2;
char rt_usn[20],st_name[20],st_usn[20];
char age[5],sem[5],name[20],branch[5],ind[5];
int i,flag,flag1,choice;
clrscr();
for(;;)
{
cout<<"\n choose the option\n 1:add 2:search 3:delete 4:display 5:exit\n";
cin>>choice;
switch(choice)
{
case 1:cout<<"enter the no of students\n";
cin>>no;
for(i=0;i<no;i++)
{
cout<<"enter the name:";
cin>>rec[i].name;
cout<<"usn:";
cin>>rec[i].usn;
cout<<"age:";
cin>>rec[i].age;
cout<<"sem:";
cin>>rec[i].sem;
cout<<"branch:";
cin>>rec[i].branch;
}
sortrecord();
indexfile();
break;

case 2: cout<<"enter the name of the record to be searched\n";


cin>>st_name;
file1.open("secindex.txt",ios::in);
if(!file1)
{
cout<<"file creation error\n";
exit(0);
}
flag1=0;
for(i=0;i<no;i++)
{
file1.getline(rt_name,20,'|');
file1.getline(st_usn,20,'|');
file1.getline(st_no,4,'\n');
if(strcmp(st_name,rt_name)==0)
{

Dept. of ISE, DSATM 2018- 2019 37


File Structures Laboratory with Mini Project 15ISL68

retrieve_details();
flag1=1;
}
}
if(!flag1)
cout<<"record search failed \n";
file1.close();
break;

case 3: cout<<"enter the name of the record to be deleted\n";


cin>>st_name;
file1.open("secindex.txt",ios::in);
if(!file1)
{
cout<<"file creation error\n";
exit(0);
}
flag=0;
for(i=0;i<no;i++)
{
file1.getline(rt_name,20,'|');
file1.getline(st_usn,20,'|');
file1.getline(ind,4,'\n');
if(strcmp(st_name,rt_name)==0)
{
delete_index(rt_name);
flag=1;
break;
}
}
if(!flag)
cout<<"deletion failed \n";
file1.close();
break;

case 4: cout<<"USN\tNAME\tAGE\tSEM\tBRANCH\n";
for(i=0;i<no;i++)
{
cout<<rec[i].usn<<"\t"<<rec[i].name<<"\t"<<rec[i].age<<"\t"
<<rec[i].sem<<"\t"<<rec[i].branch<<"\n";
}
break;

default:cout<<"invalid choice\n";
exit(0);
break;
}
}
}

Dept. of ISE, DSATM 2018- 2019 38


File Structures Laboratory with Mini Project 15ISL68

OUTPUT:

Dept. of ISE, DSATM 2018- 2019 39


File Structures Laboratory with Mini Project 15ISL68

Dept. of ISE, DSATM 2018- 2019 40


File Structures Laboratory with Mini Project 15ISL68

7. Write a C++ program to read two lists of names and then match the names in the
two lists using Co-sequential Match based on a single loop. Output the names
common to both the lists.

#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
#include<string.h>
#include<fstream.h>
#include<iostream.h>
#include<iomanip.h>

void writeLists()
{
fstream out1,out2;
int i;
int m;
int n;
char name[20];

out1.open("file1.txt",ios::out);
out2.open("file2.txt",ios::out);

if( (!out1) || (!out2))


{
printf("unable to open one of the list files\n");
getch();
exit(0);
}
cout<<"enter the number of names you want to enter in file1\n";
cin>>m;
cout<<"\nenter the names in ascending order\n";
for(i=0;i<m;i++)
{
cin>>name;
out1<<name;
out1<<'\n';
}
cout<<"enter the number of names you want to enter in file2\n";
cin>>n;
cout<<"\nenter the names in ascending order\n";
for(i=0;i<n;i++)
{
cin>>name;
out2<<name;
out2<<'\n';
}
out1.close();
out2.close();
}

void main()
{
Dept. of ISE, DSATM 2018- 2019 41
File Structures Laboratory with Mini Project 15ISL68

char list1[100][20];
char list2[100][20];
int i;
int j;
int m;
int n;
clrscr();
fstream out1,out2,out3;

writeLists();

out1.open("file1.txt",ios::in);
out2.open("file2.txt",ios::in);
out3.open("file3.txt",ios::out);

if( (!out1) || (!out2) || (!out3))


{
printf("unable to open one of the file");
getch();
exit(0);
}

clrscr();
m=0;
n=0;
printf("LIST-1 CONTENTS\n");

while( !out1.eof())
{
out1.getline(list1[m],20,'\n');
cout<<list1[m];
cout<<"\n";
m++;
}

printf("LIST-2 CONTENTS\n");

while( !out2.eof())
{
out2.getline(list2[n],20,'\n');
cout<<list2[n];
cout<<"\n";
n++;
}
m--;
n--;
i=0;
j=0;
cout<<"\nelements common to both files are\n";

while(i<m && j<n)


{
if(strcmp(list1[i],list2[j])==0)
{

Dept. of ISE, DSATM 2018- 2019 42


File Structures Laboratory with Mini Project 15ISL68

out3<<list1[i];
cout<<list1[i]<<"\n";
out3<<'\n';
i++;
j++;
}
else if(strcmp(list1[i],list2[j])<0)
{
i++;
}
else
{
j++;
}
}
getch();
}

Dept. of ISE, DSATM 2018- 2019 43


File Structures Laboratory with Mini Project 15ISL68

OUTPUT:

Dept. of ISE, DSATM 2018- 2019 44


File Structures Laboratory with Mini Project 15ISL68

8. Write a C++ program to read k Lists of names and merge them using k-way merge
algorithm with k = 8.

#include<stdio.h>
#include<conio.h>
#include<string.h>
#include<fstream.h>
#include<iostream.h>
#include<stdlib.h>

class record
{
public:
char name[20];
char usn[20];
}rec[20];

fstream file[8];
int no;
char fname[8][8]={"1.txt","2.txt","3.txt","4.txt","5.txt","6.txt","7.txt","8.txt"};

void merge_file(char* file1,char* file2,char* filename)


{
record recd[20];
int i,k;
k=0;
fstream f1,f2;
f1.open(file1,ios::in);
f2.open(file2,ios::in);
while(!f1.eof())
{
f1.getline(recd[k].name,20,'|');
f1.getline(recd[k++].usn,20,'\n');
}
while(!f2.eof())
{
f2.getline(recd[k].name,20,'|');
f2.getline(recd[k++].usn,20,'\n');
}
int t,y;
record temp;
for(t=0;t<k-2;t++)
for(y=0;y<k-t-2;y++)
if(strcmp(recd[y].name,recd[y+1].name)>0)
{
temp=recd[y];
recd[y]=recd[y+1];
recd[y+1]=temp;
}
fstream temp1;
temp1.open(filename,ios::out);
for(t=1;t<k-1;t++)
temp1<<recd[t].name<<"|"<<recd[t].usn<<"\n";
f1.close();
Dept. of ISE, DSATM 2018- 2019 45
File Structures Laboratory with Mini Project 15ISL68

f2.close();
temp1.close();
return;
}

void kwaymerge()
{
int i,k;
k=0;
char filename[7][20]={"11.txt","22.txt","33.txt","44.txt","111.txt","222.txt","1111.txt"};
for(i=0;i<8;i+=2)
{
merge_file(fname[i],fname[i+1],filename[k++]);
}
k=4;
for(i=0;i<4;i+=2)
{
merge_file(filename[i],filename[i+1],filename[k++]);
}
merge_file(filename[4],filename[5],filename[6]);
return;
}

int main()
{
int i;
clrscr();
cout<<"enter no of records\n";
cin>>no;
cout<<"\nenter the details\n";
for(i=0;i<8;i++)
file[i].open(fname[i],ios::out);
for(i=0;i<no;i++)
{
cout<<"Name:";
cin>>rec[i].name;
cout<<"Usn:";
cin>>rec[i].usn;
file[i%8]<<rec[i].name<<"|"<<rec[i].usn<<"\n";
}
for(i=0;i<8;i++)
file[i].close();
kwaymerge();
fstream result;
result.open("1111.txt",ios::in);
cout<<"sorted records\n";
char name[20],usn[20];
for(i=0;i<no;i++)
{
result.getline(name,20,'|');
result.getline(usn,20,'\n');
cout<<"\nName:"<<name<<"\nUsn:"<<usn<<"\n";
}

Dept. of ISE, DSATM 2018- 2019 46


File Structures Laboratory with Mini Project 15ISL68

getch();
return 0;
}

OUTPUT:

Dept. of ISE, DSATM 2018- 2019 47


File Structures Laboratory with Mini Project 15ISL68

VIVA QUESTIONS
1. What is File Structure?
2. What is a File?
3. What is a field?
4. What is a Record?
5. What is fixed length record?
6. What is RRN?
7. What is Variable length record?
8. What are the different modes of opening a file?
9. What is ifstream()?
10. What is ofstream()?
11. What is the difference between read() and getline()?
12. How to close a file? What happens if a file is not closed?
13. What is Hashing? What is its use?
14. Explain any one collision resolution technique.
15. What is Btree? What is B+tree?
16. Differentiate between Logical and Physical file
17. What is the use of seekg() and seekp()?
18. Explain the different way of write data to a file.
19. Explain the different way of write data to a file.
20. What is meant by Indexing?
21. What is multilevel indexing?
22. What is File descriptor?
23. What is Fragmentation? What is internal fragmentation?
24. What is DMA?
25. What is a delimeter?
26. Define direct access.
27. Define sequential access.
28. What is the need of packing the record before writing into the file?
29. Explain ios::trunk and ios::nocreate
30. What is the use of End-of-file (EOF)?
31. What are stdin, stdout and stderr?
32. What is Fragmentation?.
33. What is data compression?
34. What are the properties of B tree?
35. How do we delete fixed length records?
36. How can we reclaim the deleted space dynamically?
37. What are the advantages and disadvantages of indexes that are too large to hold in
memory?
38. What is an AVL tree?
39. H M L B Q S T N A Z P E G C V J K D I U Show B tree creation, insertion,
splitting, deletion, merging and redistribution.
40. What is memset() ? Explain its parameters.

Dept. of ISE, DSATM 2018- 2019 48


File Structures Laboratory with Mini Project 15ISL68

41. What is sprintf() ? Explain its parameters.


42. What is the use of tellg() and tellp()?
43. What is Boeing tree.

Dept. of ISE, DSATM 2018- 2019 49

You might also like