943,670 Members | Top Members by Rank

Ad:
  • C++ Discussion Thread
  • Unsolved
  • Views: 840
  • C++ RSS
You are currently viewing page 1 of this multi-page discussion thread
Apr 15th, 2009
0

A Curious Thing...

Expand Post »
I am not only new here, but, I am a complete newbie to programing. I was on the hunt for some beginner tutorials today on the web. I found what I thought would be a simple yet in depth problem. I spent the last hour making sure that I had typed everything exactly as instructed (you tube video) and when I tried to compile, MSVC++EXS came back with about twenty errors. Now I saw the code run on the video, so I feel confident that it should work. But no dice here. I will post both a link to the original and the code as follows:

Video link(s) http://www.youtube.com/watch?v=FPKmF...eature=related

my code;
// This is a program about loops, switch statements, ifelse statements
//and applying them to another faily simple programme.

#include <iostream>;
using namespace std;
int main ()

{
	system ("TITLE Calculator");
	system ("COLOR 2");
	char cChar;
	double dfirstnumber;
	double dsecondnumber;
	char cDoagain;

do
{
	system ("CLS");
	cout<< "Please enter the first number that you would like to use." << endl;
	cin>> dfistnubmer;
	cout<< "Please enter the operation that you would like to complete."
    <<" (+,-,* and /)"<< endl;
	cin>> cChar;
	cin<< ("Please enter the second number that you would like to use.") << endl;

    switch (cChar);
    { 
    case "+";
         cout<< " The Answer is:"<< dfirstnumber << "+" << dsecondnumber 
         << dfirstnumber << "=" << dfirstnumber + dsecondnumber 
         << endl;

    case "-";
         cout<< " The Answer is:"<< dfirstnumber << "-" << dsecondnumber 
         << dfirstnumber << "=" << dfirstnumber - dsecondnumber 
         << endl;
         break;
    case "*";
         cout<< " The Answer is:"<< dfirstnumber << "*" << dsecondnumber 
         << dfirstnumber << "=" << dfirstnumber * dsecondnumber 
         << endl;
         break;  
    case "x";
         cout<< " The Answer is:"<< dfirstnumber << "x" << dsecondnumber 
         << dfirstnumber << "=" << dfirstnumber * dsecondnumber 
         << endl;
         break;
    case "X";
         cout<< " The Answer is:"<< dfirstnumber << "X" << dsecondnumber 
         << dfirstnumber << "=" << dfirstnumber * dsecondnumber 
         << endl;
         break;
    case "/";
         if (dsecondnumber == 0) {
         cout << " That is an invalid operation!" << endl;
         }else {
         cout<< " The Answer is:"<< dfirstnumber << "/" << dsecondnumber 
         << dfirstnumber << "=" << dfirstnumber / dsecondnumber 
         << endl;
         }
         break;
    default: 
         cout<< " That is an invalid operation" << endl;
         break;
         {
         cout<< " Would you like to start again? (Y or N)" << endl;
         cin>> cDoagain;
    }while (cDoagain == 'Y'  || cDoagain == 'y');
    system ("Pause");
    return 0;
}

Also I thought that I would include the error log so that some one might possible explain what it is that the program is talking about and possible way to fix them.
Error Log
Compiler: Default compiler
Building Makefile: "C:\Dev-Cpp\Makefile.win"
Executing  make...
make.exe -f "C:\Dev-Cpp\Makefile.win" all
g++.exe -c switches.cpp -o switches.o -I"C:/Dev-Cpp/lib/gcc/mingw32/3.4.2/include"  -I"C:/Dev-Cpp/include/c++/3.4.2/backward"  -I"C:/Dev-Cpp/include/c++/3.4.2/mingw32"  -I"C:/Dev-Cpp/include/c++/3.4.2"  -I"C:/Dev-Cpp/include"   

switches.cpp:4:20: warning: extra tokens at end of #include directive
switches.cpp: In function `int main()':

switches.cpp:20: error: `dfistnubmer' undeclared (first use this function)
switches.cpp:20: error: (Each undeclared identifier is reported only once for each function it appears in.)

switches.cpp:24: error: no match for 'operator<<' in 'std::cin << "Please enter the second number that you would like to use."'
switches.cpp:28: error: case label `"+"' not within a switch statement
switches.cpp:28: error: expected `:' before ';' token

switches.cpp:33: error: case label `"-"' not within a switch statement
switches.cpp:33: error: expected `:' before ';' token

switches.cpp:38: error: case label `"*"' not within a switch statement
switches.cpp:38: error: expected `:' before ';' token
switches.cpp:43: error: case label `"x"' not within a switch statement
switches.cpp:43: error: expected `:' before ';' token
switches.cpp:48: error: case label `"X"' not within a switch statement
switches.cpp:48: error: expected `:' before ';' token

switches.cpp:53: error: case label `"/"' not within a switch statement
switches.cpp:53: error: expected `:' before ';' token

switches.cpp:62: error: case label not within a switch statement

switches.cpp:71: error: expected `}' at end of input
switches.cpp:71: error: expected `while' at end of input

switches.cpp:71: error: expected `(' at end of input
switches.cpp:71: error: expected primary-expression at end of input
switches.cpp:71: error: expected `)' at end of input
switches.cpp:71: error: expected `;' at end of input
switches.cpp:71: error: expected `}' at end of input

