2011-12-16 35 views
7

Tôi đang giúp một người bạn với C++ của cô ấy, nhưng thành thật mà nói chúng tôi cần một chút giúp đỡ.Cách loại bỏ lỗi này: "MSVCRTD.lib (crtexe.obj): lỗi LNK2019: biểu tượng bên ngoài chưa được giải quyết _main được tham chiếu trong hàm ___tmainCRTStartup"

Tại sao chúng tôi luôn nhận được lỗi này: "MSVCRTD.lib (crtexe.obj): lỗi LNK2019: chưa được giải quyết bên ngoài biểu tượng chính tham chiếu trong chức năng _ _tmainCRTStartup"

Bộ luật là dưới đây:

//Maria Delgado (1013725) - Coursework 2 - Program Conducting timber component structural design 
#include<iostream> 
#include<iomanip> 
#include<cmath> 
#include<fstream> 
#include<string> 
using namespace std; 
//Variables for Strength Properties in (N/mm2) 
//fmk=Bending 
//fc90k=Compression Perpendicular 
//fvk=Shear 

//Calculating Member Size Factor: 
void memberSizeFactor(double chosenDepth) 
{ 
    if (chosenDepth<150) 
     kH=pow(150/chosenDepth,0.2); 
    else 
     cout<<"Please input a depth less than 150mm"<<endl; 
} 

//Error message for all negative values entered 
double errorNeg() 
{ 
float value=-1; 
while (value<0) 
{ 
    cout<<"You have entered a negative value. This variable cannot take negative values. Please input positive values!"; 
    cin>>value; 
    cout<<endl; 
} 
return value; 
} 

