1. Gauss妙算
单文档:
void CGauss_MagicView::OnDraw(CDC* pDC)
{
int i,sum=0;
for(i=1;i<=100;i++)
sum+=i;
CString str;
str.Format("%d",sum);
CRect m_rect;
GetClientRect(&m_rect);
pDC->SetTextAlign(TA_CENTER|TA_CENTER);
pDC->TextOut(m_rect.Width( )/2,m_rect.Height( )/2,str);
}
对话框:
void CGauss_MagicView::Oncalculate()
{
Gauss dlg;
dlg.DoModal( );
}
int Gauss::GaussAdd(int n) // 自定义函数
{
int i,sum=0;
for(i=0;i<=n;i++)
sum+=i;
return sum;
}
void Gauss::OnBnClickedaddbtn()
{
UpdateData(true);
m_sum=GaussAdd(m_n);
UpdateData(false);
}
2. 最大公约数和最小公倍数
int CGcdAndLcmDlg::gcd(int a, int b)
{
if(!b)
return a;
return gcd(b,a%b);
}
int CGcdAndLcmDlg::lcm(int a, int b)
{
int cm=a;
if(!b)
return 0;
while(cm%b)
cm+=a;
return cm;
}
void CGcdAndLcmDlg::OnBnClickedcalbtn()
{
UpdateData(true);
m_gcd=gcd(m_a,m_b);
m_lcm=lcm(m_a,m_b);
UpdateData(false);
}
3. 素数
int CprimeDlg::isprime(int n)
{
if(n<=2)
return n-1;
if(n%2==0)
return 0;
int i,limit;
limit=n/2;
for(i=3;i<=limit;i+=2)
if(n%i==0)
return 0;
return 1;
}
void CprimeDlg::OnBnClickedprimebtn()
{
UpdateData(true);
int i,cnt;
cnt=m_list.GetCount( );
for(i=0;i<=cnt;i++)
m_list.DeleteString(0);
for(i=2;i<=m_n;i++)
if(isprime(i))
{
CString str;
str.Format("%d",i);
m_list.AddString(str);
}
UpdateData(false);
}
4. 等级评分
void CGrade_EvalDlg::OnBnClickedevalbtn()
{
UpdateData(true);
evaluate(m_mark);
UpdateData(false);
}
void CGrade_EvalDlg::evaluate(int mark)
{
switch(mark/10)
{
case 10:
case 9:
m_grade="A";
break;
case 8:
m_grade="B";
break;
case 7:
m_grade="C";
break;
case 6:
m_grade="D";
break;
default:
m_grade="E";
}
}
5. 9*9乘法表
void CBy9FormulaView::OnDraw(CDC* pDC)
{
int i,j;
CString str;
for(j=1;j<=9;j++)
for(i=1;i<=j;i++)
{
str.Format("%d*%d=%2d",i,j,i*j);
pDC->TextOut(50*i,20*j,str);
}
}