注册 登录
编程论坛 VC.NET论坛

[分享]VC基础编程一点

zhangzujin 发布于 2006-01-10 21:15, 1640 次点击

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);

}

}

只有本站会员才能查看附件,请 登录

2 回复
#2
华山一派2006-04-12 20:12

谢谢分享!!!

#3
sdpdww2006-05-11 20:39

呵呵 不错 看来又找到一个志同道合的了

1