Я не понимаю, что я делаю неправильно. Я новичок и не могу понять, почему тип отделки не определен, а «Виниловая отделка салона» имеет слишком много символов, чтобы быть константой. Пожалуйста, помогите.

#include "stdafx.h"
#include <iostream>
#include <string>
#include <iomanip>
#include <cctype>

using namespace std;

    void getIntroduction();
    void getBasePrice(double& BaseCost);
    void getEngineCost(double& EngineCost, string& EngineType);
    void getTrimCost(double& TrimCost, string& TrimType);
    void getRadioCost(double& RadioCost, string& RadioType);
    void calcTotalCost(double& BaseCost, double& EngineCost, double& TrimCost, double& RadioCost, double& ShippingCost, double& DealerCost);

int _tmain(int argc, _TCHAR* argv[])
{
    double ShippingCostOut;
    double DealerCostOut;
    double BaseCostOut;
    double EngineCostOut;
    double TrimCostOut;
    double RadioCostOut;
    double TotalCostOut;
    string EngineTypeOut;
    string TrimTypeOut;
    string RadioTypeOut;
    string ExitKey;

    ShippingCostOut = 500.00;
    DealerCostOut = 175.00;

    cout << endl;
    cout << endl;
    getIntroduction();
    cout <<endl;
    cout <<endl;
    cout << " Your selections will determine final Price" << endl;
    cout << endl;
    getBasePrice(BaseCostOut);
    cout<< endl;
    getEngineCost(EngineCostOut,EngineTypeOut); 
    cout<< endl;
    getTrimCost(TrimCostOut,TrimTypeOut);
    cout<< endl;
    getRadioCost(RadioCostOut,RadioTypeOut);
    cout<< endl;
    cout << endl;
    TotalCostOut = ShippingCostOut + DealerCostOut + BaseCostOut + EngineCostOut + TrimCostOut + RadioCostOut;
    system("CLS");
    cout << " Your selections result in:" << endl;
    cout << " Base Cost - $" << BaseCostOut << endl;
    cout << endl;
    cout << " " << EngineTypeOut << " - $" << EngineCostOut << endl;
    cout << endl;
    cout << " " << TrimTypeOut << " - $" << TrimCostOut << endl;
    cout << endl;
    cout << " " << RadioTypeOut << " - $" << RadioCostOut << endl;
    cout << endl;
    cout << " Shipping Cost - $" << ShippingCostOut << endl;
    cout << " Dealer Cost   - $" << DealerCostOut << endl;
    cout << endl;
    cout << " The total cost of the vehicle is: $" << TotalCostOut << endl;
    cout << endl;
    cout << "Enter any key and hit Enter to end program." << endl;
    cin >> ExitKey;

    return 0;

}

void getIntroduction ()
    {
        cout << "Universal Motors New Car Price Calculator" << endl;
        cout << " You will select your Options" << endl;
        cout << endl;
        cout << " The shipping cost - $500.00"<<endl;
        cout << " The dealer cost   - $175.00"<<endl;
        cout<< endl;


    }

void getBasePrice(double& BaseCost)
    {

            char BaseCheck;
            BaseCheck = 'A';
            cin.clear();
            cin.sync();


            do
            {
                BaseCheck = 'A';
                cout << endl;
                cout << " Please enter the base price for the new car: " << endl;
                cout << " Please enter Base Price in this format xxxxx.xx (x is a number):" <<endl;
                cout << endl;
                cout << "$ ";
                cin >> BaseCost;
                cout << BaseCost * 2;


            } while (BaseCheck == 'S');

    }

    void getEngineCost(double& EngineCost, string& EngineType)
    {
        char EngineLetter;
        do
        {
            cout << endl;
            cout << " Please choose your engine type: "<< endl;
            cout<< endl;
            cout << "  S - 6 cylinder engine - $150.00"<<endl;
            cout << "  E - 8 cylinder engine - $475.00"<<endl;
            cout << "  D - Diesel engine     - $750.00"<<endl;
            cout << endl;
            cout << " Please enter your engine type: ";
            cin >>  EngineLetter;


            switch (EngineLetter)
            {   

                case 'S':
                    EngineCost = 150.00;
                    EngineType = "6 cylinder engine";
                break;

                case 'E':
                    EngineCost = 475.00;
                    EngineType = "8 cylinder engine";
                break;

                case 'D':
                    EngineCost= 750.00;
                    EngineType = "Diesel engine";
                break;  

    }

void getTrimCost(double& TrimCost, string& TrimType);
    {
        char TrimChoice;
        do  
        {
            cout << endl;
            cout << "Please choose your Trim Type:" << endl;
            cout<< endl;
            cout << " V - Vinyl interior trim   - $50.00"<<endl;
            cout << " C - Cloth interior trim   - $225.00"<<endl;
            cout << " L - Leather interior trim - $800.00"<<endl;
            cout << endl;
            cout << " Please enter your Trim: ";
            cin >>  TrimChoice;

            switch (TrimChoice)
            {   
                case 'V':
                    double TrimCost = 50.00;
                    TrimType = 'Vinyl interior trim';
                break;

                case 'C':
                    TrimCost = 225.00;
                    TrimType = "Cloth interior trim";
                break;

            case 'L':
                TrimCost= 800.00;
                TrimType = "Leather interior trim";
            break;

    }

void getRadioCost(double& RadioCost, string& RadioType);
    {
        char RadioChoice;   
        do  
        {

            cout << endl;
            cout << "Please choose your Radio:" << endl;
            cout<< endl;
            cout << " C - AM/FM Radio - $100.00" << endl;
            cout << " P - CD/DVD      - $400.00" << endl;
            cout << endl;
            cout << " Enter Selection Please: ";
            cin >>  RadioChoice;


            if (RadioChoice == 'C')
            {
                double RadioCost = 100.00;
                RadioType = "AM/FM Radio";
            }

            else 
                if (RadioChoice == 'P')
                {
                    double RadioCost = 400.00;
                    RadioType = "CD/DVD";
                }
        }
-3
los 9 Апр 2011 в 22:03
-1 за то, что не опубликовал точную ошибку компилятора. Я не вижу никаких trimtype в вашем коде.
 – 
Nawaz
9 Апр 2011 в 22:24
Добро пожаловать. В следующий раз, пожалуйста, предоставьте дополнительную информацию, например, в чем именно заключается проблема и где она возникает. В общем, старайтесь опускать информацию, не имеющую отношения к описанной проблеме.
 – 
julx
9 Апр 2011 в 22:25

1 ответ

Проблема скорее всего в этой строке:

TrimType = 'Vinyl interior trim';

В C и C++ одинарные кавычки (') обозначают char литералы, т. е. один символ. Но ваш TrimType не char, а string, поэтому вам нужно использовать двойные кавычки ("):

TrimType = "Vinyl interior trim";
5
Joe White 9 Апр 2011 в 22:22
Эй, спасибо, но теперь я получаю это сообщение об ошибке Universal Motors calc.cpp (167): ошибка C2065: «TrimType»: необъявленный идентификатор. Пожалуйста, помогите!
 – 
los
12 Апр 2011 в 05:14
Это не связано с вашей первоначальной проблемой - должно быть опубликовано как отдельный вопрос. Желательно с небольшим фрагментом кода, который воспроизводит проблему.
 – 
Joe White
12 Апр 2011 в 18:18