Калькулятор

Автор: Пользователь скрыл имя, 16 Сентября 2011 в 02:13, лабораторная работа

Краткое описание

Цель: Научиться работать с математическими функциями в Visual C++.
Задание: написать программу «Калькулятор».

Файлы: 1 файл

Отчеты.doc

— 364.50 Кб (Скачать)

Лабораторная  работа №1

«Калькулятор» 

Цель: Научиться работать с математическими функциями в Visual C++. 

Задание: написать программу «Калькулятор». 

Текст программы: 

void CCalc_MFCDlg::OnButton0()

{

      // Ввод цифры 0

      UpdateData(TRUE);

      edit+="0";

      UpdateData(FALSE);

}

void CCalc_MFCDlg::OnButton1()

{

      // Ввод цифры 1

      UpdateData(TRUE);

      edit+="1";

      UpdateData(FALSE); 

}

void CCalc_MFCDlg::OnButton2()

{

      // Ввод цифры 2

      UpdateData(TRUE);

      edit+="2";

      UpdateData(FALSE); 

}

void CCalc_MFCDlg::OnButton3()

{

      // Ввод цифры 3

      UpdateData(TRUE);

      edit+="3";

      UpdateData(FALSE); 

}

void CCalc_MFCDlg::OnButton4()

{

      // Ввод цифры 4

      UpdateData(TRUE);

      edit+="4";

      UpdateData(FALSE); 

}

void CCalc_MFCDlg::OnButton5()

{

      // Ввод цифры 5

      UpdateData(TRUE);

      edit+="5";

      UpdateData(FALSE); 

}

void CCalc_MFCDlg::OnButton6()

{

      // Ввод цифры 6

      UpdateData(TRUE);

      edit+="6";

      UpdateData(FALSE); 

}

void CCalc_MFCDlg::OnButton7()

{

      // Ввод цифры 7

      UpdateData(TRUE);

      edit+="7";

      UpdateData(FALSE); 

}

void CCalc_MFCDlg::OnButton8()

{

      // Ввод цифры 8

      UpdateData(TRUE);

      edit+="8";

      UpdateData(FALSE); 

}

void CCalc_MFCDlg::OnButton9()

{

      // Ввод цифры 9

      UpdateData(TRUE);

      edit+="9";

      UpdateData(FALSE); 

}

void CCalc_MFCDlg::OnButtonZpt()

{

      // Ввод запятой

      UpdateData(TRUE);

      if (!(edit.Find(".")>=0))

            edit+=".";

      UpdateData(FALSE); 

}

void CCalc_MFCDlg::OnButtonDev()

{

      // Деление

      UpdateData(TRUE);

      if (edit!=""|edit!="devision by zero")

      {

            if(input_arr[0]==0)

            {

                  input_arr[0]=atof(edit);

                  input_arr[1]=1;

            }

            else

            {

                  float arg;

                  arg=atof(edit);

                  arg=main_core(1, arg); 

            }

            trace_out();

            if (edit!="devision by zero")

            {

                  edit="";

            }

      } 

      UpdateData(FALSE);  

}

void CCalc_MFCDlg::OnButtonPls()

{

      // Сложение

      UpdateData(TRUE);

      if (edit!=""|edit!="devision by zero")

      {

            if(input_arr[0]==0)

            {

                  input_arr[0]=atof(edit);

                  input_arr[1]=4;

            }

            else

            {

                  main_core(4, atof(edit));

            }

            trace_out();

            if (edit!="devision by zero")

            {

                  edit="";

            }

      }

      UpdateData(FALSE);

} 

void CCalc_MFCDlg::OnButtonMlt()

{

      // Умножение

      UpdateData(TRUE);

      if (edit!=""|edit!="devision by zero")

      {

            if(input_arr[0]==0)

            {

                  input_arr[0]=atof(edit);

                  input_arr[1]=2;

            }

            else

            {

                  main_core(2, atof(edit));

            }

            trace_out();

            if (edit!="devision by zero")

            {

                  edit="";

            }

      }

      UpdateData(FALSE);

} 

void CCalc_MFCDlg::OnButtonMin()

{

      // Вычитание

      UpdateData(TRUE);

      if (edit!=""|edit!="devision by zero")

      {

            if(input_arr[0]==0)

            {

                  input_arr[0]=atof(edit);

                  input_arr[1]=3;

            }

            else

            {

                  main_core(3, atof(edit));

            }

            trace_out();

            if (edit!="devision by zero")

            {

                  edit="";

            }

      }

      UpdateData(FALSE);

      }

void CCalc_MFCDlg::OnButtonMod()

{

      // Деление по модулю

      UpdateData(TRUE);

      if (edit!=""|edit!="devision by zero")

      {

            if(input_arr[0]==0)

            {

                  input_arr[0]=atof(edit);

                  input_arr[1]=5;

            }

            else

            {

                  main_core(5, atof(edit));

            }

            trace_out();

            if (edit!="devision by zero")

            {

                  edit="";

            }

      }

      UpdateData(FALSE);

}

void CCalc_MFCDlg::OnButtonC()

{

      // Обнуление

      UpdateData(TRUE);

      for(int j=0;j<4;j++)

      { 

            input_arr[j]=0; 

      }

      edit=""; 

      UpdateData(FALSE);

}

CString CCalc_MFCDlg::trace_out()

{

      // вспомогательная debugging функция (трассировка основного массива input_arr[])

      trace="";

      CString preout;

      for(int i=0;i<4;i++)

      {

            preout.Format("%f",input_arr[i]);

            trace+=preout;

      }

      return " ";

}

void CCalc_MFCDlg::OnButtonSqr()

{

      // Извлечение корня

      UpdateData(TRUE);

      CString sqr;

      double sqrd;

      if(atof(edit)>=0)

      {

            sqrd=sqrt(atof(edit));

            cut(sqrd);

      }

      else

      {

            edit="argument must be >0";

      } 

      UpdateData(FALSE);

} 

void CCalc_MFCDlg::OnButtonObr()

{

      // Фунция 1/х

      UpdateData(TRUE);

      if(atof(edit)!=0)

      {

Информация о работе Калькулятор