Solved

How do I make my app calculate 1+1 in Function.cpp and then display the result using classes?

Posted on 2011-03-03
2
519 Views
Last Modified: 2013-12-14
I would ultimately like to create a simple dialog-based app that does a simple calculation, like adding 1+1, and  displays the result in a text box.  The caveat is, that I would like the calculation performed in a separate .cpp file (Functions.cpp) so that I can isolate the calculation part of the program from everything else.  So, I did the following:

1.   Created an MFC dialog-based application in VS2008 called "FirstApp".  The files FirstApp.cpp and FirstAppDlg.cpp were created (along with their respective header files).  

2.  Using the Resource View tab, I inserted a button dialog called IDC_BUTTON1.  This is the button to be pushed.

3.  Then I Inserted an edit control dialog called IDC_EDIT1. This is where the results of 1+1 is to be displayed.  Added a variable (value) called m_strEdit1 of type String to the control.

4. I created Functions.cpp and Functions.h (no code in there yet)

5. Double clicked on the button dialog and inserted the code below

Question: How do make it so that I when I click on Button1 the program goes to Function.cpp to calculate 1+1..and then displays the result "2" in the Edit Control?  I plan on adding more complex calculation functions and using more variables soon...so I would like to use classes in the solution.  
// FirstAppDlg.cpp
void CFirstAppDlg::OnBnClickedButton1()
{
 UpdateData( TRUE ); // get text from edit control into 'm_strEdit1'
 m_strEdit1 = intToString( addInts( 1, 1 ) );
 UpdateData( FALSE ); // put the text from 'm_strEdit1' to the edit control
}


// function.h
#pragma once

int      addInts( int x, int y );
CString  intToString( int x );


// function.cpp
#include "stdafx.h"
#include "function.h"

int addInts( int x, int y )
{
 return x + y;
}

CString intToString( int x )
{
 CString strText;
 strText.Format( "%d", x );
 return strText;
}

Open in new window

0
Comment
Question by:shaolinfunk
2 Comments
 
LVL 32

Accepted Solution

by:
sarabande earned 500 total points
ID: 35026182
if you want classes, you may add

class Calculator
{
public:
     int add(int operand1, int operand2);

};

to functions.h.

implement Calculator::add in functions.cpp

then you would use it like

void OnBtnClicked()
{
    // get both values to add and convert to integer
   ...

   Calculator calc;
   int r = calc.add(operand1, operand2);

   // convert r to string and show it on screen
   ...

Sara
}
0
 
LVL 1

Author Closing Comment

by:shaolinfunk
ID: 35026262
Many, many thanks!  I see what you did there....and I got my program to compile on the 1st try.  Thanks for helping me create my first working class!
0

Featured Post

6 Surprising Benefits of Threat Intelligence

All sorts of threat intelligence is available on the web. Intelligence you can learn from, and use to anticipate and prepare for future attacks.

Join & Write a Comment

Article by: SunnyDark
This article's goal is to present you with an easy to use XML wrapper for C++ and also present some interesting techniques that you might use with MS C++. The reason I built this class is to ease the pain of using XML files with C++, since there is…
Here is a helpful source code for C++ Builder programmers that allows you to manage and manipulate HTML content from C++ code, while also handling HTML events like onclick, onmouseover, ... Some objects defined and used in this source include: …
The viewer will learn how to pass data into a function in C++. This is one step further in using functions. Instead of only printing text onto the console, the function will be able to perform calculations with argumentents given by the user.
The viewer will learn how to use the return statement in functions in C++. The video will also teach the user how to pass data to a function and have the function return data back for further processing.

744 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

10 Experts available now in Live!

Get 1:1 Help Now