0% found this document useful (0 votes)
21 views5 pages

DSA Exe No.11

The document outlines a C++ program for managing student records using a class named 'tel'. It provides functionalities to insert, display, search, edit, and delete student records stored in a text file. The program utilizes file handling and user input to perform various operations on the student data.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
21 views5 pages

DSA Exe No.11

The document outlines a C++ program for managing student records using a class named 'tel'. It provides functionalities to insert, display, search, edit, and delete student records stored in a text file. The program utilizes file handling and user input to perform various operations on the student data.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 5

Experiment No.

11
Input
#include <iostream>
#include <fstream>
#include <cstring>
using namespace std;
class tel
{
public:
int rollNo, roll1;
char name[10];
char div;
char address[20];
void accept(){
cout<<endl;
cout << "Enter Roll Number : "<<endl;
cin >> rollNo;
cout << "Enter the Name : "<<endl;
cin >> name;
cout << "Enter the Division : "<<endl;
cin >> div;
cout << "Enter the Address : "<<endl;
cin >> address;
}
void accept2(){
cout<<endl;
cout << "Enter the Roll No. to modify : "<<endl;
cin >> rollNo;
}
void accept3(){
cout<<endl;
cout << "Enter the name to modify : "<<endl;
cin >> name;
}
int getRollNo(){
return rollNo;
}
void show(){
cout << "\n\t" << rollNo << "\t\t" << name << "\t\t" << div << "\t\t" << address;
}
};
int main(){
int i, n, ch, ch1, rec, start, count, add, n1, add2, start2, n2, y, a, b, on, oname, add3, start3, n3, y1,
add4, start4, n4;
char name[20], name2[20];
tel t1;
count = 0;
fstream g, f;
do{
cout<<endl;
cout << ">>>>>>>>>>>>>>>>>>>>>> ---- MENU ---- <<<<<<<<<<<<<<<<<<<<"<<endl;
cout << "1.Insert and overwrite\n2.Show\n3.Search & Edit(number)\n4.Search &
Edit(name)\n5.Search & Edit(onlynumber)\n6.Search & edit(only name)\n7.Delete a Student
Record\n8.Exit\nEnter the Choice : " <<endl;
cin >> ch;
switch (ch){
case 1:
f.open("StuRecord.txt", ios::out);
x:
t1.accept();
f.write((char *)&t1, (sizeof(t1)));
cout << "\nDo you want to enter more records?\n1.Yes\n2.No"<<endl;
cin >> ch1;
if (ch1 == 1)
goto x;
else{
f.close();
break;
}
case 2:
f.open("StuRecord.txt", ios::in);
f.read((char *)&t1, (sizeof(t1)));
// cout<<"\n\tRoll No.\t\tName \t\t Division \t\t Address";
while (f)
{
t1.show();
f.read((char *)&t1, (sizeof(t1)));
}
f.close();
break;
case 3:
cout << "\nEnter the roll number you want to find : " <<endl;
cin >> rec;
f.open("StuRecord.txt", ios::in | ios::out);
f.read((char *)&t1, (sizeof(t1)));
while (f)
{
if (rec == t1.rollNo){
cout << "\nRecord found";
add = f.tellg();
f.seekg(0, ios::beg);
start = f.tellg();
n1 = (add - start) / (sizeof(t1));
f.seekp((n1 - 1) * sizeof(t1), ios::beg);
t1.accept();
f.write((char *)&t1, (sizeof(t1)));
f.close();
count++;
break;
}
f.read((char *)&t1, (sizeof(t1)));
}
if (count == 0)
cout << "\nRecord not found";
f.close();
break;
case 4:
cout << "\nEnter the name you want to find and edit : "<<endl;
cin >> name;
f.open("StuRecord.txt", ios::in | ios::out);
f.read((char *)&t1, (sizeof(t1)));
while (f)
{
y = (strcmp(name, t1.name));
if (y == 0)
{
cout << "\nName found";
add2 = f.tellg();
f.seekg(0, ios::beg);
start2 = f.tellg();
n2 = (add2 - start2) / (sizeof(t1));
f.seekp((n2 - 1) * sizeof(t1), ios::beg);
t1.accept();
f.write((char *)&t1, (sizeof(t1)));
f.close();
break;
}
f.read((char *)&t1, (sizeof(t1)));
}
break;
case 5:
cout << "\nEnter the roll number you want to modify : "<<endl;
cin >> on;
f.open("StuRecord.txt", ios::in | ios::out);
f.read((char *)&t1, (sizeof(t1)));
while (f)
{
if (on == t1.rollNo)
{
cout << "\nNumber found";
add3 = f.tellg();
f.seekg(0, ios::beg);
start3 = f.tellg();
n3 = (add3 - start3) / (sizeof(t1));
f.seekp((n3 - 1) * (sizeof(t1)), ios::beg);
t1.accept2();
f.write((char *)&t1, (sizeof(t1)));
f.close();
break;
}
f.read((char *)&t1, (sizeof(t1)));
}
break;
case 6:
cout << "\nEnter the name you want to find and edit : " <<endl;
cin >> name2;
f.open("StuRecord.txt", ios::in | ios::out);
f.read((char *)&t1, (sizeof(t1)));
while (f)
{
y1 = (strcmp(name2, t1.name));
if (y1 == 0)
{
cout << "\nName found";
add4 = f.tellg();
f.seekg(0, ios::beg);
start4 = f.tellg();
n4 = (add4 - start4) / (sizeof(t1));
f.seekp((n4 - 1) * sizeof(t1), ios::beg);
t1.accept3();
f.write((char *)&t1, (sizeof(t1)));
f.close();
break;
}
f.read((char *)&t1, (sizeof(t1)));
}
break;
case 7:
int roll;
cout << "Please Enter the Roll No. of Student Whose Info You Want to Delete: ";
cin >> roll;
f.open("StuRecord.txt", ios::in);
g.open("temp.txt", ios::out);
f.read((char *)&t1, sizeof(t1));
while (!f.eof())
{
if (t1.getRollNo() != roll)
g.write((char *)&t1, sizeof(t1));
f.read((char *)&t1, sizeof(t1));
}
cout << "The record with the roll no. " << roll << " has been deleted." << endl;
f.close();
g.close();
remove("StuRecord.txt");
rename("temp.txt", "StuRecord.txt");
break;
case 8:
cout << "\nThank you";
break;
}
} while (ch != 8);
}
Output

You might also like