未在此范围内声明的函数

时间:2014-03-24 19:58:18

标签: c++ function

继续得到我尝试调用的任何函数未在此范围内声明的错误。这是代码块。编译器返回任何被调用的函数的错误," XXX未在此范围内声明"我不确定问题出在哪里,所以我已经包含了所有代码。对不起有很多。感谢您提供的任何帮助。

这是一个无法正常工作的小例子。

void kitchenOption(void);
int main()
{
kitchenOption();
}
/******************************
* Function Name: kitchenOption
* Return Type: none
* Parameters: none
* Description: Gives the Kitchen Options and updates the global variable.
* ****************************/
void kitchenOption(void)
{
    std::cout << "You may add deluxe wooden cabinets and granite cabinets for an additional $20,000." << std::endl;
    std::cout << "If you would like deluxe cabinets and countertops, please input 1." << std::endl;
    std::cout << "If you do not want deluxe cabinets and countertops, please input 2." << std::endl;
    std::cin >> kitchenChoice;

    if(kitchenChoice == 1)
    {
            std::cout << "You have selected deluxe cabinets and contertops. This adds $20,000 to your Optional Features Cost." << std::endl;
            optionalFeaturesCost += 20000;
            std::cout << "Your Optional Features Cost is now $" << setprecision(2) << fixed << optionalFeaturesCost << std::endl;
    }
    else if(kitchenChoice == 2)
    {
            std::cout << "You have selected to not have deluxe caibnets and countertops." << std::endl;
    }
    else
    {
            std::cout << "That is not a valid input." << std::endl;
            exit(1);
    }
}

这个^函数是一个无法正常工作的例子。其余代码如下:

#include<iostream>
using std::cout;
using std::endl;
using std::fixed;

#include<iomanip>
using std::setprecision;

#include <stdlib.h>

//Fixed Variable Declarations and Assignments
float STATE_TAX_RATE = .075;
float PERCENT_PROFIT = .25;
float COST_PER_SQUARE_FT = 66.67;

//Variable declarations and Initial Assignments
double houseSquareFootage = 0.0;
double basicHomeCost = 0.0;
double profit = 0.0;
double netHomeCost = 0.0;
double taxes = 0.0;
double totalHomeCost = 0.0;
double optionalFeaturesCost = 0.0;
double discount = 0.0;
int houseChoice = 0;
int bedroomChoice = 0;
int kitchenChoice = 0;
int interiorChoice = 0;
int loopVar = 1;
int loopChoice = 0;

//Function Declarations
int houseOption(void);
void welcomeMessage(void);
void bedroomOption(void)
void kitchenOption(void);
void designOption(void);
void displayDiscount(void);
void displaySummary(void);
void dmoreQuoteOption(void);
void thankYouMessage(void);

int main()
{
do{
//reset Variables
houseChoice = 0;
bedroomChoice = 0;
kitchenChoice = 0;
interiorChoice = 0;
optionalFeaturesCost = 0;
discount = 0;

//Welcome Message
welcomeMessage();

//House Option
houseChoice = houseOption();

if(houseChoice == 1)
{
        std::cout << "You have selected the standard house." << std::endl;
        houseSquareFootage = 3000;
        displaySummary();
        moreQuoteOption();
}
else if (houseChoice == 2)
{

std::cout << "You have selected a custom house." << std::endl;

//Bedroom Option
bedroomOption();

//Kitchen Option
kitchenOption();

//Design Option
designOption();

//Discount
displayDiscount();

//Run Calculations and Report
displaySummary();
}

else
{
        std::cout << "That is not a valid input" << std::endl;
        exit(1);
}
} while (loopVar <= 5);
}

/*************************************
 * Function Type: welcomeMessage
 * Return Type: none
 * parameters: none
 * Description: Welcomes the user to the house pogram
 * **********************************/
void welcomeMessage(void)
{
        std::cout << "Weloome to the House Selection Program." << std::endl;
        std::cout << "This program will allow you to select features for" << std::endl;
        std::cout << " and calculate costs for up to 5 houses." << std::endl;
}

/*************************************
 * Function Name: houseOption
 * Return Type: Int
 * Parameters: none
 * Description: Gives the house options and returns an int to save the info.
 *********************************** /
int houseOption(void)
{
        std::cout << "Would you like a standard house or a custom house?" << std::endl;
        std::cout << "Input 1 for a standard house or 2 for a custom house." << std::endl;
        std::cin >> houseChoice;
        return houseChoice;
}

/*********************************
 * Function Name: bedroomOption
 * Return Type: none
 * Parameters: none
 * Description: Gives the bedroom options and updates the globabl variable.
 * *****************************/
