#include<fstream.h>
#include<string.h>
#include<stdlib.h>
class CHouse
{
private:
char mName[20];  //地址
float mPrice;  //单价
float mArea;  //面积
public:
float getprice()
{
return mPrice;

float getarea()
{
return mArea;
}
void set(char* name, float price, float area);        //修改房屋参数
CHouse(char* name=0,float price=0,float area=0); //构造函数
friend ifstream& operator>> (ifstream& is, CHouse &house);  //从文件中读取一个房屋参数
};
void CHouse::set(char* name, float price, float area)
{
strcpy(mName,name);
mPrice=price;
mArea=area;
}
CHouse::CHouse(char* name=0,float price=0,float area=0)
{
if(name!=NULL) strcpy(mName,name);
mPrice=price;
mArea=area;
}
ifstream& operator>>(ifstream& is,CHouse &house)
{
is>>house.mName>>house.mPrice>>house.
mArea;
return is;
}
class CBuilding  //大楼
{
private:
CHouse mHouse[20];
int mNums;
public:
CBuilding()
{
mNums = 0;
}
float Total(); //计算大楼所有房屋的总价值
void AddHouse(char* name,float price,float area);  //加入房屋到大楼中
void ReadData(char* filename); //将大楼信息从文件中读取
};
float CBuilding::Total()
{
float n;
for(int i=0;i<mNums;i++)
n+=mHouse[i].getprice ();
return n;
}
void CBuilding::AddHouse(char* name,float price,float area)
{
mHouse[mNums]=CHouse(name,price,area);
mNums++;
}
void CBuilding::ReadData(char* filename)
{
char buff[20];
ifstream infile(filename);
if(!infile)
{
cout<<"不能打开输入文件:"<<filename<<'\n';
exit(1);
}
int i=0;
while(infile.getline(buff,20)){
if(i==0)cin>>mNums;
else{
cin>>mHouse[mNums];
i++;
mNums++;}}
infile.close();
}
void main()   
{
CBuilding Building;
Building.ReadData("data.txt");
Building.AddHouse("507",23000,80);
cout<<"房屋总额: "<<Building.Total()<<endl;
}