如何在2个不同的寄存器上记录2个订单的多个输入
How do I record multiple inputs for 2 orders on 2 different registers?
Hal销售的工具有:铁锤帮:10.99美元扳手:10.99美元级别:19.99美元卷尺:4.99美元螺丝刀:8.99美元
从长远来看,为了让事情变得更容易,你决定制作一个c++程序,接收每个寄存器的所有订单,并在一天结束时对它们进行计数。
编写一个执行以下操作的c++程序:
-
创建一个Register类,该类可以存储当天的所有收据以及该寄存器的总数。
该类可能具有以下成员函数:
构造函数(int)–基于传递到构造函数的整数创建多个收据(这是寄存器可以接受的最大订单数)。您可能还需要创建额外的变量来使程序工作,但这取决于您自己。
void getorder()–询问用户他们想要在第一个可用收据中存储的每个项目的数量。
void returnreceipts()–此函数返回当天所有收据的详细信息和总额。
寄存器运算符+(const Register&right)-这是一个重载的加法运算符。当两个对象添加在一起时,会创建一个空的临时寄存器(包含0个收据),并且只向其中添加两个对象的总数。临时寄存器由函数返回。
Register运算符=(const Register&right)-这个重载的赋值运算符只复制右侧对象的总数。
在主功能中,我想要:
-
创建3个寄存器对象。前两个寄存器是存储中的寄存器,应该初始化为接受10个订单。第三个在结账时使用,可以用0个收据初始化,因为它只会从其他寄存器中获取总数。
- 对寄存器1和2运行getorder函数两次
- 对寄存器1和寄存器2运行returnreceives
- Reg3=Reg1+Reg2
- 为寄存器3运行returnreceives
`
#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 availablen" << 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个用户身上,那么下一个寄存器也会这样做吗?任何提示都将有助于
您需要成员变量,这些变量将保存每个订单中订购的每个项目的数量。std::vector
是最好的选择。在获得输入时,计算订单的成本并将其添加到总成本中。
下面是一个工作示例。
注意类声明:
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&);
};
- C++多个输入和输出
- 为什么有时我输入一个整数,程序将第一个输入的数字打印成十进制数?
- 该程序只接受 5 个输入,而我给出 n=8
- 在 2D 矢量中获取多个输入时出现问题
- 使用多个输入向量中值的笛卡尔乘积调用 lambda
- 如何获取C++中的输入并将其"split"到列表中?换句话说,取 N 个输入并放入 N 长度的数组中
- 多个输入输入 for 循环
- Cin 需要两个输入
- 如何通过一次运行将多个输入样本馈送到C++张量流模型
- C++ 链表:它不会删除第一个输入
- 多个输入的代码失败
- 如何从用户的5个输入中找到最大值
- 为什么这个程序在我插入前2个输入后崩溃
- 计算着色器Open GL ES的多个输入
- 我正在尝试使用 c++ 编写二叉搜索树,但该程序仅接受 2 个输入并停止
- 为什么我的代码在要求打印长度和宽度的值后不接受多个输入?
- std::具有两个输入参数的矢量构造函数
- 有没有办法将两个输入图像堆叠到卤化物发生器中的单个 4 维缓冲区中?
- 使用 scanf() 具有不同数据类型的多个输入
- 如果两个输入流相等,我如何构造主()到输出是