void bedroomOption(void)
{
        std::cout << "You may add 1 or 2 extra bedrooms. Each bedroom will add 360 sq ft to the house." << std::endl;
        std::cout << "Enter 0 for no extra bedrooms, 1 for one extra bedroom, or 2 for two extra bedrooms." << std::endl;
        std::cin >> bedroomChoice;

        if(bedroomChoice == 0)
        {
                std::cout << "You have chosen to not have any extra bedrooms. The Square Footage of the house is 3000." << std::endl;
                houseSquareFootage = 3000;
                return houseSquareFootage;
        }
        else if(bedroomChoice == 1)
        {
                std::cout << "You have chosen to add one extra bedroom. The Square Footage of the house is 3360." << std::endl;
                houseSquareFootage = 3360;
                return houseSquareFootage;
        }
        else if(bedroomChoice == 2)
        {
                std::cout << "You have chosen to add two extra bedrooms. The Square Footage of the house is 3720." << std::endl;
                houseSquareFootage = 3720;
                return houseSquareFootage;
        }
        else
        {
                std::cout << "That is not a valid input." << std::endl;
                exit(1);
        }


}

/******************************
 * Function Name: kitchenOption
 * Return Type: none
 * Parameters: none
 * Description: Gives the Kitchen Options and updates the global variable.
 * ****************************/
void kitchenOption(void)
{
        std::cout << "You may add deluxe wooden cabinets and granite cabinets for an additional $20,000." << std::endl;
        std::cout << "If you would like deluxe cabinets and countertops, please input 1." << std::endl;
        std::cout << "If you do not want deluxe cabinets and countertops, please input 2." << std::endl;
        std::cin >> kitchenChoice;

        if(kitchenChoice == 1)
        {
                std::cout << "You have selected deluxe cabinets and contertops. This adds $20,000 to your Optional Features Cost." << std::endl;
                optionalFeaturesCost += 20000;
                std::cout << "Your Optional Features Cost is now $" << setprecision(2) << fixed << optionalFeaturesCost << std::endl;
        }
        else if(kitchenChoice == 2)
        {
                std::cout << "You have selected to not have deluxe caibnets and countertops." << std::endl;
        }
        else
        {
                std::cout << "That is not a valid input." << std::endl;
                exit(1);
        }
}

/***************************
 * Function Name: designOption
 * Return Type: none
 * Parameters: none
 * Description: Gives the Design options and updates the global variable.
 * *************************/
void designOption(void)
{
        std::cout << "There are four interior options and are as follows..." << std::endl;
        std::cout << "Option 1: Hardwood floors for the den, kitchen, and family room. Cost: $10,000" << std::endl;
        std::cout << "Option 2: All of Option 1 as well as solid brass lighting fixtures in and out. Cost: $20,000" << std::endl;
        std::cout << "Option 3: All of Option 2 as well as plush carpeting, ceramic tile, and real wood paneling. Cost: $25,000" << std::endl;
        std::cout << "Option 4: All of Option 3 as well as gold kitchen and bath fixtures, Jacuzzi and Sauna. Cost: $30,000" << std::endl;
        std::cout << "----" << std::endl;
        std::cout << "Please input 0 for no extra interior features, 1 for Option 1, 2 for Option 2, 3 for Option 3, or 4 for Option 4." << std::endl;
        std::cin >> interiorChoice;

        if(interiorChoice == 0)
        {
                std::cout << "You have chosen to not have any extra interior features." << std::endl;
        }
        else if(interiorChoice == 1)
        {
                std::cout << "You have selected Option 1. This adds $10,000 to your Optional Features Cost." << std::endl;
                optionalFeaturesCost += 10000;
                std::cout << "Your Optional Features Cost is $" << setprecision(2) << fixed << optionalFeaturesCost << std::endl;
        }
        else if(interiorChoice == 2)
        {
                std::cout << "You have selected Option 2. This adds $20,000 to your Optional Features Cost." << std::endl;
                optionalFeaturesCost += 20000;
                std::cout << "Your Optional Features Cost is $" << setprecision(2) << fixed << optionalFeaturesCost << std::endl;
        }
        else if(interiorChoice == 3)
        {
                std::cout << "You have selected Option 3. This adds $25,000 to your Optional Features Cost." << std::endl;
                optionalFeaturesCost += 25000;
                std::cout << "Your Optional Features Cost is $" << setprecision(2) << fixed << optionalFeaturesCost << std::endl;
        }
        else if(interiorChoice == 4)
        {
                std::cout << "You have selected Option 4. This adds $30,000 to your Optional Features Cost." << std::endl;
                option  alFeaturesCost += 30000;
                std::cout << "Your Optional Features Cost is $" << setprecision(2) << fixed << optionalFeaturesCost << std::endl;
        }
        else
        {
                std::cout << "That is not a valid input." << std::endl;
                exit(1);
        }
}

