Steel Plate Price Calculation Class Development
Budget: $10 – $50 USD
The task is to develop a class which quickly calculates the price of steel plates.
Assume a company that produces welded steel plates. The company accepts customer requests with a specification of steel plates the customer demands. The specification includes dimensions and material of the plates. The problem is to calculate the price of such steel plates and return the filled requests back to the customer.
The steel plates are always of a rectangular (or square) shape. The dimensions are provided as two positive integers: the width and height. Next, there is the material specification (e.g., thickness, steel quality, ...), these properties are given by another integer - the material identifier materialID. The requested size may either be directly available from the producer or be welded from two or more smaller steel plates. The welding adds another quality parameter - the strength. We assume that the customer specifies the required welding strength as a parameter in their request, the strength is given as a floating point number. For the sake of simplicity, let the same number be the unit cost of the welding (the cost of welding of length 1 unit). Our company has the equipment to weld the steel plates; however, it does not have any tool to cut them. Therefore, the dimension of the welded steel plate must exactly match the dimension that is requested by the customer.
Our company buys steel plates from steel mills (producers). Each producer produces steel plates in different dimensions and for different cost. Therefore, the producers must be contacted, and their price lists must be analyzed to correctly calculate the price of the steel plates the customer requires. The producers provide their price lists for the given material; the material is identified by the materialID. A price list consists of 0 to N entries (0 entries means that the producer does not sell any steel plates of the given material). Each entry in the price list provides the size of the steel plate and its cost. Our company cooperates with one or more producers; the same material may be offered by one or more producers. Each producer has its price list, the dimensions and the prices may vary in price lists from different producers. Since the material is the same, we are free to combine steel sheets bought from different producers and decrease the final cost.
We know the dimensions and prices of the available steel sheets once the price lists are collected. Moreover, the cost of welding is known from the customer request, thus the cost of the requested steel sheets may be calculated. The general case is somewhat technical; however, our welding technology limits the possible combinations which in turn simplifies the computation. Our welding machine can only weld two steel sheets along equally long edges (see figure below). This simplification leads to an algorithm with cubic time complexity. Anyway, cubic algorithms tend to be rather slow, thus we use multiple threads to increase the computation speed.
If you are interested in this project, I will share all necessary informations about this.
Assume a company that produces welded steel plates. The company accepts customer requests with a specification of steel plates the customer demands. The specification includes dimensions and material of the plates. The problem is to calculate the price of such steel plates and return the filled requests back to the customer.
The steel plates are always of a rectangular (or square) shape. The dimensions are provided as two positive integers: the width and height. Next, there is the material specification (e.g., thickness, steel quality, ...), these properties are given by another integer - the material identifier materialID. The requested size may either be directly available from the producer or be welded from two or more smaller steel plates. The welding adds another quality parameter - the strength. We assume that the customer specifies the required welding strength as a parameter in their request, the strength is given as a floating point number. For the sake of simplicity, let the same number be the unit cost of the welding (the cost of welding of length 1 unit). Our company has the equipment to weld the steel plates; however, it does not have any tool to cut them. Therefore, the dimension of the welded steel plate must exactly match the dimension that is requested by the customer.
Our company buys steel plates from steel mills (producers). Each producer produces steel plates in different dimensions and for different cost. Therefore, the producers must be contacted, and their price lists must be analyzed to correctly calculate the price of the steel plates the customer requires. The producers provide their price lists for the given material; the material is identified by the materialID. A price list consists of 0 to N entries (0 entries means that the producer does not sell any steel plates of the given material). Each entry in the price list provides the size of the steel plate and its cost. Our company cooperates with one or more producers; the same material may be offered by one or more producers. Each producer has its price list, the dimensions and the prices may vary in price lists from different producers. Since the material is the same, we are free to combine steel sheets bought from different producers and decrease the final cost.
We know the dimensions and prices of the available steel sheets once the price lists are collected. Moreover, the cost of welding is known from the customer request, thus the cost of the requested steel sheets may be calculated. The general case is somewhat technical; however, our welding technology limits the possible combinations which in turn simplifies the computation. Our welding machine can only weld two steel sheets along equally long edges (see figure below). This simplification leads to an algorithm with cubic time complexity. Anyway, cubic algorithms tend to be rather slow, thus we use multiple threads to increase the computation speed.
If you are interested in this project, I will share all necessary informations about this.