#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;
}
uj5u.com熱心網友回復:
求大佬指點一下菜鳥吧uj5u.com熱心網友回復:
https://docs.microsoft.com/zh-cn/previous-versions/00hh13h0%28v%3dvs.110%29uj5u.com熱心網友回復:
能不能幫我修改一下,看看你是怎么寫的,這個不是派生好像
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/43651.html
標籤:基礎類
下一篇:這個怎么改啊,不會,誒