/*************************
 * Function Name: displayDiscount
 * Return Type: none
 * Parameters: none
 * Description: Checks for discount and displays it. This function also performs the role of calculateDiscount().
 * ************************/
void displayDiscount(void)
{
        std::cout << "If the optional features cost exceeds $30,000, a 10% discount on the optional features will be awarded." << std::endl;

        if(optionalFeaturesCost >= 30000)
        {
                discount = optionalFeaturesCost*0.1;
                std::cout << "An Optional Features Cost of $" << setprecision(2) << fixed << optionalFeaturesCost <<
                " exceeds the requirement of $30,000, and thus a 10% discount of $" << setprecision(2) << fixed << discount
                << " has been awarded." << std::endl;
        }
        else
        {
                        std::cout << "An Optional Features Cost of $" << setprecision(2) << fixed << optionalFeaturesCost <<
                " does not meet the requirement of $30,000, and thus, no discount is awarded." << std::endl;
        }
}

/***********************
 * Function Name: displaySummary
 * Return type: none
 * Parameters: none
 * Description: Displays all relevant info as a summary. This function also performs the role of calculateFinalCost().
 * *******************/
void displaySummary(void)
{
        //Calculating Basic Home Cost
        basicHomeCost = houseSquareFootage * COST_PER_SQUARE_FT;

        //Calculating Profit
        profit = (basicHomeCost + optionalFeaturesCost) * PERCENT_PROFIT;

        //Calculating Net Home Cost
        netHomeCost = basicHomeCost + optionalFeaturesCost + profit - discount;

        //Calculating Taxes
        taxes = netHomeCost * STATE_TAX_RATE;

        //Calculating totalHomeCost
        totalHomeCost = netHomeCost + taxes;

        //Reporting Information
        std::cout << "House Square Footage: " << setprecision(2) << fixed << houseSquareFootage << std::endl;
        std::cout << "Basic Home Cost: " << setprecision(2) << fixed << basicHomeCost << std::endl;
        std::cout << "Optional Features Cost: " << setprecision(2) << fixed << optionalFeaturesCost << std::endl;
        std::cout << "Discount: " << setprecision(2) << fixed << discount << std::endl;
        std::cout << "Net Home Cost: " << setprecision(2) << fixed << netHomeCost << std::endl;
        std::cout << "Profit: " << setprecision(2) << fixed << profit << std::endl;
        std::cout << "Taxes: " << setprecision(2) << fixed << taxes << std::endl;
        std::cout << "Total Home Cost: " << setprecision(2) << fixed << totalHomeCost << std::endl;
        {
                std::cout << "You have selected deluxe cabinets and contertops. This adds $20,000 to your Optional Features Cost." << std::endl;
                optionalFeaturesCost += 20000;
                std::cout << "Your Optional Features Cost is now $" << setprecision(2) << fixed << optionalFeaturesCost << std::endl;
        }
        else if(kitchenChoice == 2)
        {
                std::cout << "You have selected to not have deluxe caibnets and countertops." << std::endl;
        }
        else
        {
                std::cout << "That is not a valid input." << std::endl;
                exit(1);
        }
}

/***************************
 * Function Name: designOption
 * Return Type: none
 * Parameters: none
 * Description: Gives the Design options and updates the global variable.
 * *************************/
