Cpp Project :Phone Finder
#include <iostream>
#include <stdio.h>
#include <string.h>
#include <fstream>
#include <conio.h>
#include <iomanip>
#include <stdlib.h>
using namespace std;
class Phone
{
private:
char brand[30];
char name[30];
char os[30];
char touchkey[30];
double size;
char ram[30];
int memory;
char wifi[30];
char camera[30];
char radio[30];
char cardslot[30];
int battery;
int price;
public:
void set_brand(char*);
char* get_brand();
void set_name(char*);
char* get_name();
void set_os(char*);
char* get_os();
void set_touchkey(char*);
char* get_touchkey();
void set_size(double);
double get_size();
void set_ram(char*);
char* get_ram();
void set_memory(int);
int get_memory();
void set_wifi(char*);
char* get_wifi();
void set_camera(char*);
char* get_camera();
void set_radio(char*);
char* get_radio();
void set_cardslot(char*);
char* get_cardslot();
void set_battery(int);
int get_battery();
void set_price(int);
int get_price();
};
//----------------------------------------------------------------------
void Phone::set_brand(char inp_brand[30])
{
strcpy(brand,inp_brand);
}
char* Phone::get_brand()
{
return brand;
}
void Phone::set_name(char inp_name[30])
{
strcpy(name,inp_name);
}
char* Phone::get_name()
{
return name;
}
void Phone::set_os(char inp_os[30])
{
strcpy(os,inp_os);
}
char* Phone::get_os()
{
return os;
}
void Phone::set_touchkey(char inp_touchkey[30])
{
strcpy(touchkey,inp_touchkey);
}
char* Phone::get_touchkey()
{
return touchkey;
}
void Phone::set_size(double inp_size)
{
size=inp_size;
}
double Phone::get_size()
{
return size;
}
void Phone::set_ram(char inp_ram[30])
{
strcpy(ram,inp_ram);
}
char* Phone::get_ram()
{
return ram;
}
void Phone::set_memory(int inp_memory)
{
memory=inp_memory;
}
int Phone::get_memory()
{
return memory;
}
void Phone::set_wifi(char inp_wifi[30])
{
strcpy(wifi,inp_wifi);
}
char* Phone::get_wifi()
{
return wifi;
}
void Phone::set_camera(char inp_camera[30])
{
strcpy(camera,inp_camera);
}
char* Phone::get_camera()
{
return camera;
}
void Phone::set_radio(char inp_radio[30])
{
strcpy(radio,inp_radio);
}
char* Phone::get_radio()
{
return radio;
}
void Phone::set_cardslot(char inp_cardslot[30])
{
strcpy(cardslot,inp_cardslot);
}
char* Phone::get_cardslot()
{
return cardslot;
}
void Phone::set_battery(int inp_battery)
{
battery=inp_battery;
}
int Phone::get_battery()
{
return battery;
}
void Phone::set_price(int inp_price)
{
price=inp_price;
}
int Phone::get_price()
{
return price;
}
//=================================================================
typedef struct data{
char ibrand[30];
char iname[30];
char iios[30];
char itouchkey[30];
double isize;
char iram[30];
int imemory;
char iwifi[30];
char icamera[30];
char iradio[30];
char icardslot[30];
int ibattery;
int iprice;
}sdata;
//===========================================================================
void show(Phone showphone)
{
cout<<"\n-----------------------------------\n\n";
cout<<"Brand : "<<showphone.get_brand()<<" "<<showphone.get_name()<<endl;
cout<<"Operating System : "<<showphone.get_os()<<endl;
cout<<"Touchscreen/Keypad: "<<showphone.get_touchkey()<<endl;
cout<<"Display Size : "<<showphone.get_size()<<" inches"<<endl;
cout<<"RAM : "<<showphone.get_ram()<<endl;
cout<<"Internal Memory : "<<showphone.get_memory()<<endl;
cout<<"WLAN : "<<showphone.get_wifi()<<endl;
cout<<"Secondary Camera : "<<showphone.get_camera()<<endl;
cout<<"FM radio : "<<showphone.get_radio()<<endl;
cout<<"Memory card slot : "<<showphone.get_cardslot()<<endl;
cout<<"Battery : "<<showphone.get_battery()<<" mAh"<<endl;
cout<<"\n-----------------------------------\n\n";
cout<<"Price: "<<showphone.get_price()<<" BDT"<<endl;
cout<<"\n-----------------------------------\n\n";
}
//===================================================================
void finder(sdata datain)
{
Phone list[100];
sdata output;
int num=0;
ifstream fileout("data.txt",ios::in);
fileout>>output.ibrand;
fileout>>output.iname;
fileout>>output.iios;
fileout>>output.itouchkey;
fileout>>output.isize;
fileout>>output.iram;
fileout>>output.imemory;
fileout>>output.iwifi;
fileout>>output.icamera;
fileout>>output.iradio;
fileout>>output.icardslot;
fileout>>output.ibattery;
fileout>>output.iprice;
while (fileout)
{
list[num].set_brand(output.ibrand);
list[num].set_name(output.iname);
list[num].set_os(output.iios);
list[num].set_touchkey(output.itouchkey);
list[num].set_ram(output.iram);
list[num].set_memory(output.imemory);
list[num].set_size(output.isize);
list[num].set_wifi(output.iwifi);
list[num].set_camera(output.icamera);
list[num].set_radio(output.iradio);
list[num].set_cardslot(output.icardslot);
list[num].set_battery(output.ibattery);
list[num].set_price(output.iprice);
fileout>>output.ibrand;
fileout>>output.iname;
fileout>>output.iios;
fileout>>output.itouchkey;
fileout>>output.isize;
fileout>>output.iram;
fileout>>output.imemory;
fileout>>output.iwifi;
fileout>>output.icamera;
fileout>>output.iradio;
fileout>>output.icardslot;
fileout>>output.ibattery;
fileout>>output.iprice;
num++;
}
fileout.close();
int check=1;
for (int i=0;i<num;i++)
{
if (((strcmp(list[i].get_brand(),datain.ibrand)==0)||(strcmp(datain.ibrand,"0")==0))
&& ((strcmp(list[i].get_os(),datain.iios)==0)||(strcmp(datain.iios,"0")==0))
&& ((strcmp(list[i].get_touchkey(),datain.itouchkey)==0)||(strcmp(datain.itouchkey,"0")==0))
&& ((list[i].get_size()>=datain.isize)||(datain.isize==0))
&& ((strcmp(list[i].get_ram(),datain.iram)>=0)||(strcmp(datain.iram,"0")==0))
&& ((list[i].get_memory()>=datain.imemory)||(datain.imemory==0))
&& ((strcmp(list[i].get_wifi(),"0")!=0)||(strcmp(datain.iwifi,"0")==0))
&& ((strcmp(list[i].get_camera(),datain.icamera)==0)||(strcmp(datain.icamera,"0")==0))
&& ((strcmp(list[i].get_radio(),datain.iradio)==0)||(strcmp(datain.iradio,"0")==0))
&& ((strcmp(list[i].get_cardslot(),datain.icardslot)==0)||(strcmp(datain.icardslot,"0")==0))
&& ((list[i].get_battery()>=datain.ibattery)||(datain.ibattery==0)))
{
show(list[i]);
check=0;
};
}
if (check==1) cout<<"Sorry, we have no phone with your request!\n\n";
}
//============================================================
void getuserdata()
{
char check;
do{
int key;
sdata input;
do {
cout<<"\nchoose Brand:\n";
cout<<"[1].Nokia\t[2].Samsung\t[3].Sony\t[4].It doesn't matter\n";
cin>>key;
switch (key)
{
case 1:strcpy(input.ibrand,"Nokia");break;
case 2:strcpy(input.ibrand,"Samsung");break;
case 3:strcpy(input.ibrand,"Sony");break;
case 4:strcpy(input.ibrand,"0");break;
default: cout<<"\n\nwrong key, please enter again!";
};
} while ((key!=1)&&(key!=2)&&(key!=3)&&(key!=4));
do {
cout<<"\nchoose Operating System:\n";
cout<<"[1].Android\t[2].Windows Phone\t[3].Symbian\t[4].It doesn't matter\n";
cin>>key;
switch (key)
{
case 1:strcpy(input.iios,"Android");break;
case 2:strcpy(input.iios,"Windows_Phone");break;
case 3:strcpy(input.iios,"Symbian");break;
case 4:strcpy(input.iios,"0");break;
default: cout<<"\n\nwrong key, please enter again!";
}
} while ((key!=1)&&(key!=2)&&(key!=3)&&(key!=4));
do {
cout<<"\nchoose Screen type:\n";
cout<<"[1].Touchscreen\t[2].Keypad\t[3].It doesn't matter\n";
cin>>key;
switch (key)
{
case 1:strcpy(input.itouchkey,"Touchscreen");break;
case 2:strcpy(input.itouchkey,"Keypad");break;
case 3:strcpy(input.itouchkey,"0");break;
default:cout<<"\n\nwrong key, please enter again!";
}
} while ((key!=1)&&(key!=2)&&(key!=3));
do {
cout<<"\nchoose Size: At least:\n";
cout<<"[1].2,0inches\t[2].3,0inches\t[3].4,0inches[4].5,0inches\t[5].It doesn't matter\n";
cin>>key;
switch (key)
{
case 1:input.isize=2.0;break;
case 2:input.isize=3.0;break;
case 3:input.isize=4.0;break;
case 4:input.isize=5.0;break;
case 5:input.isize=0;break;
default:cout<<"\n\nwrong key, please enter again!";
}
} while ((key!=1)&&(key!=2)&&(key!=3)&&(key!=4)&&(key!=5));
do {
cout<<"\nchoose RAM: At least:\n";
cout<<"[1].256MB\t[2].512MB\t[3].1GB\t[4].2GB\t[5].It doesn't matter\n";
cin>>key;
switch (key)
{
case 1:strcpy(input.iram,".256 MB");break;
case 2:strcpy(input.iram,".512 MB");break;
case 3:strcpy(input.iram,"1 GB");break;
case 4:strcpy(input.iram,"2 GB");break;
case 5:strcpy(input.iram,"0");break;
default:cout<<"\n\nwrong key, please enter again!";
}
} while ((key!=1)&&(key!=2)&&(key!=3)&&(key!=4)&&(key!=5));
do{
cout<<"\nchoose memory: At least:\n";
cout<<"[1].1GB\t\t[2].2GB\t\t[3].4GB\t\t[4].8GB\t\t[5].16GB\t[6].It doesn't matter\n";
cin>>key;
switch (key)
{
case 1:input.imemory=1 ;break;
case 2:input.imemory=2 ;break;
case 3:input.imemory=4 ;break;
case 4:input.imemory=8 ;break;
case 5:input.imemory=16;break;
case 6:input.imemory=0;break;
default: cout<<"\n\nwrong key, please enter again!";
}
} while ((key!=1)&&(key!=2)&&(key!=3)&&(key!=4)&&(key!=5)&&(key!=6));
do {
cout<<"\nchoose Wifi option:\n";
cout<<"[1].Required\t[2].It doesn't matter\n";
cin>>key;
switch (key)
{
case 1:strcpy(input.iwifi,"1");break;
case 2:strcpy(input.iwifi,"0");break;
default:cout<<"\n\nwrong key, please enter again!";
}
} while ((key!=1)&&(key!=2));
do {
cout<<"\nchoose Secondary Camera option:\n";
cout<<"[1].Required\t[2].It doesn't matter\n";
cin>>key;
switch (key)
{
case 1:strcpy(input.icamera,"Yes");break;
case 2:strcpy(input.icamera,"0");break;
default:cout<<"\n\nwrong key, please enter again!";
}
} while ((key!=1)&&(key!=2));
do {
cout<<"\nchoose FM radio option:\n";
cout<<"[1].Required\t[2].It doesn't matter\n";
cin>>key;
switch (key)
{
case 1:strcpy(input.iradio,"Yes");break;
case 2:strcpy(input.iradio,"0");break;
default:cout<<"\n\nwrong key, please enter again!";
}
} while ((key!=1)&&(key!=2));
do {
cout<<"\nchoose Memory card slot option:\n";
cout<<"[1].Required\t[2].It doesn't matter\n";
cin>>key;
switch (key)
{
case 1:strcpy(input.icardslot,"Yes");break;
case 2:strcpy(input.icardslot,"0");break;
default:cout<<"\n\nwrong key, please enter again!";
}
} while ((key!=1)&&(key!=2));
do {
cout<<"\nchoose battery option: At least\n";
cout<<"[1].1500mAh\t[2].2500mAh\t[3].3500mAh\t[4].4500mAh\t[5].It doesn't matter\n";
cin>>key;
switch (key)
{
case 1:input.ibattery=1500;break;
case 2:input.ibattery=2500;break;
case 3:input.ibattery=3500;break;
case 4:input.ibattery=4500;break;
case 5:input.ibattery=0;break;
default:cout<<"\n\nwrong key, please enter again!";
}
} while ((key!=1)&&(key!=2)&&(key!=3)&&(key!=4)&&(key!=5));
cout<<"\n==============================================";
cout<<"\n\nYOUR SEARCH RESULT:\n\n";
finder(input);
cout<<"\n\nDo you want search continue?\n";
cout<<"[1].yes\t[2].no\n";
fflush(stdin);
cin>>check;
} while (check=='1');
}
//===============================================================
void input_data()
{
ofstream filein("data.txt",ios::out|ios::app);
sdata input;
char key;
do{cout<<"\nbrand (type Nokia or Samsung or Sony): ";
fflush(stdin);
gets(input.ibrand);
cout<<"\nphone name (e.g: Lumia_920): ";
fflush(stdin);
gets(input.iname);
cout<<"\nOperating system (type Android or Windows_Phone or Symbian): ";
fflush(stdin);
cin>>input.iios;
cout<<"\nTouchscreen/Keypad: (type Touchsreen or Keypad): ";
fflush(stdin);
gets(input.itouchkey);
cout<<"\nsize (e.g: 3.5): ";
cin>>input.isize;
cout<<"\nram (e.g: 1GB): ";
fflush(stdin);
gets(input.iram);
cout<<"\nMemory (e.g: 8): ";
fflush(stdin);
cin>>input.imemory;
cout<<"\nWifi (e.g: Wifi 802.11 a/b/g/n or 0): ";
fflush(stdin);
gets(input.iwifi);
cout<<"\nSecondary camera: (type Yes or No): ";
fflush(stdin);
gets(input.icamera);
cout<<"\nFM radio: (type Yes or No): ";
fflush(stdin);
gets(input.iradio);
cout<<"\nMemory card slot: (type Yes or No): ";
fflush(stdin);
gets(input.icardslot);
cout<<"\nbattery (e.g: 2300): ";
cin>>input.ibattery;
cout<<"\nPrice (e.g: 5000): ";
cin>>input.iprice;
cout<<"\n do you want add more? enter 0 to continue or another number to finish!";
fflush(stdin);
cin>>key;
filein<<input.ibrand<<endl;
filein<<input.iname<<endl;
filein<<input.iios<<endl;
filein<<input.itouchkey<<endl;
filein<<input.isize<<endl;
filein<<input.iram<<endl;
filein<<input.imemory<<endl;
filein<<input.iwifi<<endl;
filein<<input.icamera<<endl;
filein<<input.iradio<<endl;
filein<<input.icardslot<<endl;
filein<<input.ibattery<<endl;
filein<<input.iprice;
filein<<endl;
}while (key=='0');
filein.close();
}
//===============================================================
//===============================================================
int main()
{
char choose;
do{
cout<<"\n\tMENU: \n\n";
cout<<"[1]. Input Phone Data(admin)\n\n";
cout<<"[2]. Search Phone (user)\n\n";
cout<<"[3]. Exit!\n\n";
fflush(stdin);
cin>>choose;
switch (choose)
{
case '1': input_data();break;
case '2': getuserdata();break;
case '3': exit(0);
default: cout<<"\n\nWrong key! please enter again!";
}
} while((choose!='1')&&(choose!='2'));
}
No comments:
Post a Comment