如何解决"undeclared identifier"错误?

How to solve "undeclared identifier" error?

本文关键字:undeclared identifier 错误 何解决 解决      更新时间:2023-10-16

我正在做一个简单的c++程序的大学作业。到目前为止,我已经满足了大多数问题的要求,但我被困在未声明的标识符错误。提到的错误可以在代码的注释部分找到,其中的注释包括术语"有问题的部分"。我的问题是,如何解决未声明的标识符错误?

如果你能试着编译源代码并找出问题所在,我将不胜感激。

构建错误:

1>c:usersadrian khordocumentsvisual studio 2013projectsict1101_as1_4ict1101_as1_4ict1101_as1_4.cpp(74): error C2065: 'feeReportTotalAfterDiscountedFee' : undeclared identifier

(MS Visual Studio Pro 2013)

#include "stdafx.h"
#include <iostream>
#include <iomanip>
#include <cmath>
using namespace std;
int main()
{
    int qtyVehicleCar, qtyVehicleTaxi, qtyVehicleTruck;
    /* Text UI component */
    cout << "=====================================n";
    cout << "=====================================n";
    cout << "====== Malaysia Highway Company =====n";
    cout << "=====================================n";
    cout << "=====================================n";
    cout << endl;
    cout << "Enter quantity of the vehicles on 1st January 2014: " << endl;
    cout << "Cartt:t";
    cin >> qtyVehicleCar;
    cout << "Taxitt:t";
    cin >> qtyVehicleTaxi;
    cout << "Trucktt:t";
    cin >> qtyVehicleTruck;
    /* Lay out the Report table */
    cout << endl << endl << endl;
    cout << "Reportn";
    cout << "--------n";
    cout << endl;
    /* Processes */
    /* ============ */
    /* Declaration */
    /* ============ */
    // Report Items
    double feeOriginalCar, feeOriginalTaxi, feeOriginalTruck;
    feeOriginalCar = 2.00;
    feeOriginalTaxi = 1.00;
    feeOriginalTruck = 3.50;
    double feeTotalOriginalCar, feeTotalOriginalTaxi, feeTotalOriginalTruck;
    feeTotalOriginalCar = qtyVehicleCar * feeOriginalCar;
    feeTotalOriginalTaxi = qtyVehicleTaxi * feeOriginalTaxi;
    feeTotalOriginalTruck = qtyVehicleTruck * feeOriginalTruck;
    double rateDiscountCar, rateDiscountTaxi, rateDiscountTruck;
    rateDiscountCar = 2;
    rateDiscountTaxi = 10;
    rateDiscountTruck = 15;
    double feeTotalDiscountedCar, feeTotalDiscountedTaxi, feeTotalDiscountedTruck;
    feeTotalDiscountedCar = (rateDiscountCar / 100) * feeTotalOriginalCar;
    feeTotalDiscountedTaxi = (rateDiscountTaxi / 100) * feeTotalOriginalTaxi;
    feeTotalDiscountedTruck = (rateDiscountTruck / 100) * feeTotalOriginalTruck;
    double feeTotalAfterDiscountedCar, feeTotalAfterDiscountedTaxi, feeTotalAfterDiscountedTruck;
    feeTotalAfterDiscountedCar = feeTotalOriginalCar - feeTotalDiscountedCar;
    feeTotalAfterDiscountedTaxi = feeTotalOriginalTaxi - feeTotalDiscountedTaxi;
    feeTotalAfterDiscountedTruck = feeTotalOriginalTruck - feeTotalDiscountedTruck;
    // Final Output
    double feeReportTotalOriginalFee, feeReportTotalDiscountedFee, feeReportTotalAfterDiscounted;
    feeReportTotalOriginalFee = feeTotalOriginalCar + feeTotalOriginalTaxi + feeTotalOriginalTruck;
    feeReportTotalDiscountedFee = feeTotalDiscountedCar + feeTotalDiscountedTaxi + feeTotalDiscountedTruck;
    /* The problematic part #2*/
    /* feeReportTotalAfterDiscountedFee = feeReportTotalOriginalFee - feeReportTotalAfterDiscountedFee; */ /* OR */
     feeReportTotalAfterDiscountedFee = (feeTotalOriginalCar - feeTotalDiscountedCar) + (feeTotalOriginalTaxi - feeTotalDiscountedTaxi) + (feeTotalOriginalTruck - feeTotalDiscountedTruck); 
    cout << "Itemtttt" << "Cart" << "Taxit" << "Truckt" << endl;
    cout << "------------------------------------------------------n";
    cout << "Original feettt" << "RM " << feeOriginalCar << "t" << "RM " << feeOriginalTaxi << "t" << "RM " << feeOriginalTruck << endl;
    cout << "Quantityttt" << qtyVehicleCar << "t" << qtyVehicleTaxi << "t" << qtyVehicleTruck << endl;
    cout << "Total original feett" << "RM " << feeTotalOriginalCar << "t" << "RM " << feeTotalOriginalTaxi << "t" << "RM " << feeTotalOriginalTruck << endl;
    cout << "Discount ratettt" << rateDiscountCar << "%t" << rateDiscountTaxi << "%t" << rateDiscountTruck << "%t" << endl;
    cout << "Total discounted feett" << "RM " << feeTotalDiscountedCar << "t" << "RM " << feeTotalDiscountedTaxi << "t" << "RM " << feeTotalDiscountedTruck << endl;
    cout << "Total after discounted feet" << "RM " << feeTotalAfterDiscountedCar << "t" << "RM " << feeTotalAfterDiscountedTaxi << "t" << "RM " << feeTotalAfterDiscountedTruck << endl;
    cout << endl;
    /* Displays output */
    cout << "Total original feett:t" << "RM " << feeReportTotalOriginalFee << endl;
    cout << "Total discounted feett:t" << "RM " << feeReportTotalDiscountedFee << endl;
    cout << "Total after discounted feet:t" << "RM " << feeReportTotalAfterDiscountedFee << endl;
    cout << endl << endl;
    /* Displays end line */
    cout << "------------------- End of Program -------------------" << endl;
    system("PAUSE");
    return 0;
    return 0;
}

似乎你没有给feeReportTotalAfterDiscountedFee一个类型。它的第一次出现似乎是在注释中,它没有提供任何关于它实际上是什么的指示。考虑到代码中其他变量的类型,我假设它是double,但编译器不知道。

尝试将double放在第一行注释的feeReportTotalAfterDiscountedFee前面(当然是在取消注释之后)。