make.exe: *** [switches.o] Error 1

Execution terminated



If you all could assist me in find out how to fix the errors I would greatly appreciate the assistance.

Best
Archiphile
Last edited by archiphile; Apr 15th, 2009 at 1:13 am. Reason: wrapping code
Similar Threads
Reputation Points: 10
Solved Threads: 0
Newbie Poster
archiphile is offline Offline
4 posts
since Apr 2009
Apr 15th, 2009
0

Re: A Curious Thing...

Anytime you get an "undeclared: first use" error, double-check the spelling. In your case, you have some slight typos:

cin>> dfistnubmer;

instead of:
cin>> dfirstnumber;

You left an 'r' off and transposed "mb":

Fix and recompile. Then you have:

cin<< ("Please enter the second number that you would like to use.") << endl;

Should be cout instead of cin and get rid of the parentheses.

switch (cChar);

Delete the semicolon.

C++ Syntax (Toggle Plain Text)
  1. case "+";

Replace the double quotes with single quotes and replace the semicolon with a colon:

C++ Syntax (Toggle Plain Text)
  1. case '+':

Do that for all of your case statements.
Last edited by VernonDozier; Apr 15th, 2009 at 1:26 am.
Featured Poster
Reputation Points: 2614
Solved Threads: 687
Posting Expert
VernonDozier is offline Offline
5,372 posts
since Jan 2008
Apr 15th, 2009
0

Re: A Curious Thing...

This is a first, a video problem ... what if the video was edited? .. Not a good way to learn programming I'd say ...
Featured Poster
Reputation Points: 431
Solved Threads: 116
Practically a Master Poster
Agni is offline Offline
654 posts
since Dec 2007
Apr 15th, 2009
0

Re: A Curious Thing...

Remove the semi colon from

C++ Syntax (Toggle Plain Text)
  1. #include <iostream>;
Reputation Points: 21
Solved Threads: 12
Junior Poster in Training
MatEpp is offline Offline
79 posts
since Jan 2009
Apr 15th, 2009
0

Re: A Curious Thing...

In addition to the above posts:
1) The user has no chance to input the second number. Better add cin>>dsecondnumber; after the user is told to input the second number.
2) In your case statements the output is always
cout<< " The Answer is:"<< dfirstnumber << (operator) << dsecondnumber << dfirstnumber << "=" << dfirstnumber (operator) dsecondnumber << endl;
Why do you output the first number again? The output for 5*6 now (with that unnecessary output addition) is "The Answer is:5*65=30".
3) Change this:
default: 
         cout<< " That is an invalid operation" << endl;
         break;
         {
         cout<< " Would you like to start again? (Y or N)" << endl;
         cin>> cDoagain;
to
default: 
         cout<< " That is an invalid operation" << endl;
         break;
         }
         cout<< " Would you like to start again? (Y or N)" << endl;
         cin>> cDoagain;

