2014-03-07 34 views
-2

我得到這個錯誤: error LNK2019: unresolved external symbol "double __cdecl calculateRetail(double,double)" ([email protected]@[email protected]) referenced in function _main 1>c:\users\100236744\documents\visual studio 2010\Projects\Item sales price calculator\Debug\Item sales price calculator.exe : fatal error LNK1120: 1 unresolved externals錯誤LNK2019:無法解析的外部符號 「雙__cdecl calculateRetail(雙,雙)」

我很新的C++。

// FILE: Price markup calculator.cpp 
// PROGRAMMER: Karolina Sabat CPSC 1103 Section: S11 
// Program which calculates the retail cost of an item based on wholesale cost and mark up percentage. 
// Calculates the total interest paid based on the annual interest rate. 

#include <iostream>   // For cin, cout 
#include <iomanip>   // For setw, setprecision 
using namespace std; 

// FUNCTION PROTOTYPES 
void getData (double &, double &);   // Receives USER INPUT - Wholesale cost & percentage markup 
double calculateRetail(double, double);  // Calculates retail price 
void Display (double, double, double);  // Displays results: Wholesale cost, markup percentage, retail price 

int main() 
{ 

// VARIABLES 
double wholesale_cost = 0;     // Wholesale item cost - USER INPUT 
double markup_percent = 0;     // Markup percentage 
double retail_price = 0;    // Calculated retail cost 

// FUNCTION CALL 1: Wholesale cost - USER INPUT 
getData(wholesale_cost, markup_percent); 
// FUNCTION CALL 2: Retail price - CALCULATION 
calculateRetail(wholesale_cost, markup_percent); 
// FUNCTION CALL 3: Display Wholesale price, markup percentage, retail price - OUTPUT 
Display(wholesale_cost, markup_percent, retail_price); 
// PROGRAM MADE BY - OUTPUT 
cout << endl << endl; 
cout << " Written by: Karolina Sabat - CPSC 1103 - Section: S11" << endl << endl; 
return 0; 
} 

// FUNCTION 1: GetData 
void getData (double &wholesale_c, double &markup_p) 
{ 
// Wholesale cost - USER INPUT 
cout << " Please enter the item's wholesale cost: $ "; 
cin >> wholesale_c; 
// Wholesale cost - INVALID ENTRY 
while (wholesale_c < 0) 
{ 
    cout << endl; 
    cout << " Please enter a wholesale cost greater than 0." << endl; 
    cout << " Item's wholesale cost: $ "; 
    // Will clear characters 
    cin.clear(); 
    cin.ignore(numeric_limits<streamsize>::max(), '\n'); 
    cin >> wholesale_c; 
} 
// Wholesalecost - VALID 
// Markup percentage - USER INPUT 
cout << "Please enter the markup percentage: % " ; 
cin >> markup_p; 
// Markup percentage - INVALID 
while (markup_p < 0) 
{ 
    cout << " ERROR: INVALID INPUT." << endl; 
    cout << " Please enter a markup percentage greater than 0." << endl; 
    cout << " Markup percentage: % "; 
    // Will clear characters 
    cin.clear(); 
    cin.ignore(numeric_limits<streamsize>::max(), '\n'); 
    cin >> markup_p; 
} 
} 

// FUNCTION 2: CalculateRetail 
double CalculateRetail (double wholesale_c, double markup_p) 
{ 
// VARIABLES 
double markup_amount; 
double retail_price; 
// CALCULATIONS 
markup_amount = (wholesale_c * markup_p)/100; 
// Markup amount 
retail_price = wholesale_c + markup_amount; 
return retail_price; 
} 

// FUNCTION 3: Display 
void Display (double wholesale_cost, double markup_percent, double retail_price) 
{ 
// Title - OUTPUT 
cout << endl; 
cout << " WHOLESALE COST: " << setw(10) << "PRICE MARKUP %: " << setw(10) << "RETAIL PRICE" << endl; 
cout << " ________________________________________________________________________________" << endl; 
cout << endl; 
// NUMBER FORMATING 
cout << setprecision(2) << fixed << showpoint; 
// Results - OUTPUT 
cout << " " << wholesale_cost << setw(10) << markup_percent << setw(10) << retail_price; 
} 
+1

[錯誤LNK2019解析外部符號]的可能重複(http://stackoverflow.com/questions/12297952/error-lnk2019-unresolved-external-symbol)和約三十多人。搜索「錯誤LNK2019:無法解析的外部符號」可能會引發許多以往問題的鏈接。在發佈之前先進行基礎研究是很好的。 –

+0

我沒有搜索過這個論壇,我明白這個錯誤,但是一小時後我的代碼找不到錯誤。我沒有看到大寫錯誤。其他人的編碼錯誤不能幫助我。 – tinywolves

+1

好的,它應該是關閉的話題,因爲「這個問題是由不能再現的問題引起的,或者是一個簡單的印刷錯誤**。雖然類似的問題可能在這裏討論,但這個問題已經解決了以不太可能幫助未來讀者的方式,這通常可以通過識別並密切檢查在發佈之前重現問題所需的最短程序來避免。「 –

回答

2

您遇到這個問題,因爲你寫的原型功能:

double calculateRetail(double, double); 

但是當你實現的功能,你寫道:

double CalculateRetail (double wholesale_c, double markup_p) 

C和C++是區分大小寫所以它沒有看到CalculateRetail和calculateRetail一樣。你可能打算把CalculateRetail寫成calculateRetail。

1
double calculateRetail(double, double); 

double CalculateRetail (double wholesale_c, double markup_p) 

你的函數定義不其原型完全匹配。如果您將定義的名稱更改爲calculateRetail,它應該可以工作。

+0

哦,我的上帝。兩個小時的資本化錯誤我看不到。我不能相信你注意到了這一點。是的,它的工作。哇。 – tinywolves

+0

@ user3390939僅供將來參考,這種鏈接器錯誤通常意味着發生了這種類型的錯字。它通常意味着定義的名稱與聲明的名稱不匹配,或者定義中的參數類型與聲明中的參數類型不匹配。 – computerfreaker

2

calculateRetail delacred and used。 已定義CalculateRetail。 ...... !C = C

相關問題