E.施工计算 | |||||
| |||||
Description | |||||
利用面向对象程序设计的方法,实现给定类的设计,并解决如下问题。 瓦工进行某装修项目,计算项目费用时包括3部分(辅料总价、铺贴瓷砖总价、瓷砖信息)的总价之和。瓷砖信息由瓷砖数量、瓷砖单价组成。 项目可以分意向性项目(未备料未施工项目)、已完工项目和未开工项目(已备料未施工项目)。分别计算一项意向性项目、一项已完工项目和一项未开工项目的费用总和。 项目由类WProject表示,瓷砖信息由类ZInfo表示。 | |||||
Input | |||||
一组测试数据。2行输入数据。 未开工项目输入数据占一行,分别是辅料总价(int型)、瓷砖数量(int型)、瓷砖单价(int型),数据之间由空格分隔。 已完工项目输入数据占一行,分别是辅料总价(int型)、瓷砖数量(int型)、瓷砖单价(int型)、铺贴单价(int型),数据之间由空格分隔。 | |||||
Output | |||||
输出数据占3行,第1行输出的是意向性项目的费用;第2行输出的是未开工项目的费用;第3行输出的是已完工项目的费用。 | |||||
Sample Input | |||||
100 100 10 100 100 10 5 | |||||
Sample Output | |||||
0 1100 1600 | |||||
Hint | |||||
注意:在给定类的基础上,完善类的设计。给定主函数不能改变。 class ZInfo{ private: int Zcount;//瓷砖数量 int Zprice;//瓷砖单价 public: ... }; class WProject{ private: int FLcost;//辅料总价 ZInfo z;//瓷砖信息 int PTprice;//铺贴单价 public: ... }; int main() { WProject yxp; int fl,c,p,pt; cin>>fl>>c>>p; WProject wsgp(fl,c,p); cin>>fl>>c>>p>>pt; WProject ywgp(fl,c,p,pt); cout<<yxp.getTotal()<<endl; cout<<wsgp.getTotal()<<endl; cout<<ywgp.getTotal()<<endl; return 0; } |
#include<iostream>
#include<string>
using namespace std;
class ZInfo {
private:
int Zcount;//瓷砖数量
int Zprice;//瓷砖单价
public:
void set(int a, int b) { Zcount = a, Zprice = b; }
int amount() { return Zcount; }
int getPrice()
{
return Zcount * Zprice;
}
};
class WProject {
private:
int FLcost;//辅料总价
ZInfo z;//瓷砖信息
int PTprice;//铺贴单价
public:
WProject()
{
z.set(0, 0), FLcost = 0, PTprice = 0;
}
WProject(int a, int b, int c)
{
FLcost = a, z.set(b, c), PTprice = 0;
}
WProject(int a, int b, int c, int d)
{
FLcost = a, z.set(b, c), PTprice = d;
}
int getTotal()
{
int price = FLcost + z.getPrice() + z.amount() * PTprice;
return price;
}
};
int main()
{
WProject yxp;
int fl, c, p, pt;
cin >> fl >> c >> p;
WProject wsgp(fl, c, p);
cin >> fl >> c >> p >> pt;
WProject ywgp(fl, c, p, pt);
cout << yxp.getTotal() << endl;//意向
cout << wsgp.getTotal() << endl;//未开工
cout << ywgp.getTotal() << endl;//已完工
return 0;
}