void designOption(void)
{
        std::cout << "There are four interior options and are as follows..." << std::endl;
        std::cout << "Option 1: Hardwood floors for the den, kitchen, and family room. Cost: $10,000" << std::endl;
        std::cout << "Option 2: All of Option 1 as well as solid brass lighting fixtures in and out. Cost: $20,000" << std::endl;
        std::cout << "Option 3: All of Option 2 as well as plush carpeting, ceramic tile, and real wood paneling. Cost: $25,000" << std::endl;
        std::cout << "Option 4: All of Option 3 as well as gold kitchen and bath fixtures, Jacuzzi and Sauna. Cost: $30,000" << std::endl;
        std::cout << "----" << std::endl;
        std::cout << "Please input 0 for no extra interior features, 1 for Option 1, 2 for Option 2, 3 for Option 3, or 4 for Option 4." << std::endl;
        std::cin >> interiorChoice;

        if(interiorChoice == 0)
        {
                std::cout << "You have chosen to not have any extra interior features." << std::endl;
        }
        else if(interiorChoice == 1)
        {
                std::cout << "You have selected Option 1. This adds $10,000 to your Optional Features Cost." << std::endl;
                optionalFeaturesCost += 10000;
                std::cout << "Your Optional Features Cost is $" << setprecision(2) << fixed << optionalFeaturesCost << std::endl;
        }
        else if(interiorChoice == 2)
        {
                std::cout << "You have selected Option 2. This adds $20,000 to your Optional Features Cost." << std::endl;
                optionalFeaturesCost += 20000;
                std::cout << "Your Optional Features Cost is $" << setprecision(2) << fixed << optionalFeaturesCost << std::endl;
        }
        else if(interiorChoice == 3)
        {
                std::cout << "You have selected Option 3. This adds $25,000 to your Optional Features Cost." << std::endl;

        if(kitchenChoice == 1)
        {
                std::cout << "You have selected deluxe cabinets and contertops. This adds $20,000 to your Optional Features Cost." << std::endl;
                optionalFeaturesCost += 20000;
                std::cout << "Your Optional Features Cost is now $" << setprecision(2) << fixed << optionalFeaturesCost << std::endl;
        }
        else if(kitchenChoice == 2)
        {
                std::cout << "You have selected to not have deluxe caibnets and countertops." << std::endl;
        }
        else
        {
                std::cout << "That is not a valid input." << std::endl;
                exit(1);
        }
}

/***************************
 * Function Name: designOption
 * Return Type: none
 * Parameters: none
 * Description: Gives the Design options and updates the global variable.
 * *************************/
void designOption(void)
{
        std::cout << "There are four interior options and are as follows..." << std::endl;
        std::cout << "Option 1: Hardwood floors for the den, kitchen, and family room. Cost: $10,000" << std::endl;
        std::cout << "Option 2: All of Option 1 as well as solid brass lighting fixtures in and out. Cost: $20,000" << std::endl;
        std::cout << "Option 3: All of Option 2 as well as plush carpeting, ceramic tile, and real wood paneling. Cost: $25,000" << std::endl;
        std::cout << "Option 4: All of Option 3 as well as gold kitchen and bath fixtures, Jacuzzi and Sauna. Cost: $30,000" << std::endl;
        std::cout << "----" << std::endl;
        std::cout << "Please input 0 for no extra interior features, 1 for Option 1, 2 for Option 2, 3 for Option 3, or 4 for Option 4." << std::endl;
        std::cin >> interiorChoice;

        if(interiorChoice == 0)
        {
                std::cout << "You have chosen to not have any extra interior features." << std::endl;
        }
        else if(interiorChoice == 1)
        {
                std::cout << "You have selected Option 1. This adds $10,000 to your Optional Features Cost." << std::endl;
                optionalFeaturesCost += 10000;
                std::cout << "Your Optional Features Cost is $" << setprecision(2) << fixed << optionalFeaturesCost << std::endl;
        }
        else if(interiorChoice == 2)
        {
                std::cout << "You have selected Option 2. This adds $20,000 to your Optional Features Cost." << std::endl;
                optionalFeaturesCost += 20000;
                std::cout << "Your Optional Features Cost is $" << setprecision(2) << fixed << optionalFeaturesCost << std::endl;
        }
        else if(interiorChoice == 3)
        {
                std::cout << "You have selected Option 3. This adds $25,000 to your Optional Features Cost." << std::endl;
                optionalFeaturesCost += 25000;
                std::cout << "Your Optional Features Cost is $" << setprecision(2) << fixed << optionalFeaturesCost << std::endl;
        }
        else if(interiorChoice == 4)
        {
                std::cout << "You have selected Option 4. This adds $30,000 to your Optional Features Cost." << std::endl;
                option  alFeaturesCost += 30000;
                std::cout << "Your Optional Features Cost is $" << setprecision(2) << fixed << optionalFeaturesCost << std::endl;
        }
        else
        {
                std::cout << "That is not a valid input." << std::endl;
                                                                                                                                                                                               201,1         63%

1 个答案:

答案 0 :(得分:2)

始终关注您获得的第一个错误,因为它可能是其他错误的原因。在这种情况下,您在

之后缺少一个分号
void bedroomOption(void)

这会让编译器感到困惑,造成很多假错误。