0

Hello all.

A friend is shipping some items in a container so it gave me the inspiration to write a quick little program. This only took 20minutes at best so please bear that in mind.

The basic idea is if the containers size is known, and the cost is known then the program will work out the cost of an individual item providing you know its dimensions.

As I'm very much a C++ beginner would anyone be able to criticize the layout of the program or in fact its functionality? Also if my maths is wrong anywhere please point it out.

Thank you in advance!

//Basic program to calculate the shipping cost of an individual item on a container.
//Program assumes you will make use of every cubic metre
//Program uses pre-defined values for total container cost and size of container.

#include <iostream>
using namespace std;

double convertToM(double nSize)
{
    return nSize / 100; //Convert value from CM to M
}

double convertToCubicMetres(double Length, double Width, double Height)
{
    return Length * Width * Height; //Calculate items size in Cubic Metres
}

int main()
{
    const double containerCost = 3000.00; //cost of 40ft container
    const double containerSize = 67.11; //size of container in cubic metres

    double itemLength = 0.0;
    double itemWidth = 0.0;
    double itemHeight = 0.0;

    int again = 0;

    do
    {

    //Currently assumes input is "Number Number Number" ie: 100 100 100. 
    cout << "Please enter the size of your item (Length x Width x Height) in CM." << endl << endl;
    cin >> itemLength;
    cin >> itemWidth;
    cin >> itemHeight;

    itemLength = convertToM(itemLength);
    itemWidth = convertToM(itemWidth);
    itemHeight = convertToM(itemHeight);

    double itemCubicMetres = 0.0;
    itemCubicMetres = convertToCubicMetres(itemLength, itemWidth, itemHeight);
    cout << "Your item is: " << itemCubicMetres << " Cubic Metres.";

    double itemCost = 0.0;
    itemCost = (containerCost / containerSize) * itemCubicMetres;

    cout << endl << endl;
    cout << "Your item would cost: " << (char)156 << itemCost << " to ship.";

    cout << endl << endl;
    cout << "Would you like to calculate the cost of another item? ((1) Yes (2) No)?";
    cin >> again;

    cout << endl << endl;

    } while (again == 1);


    return 0;
}
2
Contributors
1
Reply
3
Views
5 Years
Discussion Span
Last Post by Labdabeta
0

This code looks fine to me. If you wrap it into classes it could be even better, then you could probably add functionality for fitting the objects into the container (since usually not every square meter of the container is filled). I would suggest a containerItem class and a container class like this:

struct containerItem
{
    double width,height,length;
};
class container
{
    private:
    containerItem dimensions;
    public:
    container(containerItem dimensions):dimensions(dimensions){}
    double calculateCost(containerItem i);
};
This topic has been dead for over six months. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.