错误LNK2019 -不确定如何修复(1未解决的外部)

Error LNK2019 - Unsure how to fix (1 unresolved external)

本文关键字:未解决 外部 何修复 LNK2019 不确定 错误      更新时间:2023-10-16

我几乎完成了这个程序,但是我得到一个错误,我不确定如何处理。我已经寻找了其他的解决方案,但似乎都没有帮助

得到的错误是:错误LNK2019:未解析的外部符号"void __cdecl deposit(class customer * const,int)"(?deposit@@YAXQAVcustomer@@H@Z)在函数_main中引用c:用户 d 桌面程序项目3DProject3DebugDProject3.exe:致命错误LNK1120: 1个未解决的外部

它似乎与存款功能有关,但我已经尝试过愚弄它无济于事,如果有人能帮助它将不胜感激,我有3个文件为这个项目

#ifndef CUSTOMER_H
#define CUSTOMER_H
#include <string>
struct Date
{
int Day;
int Month;
int Year;
};
struct Name
{
std::string first_name;
std::string middle_name;
std::string last_name;
};
class customer
{ 
   private:
Date birth_date;
    Name name;
    float balance_saving, balance_checking, initial_saving, initial_checking, amount, account_type;
   public:
    customer(); //Customer constructor
    customer(Date birth_date, Name  name, float initial_saving, float initial_checking); // Customer constructor with info
    void withdraw(float amount, int account_type);
    void deposit(float amount, int account_type);
    float check_balance_saving();  // Print out the savings balance on screen
    float check_balance_checking();  // Print out the checking balance on screen
    void setDate(int Day, int Month, int Year);
    Date getDate();
    void setName(std::string first_name, std::string middle_name, std::string last_name);
    Name getName();
    void setSaving(float initial_saving);
    void setChecking(float initial_checking);
};
#endif

实现文件

#include "customer.h"
//Contructor without info / Default info
customer::customer()
{
birth_date.Day = 01;
birth_date.Month = 01;
birth_date.Year = 1901;
name.first_name = "N/A";
name.middle_name = "N/A";
name.last_name = "N/A";
balance_saving = 0;
balance_checking = 0;
}
// Constructor with user input data
customer::customer(Date DMY, Name FML, float initSav, float initCheck)
{
birth_date = DMY;
name = FML;
initial_saving = initSav;
initial_checking = initCheck;
}
void customer::withdraw(float amtW, int accW)
{
amount = amtW;
account_type = accW;
}
void customer::deposit(float amtD, int accD)
{
amount = amtD;
account_type = accD;
}
float customer::check_balance_saving()
{
return initial_checking;
}
float customer::check_balance_checking()
{
return initial_checking;
}
void customer::setDate(int Day, int Month, int Year)
{
birth_date.Day = Day;
birth_date.Month = Month;
birth_date.Year = Year;
}
Date customer::getDate()
{
return birth_date;
}
void customer::setName(std::string First, std::string Middle, std::string Last)
{
name.first_name = First;
name.middle_name = Middle;
name.last_name = Last;
}
Name customer::getName()
{
return name;
}
void customer::setSaving(float setSav)
{
initial_saving = setSav;
}
void customer::setChecking(float setCheck)
{
initial_checking = setCheck;
}
主要

