错误“ class HotelRoom”即使有,也没有名为“ menu”的成员

时间:2018-11-19 14:05:10

标签: c++

我正在尝试使用C ++构建酒店预订程序。但是,我有一个问题。我不断收到上述错误消息,但似乎找不到修复程序。

请提供一些帮助。任何事情将不胜感激。以下是我到目前为止所写的内容。

expandItem() {
  this.isCollapsed = true
}

1 个答案:

答案 0 :(得分:0)

#include<string>
#include<iostream>
#include<fstream>
#include<iomanip>

using namespace std;
class HotelRoom
{
  private:
    int roomnum;                // Room numbers
    int roomcap;                // Room capacity
    int roomoccuoystst = 0;
    int maxperperroom;
    double dailyrate;
  public:


      HotelRoom()
    {
        roomcap = 0;
        maxperperroom = 2;
        dailyrate = 175;
    }

    int gettotal = 0;
    int gettotallist = 0;
    string room;
    string guestroom, message;




    void viewrooms()
    {
        char viewselect, back;
        cout << "Which room list would you like to view ?. 1 - Add rooms, 2 - Reserved rooms : ";
        cin >> viewselect;
        switch (viewselect)
        {
        case '1':
            viewaddromm();
            break;
        case '2':
            viewresromm();
            break;
        default:
            cout <<
                "Please select from the option provided or go back to the main menu. 1 - view rooms, 2 - to the mail menu or any other key to exit the program : ";
            cin >> back;
            switch (back)
            {
            case '1':
                viewrooms();
                break;
            case '2':
                 menu();
                break;
            default:
                exitpro();

            }
        }
    }

    void viewresromm()
    {

        string roomtochange, items;
        string guestroomdb;
        // int newaccupancy;
        // char decisionmade,savinf;
        string fname, lname, nationality;
        string checkaddroom;
        ifstream getdatafromaddroom;    // creation of the ifstream object
        getdatafromaddroom.open("reserveroom.out");


        if (getdatafromaddroom.fail())  // if statement used for error
                                        // checking
        {
            cout << "Could not open file" << endl;  // message that will be
                                                    // printed if the program
                                                    // cannot open the file
                                                    return;
        }

        cout << endl;
        cout << "First Name" << '-' << "Last Name" << '-' << "Nationality" << '-' << "Guest(s)" <<
            '-' << "Room #" << endl;
        cout << "-------------------------------------------------------" << endl;
        // string items;
        while (!getdatafromaddroom.eof())
        {

            // getdatafromaddroom
            // >>fname>>lname>>nationality>>occup>>guestroomdb;
            getline(getdatafromaddroom, items);
            // cout<<setw(5)<<fname<<' '<<setw(10)<<lname<<'
            // '<<setw(10)<<nationality<<' '<<setw(10)<<occup<<'
            // '<<setw(9)<<guestroomdb<<endl;
            gettotallist++;

            if (getdatafromaddroom.eof())
                break;
            cout << items << endl;
        }

        for (int getlist = 0; getlist < gettotallist; getlist++)
        {
            cout << items << endl;
            // cout<<setw(5)<<fname<<' '<<setw(10)<<lname<<'
            // '<<setw(10)<<nationality<<' '<<setw(10)<<occup<<'
            // '<<setw(9)<<guestroomdb<<endl;
        }
    }

    void viewaddromm()
    {
        // int occup,rmchoose,up;
        string roomtochange;
        string guestroomdb;
        // int newaccupancy;
        // char decisionmade,savinf;
        string fname, lname, nationality;
        string checkaddroom;
        fstream getdatafromaddroom; // creation of the ifstream object
        getdatafromaddroom.open("addroom.out");


        if (getdatafromaddroom.fail())  // if statement used for error
                                        // checking
        {
            cout << "Could not open file" << endl;  // message that will be
                                                    // printed if the program
                                                    // cannot open the file
                                                    return;
        }

        cout << endl;
        cout << "First Name" << '-' << "Last Name" << '-' << "Nationality" << '-' << "Guest(s)" <<
            '-' << "Room #" << endl;
        cout << "-------------------------------------------------------" << endl;
        string items;
        while (!getdatafromaddroom.eof())
        {

            // getdatafromaddroom
            // >>fname>>lname>>nationality>>occup>>guestroomdb;
            getline(getdatafromaddroom, items);
            // cout<<setw(5)<<fname<<' '<<setw(10)<<lname<<'
            // '<<setw(10)<<nationality<<' '<<setw(10)<<occup<<'
            // '<<setw(9)<<guestroomdb<<endl;
            gettotallist++;

            if (getdatafromaddroom.eof())
                break;
            cout << items << endl;
        }

        for (int getlist = 0; getlist < gettotallist; getlist++)
        {
            cout << items << endl;
            // cout<<setw(5)<<fname<<' '<<setw(10)<<lname<<'
            // '<<setw(10)<<nationality<<' '<<setw(10)<<occup<<'
            // '<<setw(9)<<guestroomdb<<endl;
        }



    }

    void exitpro()
    {
        cout << "Program closing......Goodbye" << endl;
    //  system("Pause");
        exit(0);
    }

    void Addroom()
    {
        std::string mess = __func__;
        mess += " is not yet implimented.";
        throw new std::logic_error(mess.c_str());
    }

    void reserveroom()
    {
        std::string mess = __func__;
        mess += " is not yet implimented.";
        throw new std::logic_error(mess.c_str());
    }

    void modifyroom()
    {
        std::string mess = __func__;
        mess += " is not yet implimented.";
        throw new std::logic_error(mess.c_str());
    }

    void menu()
    {
        while (true)
        {
            char menuchoice;
            cout << "[-------------------------------------------------------]" << endl;
            cout << "[-Welcome to the hotel booking and reseration menu-]" << endl;
            cout << "[--------------------------------------------------------]" << endl;

            cout << setw(30) << "Addroom -- 1" << endl;
            cout << setw(30) << "Reserve a room -- 2" << endl;
            cout << setw(30) << "Modify a room -- 3" << endl;
            cout << setw(30) << "View rooms -- 4" << endl;
            cout << setw(30) << "Exit -- 5" << endl;
            cin >> menuchoice;
            switch (menuchoice)
            {
            case '1':
                Addroom();
                break;
            case '2':
                reserveroom();
                break;
            case '3':
                modifyroom();
                break;
            case '4':
                viewrooms();
                break;
            case '5':
                exitpro();
            }
        }
    }
};

int main()
{
    try
    {
        HotelRoom room;
        room.menu();
    }
    catch(std::logic_error * ex)
    {
        std::cout << ex->what();
    }

}

该项目还有很多其他事情要做。我已经修复了您专门询问的部分,现在修复了带有某些适当诊断的runninng应用程序。我不会深入了解这种语言的工作方式,但是您有一些没有隐含的功能,缺少返回类型,只是一些一般的逻辑错误,例如在确定文件未打开后尝试使用文件。它现在开始运行,您可以清楚地知道需要完成什么。您还有几个未使用的变量。

我最少添加了

void Addroom()
    {
        std::string mess = __func__;
        mess += " is not yet implimented.";
        throw new std::logic_error(mess.c_str());
    }

    void reserveroom()
    {
        std::string mess = __func__;
        mess += " is not yet implimented.";
        throw new std::logic_error(mess.c_str());
    }

    void modifyroom()
    {
        std::string mess = __func__;
        mess += " is not yet implimented.";
        throw new std::logic_error(mess.c_str());


    }

,然后返回菜单类型。 `void menu()

您不能调用尚未编写的函数,并且所有函数都具有返回类型,即使它们什么也不返回。

祝你好运!