Assignment 10
Assignment 10
#include <iostream>
#include <fstream>
class FileHandling{
public:
//student data
int records;
void getInput(){
string line;
ofstream MyFile("StudentData.txt");
if(MyFile){
cin>>records;
cin.ignore();
for(int i=0;i<records;i++){
cout<<"Student "<<i+1<<endl;
getline(cin,line);
MyFile<<line<<endl;
MyFile.close();
}
//display student data
void displayData(){
string line;
cout<<endl;
ifstream fin("StudentData.txt");
if(fin){
while(getline(fin,line)){
fin.close();
void appendData(){
string line;
ofstream fapp("StudentData.txt",ios::app);
if(fapp){
cout<<"Student "<<++records<<endl;
getline(cin,line);
fapp<<line<<endl;
fapp.close();
else{
}
//search for student in database
void searchStudent(){
string line;
ifstream fin("StudentData.txt");
if(fin){
string rollNo;
cin>>rollNo;
cin.ignore();
bool notfound=true;
while(getline(fin,line)){
if(line.find(rollNo)!=string::npos){
fin.close();
notfound=false;
break;
void modifyRecord(){
ifstream Database("StudentData.txt");
if(Database){
ofstream temp("TempFile.txt");
if(temp){
string line,rollno;
cin>>rollno;
cin.ignore();
bool notfound=true;
while(getline(Database,line)){
getline(cin,line);
temp<<line<<endl;
notfound=false;
else{
temp<<line<<endl;
temp.close();
else{
Database.close();
remove("StudentData.txt");
rename("TempFile.txt","StudentData.txt");
else{
}
//delete student record in database
void deleteRecord(){
ifstream Database("StudentData.txt");
if(Database){
ofstream temp("TempFile.txt");
if(temp){
string line,rollno;
cin>>rollno;
cin.ignore();
bool notfound=true;
while(getline(Database,line)){
notfound=false;
else{
temp<<line<<endl;
temp.close();
else{
Database.close();
remove("StudentData.txt");rename("TempFile.txt","StudentData.txt");
}
};
//driver function
int main(){
FileHandling f;
int choice=0;
cin>>choice;
cin.ignore();
switch(choice){
case 1:
f.getInput();
break;
case 2:
f.displayData();
break;
case 3:
f.searchStudent();
break;
case 4:
f.modifyRecord();
break;
case 5:
f.deleteRecord();
break;
case 6:
f.appendData();
break;
default:
cout<<"Exiting"<<endl;
break;