4)
Just for comfort - you could write this:
c++ Syntax (Toggle Plain Text)
  1. case '*':
  2. cout<< " The Answer is:"<< dfirstnumber << "*" << dsecondnumber
  3. << "=" << dfirstnumber * dsecondnumber
  4. << endl;
  5. break;
  6. case 'x':
  7. cout<< " The Answer is:"<< dfirstnumber << "x" << dsecondnumber
  8. << "=" << dfirstnumber * dsecondnumber
  9. << endl;
  10. break;
  11. case 'X':
  12. cout<< " The Answer is:"<< dfirstnumber << "X" << dsecondnumber
  13. << "=" << dfirstnumber * dsecondnumber
  14. << endl;
  15. break;

at bit shorter:
c++ Syntax (Toggle Plain Text)
  1. case 'x':
  2. case 'X':
  3. case '*':
  4. cout<< " The Answer is:"<< dfirstnumber << "*" << dsecondnumber
  5. << "=" << dfirstnumber * dsecondnumber
  6. << endl;
  7. break;
Last edited by unbeatable0; Apr 15th, 2009 at 4:41 am.
Reputation Points: 42
Solved Threads: 13
Junior Poster in Training
unbeatable0 is offline Offline
90 posts
since Sep 2008
Apr 15th, 2009
0

Re: A Curious Thing...

Thank you all for the assistance. I will fix and recompile. BTW I am using the video because it is cheap (read Free). Thanks again

Best,

Archiphile
Reputation Points: 10
Solved Threads: 0
Newbie Poster
archiphile is offline Offline
4 posts
since Apr 2009
Apr 15th, 2009
0

Re: A Curious Thing...

There are free-to-read tutorials on the Internet as well.
Two good sites:
http://cprogramming.com
http://cplusplus.com
Reputation Points: 42
Solved Threads: 13
Junior Poster in Training
unbeatable0 is offline Offline
90 posts
since Sep 2008
Apr 15th, 2009
0

Re: A Curious Thing...

Exactly what I was going to say, unbeatable0. You are far better off learning from some sort of print media than video.

To be completely honest, if you're truly committed to learning how to program, investing in a good solid C++ book shouldn't be out of the question. The lessons will be written down, you can notate a book, there will be practice questions with answers, and the lessons will be complete.

When I was learning Ogre3D, I tried to do it from online tutorials, but in the end, learned there is no substitute for a well written book.
Reputation Points: 17
Solved Threads: 3
Junior Poster
PirateTUX is offline Offline
101 posts
since Jan 2007
Apr 15th, 2009
0

Re: A Curious Thing...

So I think that I have fixed most of what has been talked about before. I am coming up with one error that I do not understand.
Error is as follows:

switches.cpp(64) : fatal error C1075: end of file found before the left brace '{' 
switches - 1 error(s), 0 warning(s)
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

If any one could not just tell me how to fix it,but the why behind it would be great. Thank you all for your assistance.

Best,

Archiphile
Last edited by archiphile; Apr 15th, 2009 at 11:49 pm.
Reputation Points: 10
Solved Threads: 0
Newbie Poster
archiphile is offline Offline
4 posts
since Apr 2009
Apr 15th, 2009
0

Re: A Curious Thing...

For all of the people saying that I should get a good text, I am in concurrence with you on that statement. I have to get some cash together so that I can invest. The on line tutorials are a supplement to the texts that I am planning to purchase in the future. Thank you all for you assistance, I really appreciate all of your guidance.


Best,

Archiphile
Reputation Points: 10
Solved Threads: 0
Newbie Poster
archiphile is offline Offline
4 posts
since Apr 2009

This thread is more than three months old

No one has posted to this discussion for at least three months. Please let old threads die and do not reply to them unless you feel you have something new and valuable to contribute that absolutely must be added to make the discussion complete. Otherwise, please start a new thread in this forum instead.
Message:
Previous Thread in C++ Forum Timeline: Polymorphism question in a C++ example
Next Thread in C++ Forum Timeline: help with assignment





About Us | Contact Us | Advertise | Acceptable Use Policy
Forum Index | Build Custom RSS Feed


Follow us on Twitter


© 2011 DaniWeb® LLC