Cpp Project :Welcome To Telephone Directory with Access Control
#include<iostream>
#include<fstream>
#include<stdlib.h>
#include <cstdlib>#include<iomanip>
#include<cstring>
using namespace std;
char file_name[15]={"userdata.dat"};
void greetings(){ cout<<"\n"<<endl; cout<<"\t**********************************************************"<<endl; cout<<"\t..::Welcome To Telephone Directory with Access Control::.."<<endl; cout<<"\t**********************************************************"<<endl; cout<<"\n\n";}
/********************************************************************/class user_data{protected: char cell_num[12]; char tele_num[16]; char user_name[30]; char city[15]; char area[15];public: int id;user_data()
{}
~user_data()
{}
void get_detail(); void show_detail(); void search(); int getsizeofFile();};
void user_data::get_detail(){greetings();
cout<<"\n\tInput national ID:";cin>>id;
cout<<"\n\tInput cell number:";cin>>cell_num;
cout<<"\n\tInput telephone number:";cin>>tele_num;
cin.ignore();
cout<<"\n\tInput user name:";gets(user_name);
cout<<"\n\tInput city name:";gets(city);
cout<<"\n\tInput area name:";gets(area);
cout<<"\n\tUser Account Created!"<<"\n"<<endl;
}
void user_data::show_detail(){ cout<<"\n\tID:"<<id<<endl; cout<<"\tName:"<<user_name<<endl; cout<<"\tCell Number:"<<cell_num<<endl; cout<<"\tTelephone Number:"<<tele_num<<endl; cout<<"\tCity:"<<city<<endl; cout<<"\tArea:"<<area<<endl;}
int user_data::getsizeofFile(){ int size; int total;user_data u1;
ifstream file_in(file_name);
file_in.seekg(0,ios::end);
total=file_in.tellg();
file_in.close();
size=total/sizeof(u1); return (size);}
void user_data::search(){user_data u;
int id=0,choice; int counter=0; char name2[25]; int size=getsizeofFile();ifstream file_in(file_name);
if(file_in==NULL) { cout<<"\n\tNo Record Found!"<<endl;}
file_in.close();
while(1) { cout<<"\n"<<endl; cout<<"\tAvailable Search Criteria."; cout<<"\n\t1.Search With ID."<<endl; cout<<"\t2.Search With Name."<<endl; cout<<"\t3.Stop Search."; cout<<"\n\n\tSelect a Task:";cin>>choice;
if(choice==1) { cout<<"\n\tInput the User's ID:";cin>>id;
ifstream file_in(file_name);
if(file_in==NULL) { cout<<"\n\tNo Record Found!"<<endl;}
else {for(int i=0;i<size;i++)
{file_in.read((char *)&u,sizeof (u));
if(id==u.id) {u.show_detail();
counter=1;
}
cout<<"\n";}
file_in.close();
if(counter==0) { cout<<"\n\tNo Record Found!"<<endl;}
}
}
else if(choice==2)
{ cout<<"\n\tInput the User's Name:";cin>>name2;
ifstream file_in(file_name);
cout<<"\n\n\n"; if(file_in==NULL) { cout<<"\n\tNo Record Found!"<<endl;}
else {for(int i=0;i<size;i++)
{file_in.read((char *)&u,sizeof (u));
if(!strcmp(u.user_name,name2)) {u.show_detail();
counter=1;
}
cout<<"\n";}
file_in.close();
if(counter==0) { cout<<"\n\tNo Record Found!"<<endl;}
}
}
else if(choice==3)
{ system("cls");cout<<"\n\tSearch Stopped!"<<"\n"<<endl;
greetings();
break;}
else system("cls"); cout<<"\n\n\tInvalid Input!\n\n"<<endl;greetings();
break;}
}
/*****************************************************************************/class admin_data : public user_data
{ protected:string username;
string password;
string sample_username;
string sample_password;
public:admin_data();
int admin_login(); void add_fileinfo(); int getsizeofFile(); void edit_fileinfo(); void view_fileinfo(); int control_panel();};
admin_data::admin_data()
{ username="tdac_admin"; password="bl4ckhawk5";}
int admin_data::admin_login(){ cout<<"\tUsername:";cin>>sample_username;
cout<<"\n"<<endl; cout<<"\tPassword:";cin>>sample_password;
if(username==sample_username && password==sample_password) { return 1;}
elsecout<<"\n\tUsername/Password Incorrect!"<<"\n"<<endl;
}
int admin_data::control_panel(){greetings();
int ch; cout<<"\n\tAdmin Contrl Panel:"; cout<<"\n\t1.Add a New User Account."<<endl; cout<<"\t2.Edit an Existing account."<<endl; cout<<"\t3.View All Available Account."<<endl; cout<<"\t4.Log Out"<<endl; cout<<"\n\tSelect a Task:";cin>>ch;
system("cls"); return ch;}
int admin_data::getsizeofFile(){ int size; int total;user_data u1;
ifstream file_in(file_name);
file_in.seekg(0,ios::end);
total=file_in.tellg();
file_in.close();
size=total/sizeof(u1); return (size);}
void admin_data::add_fileinfo(){user_data u1;
fstream file_in(file_name,ios::app|ios::out);
u1.get_detail();
file_in.write((char*)&u1,sizeof(u1));
file_in.close();
}
void admin_data::view_fileinfo(){user_data u4;
int size=getsizeofFile();ifstream file_in(file_name);
if(file_in==NULL) { cout<<"\n\tNo Record Found!"<<endl;}
else {for(int i=0;i<size;i++)
{file_in.read((char*)&u4,sizeof(u4));
u4.show_detail();
cout<<"\n";}
}
file_in.close();
}
void admin_data::edit_fileinfo(){user_data u3;
int size=getsizeofFile();ifstream file_in(file_name);
if(file_in==NULL) { cout<<"\t\nNo Record Found!"<<endl;}
file_in.close();
fstream fil(file_name,ios::ate|ios::out|ios::in);
fil.seekg(0);
int id; int counter=0; cout<<"\n\tEnter The User's ID:";cin>>id;
if(fil==NULL) { cout<<"\n\tNo Record Found!\n"<<endl;}
else {for(int i=0;i<size;i++)
{fil.read((char*)&u3, sizeof(u3));
if(id==u3.id) { int size=fil.tellg(); size=size-sizeof(u3);fil.seekp(size,ios::beg);
user_data newobj=u3;
newobj.get_detail();
fil.write((char*)&newobj,sizeof(newobj));
counter=1;
break;}
cout<<"\n";}
}
fil.close();
if(counter==0) { cout<<"\n\tNo Record Found1\n"<<endl;}
else { cout<<"\n\tDatabase Updated Successfully!\n"<<endl;}
}
/*****************************************************************************/int main(){admin_data ad;
user_data us;
char ch;greetings();
while(1) { cout<<"\tMain Menu:"<<endl; cout<<"\n\t1. Administrator Login."<<endl; cout<<"\t2. General User."<<endl;cout<<"\t3. Close Program."<<"\n\n"<<endl;
cout<<"\tSelect Your Task:";cin>>ch;
system("cls"); switch(ch) {case '1':greetings();
cout<<"\tYou Have Asked to Access as Adminstrator."<<"\n\n"<<endl;
cout<<"\tPlease Provide Your Login Details."<<"\n\n"<<endl;
if(ad.admin_login()==1) { system("cls"); cout<<"\n\n\tAdmin Login Successful!"<<endl; int admin_login_status=0; while(admin_login_status!=1) { switch(ad.control_panel()) { case 1:ad.add_fileinfo(); break; case 2:ad.edit_fileinfo(); break; case 3:ad.view_fileinfo(); break; case 4:admin_login_status=1; cout<<"\n\tLogged Out!\n"<<endl;;greetings();
break; default: break;}
}
}
break;case '2':greetings();
cout<<"\n\tYou Have Asked to Access as General User."<<"\n\n"<<endl;
cout<<"\t1.Search the Directory for Contacts."<<endl;us.search();
break;case'3':cout<<"\t****************Program Terminated******************"<<endl;
exit(0);
default: break;}
}
}
No comments:
Post a Comment