#include <iostream>
#include <string>
using namespace std;
/* Assignment solution cs304 by Blu ( fb.com/92blu ) */
class Parcel{
protected: // changed from private to protected
int
Id;
string
senderName;
string
senderAddress;
string
receiverName;
string
receiverAddress;
int
weight;
int
fee;
public:
Parcel(){
Id
= 0;
senderName
= "";
senderAddress
= "";
receiverName
= "";
receiverAddress
= "";
weight
= 0;
fee
= 0;
}
void
setId(int id){
Id
= id;
}
int
getId(){
return
Id;
}
void
setSenderName(string sname){
senderName
= sname;
}
string
getSenderName(){
return
senderName;
}
void
setSenderAddress(string saddress){
senderAddress
= saddress;
}
string
getSenderAddress(){
return
senderAddress;
}
void
setReceiverName(string rname){
receiverName
= rname;
}
string
getReceiverName(){
return
receiverName;
}
void
setReceiverAddress(string raddress){
receiverAddress
= raddress;
}
string
getReceiverAddress(){
return
receiverAddress;
}
void
setWeight(int w){
weight
= w;
}
int
getWeight(){
return
weight;
}
void
setFee(int f){
fee
= f;
}
int
getFee(){
return
fee;
}
};
class normalParcel: public Parcel{
protected:
int
chargesPerGram;
int
basicCharges;
string
shipmentType = "Normal";
public:
void
setChargePerGram(int charges){
chargesPerGram
= charges;
}
int
getChargesPerGram(){
return
chargesPerGram;
}
void
setBasicCharges(int charges){
basicCharges
= charges;
}
int
getBasicCharges(){
return
basicCharges;
}
string
getShipmentType(){
return
shipmentType;
}
};
class urgentParcel: public Parcel{
protected:
int
chargesPerGram;
int
basicCharges;
string
shipmentType = "Urgent";
int
additionalFee;
public:
void
setChargePerGram(int charges){
chargesPerGram
= charges;
}
int
getChargesPerGram(){
return
chargesPerGram;
}
void
setBasicCharges(int charges){
basicCharges
= charges;
}
int
getBasicCharges(){
return
basicCharges;
}
string
getShipmentType(){
return
shipmentType;
}
void
setAdditionalFee(int fee){
additionalFee
= fee;
}
int
getAdditionalFee(){
return
additionalFee;
}
};
int main(int argc, char** argv) {
cout<<"Assignment
solution cs304 by Blu ( fb.com/92blu )"<<endl<<endl;
int
selection;
while(1){
cout<<"Enter
1 for normal and 2 for urgent services.\n\nSelect type of service: ";
cin>>selection;
if(selection==1){
int
id, weight, charges, fee, overWeightCharges;
string
senderName, receiverName, senderAdd, receiverAdd, overWeight;
cout<<"Normal
service selected.\n";
normalParcel
p;
cout<<"Enter
receipt number: ";
cin>>id;
p.setId(id);
cout<<"Enter
sender name: ";
cin>>senderName;
p.setSenderName(senderName);
cout<<"Enter
sender Address: ";
cin>>senderAdd;
p.setSenderAddress(senderAdd);
cout<<"Enter
receiver name: ";
cin>>receiverName;
p.setReceiverName(receiverName);
cout<<"Enter
receiver address: ";
cin>>receiverAdd;
p.setReceiverAddress(receiverAdd);
cout<<"Enter
weight of parcel in grams: ";
cin>>weight;
p.setWeight(weight);
cout<<"Enter
basic charges for the parcel: ";
cin>>charges;
p.setBasicCharges(charges);
cout<<"Enter
fee per gram: ";
cin>>fee;
p.setFee(fee);
cout<<"\n\n\nShipment
Receipt\n-------------------\n";
cout<<"Receipt
No: "<<p.getId()<<endl;
cout<<"Sender
Name: "<<p.getSenderName()<<endl;
cout<<"Sender
Address: "<<p.getSenderAddress()<<endl;
cout<<"Receiver
Name: "<<p.getReceiverName()<<endl;
cout<<"Receiver
Address: "<<p.getReceiverAddress()<<endl;
cout<<"Parcel
Weight: "<<p.getWeight()<<endl;
if(p.getWeight()>900){
overWeight
= "Yes";
}
else {
overWeight
= "No";
}
cout<<"Over
Weight: "<<overWeight<<endl;
cout<<"Basic
Charges: "<<p.getBasicCharges()<<endl;
if(overWeight=="Yes"){
overWeightCharges
= (p.getWeight() - 900) * p.getFee();
}
else {
overWeightCharges
= 0;
}
cout<<"Over
Weight Charges: "<<overWeightCharges<<endl;
cout<<"Shipment
Total Charges: "<<p.getBasicCharges() +
overWeightCharges<<endl;
cout<<"Shipment
type: "<<p.getShipmentType()<<endl;
return
0;
}
else if(selection==2){
int
id, weight, charges, fee, overWeightCharges, additionalfee;
string
senderName, receiverName, senderAdd, receiverAdd, overWeight;
cout<<"Urgent
service selected.\n";
urgentParcel
p;
cout<<"Enter
receipt number: ";
cin>>id;
p.setId(id);
cout<<"Enter
sender name: ";
cin>>senderName;
p.setSenderName(senderName);
cout<<"Enter
sender Address: ";
cin>>senderAdd;
p.setSenderAddress(senderAdd);
cout<<"Enter
receiver name: ";
cin>>receiverName;
p.setReceiverName(receiverName);
cout<<"Enter
receiver address: ";
cin>>receiverAdd;
p.setReceiverAddress(receiverAdd);
cout<<"Enter
weight of parcel in grams: ";
cin>>weight;
p.setWeight(weight);
cout<<"Enter
basic charges for the parcel: ";
cin>>charges;
p.setBasicCharges(charges);
cout<<"Enter
fee per gram: ";
cin>>fee;
p.setFee(fee);
cout<<"Enter
additional fee par gram: ";
cin>>additionalfee;
p.setAdditionalFee(additionalfee);
cout<<"\n\n\nShipment
Receipt\n-------------------\n";
cout<<"Sender
Name: "<<p.getSenderName()<<endl;
cout<<"Sender
Address: "<<p.getSenderAddress()<<endl;
cout<<"Receiver
Name: "<<p.getReceiverName()<<endl;
cout<<"Receiver
Address: "<<p.getReceiverAddress()<<endl;
cout<<"Parcel
Weight: "<<p.getWeight()<<endl;
if(p.getWeight()>900){
overWeight
= "Yes";
}
else {
overWeight
= "No";
}
cout<<"Over
Weight: "<<overWeight<<"g"<<endl;
cout<<"Basic
Charges: "<<p.getBasicCharges()+(p.getBasicCharges()/2)<<endl;
if(overWeight=="Yes"){
overWeightCharges
= (p.getWeight() - 900) * (p.getFee()+p.getAdditionalFee());
}
else {
overWeightCharges
= 0;
}
cout<<"Over
Weight Charges: "<<overWeightCharges<<endl;
cout<<"Shipment
Total Charges: "<<p.getBasicCharges() + (p.getBasicCharges()/2) +
overWeightCharges<<endl;
cout<<"Shipment
type: "<<p.getShipmentType()<<endl;
return
0;
}
else {
cout<<"Selected
type of service is incorrect.\n\n";
}
}
return
0;
}
Post A Comment: