gpt4 book ai didi

c++ - 我的包编译,get 函数工作,除了它打印随机数的 double

转载 作者:太空宇宙 更新时间:2023-11-04 16:31:25 25 4
gpt4 key购买 nike

我的包可以编译,get 函数可以工作,除了打印随机数的 double 。有什么想法吗?

#ifndef Package_H
#define Package_H


#include <string>

using namespace std;

//The class Package is the base class for derived classes TwoDayPackage and OverNightPackage

class Package //begins class Package
{
public:
Package(const string &, const string &, const string &, const string &, const string &, const string &, const string &, const string &, const string &, const string &, double = 0.0, double = 0.0); //constructor

//set and get functions for sender
void setSenderName(const string &);
string getSenderName() const;

void setSenderAddress(const string &);
string getSenderAddress() const;

void setSenderCity(const string &);
string getSenderCity() const;

void setSenderState(const string &);
string getSenderState() const;

void setSenderZip(const string &);
string getSenderZip() const;

//set and get functions for recipient
void setRecipientName(const string &);
string getRecipientName() const;

void setRecipientAddress(const string &);
string getRecipientAddress() const;

void setRecipientCity(const string &);
string getRecipientCity() const;

void setRecipientState(const string &);
string getRecipientState() const;

void setRecipientZip(const string &);
string getRecipientZip() const;

void setWeight(double);
double getWeight() const;

void setShip(double);
double getShip() const;

double calculateCost() const;
void print() const;

private:
string senderName;
string senderAddress;
string senderCity;
string senderState;
string senderZip;
string recipientName;
string recipientAddress;
string recipientCity;
string recipientState;
string recipientZip;
double weight;
double shipCost;

};

#endif

.

//next page
#include <iostream>
using namespace std;

#include "Package.h"

Package::Package(const string & sname, const string & saddress, const string & scity, const string & sstate, const string & szip, const string & rname, const string & raddress, const string & rcity, const string & rstate, const string & rzip, double weight, double shipCost)


{
senderName = sname;
senderAddress = saddress;
senderCity = scity;
senderState = sstate;
senderZip = szip;
recipientName = rname;
recipientAddress = raddress;
recipientCity = rcity;
recipientState = rstate;
recipientZip = rzip;
setWeight(weight);
setShip(shipCost);

}



void Package::setSenderName(const string & sname)
{
senderName = sname;
}

string Package::getSenderName() const
{
return senderName;
}



void Package::setSenderAddress(const string & saddress)
{
senderAddress = saddress;
}

string Package::getSenderAddress() const
{
return senderAddress;
}



void Package::setSenderCity(const string & scity)
{
senderCity = scity;
}

string Package::getSenderCity() const
{
return senderCity;
}




void Package::setSenderState(const string & sstate)
{
senderState = sstate;
}

string Package::getSenderState() const
{
return senderState;
}




void Package::setSenderZip(const string & szip)
{
senderZip = szip;
}

string Package::getSenderZip() const
{
return senderZip;
}




void Package::setRecipientName(const string & rname)
{
recipientName = rname;
}

string Package::getRecipientName() const
{
return recipientName;
}



void Package::setRecipientAddress(const string & raddress)
{
recipientAddress = raddress;
}

string Package::getRecipientAddress() const
{
return recipientAddress;
}



void Package::setRecipientCity(const string & rcity)
{
recipientCity = rcity;
}

string Package::getRecipientCity() const
{
return recipientCity;
}



void Package::setRecipientState(const string & rstate)
{
recipientState = rstate;
}

string Package::getRecipientState() const
{
return recipientState;
}


void Package::setRecipientZip(const string & rzip)
{
recipientZip = rzip;
}

string Package::getRecipientZip() const
{
return recipientZip;
}




void Package::setWeight(double weight)
{
weight = (weight < 0.0 ) ? 0.0 : weight;
}
double Package::getWeight() const
{
return weight;
}



void Package::setShip(double shipCost)
{
shipCost = ( shipCost < 0.0) ? 0.0 : shipCost;
}

double Package::getShip() const
{
return shipCost;
}

double Package::calculateCost() const
{
return weight * shipCost;
}

void Package::print() const
{
cout<<"Sender:"<<endl
<<senderName<<endl
<<senderAddress<<endl
<<senderCity<<", "<<senderState<<" "<<senderZip<<endl
<<endl
<<"Recepient:"<<endl
<<recipientName<<endl
<<recipientAddress<<endl
<<recipientCity<<", "<<recipientState<<" "<<recipientZip<<endl
<<endl
<<"Weight of package: "<<weight<<" oz."<<endl
<<"Type of delivery: Regular Delivery"<<endl
<<"Cost of package: $"<<calculateCost()<<endl;
}

//The class TwoDayPackage is the first derived class from class Package




//The class OverNightPackage is the second derived class from class Package

.

//main function

#include <iostream>
#include <iomanip>
#include <vector>

using namespace std;
using std::setprecision;

#include "Package.h"
/*#include"overnighttest.h"
#include"twoday2.h"*/
//Test File

int main()
{
Package message("chris beyer","1 westwood circle","edison","nj","08820","mike b","1 westwood cirle","edison","nj","08820",10.00,1.50);

/*OverNightPackage box("John Doe", "789 Fire Street", "Hell", "MI", "48169", "Jane Doe", "987 Leg Sun Crossing", "Intercourse", "PA", "17534", 10.00, 1.50, .85);

TwoDayPackage parcel("John Doe", "789 Fire Street", "Hell", "MI", "48169", "Jane Doe", "987 Leg Sun Crossing", "Intercourse", "PA", "17534", 15.00, 1.05, 5.00);*/



cout << fixed << setprecision(2);

cout<<"Package delivery services program"<<endl
<<endl
<<"Cost per ounce for a package: $.50/ounce"<<endl
<<"Additional cost for two day delivery: $2.00/ounce"<<endl
<<"Additional cost for overnight delivery: $5.00/ounce"<<endl<<endl;


vector<Package*> myPackages;

Package *messagePtr=&message;
/*TwoDayPackage *TDpPtr=&TDp;
OvernightPackage *OpPtr=&Op;*/

myPackages.push_back(messagePtr);
/*myPackages.push_back(TDpPtr);
myPackages.push_back(OpPtr);*/

double total=0;

for(int i=0;i<myPackages.size();i++)
{
cout<<"Package #"<<i+1<<":"<<endl<<endl;
(*myPackages[i]).print();
cout<<endl;
total+=(*myPackages[i]).calculateCost();
}

cout<<"Total cost for all the packages: $"<<total<<endl;

system("pause");

return 0;


}

最佳答案

在您的 setter 中,您没有设置实例变量。例如:weight = (weight < 0.0) ? 0.0 : weight只是更改用于参数的临时变量。您可以更改参数的名称、更改实例变量的名称(推荐),或使用语法 this->weight = ...

关于c++ - 我的包编译,get 函数工作,除了它打印随机数的 double ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6487887/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com