【题目描述】
创建一个名为Invoice(发票)的类,硬件商店可以使用它表示店中售出一款商品的一张发票。一个Invoice对象应当包括作为数据成员的4部分信息:零件号(类型:string)、零件描述(类型:string)、商品售出量(类型:int)和商品单价(类型:int)。这个类必须具有一个初始化前述的4个数据成员的构造函数。接收多个实参的构造函数的定义形式如下:
类名(类型名1 形参名1,类型名2 形参名2,......)
对每个数据成员都提供一个set函数和一个get函数。此外,还要提供一个名为getInvoiceAmount的成员函数,计算发票额(即售出量与单价的乘积),然后以int类型返回该值。如果售出量是负数,那么应该把它设置为0;如果单价是负数,那么也应该把它设置为0.编写一个测试程序,演示Invoice类的性能。
【代码如下】
#include <iostream>
#include <string>
using namespace std;
class Invoice
{
public:
Invoice(string number,string description,int volume,int price)//构造函数
:partNumber(number),//初始化零件号
partDescription(description),//初始化零件描述
salesVolume(volume),//初始化售出量
itemPrice(price)//初始化单价
{}
void setPartNumber(string number)//零件号对应的set和get函数
{
partNumber = number;
}
string getPartNumber()
{
return partNumber;
}
//零件描述对应的get和set函数
void setPartDescription(string description)
{
partDescription = description;
}
string getPartDescription()
{
return partDescription;
}
//商品售出量对应的set和get函数
void setSalesVolume(int volume)
{
salesVolume = volume;
}
int getSalesVolume()
{
return salesVolume;
}
void setItemPrice(int price)//商品单价对应的set和get函数
{
itemPrice = price;
}
int getItemPrice()
{
return itemPrice;
}
//计算并返回发票额
int getInvoiceAmount()
{
if(salesVolume < 0 || itemPrice < 0)
{
amount = 0;
}
else
{
amount = itemPrice * salesVolume;
}
return amount;
}
private:
string partNumber;//零件号
string partDescription;//零件描述
int salesVolume;//商品售出量
int itemPrice;//商品单价
int amount;//发票额
};
int main()
{
string numberOfPart;//零件号
string descriptionOfPart;//零件描述
int volumeOfSales;//商品售出量
int priceOfItem;//商品单价
std::cout << "请输入对应零件的零件号:" << std::endl;
getline(cin,numberOfPart);//输入零件号
std::cout << "请输入对应零件的零件描述:" << std::endl;
getline(cin,descriptionOfPart);//输入零件描述
std::cout << "请输入对应的商品售出量:" << std::endl;
std::cin >> volumeOfSales;//输入商品售出量
std::cout << "请输入对应的商品单价:" << std::endl;
std::cin >> priceOfItem;//输入商品单价
Invoice Invoice(numberOfPart,descriptionOfPart,volumeOfSales,priceOfItem);
std::cout << "该零件的所有信息如下:" << std::endl;
std::cout << "零件号为:" << Invoice.getPartNumber() << std::endl;
std::cout << "零件描述为:" << Invoice.getPartDescription() << std::endl;
std::cout << "零件的售出量:" << Invoice.getSalesVolume() << std::endl;
std::cout << "零件的单价:" << Invoice.getItemPrice() << std::endl;
std::cout << "零件的发票额为:" << Invoice.getInvoiceAmount() << std::endl;
return 0;
}