Hal的销售工具是: 锤子:10.99美元 扳手:10.99美元 级别:19.99美元 卷尺:4.99美元 螺丝刀:8.99美元
为了使事情变得更容易从长远来看,你已经决定制作一个c ++程序,它接受每个寄存器的所有订单并在一天结束时计算它们。
编写一个执行以下操作的c ++程序:
创建一个Register类,可以存储当天的所有收据以及该寄存器的总数。
此类可以具有以下成员函数:
Contructor(int) - 根据传递给构造函数的整数创建一些收据(这是寄存器可以采用的最大订单数)。您可能还需要创建其他变量以使程序正常工作,但由您决定。
void getorder() - 询问用户他们想要在第一张可用收据中存储商店的数量。
void returnreceipts() - 此函数返回所有收据的详细信息以及当天的总数。
寄存器操作符+(const寄存器和右) - 这是一个重载的加法运算符。当两个对象一起添加时,将创建一个空的临时寄存器(带有0个收据),并且只添加两个对象的总数。临时寄存器由函数返回。
Register operator =(const Register& right) - 这个重载的赋值运算符只复制右边Object的总数。
在主要功能中我想:
创建3个注册对象。前两个寄存器是商店中的寄存器,应初始化为10个订单。第三个是在关闭时使用的,可以用0个收据初始化,因为它只会从其他寄存器中获取总数。
`
#include <iostream>
#include <iomanip>
using namespace std;
class Register
{
public:
void returnreceipts();
void getorder();
Register(int numReceipt)
{
numReceipt = reciept;
};
Register operator+(const Register &right); //two objects are added, an empty reg is created (0 receitps)
//only the totals are added. temp reg is returned by the function
Register operator=(const Register &right); //copies only the totals fom te object on the right
};
int main()
{
Register reg1(2),reg2(2),reg3;
cout << "Welcome to Hardware SuperStore! I see we have a number of customers! There are two cash registers available\n" << endl;
reg1.getorder();
reg2.getorder();
return 0;
}
void Register::getorder()
{
int W,S,L,TM,H;
for ( int i = 0; i < 2; i++)
{
cout << "\n";
cout << "How many of each item do you want to order for order no." << i + 1 << "in cash register 1 "<< endl;
cout << "Wrenches: ";
cin >> W;
cout << endl << "Screwdrivers: ";
cin >> S;
cout << endl << "Levels: ";
cin >> L;
cout << endl << "Tape Measures: ";
cin >> TM;
cout << endl << "Hammers: ";
cin >> H;
}
}
这就是我到目前为止我试图让输入部分首先工作,因此用户会被问到每个项目个人他们想要多少?这将发生在2个用户,然后下一个寄存器将做同样的事情?任何提示都会有所帮助
答案 0 :(得分:0)
您需要成员变量来保存每个订单中订购的每件商品的数量。 std::vector
是最佳选择。在获得输入时,计算订单的成本并将其添加到总成本中。
Here是一个有效的例子。
注意类声明:
class Register
{
std::vector<int> hammers ; // number of hammers for each order
std::vector<int> wrenches ; // number of wrenches for each order
std::vector<int> levers ; // number of levers for each order
std::vector<int> tapes ; // number of tapes for each order
std::vector<int> screw_drivers ; // number of screw drivers for each order
int order_limit ; // max orders to be taken
int order_taken ; // number of order taken
float total_cost ;
public:
Register(int ol) : order_limit{ol}, order_taken{0}, total_cost{0.0f} {}
Register() {}
void get_order();
void return_receipts();
friend Register operator+(const Register&, const Register&);
};