#include<stdio.h>
#include<conio.h>
#include<fstream.h>
#include<iostream.h>
#include<stdlib.h>
#include<string.h>
void create();
void sort();
void search();
int n;
class student
{
public:
char name[10],marks[10],attendence[10];
char rollno[10];
void getdata()
{
cout<<"enter student name:"<<endl;
gets(name);
cout<<"enter student rollno:"<<endl;
cin>>rollno;
cout<<"enter student marks:"<<endl;
cin>>marks;
cout<<"enter student attendence:"<<endl;
cin>>attendence;
}
};
class index
{
public:
int ref;
char inno[10];
void putdata()
{
cout<<inno<<"\t"<<ref<<endl;;
}
};
void main()
{
int ch;
clrscr();
while(1)
{
cout<<"\n";
cout<<"MENU"<<endl;
cout<<"1.CREATIVE"<<endl;
cout<<"2.SORT"<<endl;
cout<<"3.SEARCh"<<endl;
cout<<"4.exit"<<endl;
cout<<"enter ur choice:"<<endl;
cin>>ch;
switch(ch)
{
case 1:create();
break;
case 2:sort();
break;
case 3:search();
break;
case 4:exit(0);
default:cout<<"invalid choice"<<endl;
}
}
}
void create()
{
student s;
index x,y;
fstream f,f1;
f.open("da.d",ios::out);
f1.open("sort.s",ios::out);
cout<<"enter how many records do u want:"<<endl;
cin>>n;
for(int i=0;i<n;i++)
{
s.getdata();
strcpy(x.inno,s.rollno);
x.ref=f.tellp();
f<<s.name<<"|"<<s.rollno<<"|"<<s.marks<<"|"<<s.attendence<<"|";
f1.write((char *)&x,sizeof(x));
}
f.close();
f1.close();
}
void sort()
{
fstream f1;
index x,y;
f1.open("sort.s",ios::out|ios::in);
for(int i=0;i<n;i++)
{
for(int j=i+1;j<n;j++)
{
f1.seekg(i*sizeof(x));
f1.read((char *)&x,sizeof(x));
f1.seekg(j*sizeof(y));
f1.read((char *)&y,sizeof(y));
if(strcmp(x.inno,y.inno)>0)
{
f1.seekp(i*sizeof(y));
f1.write((char *)&y,sizeof(y));
f1.seekp(j*sizeof(x));
f1.write((char *)&x,sizeof(x));
}
}
}
f1.close();
f1.open("sort.s",ios::in);
while(f1.read((char *)&x,sizeof(x)))
{
x.putdata();
}
f1.close();
}
void search()
{
fstream f,f1;
student s;
index x;
char k[10];
char str[10];
f.open("da.d",ios::in|ios::out);
f1.open("sort.s",ios::in|ios::out);
cout<<"enter ur key rollno for search:"<<endl;
cin>>k;
int mid,l=0,h=n,flag=0;
while(l<=h)
{
mid=(l+h)/2;
f1.seekg(mid*sizeof(x),ios::beg);
f1.read((char *)&x,sizeof(x));
if(strcmp(k,x.inno)==0)
{
flag=1;
break;
}
else if(strcmp(x.inno,k)<0)
l=mid+1;
else
h=mid-1;
}
if(flag)
{
ifstream fin("da.d");
cout<<"record is found:"<<endl;
fin.seekg(x.ref,ios::beg);
fin.getline(s.name,20,'|');
fin.getline(s.rollno,20,'|');
fin.getline(s.marks,20,'|');
fin.getline(s.attendence,20,'|');
cout<<s.name<<"\t"<<s.rollno<<"\t"<<s.marks<<"\t"<<s.attendence;
fin.close();
f1.close();
}
else
cout<<"no record is found"<<endl;
}
#include<conio.h>
#include<fstream.h>
#include<iostream.h>
#include<stdlib.h>
#include<string.h>
void create();
void sort();
void search();
int n;
class student
{
public:
char name[10],marks[10],attendence[10];
char rollno[10];
void getdata()
{
cout<<"enter student name:"<<endl;
gets(name);
cout<<"enter student rollno:"<<endl;
cin>>rollno;
cout<<"enter student marks:"<<endl;
cin>>marks;
cout<<"enter student attendence:"<<endl;
cin>>attendence;
}
};
class index
{
public:
int ref;
char inno[10];
void putdata()
{
cout<<inno<<"\t"<<ref<<endl;;
}
};
void main()
{
int ch;
clrscr();
while(1)
{
cout<<"\n";
cout<<"MENU"<<endl;
cout<<"1.CREATIVE"<<endl;
cout<<"2.SORT"<<endl;
cout<<"3.SEARCh"<<endl;
cout<<"4.exit"<<endl;
cout<<"enter ur choice:"<<endl;
cin>>ch;
switch(ch)
{
case 1:create();
break;
case 2:sort();
break;
case 3:search();
break;
case 4:exit(0);
default:cout<<"invalid choice"<<endl;
}
}
}
void create()
{
student s;
index x,y;
fstream f,f1;
f.open("da.d",ios::out);
f1.open("sort.s",ios::out);
cout<<"enter how many records do u want:"<<endl;
cin>>n;
for(int i=0;i<n;i++)
{
s.getdata();
strcpy(x.inno,s.rollno);
x.ref=f.tellp();
f<<s.name<<"|"<<s.rollno<<"|"<<s.marks<<"|"<<s.attendence<<"|";
f1.write((char *)&x,sizeof(x));
}
f.close();
f1.close();
}
void sort()
{
fstream f1;
index x,y;
f1.open("sort.s",ios::out|ios::in);
for(int i=0;i<n;i++)
{
for(int j=i+1;j<n;j++)
{
f1.seekg(i*sizeof(x));
f1.read((char *)&x,sizeof(x));
f1.seekg(j*sizeof(y));
f1.read((char *)&y,sizeof(y));
if(strcmp(x.inno,y.inno)>0)
{
f1.seekp(i*sizeof(y));
f1.write((char *)&y,sizeof(y));
f1.seekp(j*sizeof(x));
f1.write((char *)&x,sizeof(x));
}
}
}
f1.close();
f1.open("sort.s",ios::in);
while(f1.read((char *)&x,sizeof(x)))
{
x.putdata();
}
f1.close();
}
void search()
{
fstream f,f1;
student s;
index x;
char k[10];
char str[10];
f.open("da.d",ios::in|ios::out);
f1.open("sort.s",ios::in|ios::out);
cout<<"enter ur key rollno for search:"<<endl;
cin>>k;
int mid,l=0,h=n,flag=0;
while(l<=h)
{
mid=(l+h)/2;
f1.seekg(mid*sizeof(x),ios::beg);
f1.read((char *)&x,sizeof(x));
if(strcmp(k,x.inno)==0)
{
flag=1;
break;
}
else if(strcmp(x.inno,k)<0)
l=mid+1;
else
h=mid-1;
}
if(flag)
{
ifstream fin("da.d");
cout<<"record is found:"<<endl;
fin.seekg(x.ref,ios::beg);
fin.getline(s.name,20,'|');
fin.getline(s.rollno,20,'|');
fin.getline(s.marks,20,'|');
fin.getline(s.attendence,20,'|');
cout<<s.name<<"\t"<<s.rollno<<"\t"<<s.marks<<"\t"<<s.attendence;
fin.close();
f1.close();
}
else
cout<<"no record is found"<<endl;
}
No comments:
Post a Comment