137 lines
3.9 KiB
C
137 lines
3.9 KiB
C
#include "Console_IO_Utility.h"
|
|
|
|
|
|
|
|
|
|
const char TOP_LINE[]
|
|
= "==========================================================";
|
|
const char THICK_LINE_DIVIDER[]
|
|
= "|========================================================|";
|
|
const char THIN_LINE_DIVIDER[]
|
|
= "|--------------------------------------------------------|";
|
|
const int TWO_ENDLINES = 6;
|
|
|
|
const int TABLE_WIDTH = 58;
|
|
|
|
const int ACCELERATION_WIDTH = 7;
|
|
|
|
const int VELOCITY_WIDTH = 12;
|
|
|
|
const int TIME_WIDTH = 10;
|
|
|
|
const int FORCE_WIDTH = 10;
|
|
|
|
const char PIPE_SPACE[] = "| ";
|
|
|
|
const char SPACE_PIPE[] = " |";
|
|
|
|
int main()
|
|
{
|
|
|
|
// Initialize Variables
|
|
double initialSpeed, velocity, accelertion, force;
|
|
int mass, time;
|
|
|
|
|
|
// Show Title
|
|
// Functions: printEndline(), printString(),
|
|
printEndline();
|
|
printString("MOTION CALCULATOR");
|
|
printEndline();
|
|
printEndline();
|
|
printString(TOP_LINE);
|
|
printEndline();
|
|
|
|
|
|
|
|
|
|
|
|
// Get user input
|
|
// Section Title
|
|
printEndline();
|
|
printString("Provide the information below for the object");
|
|
printEndline();
|
|
// Functions: promptForDouble, printEndline
|
|
printEndline();
|
|
initialSpeed = promptForDouble("Initial Speed(m\\s): ");
|
|
printEndline();
|
|
velocity = promptForDouble("Velocity(m\\s): ");
|
|
printEndline();
|
|
time = promptForDouble("Time to reach destination(s): ");
|
|
printEndline();
|
|
mass = promptForDouble("Mass(Kg): ");
|
|
printEndline();
|
|
printEndline();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// Do the calculation
|
|
// Remember Newtons Law for Motion and Force
|
|
// Motion: v = u + a*t; v= velocity, u= initial speed, t= time;
|
|
// Force: F = m*a; m = mass, a= accelertion
|
|
accelertion = (velocity - initialSpeed) / time;
|
|
|
|
force = mass * accelertion;
|
|
|
|
|
|
|
|
|
|
// show results
|
|
// display results
|
|
// This portion of the code creates the top portion of the Table
|
|
|
|
printEndline(TWO_ENDLINES);
|
|
printString(TOP_LINE);
|
|
printEndline();
|
|
printCharacter(PIPE);
|
|
printStringJustified( "MOTION CALCULATOR",
|
|
TABLE_WIDTH - 2, "CENTER" );
|
|
printCharacter(PIPE);
|
|
printEndline();
|
|
printString(THICK_LINE_DIVIDER);
|
|
printEndline();
|
|
|
|
// this portion of the code creates the middle section of the output
|
|
printString( PIPE_SPACE );
|
|
printStringJustified( "Velocity", VELOCITY_WIDTH - 1, "LEFT" );
|
|
printCharacter( PIPE );
|
|
printStringJustified( "Time", TIME_WIDTH, "CENTER" );
|
|
printString( PIPE_SPACE );
|
|
printStringJustified( "Accelertion", ACCELERATION_WIDTH - 2, "CENTER" );
|
|
printString( SPACE_PIPE );
|
|
printStringJustified( "Force", FORCE_WIDTH - 1, "CENTER" );
|
|
printString( SPACE_PIPE );
|
|
printEndline();
|
|
printString(THICK_LINE_DIVIDER);
|
|
printEndline();
|
|
|
|
// This protion of the code creates the bottome section of the code
|
|
// Functions: pritnString, printDobleJustified, printCharacter, printEndline
|
|
printString(PIPE_SPACE);
|
|
printDoubleJustified( velocity, PRECISION, VELOCITY_WIDTH-1, "LEFT" );
|
|
printString( PIPE_SPACE );
|
|
printDoubleJustified( time, PRECISION, TIME_WIDTH-3, "LEFT" );
|
|
printString( PIPE_SPACE );
|
|
printDoubleJustified( accelertion, PRECISION, ACCELERATION_WIDTH+4,
|
|
"CENTER" );
|
|
printString( SPACE_PIPE );
|
|
printDoubleJustified( force, PRECISION, FORCE_WIDTH - 1,
|
|
"CENTER" );
|
|
printString( SPACE_PIPE );
|
|
printEndline();
|
|
printString(THIN_LINE_DIVIDER);
|
|
printEndline();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// End program
|
|
return 0;
|
|
|
|
|
|
}
|