// Calculate how many units are needed to achive 10% public void Achive10Percent(Values cv) { // Create local variable which will be used to convert negative number into posotive for the formula double ConvertToPosotive = -1; // Formula for calculating minimum units. MinimumUnitToBeSold = (cv.overhead / ((((0.1 * cv.Price) - cv.Price) * ConvertToPosotive) - cv.material) + 1); }
// // Create public method that takes in user input and overrides the values in the Values.cs class for Material costs public void ChangeMaterial(Values cv) { // Display current results to screen Console.WriteLine("Current Materials Cost is: £{0:0.00}", cv.material); // Prompt user to enter new value Console.Write("\nEnter New Value £(00.00): "); VALIDMATERIAL: // Create starting point VALIDMATERIAL PresenceCheck(); // Reject any no numeric input if (!regex.IsMatch(invalid)) { Console.Beep(); MessageBox.Show("This is not a valid entry", "Input Format Error"); goto VALIDMATERIAL; } // Take user sting input and convert to double cv.material = double.Parse(invalid); // Check Constraint | Reject number less than 0 if (cv.material < 0) { // Alert user of error Console.Beep(); //Display error message MessageBox.Show("a Value less than 0 cannot be entered!"); // goto starting point VALID MATERIAL goto VALIDMATERIAL; } Console.Clear(); }
// Create public method that takes in user input and overrides the values in the Values.cs class for Max Prod. public void ChangeMaxProd(Values cv) { // Display current value maxprod is set to. Console.WriteLine("Current Max Product Value is: {0}", cv.maxprod); // Prompt user to enter a value Console.Write("\nEnter New Value (UNITS): "); VALIDMAX: // Create a starting point called VALIDMAX PresenceCheck(); // Reject any no numeric input if (!regex.IsMatch(invalid)) { Console.Beep(); MessageBox.Show("This is not a valid entry", "Input Format Error"); goto VALIDMAX; } // pass the string value as a double. cv.maxprod = double.Parse(invalid); // Initiate a check constraint to check if the number entered is more than 0 if (cv.maxprod < 0) { // Beep to alert user of error Console.Beep(); // Use GUI function to Display a pop out box showing error MessageBox.Show("a Value less than 0 cannot be entered!"); // Go to starting point VALIDMAX goto VALIDMAX; } Console.Clear(); }
// Calculate Profit in £'s public void GrossProfit(Values cv) { cv.GrossProfit = cv.Price - cv.cost; }
// CALCULATION METHODS // ============================================================================== // Calculate Production costs public void GetProductionCost(Values cv) { cv.cost = (cv.material + (cv.overhead / cv.sold)); }
// Calculate Profit Percentage public void GetProfitPercentage(Values cv) { cv.profit = ((cv.Price - cv.cost) / cv.Price); }
// Calculate Profit // ======================================================================== public void ForecastProfit(Values cv) { // Prompt user to enter number of widgits and display the max limit of what the can enter. // Convert string input into a double. Console.WriteLine("Please enter the number of wigits sold (MIN: 0 | MAX: {0}): ", cv.maxprod); TOP: // Create starting point TOP PresenceCheck(); // Reject any no numeric input if (!regex.IsMatch(invalid)) { Console.Beep(); MessageBox.Show("This is not a valid entry", "Input Format Error"); goto TOP; } cv.sold = double.Parse(invalid); // CHECK CONSTRAINT | Return error message for any value that is entered outside the range. if (cv.sold < 0 || cv.sold > cv.maxprod) { // Display Error message //Console.WriteLine("\nPlease Enter A Number Within The Range Of: 0 - {0}\n", cv.maxprod); string Error = "Range Error:"; Console.Beep(); MessageBox.Show("Please Enter A Number Within The Range Of: 0 - " + cv.maxprod.ToString(), Error); // goto Starting point goto TOP; } // execute all calculation methods GetProductionCost(cv); GetProfitPercentage(cv); GrossProfit(cv); Achive10Percent(cv); //Prompt user to continue Console.WriteLine("\n\n\nPress ANY key to view results . . ."); Console.ReadLine(); Console.Clear(); // Display results DisplayResultsTable(cv); }
public void DrawDetailedTable(Values cv) { Console.WriteLine("--------------------------------------------------------------------"); Console.WriteLine("| |"); Console.WriteLine("| D E T A I L E D F O R E C A S T R E P O R T |"); Console.WriteLine("| |"); Console.WriteLine("--------------------------------------------------------------------"); Console.WriteLine("| Units | Cost (£) | Profit (%) | Gross Profit (£) |"); Console.WriteLine("===================================================================="); if (MinimumUnitToBeSold > 0) { for (int i = 0; i < cv.maxprod + 1; i += 100) { cv.sold = i; GetProductionCost(cv); GetProfitPercentage(cv); GrossProfit(cv); Achive10Percent(cv); if (i > MinimumUnitToBeSold) { Console.WriteLine(String.Format("| {0, -9}| {1, 8} | {2, 10} | {3, 12} |", i, String.Format("{0:0.00}", cv.cost), String.Format("{0:0.00}", cv.profit * 100), String.Format("{0:0.00}", cv.GrossProfit))); } } } else { Console.WriteLine("There is no potential Profit to be made."); } Console.WriteLine("===================================================================="); // Pause HoldScreen(); }
// DRAW TABLE CONTAINING ALL REQUIRED RESULTS // ========================================== public void DisplayResultsTable(Values cv) { // Creat local double variables double targetProfit = 0.1; double SoldInMultiplesOf100 = cv.sold / 100; // CHECK CONSTRAINT | Display results only if profit made was above 10% // Else display error message if (cv.profit > targetProfit) { // Display todays Date DateTime today = DateTime.UtcNow.Date; // Draw Table and enter appropriate values Console.WriteLine("--------------------------------------------------------------------"); Console.WriteLine("| |"); Console.WriteLine("| P R O F I T F O R E C A S T C A L C U L A T E D |"); Console.WriteLine("| |"); Console.WriteLine("--------------------------------------------------------------------"); Console.WriteLine("|Date |Sold (1 x 100)| Price(£) | Cost(£) | Gross Profit(£) |"); Console.WriteLine("--------------------------------------------------------------------"); Console.WriteLine(String.Format("|{0,-5} | {1,-12} | {2,8} | {3,7} | {4,16} |", today.ToString("dd/MM/yyyy"), SoldInMultiplesOf100, String.Format("{0:0.00}", cv.Price), String.Format("{0:0.00}", cv.cost), String.Format("{0:0.00}", cv.GrossProfit))); Console.WriteLine("--------------------------------------------------------------------"); Console.WriteLine("| Pofit Percentage (%) |"); Console.WriteLine("--------------------------------------------------------------------"); Console.WriteLine(String.Format("|{0,37} \t\t |", cv.profit.ToString("#0.##%"))); Console.WriteLine("--------------------------------------------------------------------"); } else { // Display Error Message Console.WriteLine("Target Profit of 10% Was not met"); } // Pause HoldScreen(); }
// Create public method that takes in user input and overrides the values in the Values.cs class for selling price. public void ChangePrice(Values cv) { // Display current overhead value Console.WriteLine("Current Selling Price is: £{0:0.00}", cv.Price); // Prompt user to enter a value Console.Write("\nEnter New Value £(00.00): "); VALIDPRICE: // Create starting point VALIDPRICE PresenceCheck(); // Reject any no numeric input if (!regex.IsMatch(invalid)) { Console.Beep(); MessageBox.Show("This is not a valid entry", "Input Format Error"); goto VALIDPRICE; } // Take user string input and convert to double cv.Price = double.Parse(invalid); // Check Constraint | Reject value less than 0 if (cv.Price < 0) { // Beep to alert user of error Console.Beep(); // Display error message MessageBox.Show("a Value less than 0 cannot be entered!"); // got to starting point VALIDPRICE goto VALIDPRICE; } Console.Clear(); }
// Create public method that takes in user input and overrides the values in the Values.cs class for Overheads. public void ChangeOverhead(Values cv) { // Display current value maxprod is set to. Console.WriteLine("Current Overheads Value is: £{0:0.00}", cv.overhead); // Prompt user to enter value Console.Write("\nEnter New Value £(00.00): "); VALIDOVER: // Create starting point PresenceCheck(); // Reject any no numeric input if (!regex.IsMatch(invalid)) { Console.Beep(); MessageBox.Show("This is not a valid entry", "Input Format Error"); goto VALIDOVER; } // Take user string input and convert to double cv.overhead = double.Parse(invalid); // Check Constraint | Value should not be less than 0 if (cv.overhead < 0) { // Alert User of error Console.Beep(); // Display error message using GUI MessageBox.Show("a Value less than 0 cannot be entered!"); // Goto starting point VALIDOVER to reask user to enter a value goto VALIDOVER; } Console.Clear(); }