#include<iostream>
#include<fstream>
#include<string>
using namespace std;
class House
{
public:
void PRINT()
{
printf("%-10d",no);
printf("%-10.2f",area);
printf("%-10s",style);
printf("%-10.2f",price);
printf("%-10s",dir);
printf("%-10d",high);
printf("%-10d\n",unit);
}
void Load(ifstream& os)
{
os>>no>>area>>style;
os>>price>>dir>>high>>unit;
}
void Save(ofstream& os)
{
os<<no<<" "<<area<<" "<<style<<" ";
os<<price<<" "<<dir<<" "<<high<<" "<<unit<<"\n";
}
void Set(int a,float b,char c[],float d,char e[],int f,int g)
{
no=a;
area=b;
strcpy(style,c);
price=d;
strcpy(dir,e);
high=f;
unit=g;
}
int Get_No()
{
return no;
}
private:
int no;//编号
float area;//面积
char style[20];//户型
float price;//价格
char dir[20];//朝向
int high;//楼层
int unit;//单元
};
class Person
{
public:
bool Login(char a[],char b[])
{
if(!strcmp(name,a)&&!strcmp(code,b))
return true;
return false;
}
void Set_Info(char a[],char b[])
{
strcpy(name,a);
strcpy(code,b);
}
protected:
char name[20];
char code[20];
};
class People:public Person
{
public:
People()
{
n=0;
}
void Load(ifstream& os)
{
int i;
os>>name>>code>>n;
for(i=0;i<10;i++)
{
os>>flag[i];
os>>hou[i];
}
}
void Save(ofstream& os)
{
int i;
os<<name<<" "<<code<<" "<<n<<" ";
for(i=0;i<10;i++)
{
os<<flag[i]<<" ";
os<<hou[i]<<" ";
}
os<<"\n";
}
void Add(int fl,int house_num)
{
flag[n]=fl;
hou[n]=house_num;
n++;
}
int Get_N()
{
return n;
}
int Get_Hous(int i)
{
if(flag[i]==0)
return hou[i];
return -1;
}
private:
int n;
int flag[10];//出售1 预购0
int hou[10];
};
class Menu
{
private:
People people[100];
int peo_num;
House house[100];
int hou_num;
int who;//记录是谁登录
public:
Menu();
void Load_House();
void Load_People();
void menu();
void LOGIN();
void Add_New_People();
void LOGIN_PRO();
void Save_House();
void Save_People();
void Add_New_House();
void Display_House();
void Book_House();
void Display_Book();
void Search();
};
void Menu::Search()
{
int temp,i;
system("cls");
cout<<"请输入要查询的编号:";
cin>>temp;
for(i=0;i<hou_num;i++)
{
if(temp == house[i].Get_No())
break;
}
if(i==hou_num)
{
cout<<"无该编号!"<<endl;
system("pause");
return ;
}
printf("%-10s%-10s%-10s%-10s%-10s%-10s%-10s\n","编号","面积","户型","价格","朝向","楼层","单元");
house[i].PRINT();
system("pause");
}
void Menu::menu()
{
int choice;
do
{
system("cls");
cout<<"1:显示房屋信息"<<endl;
cout<<"2:预定房屋"<<endl;
cout<<"3:查看预定信息"<<endl;
cout<<"4:查询房屋信息"<<endl;
cout<<"5:发布房屋信息"<<endl;
cout<<"0:退出"<<endl;
cout<<"请输入选择:";
cin>>choice;
while(choice<0||choice>5)
{
cout<<"请重新选择:";
cin>>choice;
}
switch(choice)
{
case 0:
Save_House();
Save_People();
exit(0);
break;
case 1:
Display_House();
system("pause");
break;
case 2:
Book_House();
break;
case 3:
Display_Book();
break;
case 4:
Search();
break;
case 5:
Add_New_House();
break;
}
}while(choice!=0);
}
int main()
{
Menu m;
m.LOGIN_PRO();
m.menu();
return 0;
}
Menu::Menu()
{
who=-1;
Load_House();
Load_People();
}
void Menu::Load_House()
{
hou_num=0;
ifstream ifile;
ifile.open("house.txt");
while(ifile.peek()!=EOF)
{
house[hou_num++].Load(ifile);
}
if(hou_num>1)
hou_num--;
ifile.close();
}
void Menu::Load_People()
{
peo_num=0;
ifstream ifile;
ifile.open("people.txt");
while(ifile.peek()!=EOF)
{
people[peo_num++].Load(ifile);
}
if(peo_num>1)
peo_num--;
ifile.close();
}
void Menu::Save_House()
{
int i=0;
ofstream ofile;
ofile.open("house.txt");
for(i=0;i<hou_num;i++)
{
house[i].Save(ofile);
}
ofile.close();
}
void Menu::Save_People()
{
int i=0;
ofstream ofile;
ofile.open("people.txt");
for(i=0;i<peo_num;i++)
{
people[i].Save(ofile);
}
ofile.close();
}
void Menu::LOGIN()
{
int i;
char name[20];
char code[20];
system("cls");
cout<<"请输入用户名:";
cin>>name;
cout<<"请输入密码:";
cin>>code;
for(i=0;i<peo_num;i++)
{
if(people[i].Login(name,code))
{
who=i;
cout<<"登录成功!"<<endl;
system("pause");
return;
}
}
cout<<"账号或密码错误!"<<endl;
system("pause");
}
void Menu::Add_New_People()
{
char name[20];
char code[20];
system("cls");
cout<<"请输入一个用户名:";
cin>>name;
cout<<"请输入一个密码:";
cin>>code;
people[peo_num++].Set_Info(name,code);
cout<<"注册成功!"<<endl;
system("pause");
}
void Menu::LOGIN_PRO()
{
int choice;
do
{
system("cls");
cout<<"1:登录"<<endl;
cout<<"2:注册"<<endl;
cout<<"0:退出"<<endl;
cout<<"请输入选择:";
cin>>choice;
while(choice<0||choice>2)
{
cout<<"请重新选择:";
cin>>choice;
}
switch(choice)
{
case 0:
Save_People();
exit(0);
break;
case 1:
LOGIN();
if(who != -1)
{
return;
}
break;
case 2:
Add_New_People();
break;
}
}while(choice!=0);
}
void Menu::Add_New_House()
{
int no;//编号
float area;//面积
char style[20];//户型
float price;//价格
char dir[20];//朝向
int high;//楼层
int unit;//单元
system("cls");
cout<<"请输入房子编号:";
cin>>no;
cout<<"请输入房子面积:";
cin>>area;
cout<<"请输入房子户型:";
cin>>style;
cout<<"请输入房子价格:";
cin>>price;
cout<<"请输入房子朝向:";
cin>>dir;
cout<<"请输入房子楼层:";
cin>>high;
cout<<"请输入房子单元:";
cin>>unit;
house[hou_num++].Set(no,area,style,price,dir,high,unit);
people[who].Add(1,no);
cout<<"新增成功!"<<endl;
system("pause");
}
void Menu::Display_House()
{
int i;
system("cls");
printf("%-10s%-10s%-10s%-10s%-10s%-10s%-10s\n","编号","面积","户型","价格","朝向","楼层","单元");
for(i=0;i<hou_num;i++)
{
house[i].PRINT();
}
}
void Menu::Book_House()
{
int temp,i;
system("cls");
Display_House();
cout<<endl<<"请输入要预定的编号:";
cin>>temp;
for(i=0;i<hou_num;i++)
{
if(temp == house[i].Get_No())
break;
}
if(i==hou_num)
{
cout<<"无该编号!"<<endl;
system("pause");
return ;
}
people[who].Add(0,temp);
cout<<"预定成功!"<<endl;
system("pause");
}
void Menu::Display_Book()
{
int i,j;
system("cls");
printf("%-10s%-10s%-10s%-10s%-10s%-10s%-10s\n","编号","面积","户型","价格","朝向","楼层","单元");
for(i=0;i<people[who].Get_N();i++)
{
if(people[who].Get_Hous(i)!=-1)
{
for(j=0;j<hou_num;j++)
{
if(people[who].Get_Hous(i) == house[i].Get_No())
{
house[i].PRINT();
break;
}
}
}
}
system("pause");
}
房屋销售管理系统
最新推荐文章于 2022-06-18 13:12:52 发布