繁体   English   中英

如何在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 ++程序:

  1. 创建一个Register类,可以存储当天的所有收据以及该寄存器的总计。

    该类可以具有以下成员函数:

    Contructor(int) - 根据传递给构造函数的整数创建一些收据(这是寄存器可以采用的最大订单数)。 您可能还需要创建其他变量以使程序正常工作,但由您决定。

    void getorder() - 询问用户他们想要在第一个可用收据中存储的每个项目的数量。

    void returnreceipts() - 此函数返回所有收据的详细信息以及当天的总计。

    寄存器操作符+(const寄存器和右) - 这是一个重载的加法运算符。 当两个对象一起添加时,将创建一个空的临时寄存器(带有0个收据),并且只添加两个对象的总数。 该功能返回临时寄存器。

    Register operator =(const Register&right) - 这个重载的赋值运算符只复制右边Object的总数。

    在Main函数中我想:

  2. 创建3个注册对象。 前两个寄存器是商店中的寄存器,应初始化为10个订单。 第三个是在关闭时使用的,可以用0个收据初始化,因为它只接收其他寄存器的总数。

  3. 对寄存器1和2运行两次getorder功能。
  4. 对寄存器1和寄存器2运行returnreceipts。
  5. REG3 = Reg1中+ Reg2中;
  6. 运行寄存器3的returnreceipts。

`

  #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个用户,然后下一个寄存器将做同样的事情? 任何提示都会有帮助

您需要成员变量,这些变量将保存每个订单中订购的每个项目的数量。 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&);

};

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM