#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<<"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<<"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;

}
Share To:

VU Student Support

Post A Comment: