-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathData_Fu.cpp
More file actions
146 lines (145 loc) · 3.7 KB
/
Data_Fu.cpp
File metadata and controls
146 lines (145 loc) · 3.7 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
//---------------------------------------------//
void write_account();
void display_sp(int n);
void modify_account(int n);
void delete_account(int n);
void deposit_withdraw(int n1, int n2);
void intro();
//---------------------------------------------//
void write_account() {
account ac;
ofstream outFile;
outFile.open("account.dat", ios::binary | ios::app);
ac.create_account();
outFile.write(reinterpret_cast<char*> (&ac), sizeof(account));
outFile.close();
}
void display_sp(int n) {
account ac;
bool flag = false;
ifstream inFile;
inFile.open("account.dat", ios::binary);
if (!inFile)
{
cout << "File could not be open !! Press any Key...";
return;
}
cout << "\nBALANCE DETAILS\n";
while (inFile.read(reinterpret_cast<char*> (&ac), sizeof(account))) {
if (ac.retacno() == n) {
ac.show_account();
flag = true;
}
}
inFile.close();
if (flag == false) cout << "\n\nAccount Number deos not Exit";
}
void modify_account(int n)
{
bool found = false;
account ac;
fstream File;
File.open("account.dat", ios::binary | ios::in | ios::out);
if (!File)
{
cout << "File could not be open !! Press any Key...";
return;
}
while (!File.eof() && found == false)
{
File.read(reinterpret_cast<char*> (&ac), sizeof(account));
if (ac.retacno() == n)
{
ac.show_account();
cout << "\n\nEnter The New Details of account" << endl;
ac.modify();
int pos = (-1) * static_cast<int>(sizeof(account));
File.seekp(pos, ios::cur);
File.write(reinterpret_cast<char*> (&ac), sizeof(account));
cout << "\n\n\t Record Updated";
found = true;
}
}
File.close();
if (found == false)
cout << "\n\n Record Not Found ";
}
void delete_account(int n)
{
account ac;
ifstream inFile;
ofstream outFile;
inFile.open("account.dat", ios::binary);
if (!inFile)
{
cout << "File could not be open !! Press any Key...";
return;
}
outFile.open("Temp.dat", ios::binary);
inFile.seekg(0, ios::beg);
while (inFile.read(reinterpret_cast<char*> (&ac), sizeof(account)))
{
if (ac.retacno() != n)
{
outFile.write(reinterpret_cast<char*> (&ac), sizeof(account));
}
}
inFile.close();
outFile.close();
remove("account.dat");
rename("Temp.dat", "account.dat");
cout << "\n\n\tRecord Deleted ..";
}
void deposit_withdraw(int n, int option)
{
int amt;
bool found = false;
account ac;
fstream File;
File.open("account.dat", ios::binary | ios::in | ios::out);
if (!File)
{
cout << "File could not be open !! Press any Key...";
return;
}
while (!File.eof() && found == false)
{
File.read(reinterpret_cast<char*> (&ac), sizeof(account));
if (ac.retacno() == n)
{
ac.show_account();
if (option == 1)
{
cout << "\n\n\tTO DEPOSITE AMOUNT ";
cout << "\n\nEnter The amount to be deposited";
cin >> amt;
ac.dep(amt);
}
if (option == 2)
{
cout << "\n\n\tTO WITHDRAW AMOUNT ";
cout << "\n\nEnter The amount to be withdraw";
cin >> amt;
int bal = ac.retdeposit() - amt;
if ((bal < 500 && ac.rettype() == 'S') || (bal < 1000 && ac.rettype() == 'C'))
cout << "Insufficience balance";
else
ac.draw(amt);
}
int pos = (-1) * static_cast<int>(sizeof(ac));
File.seekp(pos, ios::cur);
File.write(reinterpret_cast<char*> (&ac), sizeof(account));
cout << "\n\n\t Record Updated";
found = true;
}
}
File.close();
if (found == false)
cout << "\n\n Record Not Found ";
}
void intro() {
cout << "******************************************************\n";
cout << " Hello In Bank System \n";
cout << "******************************************************\n";
cin.get();
}