//Beam Member Class 
class beamMember 
{ 
private: 
double chosenLength; 
double chosenWidth; 
double chosenDepth; 
double chosenBearingLength; 
double serviceClassAbility; 
string strengthClass; 
public: 
beamMember() 
{ 
    chosenLength=chosenWidth=chosenDepth=chosenBearingLength=serviceClassAbility=0; 

    strengthClass=""; 
} 

void beamDimensionsData() 
{ 
    cout<<"The following dimensions need to be input into the program:"<<endl; 

    cout<<"What is the desired beam LENGTH in millimeters?"; 
    cin>>chosenLength; 
    if(chosenLength<0) chosenLength=errorNeg(); 

    cout<<"What is the desired beam WIDTH in millimeters?"; 
    cin>>chosenWidth; 
    if(chosenWidth<0) chosenWidth=errorNeg(); 

    cout<<"What is the desired beam DEPTH in millimeters?"; 
    cin>>chosenDepth; 
    if(chosenDepth<0) chosenDepth=errorNeg(); 

    cout<<"What is the desired beam BEARING LENGTH in millimeters?"; 
    cin>>chosenBearingLength; 
    if(chosenBearingLength<0) chosenBearingLength = errorNeg(); 

    cout<<"Please insert a strength class of timber e.g.C12 to C50:"; 
    cin>>strengthClass; 

    cout<<endl<<"Please choose a service class ability for member i.e. 1 or 2 or 3:"; 
    cin>>serviceClassAbility; 

    cout<<endl; 
} 


//***************************CALCULATE OVERALL DESIGN LOAD************************************************************ 
double load(beamMember designBeam) 
{ 
    cout<<"Under these circumstances, the beam will be adequate to support a slab."<<endl<<endl; 
    double qK; 
    double gK; 
    double span; 

    cout<<"Please input the total live load in kN/m2:"; 
    cin>>qK; 
    cout<<endl; 
    if (qK<0) qK=errorNeg(); 
    qK=qK*gammaQ; 

    cout<<"Please input the total dead load in kN/m2:"; 
    cin>>gK; 
    if (gK<0) gK=errorNeg(); 
    gK=gK*gammaG; 

    cout<<"Enter the span between the beams in millimeters:"; 
    cin>>span; 
    while(span<0) span=errorNeg(); 
    cout<<endl; 
    span=span*(qK+gK)*chosenLength/10e2; 
    cout<<"Point load:"<<span<<"N"<<endl<<endl; 
    return span; 
} 

//***********************************CHECKING BENDING STRESS********************************************************* 
void checkBendingStress(beamMember designBeam, double force) 
{ 
    cout<<"Bending Stress Check:"<<endl; 
    double bendingMoment; 
    double secondMomentofArea; 
    double designBendingStress; 
    double actualBendingStress; 

    bendingMoment=force*chosenLength/8; 
    cout<<"Maximum bending moment is "<<bendingMoment<<"Nmm"<<endl; 

    secondMomentofArea=chosenWidth*pow(chosenDepth,3)/12; 

    designBendingStress=kH*kSYS*kMOD*matrix[0]/gammaM; 
    actualBendingStress=(bendingMoment*chosenDepth/2)/secondMomentofArea; 

    cout<<"Maximum permissibile stress:"<<designBendingStress<<"N/mm2"<<endl; 
    cout<<"The actual stress that the beam is subject to:"<<actualBendingStress<<"N/mm2"<<endl; 

    if(actualBendingStress<=designBendingStress) 
    cout<<"Beam bending stress check successful!"<<endl<<endl; 
    else 
    cout<<"Beam bending stress check unnsuccessful!"<<endl<<endl; 
} 

//***********************************CHECKING SHEAR STRESS********************************************************* 
void checkShearStress(beamMember designBeam, double force) 
{ 
    cout<<"Shear Stress Check:"<<endl; 
    double designShearingStress; 
    double actualShearingStress; 

    designShearingStress=matrix[5]*kMOD*kSYS/gammaM; 
    actualShearingStress=(1.5*force/2)/(chosenWidth)/(chosenDepth); 
    cout<<"Maximum permissible shear stress:"<<designShearingStress<<"N/mm2"<<endl; 
    cout<<"Shear stress that the supports are subjected to:"<<actualShearingStress<<"N/mm2"<<endl; 
    if(actualShearingStress<=designShearingStress) 
    cout<<"Beam shear stress check successful!"<<endl<<endl; 
    else 
    cout<<"Beam shear stress check unsucessful!"<<endl<<endl; 
} 

//********************************CHECKING BEARING STRESS*********************************************************** 
void checkBearingStress(beamMember designBeam, double force) 
{ 
    double kc90; 
    double designBearingStress; 
    double actualBearingStress; 

    actualBearingStress=force/2/chosenWidth/chosenBearingLength; 
    cout<<"Bearing Stress that the beam is subjected to:"<<actualBearingStress<<"N/mm2"<<endl; 

    designBearingStress=matrix[4]*kMOD*kSYS/gammaM; 
    cout<<"Maximum permissible bearing stress:"<<designBearingStress<<"N/mm2"<<endl; 

    kc90=(2.38-chosenBearingLength/250)*(1+chosenDepth/12/chosenBearingLength); 
    cout<<"Constant, kc90 is "<<kc90<<endl; 
    cout<<"Factored design bearing stress is "<<kc90*designBearingStress<<endl; 

    if (actualBearingStress<=designBearingStress) 
    cout<<"Beam bearing stress check successful!"<<endl<<endl; 
    else 
    cout<<"Beam bearing stress check unsuccessful!"<<endl<<endl; 
} 

//********************************CHECKING LATERAL TORSIONAL STABILITY************************************************** 
void checkLateralTorsionalStability(beamMember designBeam, double force) 
{ 
    cout<<"Lateral Torsional Stability Check:"<<endl; 

    double bendingMoment; 
    double secondMomentofArea; 
    double designBendingStress; 
    double actualBendingStress; 

    bendingMoment=force*chosenLength/8; 
    cout<<"Maximum bending moment is "<<bendingMoment<<"Nmm"<<endl; 

    secondMomentofArea=chosenWidth*pow(chosenDepth,3)/12; 

    designBendingStress=kH*kSYS*kMOD*matrix[0]/gammaM; 
    actualBendingStress=(bendingMoment*chosenDepth/2)/secondMomentofArea; 

    cout<<"Maximum permissibile stress:"<<designBendingStress<<"N/mm2"<<endl; 
    cout<<"The actual stress that the beam is subject to:"<<actualBendingStress<<"N/mm2"<<endl; 

    if(actualBendingStress<=designBendingStress) 
    cout<<"Beam Lateral Torsional Stability check successful!"<<endl<<endl; 
    else 
    cout<<"Beam Lateral Tosional Stability check unnsuccessful!"<<endl<<endl; 
} 

//*************************************FUNCTION FOR STRENGTH CLASS DATA FILE********************************************** 
void strengthClassData(string classStrength, double serviceClass) 
{ 
    string data; 
    ifstream file; 
    file.open("strengthclassdata.txt"); 
    file>>data; 
    while(file&&data!=classStrength) 
    { 
    file>>data; 
    } 
    for(int i=0;i<=5;i++) 
    file>>matrix[i]; 
    file.close(); 
} 

//Welcome Message for Program 
void welcome() 
{ 
cout<<"The following is Yadhuvamshi Rajamani's program"<<endl 
    <<"that conducts timber component structural design"<<endl 
    <<"according to EC5. Specifically, it is a limit state"<<endl 
    <<"design program that compares design actions with design strengths."<<endl; 
} 

//******************************BEAM START UP***************************************************************************** 
void beamStartUp() 
{ 
    beamMember designBeam; 
    double force; 
    designBeam.beamDimensionsData(); 
    force=load(designBeam); 
    checkBendingStress(designBeam,force); 
    checkShearStress(designBeam,force); 
    checkBearingStress(designBeam,force); 
    checkLateralTorsionalStability(designBeam,force); 
} 

int main() 
{ 
    welcome(); 
    char startKey; 
    cout<<"Please select 1 to start the beam test program or 2 to exit the program, followed by enter!"; 
    cin>>startKey; 
    cout<<endl; 
    while(startKey!='2') 
    { 
    switch(startKey) 
    { 
    case '2': 
    return 1; 
    case '1': 
    beamStartUp(); 
    break; 
    } 
    cout<<"Please select 1 to start the beam test program or 2 to exit the program, followed by enter!"; 
    cin>>startKey; 
    cout<<endl; 
    } 
return 1; 
} 
}; 

` 
+0

Bạn có thể thêm các thông báo lỗi mối liên kết hoàn chỉnh như có thể có nhiều đến nó mà bạn dán ở trên. –

Trả lời

8

Chức năng int main() cần nằm ngoài định nghĩa lớp học của bạn. Bạn sẽ muốn tạo một cá thể lớp và sử dụng nó để gọi các hàm welcome và beamStartUp.