In: Computer Science
Code programs using ReadlineSync for prompts.
Note: For all programs, create and call a main function, and if required additional functions called by the main. Also please use the ES6 style of keywords => instead of the older function and for local scope variables use the keyword let, not var
Name: cookout.js
Assume that hot dogs come in packages of 10, and hot dog buns come in packages of 8. Write a program called cookout.js, that calculates the number of packages of hot dogs and the number of packages of hot dog buns needed for a cookout, with the minimum amount of leftovers.
The program will prompt for the number of people attending the cookout and as how many hot dogs each guest will eat. The program should display the following details.
The minimum number of packages of hot dogs required.
The minimum number of packages of hot dog buns required.
The number of hot dogs that will be left over.
The number of hot dog buns that will be left over.
//cookout.js
//create a folder and open a command prompt in that location
//npm install readline-sync
//type the above command to install readline-syncc
//--------- cookout.js -------
//es6 style function
//store the function in printReport to call it anywhere in file.
const HOT_DOGS_PER_PACKAGE = 10;
const HOT_DOG_BUNS_PER_PACKAGE = 8;
printReport = (numPeople,hotDogs,hotDogBuns) =>
{
console.log("\n");
let allow = true;
//validate the inputs , all should be positve and > 0
//whenever invalid data occured set allow to false
if(numPeople <=0 )
{
console.log("Invalid number of people is given");
allow = false;
}
if(hotDogs <=0)
{
console.log("Invalid number of hot dogs are entered");
allow =false;
}
if(hotDogBuns <=0)
{
console.log("Invalid number of hotd dog buns are entered.");
allow = false;
}
//if any of the above if conditions are not occured
//then allow will be true which means data is valid.
//if not allow will be set to true, in such a case don't do anything.
if(allow)
{
//calculate number of hot dogs and buns needed
let hotDogsNeed = numPeople * hotDogs;
let hotDogBunsNeed = numPeople * hotDogBuns;
//calculate number of packages to be bought
let hotDogPackages = Math.ceil(hotDogsNeed/HOT_DOGS_PER_PACKAGE);
let hotDogBunPackages = Math.ceil(hotDogBunsNeed / HOT_DOG_BUNS_PER_PACKAGE );
//calculate number of hot dogs in those packages
let hotDogsBought = hotDogPackages * HOT_DOGS_PER_PACKAGE;
let hotDogBunsBought = hotDogBunPackages * HOT_DOG_BUNS_PER_PACKAGE;
//calculate left overs
let hotDogsLeft = hotDogsBought - hotDogsNeed;
let hotDogBunsLeft = hotDogBunsBought - hotDogBunsNeed;
//print the report.
console.log("The minimum number of packages of hot dogs required : "+hotDogPackages);
console.log("The minimum number of packages of hot dog buns required : "+hotDogBunPackages);
console.log("The number of hot dogs that will be left over : "+hotDogsLeft);
console.log("The number of hot dog buns that will be left over : "+hotDogBunsLeft);
}
else
{
console.log("Due to invalid input . Calculation is not done.")
}
}
//main function.
main = ()=>
{
//declare readline
let readline = require("readline-sync");
//read input from user for number of people and it should be integer..
let numPeople = readline.questionInt("Enter the number of people attending for cookout: ");
let hotDogs = readline.questionInt("Enter how many hot dogs each guest will eat: ");
let hotDogBuns = readline.questionInt("Enter how many hot dog buns each guest will eat: ");
//print the report by calling the function.
printReport(numPeople,hotDogs,hotDogBuns);
}
//call the main function.
main();
//end of code.
//--------------- Sample OUTPUT ----------
//please like the answer.