Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // ConsoleApplication1.cpp : Defines the entry point for the console application.
- //
- #include "stdafx.h"
- #include <iostream>
- #include <string>
- #include <fstream>
- #include <wctype.h>
- using namespace std;
- //had already completed this with out adding functions - and so i added two of the examples to show that i understand how the functions work
- char digit;
- char prevdigit;
- char prevprevdigit = ' ';
- float firstnumber = 0;
- string firststring;
- float secondnumber = 0;
- string secondstring;
- float currentnumber = 0;
- string currentstring;
- float answer;
- int switchstatement = 0;
- char op;
- string reinsist(int newanswer) {
- string finalromannumber;
- int final = newanswer;
- while (final > 0) {
- while (final > 1000) {
- final = final - 1000;
- finalromannumber += 'M';
- }
- while (final > 500) {
- final = final - 500;
- finalromannumber += 'C';
- }
- while (final > 100) {
- final = final - 100;
- finalromannumber += 'D';
- }
- while (final > 50) {
- final = final - 50;
- finalromannumber += 'L';
- }
- while (final > 10) {
- final = final - 10;
- finalromannumber += 'X';
- }
- while (final > 5) {
- final = final - 5;
- finalromannumber += 'V';
- }
- while (final >= 1) {
- final = final - 1;
- finalromannumber += 'I';
- }
- }
- return finalromannumber;
- }
- void resetcurrent() {
- currentstring = "";
- currentnumber = 0;
- }
- void addsomethingfirst(int a) {
- firstnumber += a;
- }
- void resetall() {
- switchstatement = 0;
- currentnumber = 0;
- secondnumber = 0;
- firstnumber = 0;
- firststring = "";
- secondstring = "";
- currentstring = "";
- answer = 0;
- }
- int main()
- {
- ifstream fileInput; //here we are going to define the file that we are trying to stream
- fileInput.open("c:\\temp\\mp4romanletrdata.txt");
- while (!fileInput.eof())
- {
- fileInput >> std::noskipws >> digit;
- //cout << digit << endl;
- if (digit == 'I') {
- currentnumber = currentnumber + 1; currentstring += digit;
- }
- if (digit == 'V') {
- currentnumber = currentnumber + 5; currentstring += digit;
- }
- if (digit == 'X') {
- currentnumber = currentnumber + 10; currentstring += digit;
- }
- if (digit == 'L') {
- currentnumber = currentnumber + 50; currentstring += digit;
- }
- if (digit == 'C') {
- currentnumber = currentnumber + 100; currentstring += digit;
- }
- if (digit == 'D') {
- currentnumber = currentnumber + 500; currentstring += digit;
- }
- if (digit == 'M') {
- currentnumber = currentnumber + 1000; currentstring += digit;
- }
- if (digit == (char)' ' && prevdigit != (char)' ' && switchstatement == 0) {
- addsomethingfirst(currentnumber); // this is my example of a return function
- firststring = currentstring;
- resetcurrent(); // this is my void function
- switchstatement = 1;
- }
- else
- if (digit == (char)' ' && prevdigit != (char)' ' && switchstatement == 1) {
- secondnumber += currentnumber;
- secondstring = currentstring;
- resetcurrent();
- switchstatement = 2;
- }
- if (digit == (char)'\n' && switchstatement == 2) {
- switchstatement = 0;
- op = prevdigit;
- if (op == '+') { answer = firstnumber + secondnumber; }
- if (op == '-') { answer = firstnumber - secondnumber; }
- if (op == '*') { answer = firstnumber * secondnumber; }
- if (op == '/') { answer = firstnumber / secondnumber; }
- cout << firstnumber << op << secondnumber << "=" << answer << endl;
- cout << "The first number is: " << firststring << "(" << firstnumber << ")" << endl;
- cout << "The second number is: " << secondstring << "(" << secondnumber << ")" << endl;
- cout << "The answer is: " << answer << endl;
- cout << endl << "Answer In Roman Numerals : " << "<" << reinsist(answer) << ">" << endl;
- cout << "----------------------------------------" << endl;
- resetall();
- }
- prevdigit = digit;
- prevprevdigit = prevdigit;
- }
- system("pause");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment