91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 583KB
    文件類型: .7z
    金幣: 1
    下載: 0 次
    發布日期: 2021-06-06
  • 語言: C/C++
  • 標簽: mfc??

資源簡介

基于MFC編寫一個單文檔程序,在客戶區用圖形來展現各種數學函數曲線。 具體要求: 1)可繪制常見的數學函數曲線,如三角函數、指數函數、冪函數等。 2)通過菜單選擇不同的函數曲線類型,可以通過對話框指定該函數的參數,如Xa中的冪a的具體設置,sin(ax+b)中的參數a、b的設置。 3)繪制數學曲線時應包括坐標軸和刻度以及相應的數字(字符),數學函數公式; 4)可以在一個坐標系中繪制多條數學曲線; 5)可以選擇不同顏色來繪制不同的曲線。 6)當鼠標移動到曲線上某點時,可以顯示該點的坐標。 7)可以進行圖形的縮放。

資源截圖

代碼片段和文件信息

#include?“pch.h“
#include?“CalculatorFunc.h“

#define?MAXNUM?30
#define?MAXOPT?30

const?double?pi?=?3.1415926535898;
const?double?e?=?2.718281828459;

bool?IsOpt(char?c)?{
return??c?==?‘+‘?||?c?==?‘-‘?||?c?==?‘*‘?||?c?==?‘/‘?||?c?==?‘^‘;
}

bool?IsNum(char?c)?{
return?c?>=?‘0‘?&&?c?<=?‘9‘?||?c?==?‘e‘??||?c?==?‘p‘;
}

double?GetNum(CString&?Eq?int&?i?char?xKey?double?xVal)
{
int?flag?=?1;
if?(i? flag?=?-1;
i++;
}

if?(i? i++;
return?flag?*?pi;
?}
???
if?(i? i++;
return?flag?*?e;
}
//cout< if?(i? i++;
return?flag?*?xVal;
}

double?x?=?0;
while?(i? {
x?=?x?*?10?+?Eq[i]?-?‘0‘;
i++;
}
double?rad?=?0.1;
if?(i? {
i++;
while?(i? {
x?=?x?+?(Eq[i]?-?‘0‘)?*?rad;
rad?=?rad?*?0.1;
i++;
}
}
return?flag?*?x;
}

double?Get_Equation_Num(CString&?Eq?int&?i?bool&?succ?char?xKey?double?xVal)?{
if?(IsNum(Eq[i])?||?Eq[i]?==?‘-‘?||?Eq[i]?==?xKey)
return?GetNum(Eq?i?xKey?xVal);//如果是數直接讀
CString?single_func;//記錄單目運算符
succ?=?false;
double?tmp_ans?=?0;//記錄子式的值
int?Lcnt?=?0;//判斷括號套括號,如sqrt(1+(1-1))
while?(i? if?(Eq[i]?==?‘(‘)?{//左括號,單目運算符已經記錄完,接下來是子式
i++;
CString?tmpEq;//記錄子式
while?(i? if?(Eq[i]?==?‘(‘)?Lcnt++;
if?(Eq[i]?==?‘)‘)?{
if?(Lcnt)
Lcnt--;
else?{//找到與第一個左括號匹配的右括號了
succ?=?true;//遞歸計算括號內子式的值
tmp_ans?=?CalcEquation(tmpEq?succ?xKey?xVal);
i++;
break;
}
}
tmpEq?+=?Eq[i];
i++;
}
break;
}
single_func?+=?Eq[i];
i++;
}

if?(succ)?{
if?(single_func?==?_T(““))
return?tmp_ans;
if?(single_func?==?_T(“sin“))?
return?sin(tmp_ans);
if?(single_func?==?_T(“cos“))
return?cos(tmp_ans);
if?(single_func?==?_T(“tan“))
return?tan(tmp_ans);
if?(single_func?==?_T(“abs“))
return?abs(tmp_ans);
if?(single_func?==?_T(“floor“))
return?floor(tmp_ans);
if?(single_func?==?_T(“ceil“))
return?ceil(tmp_ans);
if?(single_func?==?_T(“round“))
return?round(tmp_ans);
if?(single_func?==?_T(“sqrt“))
return?sqrt(tmp_ans);
if?(single_func?==?_T(“ln“))
return?log(tmp_ans);
if?(single_func?==?_T(“lg“))
return?log10(tmp_ans);
succ?=?false;
return?0;
}
}



double?Calc(double?num1?char?opt?double?num2)
{

//cout?< switch?(opt)
{
case?‘+‘:?return?num1?+?num2;
case?‘-‘:?return?num1?-?num2;
case?‘*‘:?return?num1?*?num2;
case?‘/‘:?return?num1?/?num2;
case?‘^‘:?return?pow(num1?num2);
}
}

int?cPriority(char?c)?{
if?(c?==?‘^‘)?return?3;
if?(c?==?‘*‘?||?c?==?‘/‘)?return?2;
return?1;
}

double?CalcEquation(CString?

評論

共有 條評論