C ++类 - 对象数组

时间:2013-12-06 09:39:52

标签: c++ class

我要设计一个电影院的订票系统,只有50个座位(5行,每个10个座位) 我已经获得了下面的Cinema课程,这不应该被修改

class Cinema{
    private:
        Ticket ticket[50]; // not sure what it is going on
    public:
        Cinema(); //constructor
        double purchaseTicket(int); // ticket ID as parameter, check if it is available, if so update it as unavailable. If not, return 0.
        void listAll();
};

这是Ticket类

class Ticket{
    private:
        int ID[50]; //ticket ID (correct to store data in array?)
        int price; // ticket price
        // have to provide set and get function for ID and price, have no idea even I've googled on this topic 
        bool available[50]; // availability of ticket
    public:
        Ticket(); //constructor
        bool status(int); // return availability of ticket
        void setAvailable(int); //update status of ticket as available
        void buy(int); //update status of ticket as unavailable
};

这是模拟购票功能的主要功能(给定)

int main(){
    Cinema myCinema;
    myCinema.listAll(); // available seats print "O", otherwise print "X"

    //simulate to purchse ticket 15, 16, 17
    double price = 0;
    price += myCinema.purchaseTicket(15);
    price += myCinema.purchaseTicket(16);
    price += myCinema.purchaseTicket(17);

    cout <<"\nTotal Price: $" << price << endl << endl;

    //print the current status
    myCinema.listAll();

    return 0;
}

任何人都可以告诉我如何使用“门票[50];” ?这让我很烦恼,很多步骤都无法完成
并告诉我门票类中是否有任何问题

2 个答案:

答案 0 :(得分:0)

每个座位都有一张票。因此有五十张购票门票。这是看待事物的一种有点奇怪的方式,但我认为你可以把'门票'想象成'座位'的同义词。

您的门票类错了。请记住,票证对象代表单个票证(代表单个席位)。因此,一张票有一个ID,一个可用性。因此,票证类中的数组是错误的。

class Ticket{
    private:
        int ID; //ticket ID 
        int price; // ticket price
        bool available; // availability of ticket
    public:
        ...
};

安装者和吸气剂是微不足道的

int Ticket::getPrice() const { return price; }
void Ticket::setPrice(int p) { price = p; }

类似于可用性。

注意到Cinema::purchaseTicket会返回double,为什么我不知道。

答案 1 :(得分:0)

您不能直接使用票证数组,因为它是Cinema的私人成员。您只能使用课程中提到的购买功能访问它。由于不应修改该类,因此这是唯一的方法。 (注意:ID成员的int数组错误,只使用 int)。

但是,如果您要修改该类以使票证[50]成为公共票,

有关如何使用它的示例如下

myCinema.ticket [0] .ID访问第一张故障单的ID(最好使用字符数组来存储故障单ID,否则只是 int: int数组错了

通过点运算符访问您想要的成员。