#include "customer.h"
#include <fstream>
#include <iostream>
#include <string>
using namespace std;
//Function prototypes
void withdraw (customer[], int);
void deposit (customer[], int);
void checkBal (customer[], int);
void newAccountFile (customer[], int);
int main ()
{
customer custInfo[49]; //Creates the customer array for info to be stored in
int customerAmt = 0; //Keeps track of the amount of customers in the array
ifstream customerfile ("account.dat"); //Open existing customer file
while (customerAmt < 2) //Loop to read the data from the existing file
{
    int D, M, Y; // Birth day, month, year
    string FN, MN, LN; //First name, middle name, last name
    float Save, Check; //Savings & Checking initial amount
    customerfile >> D;
    customerfile >> M;
    customerfile >> Y;
    customerfile >> FN;
    customerfile >> MN;
    customerfile >> LN;
    customerfile >> Save;
    customerfile >> Check;
    custInfo[customerAmt].setDate(D, M, Y);
    custInfo[customerAmt].setName(FN, MN, LN);
    custInfo[customerAmt].setSaving(Save);
    custInfo[customerAmt].setChecking(Check);
    customerAmt++;
}
customerfile.close(); //Close customer file and end file reading
//Variables for the User menu
int accountNumber, option, D1, M1, Y1;
string FN1, MN1, LN1;
float Save1, Check1;
//Loop used for User menu
do
{
    cout << "1. withdraw" << endl;
    cout << endl;
    cout << "2. Deposit" << endl;
    cout << endl;
    cout << "3. Check Balances" << endl;
    cout << endl;
    cout << "4. Create a New Account" << endl;
    cout << endl;
    cout << "0. Exit" << endl;
    cin >> option;
    if (option == 1) // Uses withdraw function
    {
        cout << "Enter the account number: ";
        cin >> accountNumber;
        withdraw(custInfo, accountNumber);
    }
    else if (option == 2) // Uses deposit function
    {
        cout << "Enter the account number: " << endl;
        cin >> accountNumber;
        deposit(custInfo, accountNumber);
    }
    else if (option == 3) // Uses check balance function
    {
        cout << "Enter the account number: " << endl;
        cin >> accountNumber;
        checkBal(custInfo, accountNumber);
    }
    else if (option == 4) //Option to handle creating a new account
    {
        cout << "Enter the new account information, starting with birth info: " << endl;
        cin >> D1 >> M1 >> Y1;
        custInfo[customerAmt].setDate(D1, M1, Y1);
        cout << endl;
        cout << "Enter the new customer's full name: " << endl;
        cin >> FN1 >> MN1 >> LN1;
        custInfo[customerAmt].setName(FN1, MN1, LN1);
        cout << endl;
        cout << "Enter the inital savings balance: " << endl;
        cin >> Save1;
        custInfo[customerAmt].setSaving(Save1);
        cout << endl;
        cout << "Enter the initial checking balance: " << endl;
        cin >> Check1;
        custInfo[customerAmt].setChecking(Check1);
        customerAmt++;
    }

}while (option != 0);
newAccountFile(custInfo, customerAmt); // Creates new updated account info file
system ("pause");
return 0;
}
void withdraw(customer custInfo[], int number)
{
float withdrawAmount;
int optionWit;
float tempSave;
float tempCheck;
cout << "1. Withdraw from savings" << endl;
cout << endl;
cout << "2. Withdraw from checking" << endl;
cin >> optionWit;
cout << "Enter the amount to be withdrawn: ";
cin >> withdrawAmount;
if (optionWit == 1)
{
    tempSave = custInfo[number].check_balance_saving() - withdrawAmount;
    custInfo[number].setSaving(tempSave);
}
else if (optionWit == 2)
{
    tempCheck = custInfo[number].check_balance_checking() - withdrawAmount;
    custInfo[number].setChecking(tempCheck);
}
}
void desposit(customer custInfo[], int number)
{
float depositAmount;
int optionDep;
float tempSave;
float tempCheck;
cout << "1. Deposit to savings" << endl;
cout << endl;
cout << "2. Deposit to checking" << endl;
cin >> optionDep;
cout << "Enter the amount to be deposited: ";
cin >> depositAmount;
if (optionDep == 1)
{
    tempSave = custInfo[number].check_balance_saving() + depositAmount;
    custInfo[number].setSaving(tempSave);
}
else if (optionDep == 2)
{
    tempCheck = custInfo[number].check_balance_checking() + depositAmount;
    custInfo[number].setChecking(tempCheck);
}
}
void checkBal(customer custInfo[], int number)
{
int optionBal;
cout << "1. Check savings balance" << endl;
cout << endl;
cout << "2. Check checking balance" << endl;
cin >> optionBal;
if (optionBal == 1)
{
    cout << "Current savings balance is: " << custInfo[number].check_balance_saving() << endl;
}
else if (optionBal == 2)
{
    cout << "Current checking balance is: " << custInfo[number].check_balance_checking() << endl;
}
}
void newAccountFile(customer custInfo[], int size)
{
int i;
Date tempDate;
Name tempName;
ofstream newAccountStorage;
newAccountStorage.open ("updated_account.dat"); //Opens new file for updated account info
for (i = 0; i < size; i++);
{
    tempDate = custInfo[i].getDate();
    tempName = custInfo[i].getName();
    newAccountStorage << tempDate.Day << endl;
    newAccountStorage << tempDate.Month << endl;
    newAccountStorage << tempDate.Year << endl;
    newAccountStorage << tempName.first_name << endl;
    newAccountStorage << tempName.middle_name << endl;
    newAccountStorage << tempName.last_name << endl;
    newAccountStorage << custInfo[i].check_balance_saving() << endl;
    newAccountStorage << custInfo[i].check_balance_checking() << endl;
}
newAccountStorage.close(); //Closes the file after writing new information
}

你的函数定义中有打印错误

void desposit(customer custInfo[], int number)
     ^^^^