|
[x]
Posted via EE Mobile
|
||
Search, ask, and monitor your questions on the go with EE Mobile. Visit Experts Exchange from your mobile device and never be out of touch again. |
||
| Question |
|
[x]
Attachment Details
|
||
|
[x]
The Solution Rating System
|
||
With so many solutions, how can you tell which solutions are most likely to help you and which ones are not? To provide you with a tool to use, we rate our solutions based on various elements that most accurately determine if a solution is a quality solution. To explain what factors affect the solution rating, here are the elements we take into consideration when formulating our solution rating.
Your Input Matters If you have any suggestions that you would like to make for our rating system, please ask a question in the Suggestions Zone of Community Support. Thank you! |
||
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67: 68: 69: 70: 71: 72: 73: 74: 75: 76: 77: 78: 79: 80: 81: 82: 83: 84: 85: 86: 87: 88: 89: 90: 91: 92: 93: 94: 95: 96: 97: 98: 99: 100: 101: 102: 103: 104: 105: 106: 107: 108: 109: 110: 111: 112: 113: 114: 115: 116: 117: 118: 119: 120: 121: 122: 123: 124: 125: 126: 127: 128: 129: 130: 131: 132: 133: 134: 135: 136: 137: 138: 139: 140: 141: 142: 143: 144: 145: 146: 147: 148: 149: 150: 151: 152: 153: 154: 155: 156: 157: 158: 159: |
/* main.cpp */
#include <iostream>
#include <stdexcept>
#include "PromptModule.h"
#include "ErrorHandlingModule.h"
using namespace std;
char GetOperator(void)
{
char theOperator;
cout << "Operator: ";
cin >> theOperator;
return theOperator;
}
float GetOperand(void)
{
float theOperand = 1;
cout << "The Operand: ";
cin >> theOperand;
return theOperand;
}
float Accumulate (const char theOperator,const float theOperand)
{
static float myAccumulator = 0; //Inititalize to 0 when the program starts
switch (theOperator)
{
case '+':
myAccumulator = myAccumulator + theOperand;
break;
case '-':
myAccumulator = myAccumulator - theOperand;
break;
case '*':
myAccumulator = myAccumulator * theOperand;
break;
case '/':
myAccumulator = myAccumulator / theOperand;
break;
default:
throw
runtime_error("Error - Invalid Operator");
};
return myAccumulator;
}
int main(int argc, char* argv[])
{
SAMSErrorHandling::Initialize();
do
{
try
{
char Operator = GetOperator();
float Operand = GetOperand();
cout << Accumulate(Operator,Operand) << endl;
}
catch (runtime_error RuntimeError)
{
SAMSErrorHandling::HandleRuntimeError(RuntimeError);
}
catch (...)
{
SAMSErrorHandling::HandleNotANumberError();
};
}
while (SAMSPrompt::UserWantsToContinueYOrN("More ?"));
return 0;
}
/* ErrorHandlingModule.cpp */
#include <iostream>
#include <stdexcept>
#include "ErrorHandlingModule.h"
using namespace std;
namespace SAMSErrorHandling
{
using namespace std;
void Inititalize(void)
{
cin.exceptions(cin.failbit);
}
int HandleNotAnumberError(void) //Returns error code
{
cerr << "Input error - not a number?" << endl;
cin.clear();
//Eat the bad input so we can pause the program
char BadInput[5];
cin >> BadInput;
return 1; // An error occured
}
int HandleRuntimeError(runtime_error theRuntimeError)
{
cerr << theRuntimeError.what() << endl;
return 1;
}
}
/* ErrorHandlingModule Header file */
#ifndef ErrorHandlingModuleH
#define ErrorHandlingModuleH
#include <stdexcept>
using namespace std;
namespace SAMSErrorHandling
{
void Initialize(void);
int HandleNotANumberError(void); //Returns error code
int HandleRuntimeError(runtime_error theRuntimeError);
}
#endif
/* PromptModule.cpp */
#include <iostream>
#include "PromptModule.h"
using namespace std;
namespace SAMSPrompt
{
bool UserWantstoContinueYOrN (const char *theThingWeAreDoing)
{
char DoneCharacter;
bool InvalidCharacterWasEntered = false;
do
{
cout << endl << theThingWeAreDoing << " - Press \'n\' and \'Enter\' to stop: ";
cin >> DoneCharacter;
InvalidCharacterWasEntered =
!
(
(DoneCharacter == 'y')
||
(DoneCharacter == 'n')
);
if (InvalidCharacterWasEntered)
{
cout << "...Error - " << "please enter \"y\" or \"n\"."<<endl;
};
}while (InvalidCharacterWasEntered);
return (DoneCharacter != 'n');
}
}
/* PromptModule header */
#ifndef PromptModuleH
#define PromptModuleH
namespace SAMSPrompt
{
bool UserWantsToContinueYOrN (const char *theThingWeAreDoing);
}
#endif
|
Advertisement
| Hall of Fame |